Здрасьте, помогите пожалуйста зделать скрипт, с помощю которого l2phx будет отправлять серверу разные пакеты с задержкой..скажем..мм.. 2 сек. после каждого.
Например я играю на ГМ сервере и хачу посылать пакеты //recall ник 16 разных ников с задержкой 2 сек. и чтобы скрипт выполнялся пока его не отключиш (т.е. после того как он отправит все 16 пакетов серверу 1.2.3.4.5.6.7.8.9.... после 16-го опять возвращался к выполнению 1-го и так бесконечно)
Перечитала весь форум - ребята часто спрашывают про посылку пакетов с задержкой но так и не получают ответа.
Я пробовала переделывать другие скрипты например скрипт VORON-а расказывающий анекдоты:
Код:
//by VORON
//скрипт который рассказывает анекдоты без бана:
///////////////////////////////////////////////////////////////////////////
var
temp: array [1..20] of string;
timer1: TTimer;
x: integer;
procedure Init; //Вызывается при включении скрипта
begin
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer; //
timer1.enabled:=true; //
timer1.interval:=1000;
temp[1]:='" Водка в стиле IT: ';//вместо текста, писала ник, который хачу "рекалить"
temp[2]:='0.1л - demo ';
temp[3]:='0.25л - trial version ';
temp[4]:='0.5л - personal edition ';
temp[5]:='0.7л - professional edition ';
temp[6]:='1.0л - network edition ';
temp[7]:='1.75л - enterprise ';
temp[8]:='3л - for small business ';
temp[9]:='5л - corporate edition ';
temp[10]:='Бутыль самогона - home edition ';
temp[11]:='"На посошок" - Service pack ';
temp[12]:='Рассол с утра - Recovery tool ';
temp[13]:='Закуска - plugins ';
temp[14]:='Пиво - patch ';
temp[15]:='Coca-cola, Fanta, 7 UP - trojan viruses';
temp[16]:='';
x:=1;
end;
procedure OnTimer(Sender: TObject);
begin
///
if temp[x] <> '' then
begin
buf:=hstr('38');//38 - тип пакета "чат" изменяла на 5B
writes(temp[x]);
buf:=buf + hstr('01 00 00 00'); ///Вместо 01 00 00 00 написала 72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 (продолжение пакета после первых 2-х байт)
sendtoserverex('ник');//тут пробовала и с ником, и без него
end;
x:=x+1;
if x>= 19 then x:=19;
end;
procedure Free; //Вызывается при выключении скрипта
begin
timer1.Free;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
end.
Никакого результата..
В одной из тем прочитала:
Цитата:
Go0fy 24 дек 2007, 12:29
Народ, помогите плз, вообщем мне нужно отправить серверу 3 пакета, каждый из них n-ое кол-во раз с определённым интервалом.
|
Цитата:
в какой последовательности и с каким инретвалом?
например:
пак1-пак2-пак3-пак2-пак1 или
пак1-пак2-пак1-пак3 или как-нить еще, а вообще делаешь массив
mass:array[1..<количество пакетов>] of string;
в процедуре Init допиши:
mass[1]:='<суда вставляешь скопированный пакет, который надо послать>';
mass[2]:= ....
......
mass[<Количество пакетов>]:= ...
и сделай таймер с нужным интервалом (или несколько таймеров);(как описывается, создается и удаляется таймер смотри в теме "Да будет Бот" - первый пост посмотри)
и в обработчике таймера поставь
buf:=hstr(mass[<здесь номер элемента в массиве>]);
усе!
|
и сразу попробовала сделать скрипт:
Код:
mass:array[1..16] of string;
timer1: TTimer;
buf;
procedure Init; //Вызывается при включении скрипта
begin
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer; //
timer1.enabled:=true; //
timer1.interval:=2000;
mass[1]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[2]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[3]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[4]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[5]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[6]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[7]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[8]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[9]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[10]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[11]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[12]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[13]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[14]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[15]:='72 00 65 00 63 00 61 00 6C 00 6C 00 20 00 53 00 69 00 67 00 6D 00 61 00 00 00';
mass[16]:=''";
end;
procedure OnTimerProc;
buf:=hstr(mass[1])
begin //end. не ставлю, хачу чтобы скрипт повторялся
//Ну вот я сделала;
//Ни пашет;
//Пачиму?.
Там блин нехватает каких-то пары строк..Но написать их может только тот кто знает Passkal и держыт в голове десятки примеров скриптов и знает как их соединять
Можете выложить готовый пример скрипта, хотябы для отправки 3-х разных пакетов, а я уже сама разберусь и напишу где менять 3 на 16, и добавлю новые строки..Ето-же очень легко (по сравнению например с скриптами на "манор, заточку, прокачку ботом и.т.д) зато добавит l2phx много новых возможностей...