Вот короче скрипт который при получения пакета запускает таймер01 и таймер03 который по окончанию запускает таймер02 который
в свою очередь начинает спам пакетом каждые 0.1 в секу после спамит до окончания времени таймера03 когда interval в нем офф то он
отрубает таймер02 и себя.
суть проблемы хули не пашыт?)))
Цитата:
var
Timer01: TTimer;
Timer02: TTimer;
Timer03: TTimer;
procedure Init; //первый таймер активирует второй
begin
Timer01:=TTimer.Create(nil); //выделяем памать и т.п.
Timer01.OnTimer:=@OnTimer01; //привязываем процедуру к событию
Timer01.enabled:=false; //начальное положение включен(true)/выключен(false)
Timer01.interval:=29000; //29000 интервал(в милисекундах) как часто таймер срабатывает
Timer02:=TTimer.Create(nil); //выделяем памать и т.п.
Timer02.OnTimer:=@OnTimer02; //привязываем процедуру к событию
Timer02.enabled:=false; //начальное положение включен(true)/выключен(false)
Timer02.interval:=10; //30000интервал(в милисекундах) как часто таймер срабатывает
Timer03:=TTimer.Create(nil); //выделяем памать и т.п.
Timer03.OnTimer:=@OnTimer03; //привязываем процедуру к событию
Timer03.enabled:=false; //начальное положение включен(true)/выключен(false)
Timer03.interval:=31000; //310000интервал(в милисекундах) как часто таймер срабатывает
end;
procedure OnTimer01(Sender: TObject);
begin
Timer01.enabled:=False;
Timer02.enabled:=True;
end;
procedure OnTimer03(Sender: TObject);
begin
Timer03.enabled:=False;
Timer02.enabled:=False;
end;
begin
IF FromServer and (pck[1]=#$4A) and (ReadS(12)=('CTF: Старт через 5 мин. для уровней 76-85.') then
begin
Timer01.enabled:=True;
Timer03.enabled:=True;
end;
end.
IF FromServer and (pck[1]=#$4A) and (ReadS(12)=('CTF: Старт через 5 мин. для уровней 76-85.') then
Я один не вижу смысл этой скобки?
еще добавь procedure Free; где бы было освобождение памяти у 3 таймеров, и еще попробуй сделать SendToServerEx
/при получения пакета таймеры1,3,4 врубаются
/после того как таймер 1 офф сам он выключается, и врубает таймер2
/таймер 2 начинает спамить пока таймер 3 его не вырубит
/как тока таймер 4 включается сразу офаетса
отправление на сервер пакет на проверку локацыии если приходит пакет
что находится тамто то делает что нибудь.
Помогите доделать objid итема а то чот не хрена не получается и ищо
как можна зделоть чтоб пакет отпровлялся не на 1 ник а на которые я напишу
const
name='fghfgh';
name1='gdfgdfg'
name2='asdasd'
name3=name+name2+name3
SendToServerEx(name3);
так будет похать?
SHOWTOGROUPS="Местный"]
Const
ScrollID=7134;
var
Timer01: TTimer;
Timer02: TTimer;
Timer03: TTimer;
Timer04: TTimer;
procedure Init; //первый таймер активирует второй
begin
Timer01:=TTimer.Create(nil); //выделяем памать и т.п.
Timer01.OnTimer:=@OnTimer01; //привязываем процедуру к событию
Timer01.enabled:=false; //начальное положение включен(true)/выключен(false)
Timer01.interval:=27000; //27000 интервал(в милисекундах) как часто таймер срабатывает
Timer02:=TTimer.Create(nil); //выделяем памать и т.п.
Timer02.OnTimer:=@OnTimer02; //привязываем процедуру к событию
Timer02.enabled:=false; //начальное положение включен(true)/выключен(false)
Timer02.interval:=10; //10интервал(в милисекундах) как часто таймер срабатывает
Timer03:=TTimer.Create(nil); //выделяем памать и т.п.
Timer03.OnTimer:=@OnTimer03; //привязываем процедуру к событию
Timer03.enabled:=false; //начальное положение включен(true)/выключен(false)
Timer03.interval:=32000; //32000интервал(в милисекундах) как часто таймер срабатывает
Timer04:=TTimer.Create(nil); //выделяем памать и т.п.
Timer04.OnTimer:=@OnTimer04; //привязываем процедуру к событию
Timer04.enabled:=false; //начальное положение включен(true)/выключен(false)
Timer04.interval:=90000; //31000интервал(в милисекундах) как часто таймер срабатывает
end;
procedure Free;
begin
Timer01.free;
Timer02.free;
Timer03.free;
Timer04.free;
end;
procedure CreateItemBase;
var j,ItmID,ObjID,Scroll:integer;
begin
ObjID:=ReadD(j);
ItmID:=ReadD(j);
case ItmID of
ScrollID:
begin
Scroll:=ObjID;
end;
end;
end;
procedure UpdateItemBase;
var j,ObjID,ItmID,Scroll:integer;
begin
ObjID:=ReadD(j);
ItmID:=ReadD(j);
case ItmID of
ScrollID: begin
Scroll:=ObjID;
end;
end;
end;
procedure OnTimer01(Sender: TObject);
begin
Timer01.enabled:=False;
Timer02.enabled:=True;
end;
procedure OnTimer03(Sender: TObject);
begin
Timer03.enabled:=False;
Timer02.enabled:=False;
end;
var
Scroll:integer;
procedure OnTimer04(Sender: TObject);
begin
Timer04.enabled:=False;
begin
pck:='';
buf:=HStr('B3 00 00 00 00');
SendToServer;
end;
IF FromServer and (pck=HStr('62 9C 03 00 00') then
pck:='';
buf:=hstr('19');
WriteD(Scroll);
SendToServer;
end;
begin
IF FromServer and (pck[1]=#$4A) and (ReadS(12)='CTF: Старт через 5 мин. для уровней 76-85.') then
begin
Timer01.enabled:=True;
Timer03.enabled:=True;
Timer04.enabled:=True;
end;
end.
[/SHOWTOGROUPS]
Последний раз редактировалось Breadfan, 10.01.2011 в 22:17.
зачем городить миллион таймеров, если можно использовать один, по необходимости меняя Timer.interval ?
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
можно не спорю но так быстрей дошло как написать лутше, потскажы как objid узнать а то там чота не так я епу чо.....
и хотя нет нельзя надо имено 4 таймера
1. еще как можно
2. модули разбирающие итемлист и итемапдейт - есть в соседних темах.
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
При получении пакета (pck[1]=#$4A) and (ReadS(12)='CTF: Старт через 5 мин. для уровней 76-85.') ждать 4 мин 40 секунд начинать спамить пакетом
('C6 BF 07 00 00 01 00 00 00 03 00 00 00'); каждую 0.1секунду в течении 30 секунд через 15 минут делоть проверку где мы находимся ('B3 00 00 00 00');
команда /loc смотрим если мы в теретории адены (pck=HStr('62 9C 03 00 00') тогда юзае скрол тп в руну(иногда на евенте проста не портует) в руну потомучто с колизея обычный скрол не катит а писать чтоб обегал дополнительный геморой .... вот щас 1 проблема ето узнать как работает узнавание ObjID