Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 16.01.2010, 01:23   #1
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию проблема с процедурой

Доброго времени суток тому кто читает.
Собственно проблема:

Пишу скрипт и хочу сделать чтоб при отсылке пакета на сервер(в моём случае чтото написать в чате) пакет не отсылался и слался другой (в моём случае это пакет на соц действие - сесть).
Код вот такой, часть конечно:

begin
if FromClient and (pck[1]=hstr('49')) then begin
pck:='';
buf:=hstr('56 00 00 00 00 00 00 00 00 00');
SendToServerEx(name);
end;
end.

Работает без проблем, но если я положу его в процедуру таймера(не буду писать код дело не в нём, работает если под таймер поставить просто пакет на сесть), то ничего не происходит.
Думаю всё дело что под процедурой стоит условие if...then..begin...end;
Но что делать я не знаю чтоб работало по таймеру...
Подскажите плз.
kpa9pt вне форума   Ответить с цитированием
Старый 16.01.2010, 12:10   #2
Местный
 
Регистрация: 05.11.2008
Сообщений: 168
Сказал Спасибо: 35
Имеет 139 спасибок в 66 сообщенях
Fer123 пока неопределено
По умолчанию

Выложи код может как раз таки дело в нем. Я что то не совсем понял что ты хочешь.
Fer123 вне форума   Ответить с цитированием
Старый 16.01.2010, 15:24   #3
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Код:
const
name='brbr';
var
enchant:TTimer;
procedure Init;
          begin
               enchant:=TTimer.Create(nil);
               enchant.OnTimer:=@Onenchant;
               enchant.enabled:=true;
               enchant.interval:=3000;
          end;
procedure Onenchant(Sender: TObject);
begin
if FromClient and (pck[1]=hstr('49')) then begin
pck:='';
buf:=hstr('56 00 00 00 00 00 00 00 00 00');
SendToServerEx(name);
end;
end;
procedure Free;
          begin
               enchant.Free;
           end;
begin
    
end.

Вот то что под процедурой не работает, но если убрать в процедуре эту строку:

if FromClient and (pck[1]=hstr('49')) then то он каждые 3 секунды нормально садиться и встаёт тоесть всё отлично с таймером.

Ну а если же всё что под процедурой засунуть в тело скрипта тоесть вот так:

Код:
const
name='brbr';
var
enchant:TTimer;
procedure Init;
          begin
               enchant:=TTimer.Create(nil);
               enchant.OnTimer:=@Onenchant;
               enchant.enabled:=true;
               enchant.interval:=3000;
          end;
procedure Onenchant(Sender: TObject);
begin
end;
procedure Free;
          begin
               enchant.Free;
           end;
begin
if FromClient and (pck[1]=hstr('49')) then begin
pck:='';
buf:=hstr('56 00 00 00 00 00 00 00 00 00');
SendToServerEx(name);
end;
end.
То работает отлично я пишу чтолибо в чат и он тутже садиться.

Ну и вот собствена проблема как сделать чтоб всё работало с условием тоесть с этой строкой - if FromClient and (pck[1]=hstr('49')) then
и именно в процедуре:

procedure Onenchant(Sender: TObject);
begin
end;

Вот).

Последний раз редактировалось QaK, 16.01.2010 в 19:52.
kpa9pt вне форума   Ответить с цитированием
Старый 16.01.2010, 16:45   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

timer.enabled := true/false

Добавлено через 2 минуты
delphi Код:
var   SitStand:TTimer; procedure Init; begin   useforconnectname := 'brbr';   SitStand:=TTimer.Create(nil);   SitStand.OnTimer:=@OnSitStand;   SitStand.enabled:=false;   SitStand.interval:=3000; end; procedure OnSitStand(Sender: TObject); begin   buf:=hstr('56 00 00 00 00 00 00 00 00 00');   SendToServer; end; procedure Free; begin   SitStand.Free; end; begin   if FromClient then   case pck[1] of     #$49:       begin         SitStand.enabled := not SitStand.enabled;         pck:='';       end;   end; end.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 16.01.2010 в 16:49. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 3 спасибками от:
Старый 16.01.2010, 17:19   #5
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

О спасиб огромное я позволил себе его немного добавить потому что мне надо было выполнить только единожды и написал так:

var
SitStand:TTimer;

procedure Init;
begin
useforconnectname := 'brbr';
SitStand:=TTimer.Create(nil);
SitStand.OnTimer:=@OnSitStand;
SitStand.enabled:=false;
SitStand.interval:=3000;
end;

procedure OnSitStand(Sender: TObject);
begin
buf:=hstr('56 00 00 00 00 00 00 00 00 00');
SendToServer;
SitStand.enabled:=false;
end;

procedure Free;
begin
SitStand.Free;
end;

begin
if FromClient then
case pck[1] of
#$49:
begin
SitStand.enabled := not SitStand.enabled;
pck:='';
end;
end;
end.
kpa9pt вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:13.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!