PDA

Просмотр полной версии : Скрипт на перебор значений ListId


Plmt
07.07.2009, 14:00
Здравствуйте
Вот имеем пакет (сервер интерлюд)
A7=RequestMultiSellChoose:d(ListID)d(EntryID)d(Amo unt)h(ench)

Для примера возьмем:A7 B7 02 00 00 80 1A 06 00 01 00 00 00 00 00 00 00 00 00 00 00
Интересует только Listid (B7 02 00 00) из пакета.
Помогите написать скрипт, который будет перебирать listid от установленного начального значения до установленного конечного с задержкой по таймеру.
Просто в ГМшопе Listid предметов сильно разняться по значению (могут быть с Listid как скажем 457 так и 23456789 и тд). И вручную подставлять листид совсем не реально.

8tomat8
07.07.2009, 14:34
Plmt, если ты будеш перебирать листИД то у тебя просто на просто может не хватить денег что бы все это купить)

Plmt
07.07.2009, 14:58
В том то и дело что разброс значений Listid огромен (не попорядку, для примера в мультиселе есть предмет с листид 1 и есть предмет с листид 111111111). Огромный разброс очевиден (вот 111111110 или тут 111111112 уже нет предмета, он где нибудь дальше). Возможно в мультиселе и прописаны предметы стоимостью 1а, специально на чаре оставляется маленькая сумма, пусть пишет мол предметов или денег нет у вас. Главное не купить предмет а вообще найти его расположение. Вот и нужен скрипт пусть шлет по таймеру пакет RequestMultiSellChoose с перебором listid.

Вот накидал примитивный

var
i:integer;
newpacket,first,last:string;

begin
first:='A7'; //начало пакета (неизменяемая часть)
last:='60 E3 16 00 01 00 00 00 00 00 00 00 00 00 00 00 '; //конец пакета (неизменяемая часть)
for i:=1 to 99 do begin
newpacket:=IntToStr(i); //?
buf:=HStr(first)+HStr(newpacket)+HStr(last);
SendToServer;
end;

Но вот загвоздка как целочисленную переменную i преобразовать в Hex и вставлять в середину пакета. Думал преобразовать в строку, а строку потом в Hex значение, но что-то не так в пакете, в середине пишет всякую ерунду.