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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 08.06.2011, 01:13   #1
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
По умолчанию Надеюсь на помощь

Приветствую, в общем в игре есть серии ударов, то есть если один скилл кастуешь, после него можно кастовать другим из этой серии...
Я решил сделать, чтоб самому не жать на серию, так, чтоб при посылке скила из первой серии, сразу посылался скилл из второй серии ударов!
Но у меня появилась проблема, вот допустим 1 скил на разных мобах:
delphi Код:
('CF 57 6C 50 05 09 00 51 B8 1E 00 9B 02 05 E9 00 00') ('CF 57 6C 50 05 09 00 CE 93 1E 00 9B 02 05 E9 00 00')
первые 9 пар байтов - это ID скилла, после него идет ID моба, там еще что-то в пакете после ID моба, я не разобрался, но в принципе оно не нужно
Если послать только ID скилла, то на любом мобе он сработает нормально.
Вот я не знаю как при посылке скилла на разных мобах, объяснить скрипту, чтоб он ловил только ID скилла, ну а потом посылал бы ID другого скила, как послать я разберусь!
Подскажите какой командой ловить ID скилла, то есть первые 9 пар байтов

Добавлено через 26 минут
вот я сам попробовал:

'delphi' Код:
begin     if FromClient and (pck[1]=#$CF) and (ReadH(4)=1360) then begin     buf:=HStr('CF 57 6C 61 06 01 00');     SendToServer; end; end.

Вроде работает, может его можно чем то дополнить, или так оставить?

Добавлено через 18 минут
у меня почему-то 2й пакеот отправляется быстрей чем первый, как сделать, чтоб поочереди они шли?

Добавлено через 39 минут
в принципе, после того как идет чтение 2х байтов скила, можно послать этот же скил, затем тот, который дальше по серии, это будет правильно или можно проще сделать?

Вот скрипт:

'delphi' Код:
begin     if FromClient and (pck[1]=#$CF) and (ReadH(4)=1360) then begin     buf:=HStr('CF 57 6C 50 05 09 00');     SendToServer;     buf:=HStr('CF 57 6C 56 05 09 00');     SendToServer; end; end.

Добавлено через 1 час 6 минут
после каста скилла который читается с помощью Read, идет пакет на этот же скилл, это правильно? просто вроде на сервер посылается инфа о том, что я начал каст, а ним же опять посылается вроде этот пакет...я еще не проверял. Но если посылается 2 пакета на 1 скилл, можно сделать так, чтоб после Read, посылался 1й скилл, а потом уже 2й...а то палевно, что сначала у меня идет скилл второй по серии, а потом уже первый... и не хочется, чтоб на 1 скилл посылалось 2 пакета

Последний раз редактировалось Deffol, 08.06.2011 в 01:13. Причина: Добавлено сообщение
Deffol вне форума   Ответить с цитированием
Старый 08.06.2011, 02:22   #2
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

посылка 2-3-10 пакетов по идее не страшна, так как сервер должен думать, что ты зажал кнопку скила с панели и удерживаешь её.

я правда не совсем понял что именно ты спрашиваешь
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 08.06.2011, 02:45   #3
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
По умолчанию

ну во первых, хочу спросить, верный ли скрипт...
и можно ли, чтоб после чтения первого скилла, он сначала послался, а потом бы уже посылался мой второй пакет?
Deffol вне форума   Ответить с цитированием
Старый 08.06.2011, 02:48   #4
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Что бы отправить сначала отловленный пакет, а затем свой просто сделай так:
...
buf := pck;
SendToServer;

buf := //что-то чем ты его заполняешь
SendToServer;
...
Kilatif вне форума   Ответить с цитированием
За это сообщение Kilatif нажился 2 спасибками от:
Старый 08.06.2011, 04:56   #5
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
По умолчанию

о спасибо))) блин, до самого скрипта додумался, а до этого нет!!
Deffol вне форума   Ответить с цитированием
Старый 16.06.2011, 22:02   #6
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
По умолчанию

привет всем еще раз, сегодня решил усовершенствовать свой скрипт.
в общем поиграл я так и решил, что палевно...по крайней мере палевно по логам, то есть видно в них время в которое приходил удар, а так как на сервер идет инфа так быстро как позволит комп, то в логах показывает что удары летят вплоть ( в плоть ) в одну милисикунду почти не суть..
Решил я сделать таймер, я пока его не сделал, но я осилю)) но вот я могу делать таймер только на одну серию скилов, а у меня скилов много!
можно ли в одном скрипте реализовать несколько серий ударов, которые вызываются разными пакетами?
например 3 пакета в каждой серии, мне надо чтоб таймер включался на каждую серию именно по конкретному пакету, чтоб не все вместе юзались возможно так??

Добавлено через 27 минут
вот наглядно таймер со скилами
'delphi' Код:
const name='Deffol'; var     Timer:TTimer;     TimerMyPck:byte; procedure Init; begin     TimerMyPck:=1;     Timer:=TTimer.Create(nil);     Timer.OnTimer:=@OnTimer;     Timer.enabled:=false;     Timer.interval:=1; end; procedure Free; begin     Timer.free; end; procedure OnTimer(Sender: TObject); begin case TimerMyPck of     1:     begin         buf:=HStr('');     //первый скил в серии         SendToServer;         Inc(TimerMyPck);     end;     2:     begin         buf:=Hstr('');    //второй         SendToServer;              Inc(TimerMyPck);     end;     3:     begin         buf:=HStr('');      //третий         SendToServer;         Timer.interval:=1;   //не придумал еще время     endend; end; begin //первый скил в серии     if FromClient and (pck[1]=#$CF) and (ReadH(4)=123) and (ConnectName=name) then         Timer.enabled:=true;         Timer.enabled:=false; end.
ну так вот такие таймеры например мне на 3 скила, всего 3 таймера, а я хочу совместить их, чтоб места не занимали, а то у мну этих скриптов...я уже в них запутался

Добавлено через 6 минут
сорь забыл в процедуре таймера Ex(name) в посылку добавить, ну это не суть

Последний раз редактировалось Deffol, 16.06.2011 в 22:02. Причина: Добавлено сообщение
Deffol вне форума   Ответить с цитированием
Старый 17.06.2011, 16:21   #7
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Deffol Посмотреть сообщение
например 3 пакета в каждой серии, мне надо чтоб таймер включался на каждую серию именно по конкретному пакету, чтоб не все вместе юзались возможно так??
Каждую серию в отдельный таймер засунь. И проверки сделай чтобы одновременно не запускались.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 17.06.2011, 17:41   #8
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
По умолчанию

на счет отдельного таймера я осилю, не смотрите что скрипт кривой, я для наглядности писал
а как сделать проверку?
Deffol вне форума   Ответить с цитированием
Старый 17.06.2011, 23:51   #9
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

эм... я бы наверное сделал фиксацию времени использования последнего скила, потом при срабатывании таймера сравнение текущего времени с тем, которое время срабатывания. и если разница получится меньше 2 секунд к примеру, то чтобы скилы не стартанули.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 20.06.2011, 18:46   #10
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
Вопрос

привет все еще раз!
помогите со скриптом. в общем у меня таймер, мне надо, чтоб когда приходил пакет типа #$2E активировался таймер и главное, чтоб с этого пакета как то взять 4 байта в середине, и засунуло их в отправку пакета уже в таймере который
вот например пакет:
2E 54 CD 85 7B BD 44 CD D4 EF 44 27 B1 78 43 B5 D0 18 00 00 00 00 00 37 1E 06 00 01 00 2F A2 B6 0A 00 00 00 00 00 00 00 64
Каждый раз он меняется, но это не важно, мне нужен ID таргета, который обозначен красным и вставить этот ИД вот сюда:
B5 57 72 xx xx xx xx
в таймере я разберусь, помогите с тем, как реализовать эту вставку ID таргета
Deffol вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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