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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 19.07.2010, 22:25   #1
Новичок
 
Регистрация: 19.07.2010
Сообщений: 6
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Bacek пока неопределено
По умолчанию [Помогите!] С скриптом

Помогите сделать скрипт для l2phx

При нажатии соц действия
13 0D 00 00 00 00 00 00 00 00
должен включатся таймер с циклом (бесконечным)
Посылать 2 пакета с задержкой 10 мс
A7 3E 84 06 10 00 00 00 00
7C 33 00 52 4A 06 10
Потом через 6 сек
9C 53 4A 06 10 00 00 00 00
и снова в начало

Выключение цикла
13 0C 00 00 00 00 00 00 00 00

Вот есть набросок в 2 кнопки но я не знаю как вставить таймеры и проверки
Код:
begin
  if FromClient and (pck=HStr('13 0D 00 00 00 00 00 00 00 00')) then begin
    buf:=HStr('A7 3E 84 06 10 00 00 00 00');
    SendToServer;
  end;
    if FromClient and (pck=HStr('13 0D 00 00 00 00 00 00 00 00')) then begin
    buf:=HStr('7C 33 00 52 4A 06 10');
    SendToServer;
  end;
    if FromClient and (pck=HStr('13 0C 00 00 00 00 00 00 00 00')) then begin
    buf:=HStr('9C 53 4A 06 10 00 00 00 00');
    SendToServer;
  end;
end.
Bacek вне форума   Ответить с цитированием
Старый 20.07.2010, 01:49   #2
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

Мне чтото подобное нужно тоже:
Если персоонаж похлопает в ладоши то юзается пакет "а"
через секунду юзается пакет "б"
через секунду юзается пакет "в"

Добавлено через 1 час 1 минуту
begin
if (buf:=hstr('17 01 00 00 00'))then begin buf:=HStr('09');
SendToServer;
end.
Вот чтото подобное надо, но не получается почему то

Последний раз редактировалось dyh9l, 20.07.2010 в 01:49. Причина: Добавлено сообщение
dyh9l вне форума   Ответить с цитированием
Старый 20.07.2010, 02:04   #3
Местный
 
Регистрация: 05.11.2008
Сообщений: 168
Сказал Спасибо: 35
Имеет 139 спасибок в 66 сообщенях
Fer123 пока неопределено
По умолчанию

Оффтоп
Fer123 вне форума   Ответить с цитированием
За это сообщение Fer123 нажился спасибкой от:
Старый 20.07.2010, 12:03   #4
Новичок
 
Регистрация: 19.07.2010
Сообщений: 6
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Bacek пока неопределено
По умолчанию

Цитата:
Сообщение от Fer123 Посмотреть сообщение
Оффтоп
Не работает (

Код:
var
TimerCycle:integer;
timer:TTimer;

procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=10;
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
TimerCycle:=1; 
end;

procedure OnTimer(Sender: TObject);
begin 
case TimerCycle of
  1:begin   
  buf:=HStr('3E 3E 84 06 10 00 00 00 00');
  sendtoserver;
  Inc(TimerCycle);  
  end; 
  2:begin  
  buf:=HStr('BD 12 00 A1 C5 01 10');
  sendtoserver;
  Inc(TimerCycle);
  timer.interval:=6000;      
  end;
  3:begin  
  buf:=HStr('86 A0 C5 01 10 00 00 00 00');
  sendtoserver;    
  TimerCycle:=1;
  timer.interval:=10;    
  end;      
end;
end;

procedure Free; 
begin
timer.free;
end;

begin
    if FromClient and (pck=HStr('13 0D 00 00 00 00 00 00 00 00')) then timer.enabled:=true; 
    if FromClient and (pck=HStr('13 0C 00 00 00 00 00 00 00 00')) then timer.enabled:=false; 
end.
Таймер не включается (
if FromClient and (pck=HStr('13 0D 00 00 00 00 00 00 00 00')) then
срабатывает но дальше 0 эмоций
Bacek вне форума   Ответить с цитированием
Старый 20.07.2010, 12:12   #5
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

useforconnectname := 'имя чара';
в инит вставь.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 20.07.2010, 12:21   #6
Новичок
 
Регистрация: 19.07.2010
Сообщений: 6
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Bacek пока неопределено
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
useforconnectname := 'имя чара';
в инит вставь.
Проблема в том что стоит шифрация первых 2 байтов и ник отображается криво
Bacek вне форума   Ответить с цитированием
Старый 20.07.2010, 12:34   #7
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

delphi Код:
begin     useforconnectid := ConnectID;     if FromClient and (pck=HStr('13 0D 00 00 00 00 00 00 00 00')) then timer.enabled:=true; ......
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от:
Старый 20.07.2010, 13:15   #8
Новичок
 
Регистрация: 19.07.2010
Сообщений: 6
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Bacek пока неопределено
По умолчанию

Всем спасибо за помощь все работает
Вот скрипт если каму то понадобится

Код:
var
TimerCycle:integer;
timer:TTimer;

procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=10;
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
TimerCycle:=1; 
end;

procedure OnTimer(Sender: TObject);
begin 
case TimerCycle of
  1:begin   
  buf:=HStr('A6 3E 84 06 10 00 00 00 00'); //1 пакет
  sendtoserver;
  Inc(TimerCycle);
  timer.interval:=200;  
  end; 
  2:begin  
  buf:=HStr('7B 36 00 A1 C5 01 10');  //2 пакет
  sendtoserver;
  Inc(TimerCycle);
  timer.interval:=2500;      
  end;
  3:begin  
  buf:=HStr('93 A0 C5 01 10 00 00 00 00');  //3 пакет
  sendtoserver;    
  TimerCycle:=1;
  timer.interval:=600;    
  end;      
end;
end;

procedure Free; 
begin
timer.free;
end;


begin
    useforconnectid := ConnectID;
    if FromClient and (pck=HStr('5D 0D 00 00 00 00 00 00 00 00')) then timer.enabled:=true;
    if FromClient and (pck=HStr('5D 0C 00 00 00 00 00 00 00 00')) then timer.enabled:=false; 
end.
Bacek вне форума   Ответить с цитированием
Старый 20.07.2010, 13:21   #9
Местный
 
Регистрация: 05.11.2008
Сообщений: 168
Сказал Спасибо: 35
Имеет 139 спасибок в 66 сообщенях
Fer123 пока неопределено
По умолчанию

useforconnectid := ConnectID;
это надо было в Init пихнуть, например useforconnectid := 1; в зависимости от соединения которому нужно отправлять.
А так получается, если запущено более 1 соединения то useforconnectid постоянно будет меняться, и не известно кому отправятся эти пакеты.
Fer123 вне форума   Ответить с цитированием
Старый 20.07.2010, 16:54   #10
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
useforconnectid := 1;
connectid равен номеру сокета инициализировавшего соединение с сервером. а не какомуто константному порядковому номеру.

Добавлено через 1 минуту
Цитата:
если запущено более 1 соединения то useforconnectid постоянно будет меняться
не будет. единственное в чем ты технически прав (хоть об этом и не писал) - довольно тяжело будет запустить скрипт для 2х соединений.
новый активированный скрипт будет привязываться к тому соединению которое первым пришлет пакет на обработку.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 20.07.2010 в 16:57. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от:
Ответ

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



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

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


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

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

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