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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 17.03.2009, 16:26   #1
Новичок
 
Регистрация: 19.02.2009
Сообщений: 16
Сказал Спасибо: 3
Имеет 1 спасибку в 1 сообщении
Arhangel пока неопределено
По умолчанию

И еще один такой вопрос,не пойму почему в этом скрипте:

delphi Код:
const MainChar = 'ApxaHrel';          BD = 'BD';   var Timer1:TTimer;       actions:array[1..6] of string;       nm:integer; procedure Init; begin nm:=1; Timer1:=TTimer.Create(nil); Timer1.OnTimer:=@OnTimer1; Timer1.enabled:=false; Timer1.interval:=1000; //задержка 1 сек; actions[1]:='2A 01 00 00 00'; actions[2]:='2F 13 01 00 00 00 00 00 00 00 '; actions[3]:='2F 12 01 00 00 00 00 00 00 00 '; actions[4]:='2F 0F 01 00 00 00 00 00 00 00 '; actions[5]:='2B'; actions[6]:='04 B2 F9 20 48 24 CB 00 00 45 2B FF FF A6 F3 FF FF 00'; end; procedure [b]Timer1[/b].OnTimer(Sender:Tobject); begin if nm>6 then Timer1.Enabled:=false          else begin buff:=Hstr(actions[nm]);                          SendToServerEx(BD);                          inc(nm);                 end; end; procedure Free; begin Timer1.Free; end; begin if Pck='' then exit; if FromClient and (ConnectName=MainChar)  //посылаю с 1-го окна пакет "SocialActionYes"   and (pck=HStr('1B 06 00 00 00')) then begin     pck:='';     buf:=HStr(actions[nm]);                    SendToServerEx(BD);     Timer1.Enabled:=true; end; end.


Ругается на то,что выделенно?

Последний раз редактировалось QaK, 17.03.2009 в 16:44.
Arhangel вне форума   Ответить с цитированием
Старый 17.03.2009, 16:30   #2
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от Arhangel Посмотреть сообщение
procedure Timer1.OnTimer1(Sender:Tobject);
должно быть
QaK вне форума   Ответить с цитированием
Старый 17.03.2009, 16:33   #3
Новичок
 
Регистрация: 19.02.2009
Сообщений: 16
Сказал Спасибо: 3
Имеет 1 спасибку в 1 сообщении
Arhangel пока неопределено
По умолчанию

Уже пробывал,никак=)
Arhangel вне форума   Ответить с цитированием
Старый 17.03.2009, 17:01   #4
Новичок
 
Регистрация: 19.02.2009
Сообщений: 16
Сказал Спасибо: 3
Имеет 1 спасибку в 1 сообщении
Arhangel пока неопределено
По умолчанию

Да,видимо Timer1.Ontimer надо использовать,но так ругается,а при OnTimer без Timer1 пишет Event handler must be a procedure.
Arhangel вне форума   Ответить с цитированием
Старый 17.03.2009, 17:02   #5
Местный
 
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
Amorality
По умолчанию

Цитата:
Сообщение от Arhangel Посмотреть сообщение
Да,видимо Timer1.Ontimer надо использовать,т.к. при OnTimer без Timer1 пишет Event handler must be a procedure.
Попробуй изменить @OnTimer1 на @OnTimer .. Хотя не уверена
Amorality вне форума   Ответить с цитированием
Старый 17.03.2009, 17:06   #6
Новичок
 
Регистрация: 19.02.2009
Сообщений: 16
Сказал Спасибо: 3
Имеет 1 спасибку в 1 сообщении
Arhangel пока неопределено
По умолчанию

Цитата:
Сообщение от Amorality Посмотреть сообщение
Попробуй изменить @OnTimer1 на @OnTimer .. Хотя не уверена
Да что ты будешь делать=) Всеравно ругается, ";" требует=)

Цитата:
Сообщение от QaK Посмотреть сообщение
Timer1:=TTimer.Create(nil);
Timer1.OnTimer:=@OnTimer1;
Timer1.enabled:=false;
Timer1.interval:=1000; //задержка 1 сек;

жирным выделено то, как должна называтья процедурка.

Можно хоть Scukonax назвать.
Попробывал просто тупо изменить имя:
Код:
Timer1:=TTimer.Create(nil);
Timer1.OnTimer:=@proba;
Timer1.enabled:=false;
Timer1.interval:=1000; //задержка 1 сек;

actions[1]:='43 01 00 00 00';
actions[2]:='39 13 01 00 00 00 00 00 00 00 ';
actions[3]:='39 12 01 00 00 00 00 00 00 00 ';
actions[4]:='39 0F 01 00 00 00 00 00 00 00 ';
actions[5]:='44';
actions[6]:='1F 55 EF 30 48 AF 3D 02 00 75 64 00 00 24 F8 FF FF 00';
end;

procedure proba(Sender:Tobject);
begin if nm>6 then Timer1.Enabled:=false
else begin buf:=Hstr(actions[nm]);
SendToServerEx(BD);
inc(nm);
Ошибки исчезли,но про работе скрипта,когда в игре нажимаешь соц.действ. вылетает ошибка Access violation at address 0056EE30 in module 'l2pbx.exe'. Read of address 00000000.

Последний раз редактировалось Arhangel, 17.03.2009 в 17:12.
Arhangel вне форума   Ответить с цитированием
Старый 17.03.2009, 17:24   #7
Местный
 
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
Amorality
По умолчанию

Arhangel,
buff может опискА? переменная buf называется

Добавлено через 1 минуту
А, это я смотрела на старый вариант.. тут все ок

Добавлено через 4 минуты
Ты в переменную BD ник бд верно занес?

Последний раз редактировалось Amorality, 17.03.2009 в 17:27. Причина: Добавлено сообщение
Amorality вне форума   Ответить с цитированием
Старый 17.03.2009, 17:27   #8
Новичок
 
Регистрация: 19.02.2009
Сообщений: 16
Сказал Спасибо: 3
Имеет 1 спасибку в 1 сообщении
Arhangel пока неопределено
По умолчанию

Цитата:
Сообщение от Amorality Посмотреть сообщение
Arhangel,
buff может опискА? переменная buf называется

Добавлено через 1 минуту
А, это я смотрела на старый вариант.. тут все ок

Добавлено через 4 минуты
Ты в переменную BD ник бд верно занес?

И
12 Код:
begin if nm>6 then Timer1.Enabled:=false
Может лучше begin if nm>=6 then Timer1.Enabled:=false
Ммм,исправил скрипт,что бы пати брал без соц действия,все заработало=) Теперь проблема в том,что из пати выходит слишком быстро и делает только 2 данса=)
Arhangel вне форума   Ответить с цитированием
Старый 17.03.2009, 17:04   #9
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Timer1:=TTimer.Create(nil);
Timer1.OnTimer:=@OnTimer1;
Timer1.enabled:=false;
Timer1.interval:=1000; //задержка 1 сек;

жирным выделено то, как должна называтья процедурка.

Можно хоть Scukonax назвать.
QaK вне форума   Ответить с цитированием
Старый 17.03.2009, 20:57   #10
Новичок
 
Регистрация: 19.02.2009
Сообщений: 16
Сказал Спасибо: 3
Имеет 1 спасибку в 1 сообщении
Arhangel пока неопределено
По умолчанию

Весь день сегогодня ковыряюсь с этими скриптами...=)
Есть два рабочих скрипта:
1-ый на БД
Код:
const MainChar = 'ApxaHrel';
BD = 'Dancerr';

var Timer2:TTimer;
actions2:array[1..6] of string;
nmm:integer;

procedure Init;
begin
nmm:=1;

Timer2:=TTimer.Create(nil);
Timer2.OnTimer:=@proba;
Timer2.enabled:=false;
Timer2.interval:=2300; //задержка 1 сек;

actions2[1]:='56 00 00 00 00 00 00 00 00 00 ';
actions2[2]:='39 13 01 00 00 00 00 00 00 00 ';
actions2[3]:='39 12 01 00 00 00 00 00 00 00 ';
actions2[4]:='39 0F 01 00 00 00 00 00 00 00 ';
actions2[5]:='44';
actions2[6]:='56 00 00 00 00 00 00 00 00 00 ';
end;

procedure proba(Sender:Tobject);
begin if nmm>6 then Timer2.Enabled:=false;
if nmm>6 then nmm:=1
else begin buf:=Hstr(actions2[nmm]);
SendToServerEx(BD);
nmm:=nmm+1;
end;
end;

procedure Free;
begin 
Timer2.Free;
end;

begin

if FromServer and (pck[1]=#$39) and (ConnectName=BD)  then begin//посылаю с 1-го окна пакет "SocialActionYes"
buf:=hstr('43 01 00 00 00');        //Создаем пакет "принять пати"
SendToServerEx(BD);
pck:='';
Timer2.Enabled:=true;
end;
end.
2-ой на СВСа:
Код:
const MainChar = 'ApxaHrel';
SWS = 'KaHapeuka';

var Timer1:TTimer;
actions:array[1..6] of string;
nm:integer;

procedure Init;
begin
nm:=1;

Timer1:=TTimer.Create(nil);
Timer1.OnTimer:=@proba;
Timer1.enabled:=false;
Timer1.interval:=2000; //задержка 1 сек;

actions[1]:='56 00 00 00 00 00 00 00 00 00  ';
actions[2]:='39 0C 01 00 00 00 00 00 00 00  ';
actions[3]:='39 0D 01 00 00 00 00 00 00 00  ';
actions[4]:='39 0B 01 00 00 00 00 00 00 00  ';
actions[5]:='44';
actions[6]:='56 00 00 00 00 00 00 00 00 00  ';
end;

procedure proba(Sender:Tobject);
begin if nm>6 then Timer1.enabled:=false;
if nm>6 then nm:=1
else begin buf:=Hstr(actions[nm]);
SendToServerEx(SWS);
nm:=nm+1;
end;
end;

procedure Free;
begin 
Timer1.Free;
end;

begin

if FromServer and (pck[1]=#$39) and (ConnectName=SWS)  then begin//посылаю с 1-го окна пакет "SocialActionYes"
buf:=hstr('43 01 00 00 00');        //Создаем пакет "принять пати"
SendToServerEx(SWS);
pck:='';
Timer1.Enabled:=true;
end;
pck:='';
end.
По отдельность работают без проблем...но вот если активировать их 2 одновременно,то один скрипт работает нормально,а второй выдает ошибку Access violation at address 00550C21 in module 'l2pbx.exe'. Read of address 00000000.

Последний раз редактировалось Arhangel, 17.03.2009 в 23:07.
Arhangel вне форума   Ответить с цитированием
За это сообщение Arhangel нажился спасибкой от:
Ответ

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



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

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


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

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

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