Цитата:
Сообщение от poizon
во первых не могу понять каким пакетом от сервера приходит информация о текущем MP .
|
Пакет:
PHP код:
s0E=StatusUpdate:h(ObjectID)d(AttribCount)d(AttrID)d(AttrValue)
в пакете может быть несколько атрибутов за один раз.
Пример использования:
delphi Код:
//***************************************************
procedure StatusUpdate; // обновление данных о себе
var
i: integer;
begin
for i:=0 to ReadD(6)-1 do begin
case pck[i*8+10] of
#$09: CurHP:=ReadD(i*8+14);
#$0A: MaxHP:=ReadD(i*8+14);
#$0B: MyMP:=ReadD(i*8+14);
#$0C: MyMaxMP:=ReadD(i*8+14);
#$21: MyCP:=ReadD(i*8+14);
#$22: MyMaxCP:=ReadD(i*8+14);
end;
end;
end;
begin
if (ConnectName=Name) and FromServer then begin
case pck[1] of
#$0E: if (MyID=ReadD(2)) then StatsUpdate;
end;
end;
end.
Цитата:
Сообщение от poizon
сам скрипт простой
procedure make
if MP = maxMp
set lomp = 0
loop while lowmp = 0 зацикливает пока переменная lowmp = 0
compute rnd1 = 1 + int(rnd(2)) // рассчитать рандомное число для делея
delay $rnd1 sec
sendtoserver "AF 14 00 00 00 " //вобщем типа послать сервуру этот пакет , нажимает на кнопку создания соулшота.
if mp < 40 //если маны мало то "вырубает" данный цикл
set lowmp = 1
end
end // конец цикла с условием
call make
else //если переменная МП не = макс МП то выполняет вызывает опять
call make
end //конец процедуры мейк
|
1. Работа с пакетами в скрипте происходит асинхронно.
2. Циклов задержки в процедурах ставить нельзя все станет колом из-за задержек прохождения других пакетов.
3. Расчитывай на флаги, которые сообщают о происшедших событиях.
4. Скрипты кнопок давить не могут. Все действия осуществляются посылкой определенных пакетов.
5. Последовательность можно посмотреть пакетхаком по логам, предварительно проделав их в клиенте.