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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 07.12.2011, 03:04   #1
Новичок
 
Регистрация: 07.12.2011
Сообщений: 7
Сказал Спасибо: 2
Имеет 0 спасибок в 0 сообщенях
Vetal пока неопределено
По умолчанию Скрипт проверки отката скила

Добрый день уважаемые скриптописатели, помогите советом, нужно в скрипте сделать проверку отката скила, ну например что бы писало в системный чат скил откатился, заране спс!
Vetal вне форума   Ответить с цитированием
Старый 07.12.2011, 03:47   #2
Новичок
 
Регистрация: 12.10.2011
Сообщений: 10
Сказал Спасибо: 4
Имеет 1 спасибку в 1 сообщении
Samor888 пока неопределено
По умолчанию

Думаю нужно реализовать ето через таймер. В нём выставить время отката. И запускать таймер после того как скилл юзнется.

Добавлено через 17 минут
ну вот как то так
const
d1='сюда скил который юзнули'; //пакет приходящий с серва
d2='пакет посылаемый после отката скила'; //
T1=5000; /// сюда время отката скила в милисекундах 5000 = 5 секундам
name='сюда свой ник';
var
Timer1 : TTimer;
procedure Init;
begin
Timer1 := TTimer.Create(nil);
Timer1.Interval := T1; // задержка таймера 5к мс(5секунд)
Timer1.Enabled := False;
Timer1.OnTimer := @OnTimer;
end;

procedure Free;
begin
Timer1.Free;
end;

procedure OnTimer;
begin
buf:=hstr(d2);
///SendToServerEx(name);/// отправляем на сервер пакет
SendToClientEx(name);/// отправляем на клиент пакет
Timer1.Enabled := False; ///выключаем таймер
end;

begin
if FromServer and (ConnectName=name) and (pck=HStr(d1)) then Timer1.Enabled := True;
end.

Последний раз редактировалось Samor888, 07.12.2011 в 03:47. Причина: Добавлено сообщение
Samor888 вне форума   Ответить с цитированием
За это сообщение Samor888 нажился спасибкой от:
Старый 07.12.2011, 10:05   #3
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

Цитата:
Сообщение от Vetal Посмотреть сообщение
Добрый день уважаемые скриптописатели, помогите советом, нужно в скрипте сделать проверку отката скила, ну например что бы писало в системный чат скил откатился, заране спс!
брать откат из пакета от сервера юза скила, дальше пускать таймер по этому интервалу и делать проверку таймер тру или фолс, думаю так
__________________
dyh9l вне форума   Ответить с цитированием
За это сообщение dyh9l нажился спасибкой от:
Старый 08.12.2011, 16:50   #4
Новичок
 
Регистрация: 07.12.2011
Сообщений: 7
Сказал Спасибо: 2
Имеет 0 спасибок в 0 сообщенях
Vetal пока неопределено
По умолчанию

Спасибо большое всем кто ответил,особенно Samor888, воспользуюсь обязательно.Хотелось бы поподробней на счет как вытащить время отката из пакета. При использовании скила в l2phx у меня идут следующие пакеты:
От клиента: RequestMagicSkillUse(2F 70 00 00 00 00 00 00 00 00)
следом пакеты от серва:
1. SetupGauge(6D 00 00 00 00 87 03 00 00 87 03 00 00)
2. UserInfo(инфа о чаре я так понимаю, большой пакет не буду тут его указывать)
3. AbnormalStatusUpdate(7F 00 00)
4. UserInfo()
5. AbnormalStatusUpdate(7F 01 00 70 00 00 00 04 00 AF 04 00 00)
вот подскажите из какого пакета можно вытащить откат скила, заранее спасибо, сильно не ругайтесь я делаю первые шаги в написании скриптов

Добавлено через 5 часов 43 минуты
Вобщем вроде сообразил как вытянуть откат скила, там от сервера приходит пакет MagicSkillUse в котором есть параметр reuseDelay, вообщем считую его но все равно скрипт не работает, подскажите в чем ошибка,возможно что то неправильно с таймером сделал, заранее благодарен, вот сам скрипт который я своял):


delphi Код:
var i:integer;Timer1 : TTimer; procedure Init; //Вызывается при включении скрипта begin Timer1 := TTimer.Create(nil); //Timer1.Interval :=5000; Timer1.Enabled := False; Timer1.OnTimer := @OnTimer; end; procedure SendMsgs(msg:string); begin   buf:=#$4A;   WriteD(0);   WriteD(10);   WriteS('');   WriteS(msg);   SendToClient; end; procedure Free; //Вызывается при выключении скрипта begin Timer1.Free; end; procedure OnTimer; begin sendMSGs('Откатился'); Timer1.Enabled := false; end; //основная часть скрипта //вызывается при приходе каждого пакета если скрипт включен begin if FromServer and  (pck[1]=#$48) then  begin       i:=Readd(22);  Timer1.Interval:=i; Timer1.Enabled:= True;  end; end.
В скрипте таймер просто не срабатывает, то есть не выполняется procedure OnTimer;, в чем ошибка, кто может помочь?

Добавлено через 12 часов 32 минуты
Вроде разобрался, теперь все работает,еще вопросик появился, а можно как то это сообщение "Откатился" вывести не в системный чат, а предположим в какую то часть окна ла2?

Последний раз редактировалось Breadfan, 11.12.2011 в 08:07. Причина: Добавлено сообщение
Vetal вне форума   Ответить с цитированием
Старый 08.12.2011, 19:54   #5
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

пакет say2 отправлять на клиент
__________________
dyh9l вне форума   Ответить с цитированием
Старый 08.12.2011, 20:04   #6
Новичок
 
Регистрация: 07.12.2011
Сообщений: 7
Сказал Спасибо: 2
Имеет 0 спасибок в 0 сообщенях
Vetal пока неопределено
По умолчанию

ну я так понимаю если отправить пакет sey2, то текс придет в чат, а мне нужно что бы он выводился, ну например в справа, это можно как нить реализовать?
Vetal вне форума   Ответить с цитированием
Старый 08.12.2011, 21:44   #7
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

нужны хроники примерно с6 и выше. если у тебя так - то там нужно будет чуток переделать файл системных сообщений. даже возможно добавив новое id с этим сообщением, в котором указать флаг появления сообщения в нужном поле клиента. там мысленно окно режь на 9 квадратов. один какой-то не доступен скраю. не помню правда с какого
а после слать этот id клиенту из л2пх. ничего сложного но повторюсь это если хроники подойдут. в с4 такое сделать нельзя будет. (подсказуваю - копай урон-патч.)

еще как 2 вариант посмотри каким образом выводятся географические названия областей. если клиентом автоматом - то ничего не поделаешь. если же там шлется какой-то пакет, то вот тебе и решение.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 08.12.2011, 21:59   #8
Новичок
 
Регистрация: 07.12.2011
Сообщений: 7
Сказал Спасибо: 2
Имеет 0 спасибок в 0 сообщенях
Vetal пока неопределено
По умолчанию

спасибо ща покапаюсь, идею понял

Добавлено через 8 минут
Насколько я понял инфа о сообщениях хранится в файле systemmsg-e.dat, подскажи как его можно прочитать и отредактировать?

Последний раз редактировалось Vetal, 08.12.2011 в 21:59. Причина: Добавлено сообщение
Vetal вне форума   Ответить с цитированием
Старый 08.12.2011, 23:27   #9
Местный
 
Аватар для Pinko
 
Регистрация: 31.05.2011
Сообщений: 130
Сказал Спасибо: 287
Имеет 23 спасибок в 22 сообщенях
Pinko пока неопределено
По умолчанию

Vetal,
помнится МKS
написал "скрипт для глухих" так он назвал
там вывод на экран сообщений.
а если поправить systemmsg-e.dat
то и без всего будут выводится сообщения из чата
__________________
Никого нельзя ничему научить,
но всему можно научиться

народная мудрость

"Если любишь в жизни риск - форматируй жесткий диск!"
Pinko вне форума   Ответить с цитированием
Старый 09.12.2011, 00:14   #10
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

редактирование попробуй http://files.mail.ru/4Q1G62 эта версия подошла к С6. может и выше подойдет. а так нужен будет L2 FileEdit для твоей версии хроник.

вот чего я давал подсказки, если все приходится делать самому?
PHP код:
35    1    Вы нанесли $s1 урона.    3    0    FF    0    FF            2    0    1    1    3    $s1    battle 
в конце $s1 это цифорка - количество урона, которая будет всплывать в центре экрана (аля ворлд оф варкрафт). 1 1 3 - какая-то из них содержит в себе номер ячейки - квадрата, в котором всплывет эта цифорка. какой-то из FF это повидимому цвет.
точно не скажу, писал сто лет назад. и проверить не получится, сервер тот здох давно ну капать в этом направлении.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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