PDA

Просмотр полной версии : Хочю написать скрипт


Kvik
11.03.2013, 21:02
Здраствуйте уважаемие посетители етой теми, кто может помогите написать скрипт такого примера:
Персонаж идет на определенное место, юзает кнопочку, берет в таргет то што появилось, отходит, юзает кнопочку опять отходит, таким образом пока не перейдет до определенних координат(пакетов), потом возвращаетса на место и опять виполняетса скрипт.
Как я понял тут лучше делать таймер с задержкой тоесть пока чар добежит и т.д, но интересно можна ли сделать проверку пришел ли он на определенное место если нет опять перейти(отправить пакет места), если да то продолжать.
вот попробовал такое:

const
name = 'name';
var
timer:TTimer;
TimerStep:byte;
procedure Init;
begin
TimerStep:=1;
timer:=TTimer.Create(nil);
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
timer.interval:=70000; //âðåìÿ çàäåðæêè ìåæäó îòïðàâêîé ïàêåòîâ.
end;

procedure Free;
begin
timer.free;
end;

procedure OnTimer;
begin
case TimerStep of
1:
begin
timer.interval:=600;
buf:=Hstr('19 98 C4 6B 40 00 00 00 00 ');
SendToServerEx(name);
// SendMsg('1');
Inc(TimerStep);
end;
2:
begin
buf:=Hstr('1F D0 8A 10 4B 34 A2 00 00 56 C9 00 00 37 F1 FF FF 00 ');
SendToServerEx(name);
// SendMsg('2');
Inc(TimerStep);
end;
3:
begin
buf:=Hstr('0F D9 A1 00 00 8D C9 00 00 55 F1 FF FF 34 A2 00 00 56 C9 00 00 37 F1 FF FF 01 00 00 00 ');
SendToServerEx(name);
// SendMsg('3');
TimerStep:=1;
timer.enabled:=false;
timer.interval:=6000000; //60000 ìñ = 1 ìèíóòà
end;
end;
end;


begin
timer.enabled:=true;
end.


сложил со скрипта на форуме, прога виснет сразу и появляетса безконечное число ошибок хз в чем проблема, как я понял оно не может скока раз виполнить или как то так, тоесть скрипт не имеет конца, пакети подставил свои.
Подскажите пож кому не сложно, в чем проблема.
П.с name ставил свое, клент GOD

Zergatul
11.03.2013, 21:09
Можно проверять пришел ли чар в определенную точку отправляя пакет \loc и перехвачивая ответ. Главное не отсылать слишком часто

Kvik
11.03.2013, 22:23
Можно проверять пришел ли чар в определенную точку отправляя пакет \loc и перехвачивая ответ. Главное не отсылать слишком часто
а можно как то поподробнее тоесть пример какой то или кусочек примера

Добавлено через 1 минуту

const
name = 'JPEG';
var
timer:TTimer;
TimerStep:byte;
procedure Init;
begin
TimerStep:=1;
timer:=TTimer.Create(nil);
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
timer.interval:=700; //âðåìÿ çàäåðæêè ìåæäó îòïðàâêîé ïàêåòîâ.
end;

procedure Free;
begin
timer.free;
end;

procedure OnTimer;
begin
case TimerStep of
1:
begin
timer.interval:=600;
buf:=Hstr('19 98 C4 6B 40 00 00 00 00 ');
SendToServerEx(name);
// SendMsg('1');
Inc(TimerStep);
end;
2:
begin
buf:=Hstr('1F D0 8A 10 4B 34 A2 00 00 56 C9 00 00 37 F1 FF FF 00 ');
SendToServerEx(name);
// SendMsg('2');
Inc(TimerStep);
end;
3:
begin
buf:=Hstr('0F D9 A1 00 00 8D C9 00 00 55 F1 FF FF 34 A2 00 00 56 C9 00 00 37 F1 FF FF 01 00 00 00 ');
SendToServerEx(name);
// SendMsg('3');
TimerStep:=1;
timer.enabled:=false;
timer.interval:=600; //60000 ìñ = 1 ìèíóòà
end;
end;
end;


begin
if FromServer and (pck=HStr('19 98 C4 6B 40 00 00 00 00 ')) then
begin
timer.enabled:=true;
end;
end.
Попробовал щас вот такое ошибок нет больше тока скрипт ниче не делает, я поставил проверку как би если я юзаю баночку то начинает происходить виполнение скрипта, но ниче не происходит в чем проблема кто скажет???

Добавлено через 5 минут
Можно проверять пришел ли чар в определенную точку отправляя пакет \loc и перехвачивая ответ. Главное не отсылать слишком часто
я смотрел как би в пакетах што можна здалать проверку не на команду /loc в игре а на проверку пакетов которие передает мне сервер там есть какой то пакет вроде присилает клиенту где я нахожусь думаю мона поставить штоб по нему проверял, ну ставить проверку после таймера конешно так будет лучше, просто как би есть иногда лаги в игре ну там 1 сек, или больше если много народу рядом а так проверка уточнит и админ не запалит што бегаю я себе как то не так :)

Добавлено через 58 минут
Народ помогите ктото плз:cray:

Zergatul
12.03.2013, 04:41
Пакет с твоим местонахождением не приходит, когда чар бегает или прибегает в конечную точку. Клиент сам высчитывает координаты

Kvik
12.03.2013, 16:34
Со скриптом етим уже розобрался но есть вопрос почему когда я отправляю по команде SendToServerEx(name); у мну тупо зависает l2phx а с игри викидивает, ну викидивает понятно так как прога прервала соединение, но почему прога виснет от скрипта??? когда ставлю SendToServer; то все норм работает.
Читал в какой то теме на форуме что может клиент использует какой то другой пакет или што то типа того поетому не работает или ето из за того што я использую версию l2phx.3.4.1.83 а клиент игри у мну l2 God, подскажиет пож