PDA

Просмотр полной версии : процедура с таймером)


dyh9l
16.10.2010, 23:12
Напишите мне пож-ста процедуру таймера которая состоит из 7 событий где при 7 событии отключается сам таймер, за место пакетов используйте a b c d e f g очень поможете мне :) у мну чето мягко говоря все время на a зависает))

J-Fobos
16.10.2010, 23:33
Леньтяй :D
На а зацикливается потому что не увеличиваешь счетчик итераций таймера.

dyh9l
17.10.2010, 01:04
Леньтяй :D
На а зацикливается потому что не увеличиваешь счетчик итераций таймера.

да не лентяй я, не получается блин..

Grinch
17.10.2010, 01:06
заюзай поиск блин там примеров мягко говоря много, если не сказать больше их просто докуя каждый 2-й скрипт наверное

dyh9l
17.10.2010, 02:33
нашел чето из поиска но не робит.., исправьте хотяб ошибки))
procedure OnTimer01(Sender: TObject);
begin
case TimerCycle of
1:begin
buf:=HStr('38 31 00 00 00 00 00 00 00'); //1 ïàêåò
sendtoserverex(charname);
Inc(TimerCycle);
timer01.interval:=1500;
end;
2:begin
buf:=HStr('38 32 00 00 00 00 00 00 00'); //2 ïàêåò
sendtoserverex(charname);
Inc(TimerCycle);
timer01.interval:=1500;
end;
3:begin
buf:=HStr('38 33 00 00 00 00 00 00 00'); //3 ïàêåò
sendtoserverex(CharName);
Inc(TimerCycle);
timer01.interval:=1500;
end;
4:begin
buf:=HStr('38 34 00 00 00 00 00 00 00'); //4 ïàêåò
sendtoserverex(charname);
TimerCycle:=1;
timer01.interval:=1500;
end;
end;
end;
этим включаю таймер
If ItemToEnchant = 0 then Timer01.enabled:=true ;

guplen
17.10.2010, 03:24
Проверять вломак, хз что у тебя там не так, надо весь код смотреть.
Вот каркас с таймером на 7 разных действий. annon выводит в чате циферки от 1 до 7.

var
cycle:integer;
Timer1:TTimer;

procedure annon(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClient;
end;

procedure Init; //Вызывается при включении скрипта
begin
Timer1:=TTimer.Create(nil);
Timer1.OnTimer:=@OnTimer;
Timer1.Enabled:=true;
Timer1.Interval:=1000;//интервал запрещения пакета
cycle:=0;
useforconnectname:='op';
end;

procedure Free; //Вызывается при выключении скрипта
begin
Timer1.Free();
end;

procedure OnTimer();
begin
case cycle of
1:begin
annon(inttostr(cycle));
end;
2:begin
annon(inttostr(cycle));
end;
3:begin
annon(inttostr(cycle));
end;
4:begin
annon(inttostr(cycle));
end;
5:begin
annon(inttostr(cycle));
end;
6:begin
annon(inttostr(cycle));
end;
7:begin
annon(inttostr(cycle));
timer1.Enabled:=false;
end;
end;
inc(cycle);
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin

end.

А в какой тег надо вписывать код, чтобы он отформатировался в делфи? НА пенельке редактора ничего не нашел чота.

dyh9l
17.10.2010, 14:34
[HIGHLIGHT="delphi" ] [ /HIGHLIGHT] ты про него?)

guplen
17.10.2010, 15:04
[HIGHLIGHT="delphi" ] [ /HIGHLIGHT] ты про него?)

Ага, я думал это что-то типа спойлера. С таймером разобрался?

dyh9l
17.10.2010, 17:04
Ага, я думал это что-то типа спойлера. С таймером разобрался?
Нет еще, на учебе щас :)