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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 17.02.2011, 20:49   #1
Новичок
 
Регистрация: 17.02.2011
Сообщений: 8
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
vex2865 пока неопределено
По умолчанию

что может быть не так со скриптом
Код:
const
name = 'IhelpYou';
interval = 100; //в мс
var
TimerEnchant:TTimer;



procedure Init;
begin
TimerEnchant:=TTimer.Create(nil);
TimerEnchant.OnTimer:=@enchant;
TimerEnchant.enabled:=false;
TimerEnchant.interval:=interval;
end;


procedure Free;
begin
TimerEnchant.free;
end;

procedure enchant;
begin
SendToServerEx(name);
end;

begin
if FromClient and (pck[1]=#$23) and (ConnectName=name) then
begin
buf:=pck;
TimerEnchant.enabled:=true;
end;

begin
if FromServer and (pck[1]=#$EA) and (ConnectName=name) then
begin
TimerEnchant.enabled:=false;
end;
end;
end.
когда юзаю скил сумона приходит пакет 23, но он не повторяется, вместо этого отправляет пакет 00 и дисконектит

подскажите в чем может быть ошибка
vex2865 вне форума   Ответить с цитированием
Старый 17.02.2011, 21:08   #2
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

создай переменную для пакета, записывай его туда и в таймере равняй buf на него и отсылай
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился 2 спасибками от:
Старый 17.02.2011, 21:11   #3
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Ошибка в том, что в процедуру еnchant не передается значение переменной buf. Есть 2 варианта:
1) придумал supernewbie: ввести дополнительную глобальную переменную и использовать ее для передачи значения.
2) использовать ссылку на объект вызывающий процедуру Sender: TObject
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
За это сообщение J-Fobos нажился спасибкой от:
Старый 17.02.2011, 21:34   #4
Новичок
 
Регистрация: 17.02.2011
Сообщений: 8
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
vex2865 пока неопределено
По умолчанию

Цитата:
Сообщение от J-Fobos Посмотреть сообщение
Ошибка в том, что в процедуру еnchant не передается значение переменной buf. Есть 2 варианта:
1) придумал supernewbie: ввести дополнительную глобальную переменную и использовать ее для передачи значения.
2) использовать ссылку на объект вызывающий процедуру Sender: TObject
даже если так
Код:
procedure enchant(Sender: TObject);
begin
SendToServerEx(name);
end;
всё равно дисконектит((

//J-Fobos: procedure enchant(Sender: TObject) и делает такая конструкция?

Последний раз редактировалось J-Fobos, 17.02.2011 в 22:15.
vex2865 вне форума   Ответить с цитированием
Старый 17.02.2011, 23:01   #5
Новичок
 
Регистрация: 17.02.2011
Сообщений: 8
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
vex2865 пока неопределено
По умолчанию

Цитата:
Сообщение от vex2865 Посмотреть сообщение
даже если так
Код:
procedure enchant(Sender: TObject);
begin
SendToServerEx(name);
end;
всё равно дисконектит((

//J-Fobos: procedure enchant(Sender: TObject) и делает такая конструкция?
подскажите че мне еще исправить чтоб не дисконектило.
может проблема в (ConnectName=name) ?
vex2865 вне форума   Ответить с цитированием
Старый 17.02.2011, 21:49   #6
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

мой спосаб 100500 робит
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 17.02.2011, 23:23   #7
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

var
s:string;

pck:=s;

s:=buf;

догадайся что куда
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 17.02.2011, 23:44   #8
Новичок
 
Регистрация: 17.02.2011
Сообщений: 8
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
vex2865 пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
var
s:string;

pck:=s;

s:=buf;

догадайся что куда
получается так? если так, то все равно что-то не так, всё равно дисконект((

Код:
const
name = 'IhelpYou';
interval = 10; //в мс
var
TimerEnchant:TTimer;
s:string;


procedure Init;
begin
pck:=s;
TimerEnchant:=TTimer.Create(nil);
TimerEnchant.OnTimer:=@enchant;
TimerEnchant.enabled:=false;
TimerEnchant.interval:=interval;
end;


procedure Free;
begin
TimerEnchant.free;
end;

procedure enchant;
begin
s:=buf;
SendToServerEx(name);
end;

begin
if FromClient and (pck[1]=#$23) and (ConnectName=name) then
begin
buf:=pck;
TimerEnchant.enabled:=true;
end;

begin
if FromServer and (pck[1]=#$EA) and (ConnectName=name) then
begin
TimerEnchant.enabled:=false;
end;
end;
end.
vex2865 вне форума   Ответить с цитированием
Старый 17.02.2011, 23:47   #9
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

*ля!

buf:=pck; замени на s:=pck; епт
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 18.02.2011, 00:12   #10
Новичок
 
Регистрация: 17.02.2011
Сообщений: 8
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
vex2865 пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
*ля!

buf:=pck; замени на s:=pck; епт
сделал всё вроде правильно
Код:
const
name = 'имя чара';
interval = 100; //в мс
var
TimerEnchant:TTimer;
s:string;


procedure Init;
begin
pck:=s;
TimerEnchant:=TTimer.Create(nil);
TimerEnchant.OnTimer:=@enchant;
TimerEnchant.enabled:=false;
TimerEnchant.interval:=interval;
end;


procedure Free;
begin
TimerEnchant.free;
end;

procedure enchant;
begin
s:=buf;
SendToServerEx(name);
end;

begin
if FromClient and (pck[1]=#$23) and (ConnectName=name) then
begin
s:=pck;
TimerEnchant.enabled:=true;
end;

begin
if FromServer and (pck[1]=#$EA) and (ConnectName=name) then
begin
TimerEnchant.enabled:=false;
end;
end;
end.
но дисконект после того как на вкладке "выполнить" (в главном окне, там где список пакетов и оправка пакетов) запускаю на выполнение следующий скрипт и юзаю пакет 23:

begin
SetName('имя чара')
end.

подскажите, что тут не так?

Последний раз редактировалось vex2865, 18.02.2011 в 01:10.
vex2865 вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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