PDA

Просмотр полной версии : Не страбатывает Таймер


illusive
27.02.2011, 05:05
Скрипт предназначен для Aion начал писать и сразу столкнулся с проблемой что таймер почему-то не срабатывает

Вот пример по идее при нажатии на определенную эмоцию он должен запускать таймер а тот в свою очередт отсылать раз 1 секунду сообщение в чат, но такое не происходит, если просто без таймера то все работает: нажимаешь кнопу отсылается сообщение

Помогите разобраться плиз


var timer: TTimer;

procedure Init; //Вызывается при включении скрипта
begin
timer:=TTimer.Create(nil);
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
timer.interval:=1000;
end;

procedure Free; //Вызывается при выключении скрипта
begin
timer.enabled:=false;
timer.free;
end;

procedure OnTimer(Sender:TObject);
begin
buf:= HStr('B9 57 76 00 31 00 32 00 33 00 00 00');
SendToServer();
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck = '' then exit;

if FromClient and (pck = Hstr('C9 57 66 15 05 00 00 00 00 00')) then
begin
timer.enabled:=true;
end;




end.

supernewbie
27.02.2011, 06:36
SetName(name) и SendToServerEx(Name)

illusive
28.02.2011, 01:13
не помогло также не срабатывает

guplen
28.02.2011, 01:15
В Init добавь UseForConnectName := 'CharacterName'

Возможно не срабатывает условие активации таймера. Сделай изначально таймер запущенным и посмотри, будет ли пакет отправляться.

J-Fobos
28.02.2011, 01:42
не помогло также не срабатывает
Помогло. Скрипт с данными изменениями оказался рабочим.

dyh9l
28.02.2011, 15:09
не помогло также не срабатывает
имя в палочках SendToServerEx('имя');

illusive
03.03.2011, 03:08
Блин как только не пробывал не работает таймер, самое интересное пишет что последняя обработаная строка та строка где в таймере написано SendToServerEx('МойНик');

но таймер не срабатует

И если пишу в init
UseForConnectName := 'МойНик';
то вобще все перестает работать

//J-Fobos: во втором посте правильный ответ. Надо делать как там написано.

wimax
03.03.2011, 21:17
const
Name='nik';

var timer: TTimer;

procedure Init; //Вызывается при включении скрипта
begin
timer:=TTimer.Create(nil);
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
timer.interval:=1000;
end;

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

procedure OnTimer(Sender:TObject);
begin
buf:= HStr('B9 57 76 00 31 00 32 00 33 00 00 00');
SendToServerEx(Name);
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck = '' then exit;

if FromClient and (ConnectName=Name) and (pck = Hstr('C9 57 66 15 05 00 00 00 00 00')) then
begin
timer.enabled:=true;
end;
end.


вот держы работает все тока я не пойму зачем тебе спам?
чтоб убрать спам
добавь в начале таймера
timer.enabled:=false;

illusive
04.03.2011, 00:52
Да дело не в флуде это просто пример использования, кстати все равно не работает из личных наблюдений скажу что в WatchList в скриптах у меня переменная ConnectName все время пустая кажется что хлапекс просто не может определить имя почему-то, пробовал всякие разные версии l2phx результат одинаковый операционка win7 нече левого не стоит вчем трабла не пойму может от сервака зависит?

Кстати работает если использовать UseForConnectID := здесьИД; но так очень не удобно!

Карочь справился так в "основная часть скрипта" добавил UseForConnectID := ConnectID; все работает и вроде не тормозит

с никам так и не захотел работать !!! Думаю дело в серваке может как-то по другому ники шлет вобщем можно тему закрывать

wimax
04.03.2011, 03:54
1.поставь l2phx.3.5.33.166
2.настрой его норм
3.скрипт робочии
4.Name='nik';-- вместо nik твой ник в игре

NLObP
04.03.2011, 11:38
UseForConnectName := 'CharacterName'
CharacterName должен строго соответствовать имени чара!