Вернуться   CoderX :: Forums > Lineage II > L2PacketHack
Войти через OpenID

L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Обсуждение багов Lineage ЗАПРЕЩЕНО!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 19.03.2011, 09:57   #1
Новичок
 
Регистрация: 08.07.2010
Сообщений: 29
Сказал Спасибо: 15
Имеет 2 спасибок в 2 сообщенях
afonbka пока неопределено
По умолчанию Помогите прикрутить таймер.

Всем доброе утро. Давно хотелось написать скрипт, который бы отправлял 3 пакета с задержкой между каждым 1 секунда, и скрипт повторял ето делать каждые 6 минут. Нашел пример скрипта, который будет отправлять пакеты каждые 1 сек, но нужно прикрутить таймер, который бы приводил скрипт в действие каждые 6 минут. Особо благодарен всем, кто хотябы попытается помоч. Вот пример.

Код:
const
  nik='ник';

var
  timer : TTimer;
  packet:array of string;
  i,j:integer;

procedure OnTimer(Sender: TObject);
begin
  for i:=1 to 999 do begin //сколько раз отправлять пакеты
    for j:=1 to length(packet) do begin
    buf:=packet[j];
    sendtoserverex(nik);  
    end;
  end;
end;

procedure Init;
begin
  packet[1]:=Hstr('D0 0F 00 D3 04 00 00 91 01 00 00'); // 1 пакет
  packet[2]:=Hstr('D0 0F 00 D3 04 00 00 92 01 00 00'); // 2 пакет
  packet[3]:=Hstr('D0 00 00 00 00 00'); // 3 пакет.
  timer:=TTimer.Create(nil);
  timer.OnTimer:=@OnTimer;
  timer.enabled:=false;
  timer.interval:=1000; //время задержки между отправкой пакетов.
  j:=1; 
  i:=1;
end;

procedure Free; 
begin
  timer.free;
end;

begin
end.
afonbka вне форума   Ответить с цитированием
Старый 19.03.2011, 12:21   #2
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

Эх... вот создаешь темы, создаешь...

Вот способ с 2мя таймерами:
(Как в 1 уложить хз это думать головой нада)
delphi Код:
const   Name='Nickers'; //Ник   N=3; //Сколько раз послать пакет var   timer, timer2 : TTimer;   j:integer; procedure OnTimer(Sender: TObject); begin   buf:= ; //Сюда пакет по типу: "buf:=#$FF#$01#$00#$00#$00;"   SendToServerEx(Name);   inc(j);   if j=N then     begin       timer.enabled:=false;       timer2.enabled:=true;       j:=0;     end; end; procedure OnTimer2(Sender: TObject); begin   timer1.enabled:=true;   timer2.enabled:=false; end; procedure Init; begin   timer:=TTimer.Create(nil);   timer.OnTimer:=@OnTimer;   timer.enabled:=true;   timer.interval:=1000; //1 сек   timer2:=TTimer.Create(nil);   timer2.OnTimer:=@OnTimer2;   timer2.enabled:=false;   timer2.interval:=6000; //6 сек   j:=0; end; procedure Free; begin   timer.free;   timer2.free; end; begin end.
Как-то так... Не проверял, ошибки не исключены...
(Прошу выложить способ с 1м таймером, мне будет интересно разобрать)

По вопросам скриптописания добро пожаловать в соответствующую >>>темку<<< (У меня в подписи)
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]

Последний раз редактировалось Nickers, 19.03.2011 в 12:27.
Nickers вне форума   Ответить с цитированием
За это сообщение Nickers нажился спасибкой от:
Старый 19.03.2011, 12:24   #3
Новичок
 
Регистрация: 08.07.2010
Сообщений: 29
Сказал Спасибо: 15
Имеет 2 спасибок в 2 сообщенях
afonbka пока неопределено
По умолчанию

Хорошо. Спасибо большое, но как сделать чтобы он отправлял не 1 пакет а 3?
afonbka вне форума   Ответить с цитированием
Старый 19.03.2011, 12:31   #4
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

delphi Код:
const   Name='Nickers'; //Ник   N=3; //Сколько раз послать пакет var   timer, timer2 : TTimer;   packet:array[1..N] of string;   j:integer; procedure OnTimer(Sender: TObject); begin   inc(j);   buf:=packet[j];   SendToServerEx(Name);   if j=N then     begin       timer.enabled:=false;       timer2.enabled:=true;       j:=0;     end; end; procedure OnTimer2(Sender: TObject); begin   timer1.enabled:=true;   timer2.enabled:=false; end; procedure Init; begin   packet[1]:=Hstr('D0 0F 00 D3 04 00 00 91 01 00 00'); // 1 пакет   packet[2]:=Hstr('D0 0F 00 D3 04 00 00 92 01 00 00'); // 2 пакет   packet[3]:=Hstr('D0 00 00 00 00 00'); // 3 пакет.   timer:=TTimer.Create(nil);   timer.OnTimer:=@OnTimer;   timer.enabled:=true;   timer.interval:=1000; //1 сек   timer2:=TTimer.Create(nil);   timer2.OnTimer:=@OnTimer2;   timer2.enabled:=false;   timer2.interval:=6000; //6 сек   j:=0; end; procedure Free; begin   timer.free;   timer2.free; end; begin end.
Вот думаю так тебе нада(При запуске):
ждет секунду, Посылает пакет(1), ждет секунду, ПАКЕТ(2), секунда, Пакет(3), 6 секунд (Повтор)
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]

Последний раз редактировалось Nickers, 19.03.2011 в 12:44.
Nickers вне форума   Ответить с цитированием
За это сообщение Nickers нажился спасибкой от:
Старый 19.03.2011, 13:05   #5
Новичок
 
Регистрация: 08.07.2010
Сообщений: 29
Сказал Спасибо: 15
Имеет 2 спасибок в 2 сообщенях
afonbka пока неопределено
По умолчанию

Спасибо большое

Добавлено через 26 минут
Извини, но ругается на этот участок кода

procedure OnTimer2(Sender: TObject);
begin
timer1.enabled:=true;
timer2.enabled:=false;
end

Добавлено через 3 минуты
Починил, у тебя в коде в первом случае timer=true а тут timer1=true. стер единичку и все заработало Но теперь он отпарвляет ети пакеты лиш 1 раз, а через заданное время во втором таймере он не отпарвляет.

Последний раз редактировалось afonbka, 19.03.2011 в 13:05. Причина: Добавлено сообщение
afonbka вне форума   Ответить с цитированием
Старый 19.03.2011, 13:14   #6
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

Да на счет 1 я лажанул =)))

Попробуй так? А то я хз в чем ошибка)) (Напиши саму ошибку...)
delphi Код:
const   Name='Nickers'; //Ник   N=3; //Сколько раз послать пакет var   timer, timer2 : TTimer;   packet:array[1..N] of string;   j:integer; procedure OnTimer(Sender: TObject); begin   timer2.enabled:=false;   inc(j);   buf:=packet[j];   SendToServerEx(Name);   if j=N then     begin       timer2.enabled:=true;       j:=0;       timer.enabled:=false;     end; end; procedure OnTimer2(Sender: TObject); begin   timer.enabled:=true; end; procedure Init; begin   packet[1]:=Hstr('D0 0F 00 D3 04 00 00 91 01 00 00'); // 1 пакет   packet[2]:=Hstr('D0 0F 00 D3 04 00 00 92 01 00 00'); // 2 пакет   packet[3]:=Hstr('D0 00 00 00 00 00'); // 3 пакет.   timer:=TTimer.Create(nil);   timer.OnTimer:=@OnTimer;   timer.enabled:=true;   timer.interval:=1000; //1 сек   timer2:=TTimer.Create(nil);   timer2.OnTimer:=@OnTimer2;   timer2.enabled:=false;   timer2.interval:=6000; //6 сек   j:=0; end; procedure Free; begin   timer.free;   timer2.free; end; begin end.
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]
Nickers вне форума   Ответить с цитированием
Старый 19.03.2011, 13:23   #7
Новичок
 
Регистрация: 08.07.2010
Сообщений: 29
Сказал Спасибо: 15
Имеет 2 спасибок в 2 сообщенях
afonbka пока неопределено
По умолчанию

Тоже самое, отсылает 3 пакета 1 раз и больше не отсылает как задано во втором таймере.

timer2:=TTimer.Create(nil);
timer2.OnTimer:=@OnTimer2;
timer2.enabled:=false;
timer2.interval:=15000; //15 сек
j:=0;

Добавлено через 4 минуты
а нет, все работает.. спасибо)) только отсылает он не через 15 секунд как я указал, а рандомно както (

Добавлено через 2 минуты
указал отсылать с задержкой между пакетами 1.5 сек и повторять эту процедуру каждые 15 сек. он повторил её через 1 - 1.5 минуты.

Последний раз редактировалось afonbka, 19.03.2011 в 13:23. Причина: Добавлено сообщение
afonbka вне форума   Ответить с цитированием
Старый 19.03.2011, 13:23   #8
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

afonbka, Хм эта странно)) Когда тестируешь нада по меньше числа указывать)) Ну мб ща кто-нить зайдет и напишет нам как написать в 1 таймер и чтоб без погрешности)))
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]
Nickers вне форума   Ответить с цитированием
За это сообщение Nickers нажился спасибкой от:
Старый 19.03.2011, 13:34   #9
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

думаю как то так
delphi Код:
const     name = ''; var     timer:TTimer;     TimerStep:byte; procedure Init; begin     TimerStep:=1;     timer:=TTimer.Create(nil);     timer.OnTimer:=@OnTimer;     timer.enabled:=true;     timer.interval:=1000; //время задержки между отправкой пакетов. end; procedure Free; begin     timer.free; end; procedure OnTimer;     begin         case TimerStep of             1:                 begin                     timer.interval:=1000;                     buf:=Hstr('D0 0F 00 D3 04 00 00 91 01 00 00');                     SendToServerEx(name);                //   SendMsg('1');                     Inc(TimerStep);                 end;             2:                 begin                     buf:=Hstr('D0 0F 00 D3 04 00 00 92 01 00 00');                     SendToServerEx(name);                //   SendMsg('2');                     Inc(TimerStep);                                end;             3:                 begin                     buf:=Hstr('D0 00 00 00 00 00');                     SendToServerEx(name);                //   SendMsg('3');                     TimerStep:=1;                     timer.interval:=6*60000;   //60000 мс = 1 минута                          end;         end;     end; begin end.
p.s: вам веть фобос писал статью, как сделать таймер с несколькими пакетами
__________________

Последний раз редактировалось dyh9l, 19.03.2011 в 13:40.
dyh9l вне форума   Ответить с цитированием
За это сообщение dyh9l нажился 5 спасибками от:
Старый 19.03.2011, 13:43   #10
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

Та я тож думал что так нада было сделать)))
Цитата:
timer.interval:=360000;
А так можно и без Кейса))
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]
Nickers вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 05:46.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!