Есть скрипт, грубо говоря стырил его отсюда...немного доделал... запускаю...ошибок никаких не пишет...но пакеты не отправляются( в чем прикол не пойму...помогите)
Код:
var
Timer01: TTimer;
TimerCycle:integer;
procedure Init;
begin
Timer01:=TTimer.Create(nil); //выделяем памать и т.п.
Timer01.OnTimer:=@OnTimer01; //привязываем процедуру к событию
Timer01.enabled:=false; //начальное положение включен(true)/выключен(false)
Timer01.interval:=2700; //интервал(в милисекундах) как часто таймер срабатывает
TimerCycle:=1;
end;
procedure OnTimer01(Sender: TObject);
begin
case TimerCycle of
1:begin
buf:=hstr('0C 0D 7C 11 10 00 00 00 00');
SendToServer;
Inc(TimerCycle);
Exit;
end;
2:begin
buf:=hstr('43 4C 00 76 A0 04 10');
SendToServer;
Inc(TimerCycle);
Exit;
end;
3:begin
buf:=hstr('65 76 A0 04 10 00 00 00 00');
SendToServer;
TimerCycle=1;
Exit;
end;
end;
end;
procedure Free; //Вызывается при выключении скрипта
begin
timer01.Free; //освобождаем занимаемую память таймером
end;
begin
timer01.enabled:=true;
end.
Последний раз редактировалось PadshiyAngel, 13.05.2010 в 02:05.
Timer01:=TTimer.Create(nil); и тому подобное объявляется не в процедуре Init, а timer01.enabled:=true; в теле скрипта хотя и включит таймер, но будет его включать постоянно при приходе любого пакета.
__________________
В любом из нас спит гений. И с каждым днем все крепче.
Timer01:=TTimer.Create(nil); и тому подобное объявляется не в процедуре Init, а timer01.enabled:=true; в теле скрипта хотя и включит таймер, но будет его включать постоянно при приходе любого пакета.
Насчет объявления не в Init... Ваша ссылка...у вас тут в Init объявляется...
Ну а насчет включения, эт как нить разберусь, мне надо чтобы хотя бы один раз отправились пакеты без дисконекта)
Меня что-то клемануло Я хотел написать что в инит надо обьявить начальное значение TimerCycle:=1;
Написал одно, а думал о другом, впервые такое, крыша едет чтоли
__________________
В любом из нас спит гений. И с каждым днем все крепче.
Меня что-то клемануло Я хотел написать что в инит надо обьявить начальное значение TimerCycle:=1;
Написал одно, а думал о другом, впервые такое, крыша едет чтоли
добавил в инит...все равно что то не посылаются пакеты...где то тут косяк...
Вместо SendToServer; поставь SendToServerEx(Nickname);
И здесь
begin
timer01.enabled:=true;
end.
лучше сделай чтоб включался по приходе пакета соц действия. А то так получается он у тебя все время включен, но если ты так хочешь тогда уж лучше сразу его включить в Init, а в begin end. оставить пустыми.