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

L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Обсуждение багов Lineage ЗАПРЕЩЕНО!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 13.10.2014, 15:29   #1
Пользователь
 
Регистрация: 12.06.2011
Сообщений: 36
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Хламчег пока неопределено
По умолчанию Помогите отловить коннект

Добрый день! у меня такая проблема, в пакетнике соединения без имени только надпись [Proxy]#464 и число, коннект соединения. А я запускаю несколько скриптов, и надо отловить соединение и чтоб только ему слался готовый измененый пакет. В переменной ConnectName ничего нет, пробовал выводить её содержимое в сообщении от чара, пусто. В переменной ConnectID значение 464, но один неприятный момент алгоритм начинает выполняться независимо от того какое значение коннекта, хоть 0 ставь туда. И на форуме читал что этот ИД всегда меняется если у тебя несколько персов.
У кого есть какие предложения по решению этой проблемы, или есть какойнибудь скрипт который вернёт имя чара в соединениях пакетхака. Или есть какие нибудь предложения по этой проблеме. мне надо так. Заранее подготовленые скрипты с пакетами, точнее 2 скрипта. И 3 перса. От первого перса идет пакет Социал Акшион, и сразу два скрипта срабатывают на этот пакет и каждый шлет заранее готовый пакет на сервер. Делается это для дюпа, и надо добиться почти идеальной отправки двух пакетов одновременно, с точностью до мсек. Так как если слать одним скриптом сначала одному персу а потом другому то все равно один пакет раньше другого будет послан и дюп не прокатит Жду помощи от вас дорогие друзья

Добавлено через 1 час 29 минут
Добавлю что важно то как слать определенному окну пакет а не во все окна чтоб скрипт слал готовый пакет

Последний раз редактировалось Хламчег, 13.10.2014 в 15:29. Причина: Добавлено сообщение
Хламчег вне форума   Ответить с цитированием
Старый 13.10.2014, 23:08   #2
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
Радость

Цитата:
Сообщение от Хламчег Посмотреть сообщение
Добрый день! у меня такая проблема, в пакетнике соединения без имени только надпись [Proxy]#464 и число, коннект соединения. А я запускаю несколько скриптов, и надо отловить соединение и чтоб только ему слался готовый измененый пакет. В переменной ConnectName ничего нет, пробовал выводить её содержимое в сообщении от чара, пусто. В переменной ConnectID значение 464, но один неприятный момент алгоритм начинает выполняться независимо от того какое значение коннекта, хоть 0 ставь туда. И на форуме читал что этот ИД всегда меняется если у тебя несколько персов.
У кого есть какие предложения по решению этой проблемы, или есть какойнибудь скрипт который вернёт имя чара в соединениях пакетхака. Или есть какие нибудь предложения по этой проблеме. мне надо так. Заранее подготовленые скрипты с пакетами, точнее 2 скрипта. И 3 перса. От первого перса идет пакет Социал Акшион, и сразу два скрипта срабатывают на этот пакет и каждый шлет заранее готовый пакет на сервер. Делается это для дюпа, и надо добиться почти идеальной отправки двух пакетов одновременно, с точностью до мсек. Так как если слать одним скриптом сначала одному персу а потом другому то все равно один пакет раньше другого будет послан и дюп не прокатит Жду помощи от вас дорогие друзья

Добавлено через 1 час 29 минут
Добавлю что важно то как слать определенному окну пакет а не во все окна чтоб скрипт слал готовый пакет
Я могу ошибаться, но скрипты выполняються сверху вниз по списку и первый сработает сначала один и потом второй, разница во времени будет, одновременно ты отправить с точностью до мс не сможешь
Могу ошибаться конечно
kpa9pt вне форума   Ответить с цитированием
Старый 15.10.2014, 14:56   #3
Пользователь
 
Регистрация: 12.06.2011
Сообщений: 36
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Хламчег пока неопределено
По умолчанию

Цитата:
Сообщение от kpa9pt Посмотреть сообщение
Я могу ошибаться, но скрипты выполняються сверху вниз по списку и первый сработает сначала один и потом второй, разница во времени будет, одновременно ты отправить с точностью до мс не сможешь
Могу ошибаться конечно
Ну в случае когда отправлял из одного скрипта двум персам по очередности разница была 0.1 мсек. а когда из двух разных скриптов то около 0.008 мсек, что хватало для дюпа. Но проблема не в этом. Как мне слать пакеты в разные окна.
Если отправить просто SendtoServer то отправляется нормально , а вот SendtoServerEX с указанием имени соединения не работает потомучто вместо имени соединения как я уже сказал стоит [Proxy]#464 , есть зацепка это ConnectID но как отправлять использовав этот ConnectID в данном примере коннект ид 464. Отправлять так SendtoserverEx(464) не получается и так тоже SendtoserverEx([Proxy]#464). Ничего не выходит. Что делать????

Добавлено через 1 минуту
В случае когда не указывается имя соединения просто SendtoServer два скрипта шлют пакеты в каждое окно. А мне надо чтоб каждый скрипт знал своё окно.

Последний раз редактировалось Хламчег, 15.10.2014 в 14:56. Причина: Добавлено сообщение
Хламчег вне форума   Ответить с цитированием
Старый 15.10.2014, 18:15   #4
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Цитата:
Сообщение от Хламчег Посмотреть сообщение
Ну в случае когда отправлял из одного скрипта двум персам по очередности разница была 0.1 мсек. а когда из двух разных скриптов то около 0.008 мсек, что хватало для дюпа. Но проблема не в этом. Как мне слать пакеты в разные окна.
Если отправить просто SendtoServer то отправляется нормально , а вот SendtoServerEX с указанием имени соединения не работает потомучто вместо имени соединения как я уже сказал стоит [Proxy]#464 , есть зацепка это ConnectID но как отправлять использовав этот ConnectID в данном примере коннект ид 464. Отправлять так SendtoserverEx(464) не получается и так тоже SendtoserverEx([Proxy]#464). Ничего не выходит. Что делать????

Добавлено через 1 минуту
В случае когда не указывается имя соединения просто SendtoServer два скрипта шлют пакеты в каждое окно. А мне надо чтоб каждый скрипт знал своё окно.
http://l2ph.coderx.ru/arhive/l2ph_help/

function ConnectNameByID(id:integer):string
получает имя соединения по его идентификатору
kpa9pt вне форума   Ответить с цитированием
Старый 15.10.2014, 22:12   #5
Пользователь
 
Регистрация: 12.06.2011
Сообщений: 36
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Хламчег пока неопределено
По умолчанию

Покажи пожалуйста на небольшом примере как делать так чтобы скрипт работал только с соединением с ид 464 например. Как использовать эту функцию? и её надо вписывать в отрезке кода где выполняется кусок при включении скрипта? покажи на примере фрагментов где используется эта функция, и там где уже отсылаем готовый пакет на соединение. И еще я встречался с такой проблемой. к примеру

begin
if fromServer and ConnectId=464 and (Pck[1]=#$1B)
then

В этому случае независимо какой ConnectID условие выполняется и скрипт начинает своё дело. Это косяк пакетхака или чё я не пойму. еслиб это срабатывало то я бы сразу написал 2 скрипта и в каждый работал бы только с тем соединением которое указано в условии. тоесть условие выполнено ИД совпадает с тем что в скрипте и пошла работа скрипта и в соседние окна не шлёт пакеты, каждый со своим соединением пашет.

Последний раз редактировалось Хламчег, 15.10.2014 в 22:43.
Хламчег вне форума   Ответить с цитированием
Старый 15.10.2014, 22:55   #6
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Цитата:
Сообщение от Хламчег Посмотреть сообщение
Покажи пожалуйста на небольшом примере как делать так чтобы скрипт работал только с соединением с ид 464 например. Как использовать эту функцию? и её надо вписывать в отрезке кода где выполняется кусок при включении скрипта? покажи на примере фрагментов где используется эта функция, и там где уже отсылаем готовый пакет на соединение. И еще я встречался с такой проблемой. к примеру

begin
if fromServer and ConnectId=464 and (Pck[1]=#$1B)
then

В этому случае независимо какой ConnectID условие выполняется и скрипт начинает своё дело. Это косяк пакетхака или чё я не пойму. еслиб это срабатывало то я бы сразу написал 2 скрипта и в каждый работал бы только с тем соединением которое указано в условии. тоесть условие выполнено ИД совпадает с тем что в скрипте и пошла работа скрипта и в соседние окна не шлёт пакеты, каждый со своим соединением пашет.
Ну ты говоришь у тебя нету Connectname есть только ID=464 так вот и отправляй
PHP код:
SendToServerEx(ConnectNameByID(464)); 
kpa9pt вне форума   Ответить с цитированием
Старый 16.10.2014, 12:52   #7
Пользователь
 
Регистрация: 12.06.2011
Сообщений: 36
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Хламчег пока неопределено
По умолчанию

Щас попробую
Хламчег вне форума   Ответить с цитированием
Старый 17.10.2014, 22:09   #8
Пользователь
 
Регистрация: 12.06.2011
Сообщений: 36
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Хламчег пока неопределено
По умолчанию

Короче теперь такая борода выходит , на примере этого скрипта показываю
Код:
begin
if FromClient and (ConnectName=(ConnectNameByID(456))) and (pck[1]=#$56) then 
    begin
    pck:='';
    buf:=#$49;
    Writes('HELLO');
    Writed(0);
    SendtoserverEx(ConnectNameByID(456));
    end;
end.
В весиях пакетхака l2phx.3.5.33.166 и l2phx.3.5.34.176 скрипт шлёт в окно пакет независимо от того какое число указывать, хоть 456 хоть 1 хоть 0. Если в начале (ConnectName=(ConnectNameByID(456))) тут указывать любое число он ловит соединение и шлёт на него пакет. Если тут указывать SendtoserverEx(ConnectNameByID(456)); то же самое. Короче что хочешь пиши всё равно работает. Это что касается этих версий пакетхака.
Что касается версии l2phx.3.5.33.171. Тут вообще наоборот. Всё прекрасно и перехватывает строго нужный коннект и шлёт строго на него. если не тот коннект скрипт не отсылает пакет на него. Но вот самый большой косяк, if FromClient and (pck[1]=#$56) then сделал вот так, и никакой реакции, вообще не работает, этот пакетхак не рабочий. Никакой реакции на пакеты, вот такой простой пример

Код:
begin
if FromClient and (pck[1]=#$56) then 
    begin
    pck:='';
    buf:=#$49;
    Writes('HELLO');
    Writed(0);
    SendtoServer;
    end;
end.
FromServer Тоже не дает никакого эффекта.

Добавлено через 3 минуты
Я вспомнил что раньше уже встречался с этой проблемой ,
Хламчег, http://coderx.ru/showthread.php?t=8537 . Но всё равно интересно почему некорректно работают функции ConnectNameByID. И как это исправить.

Последний раз редактировалось Хламчег, 17.10.2014 в 22:10. Причина: Добавлено сообщение
Хламчег вне форума   Ответить с цитированием
Старый 18.10.2014, 06:33   #9
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Цитата:
Код:
begin
if FromClient and (pck[1]=#$56) then 
    begin
    pck:='';
    buf:=#$49;
    Writes('HELLO');
    Writed(0);
    SendtoServer;
    end;
end.
Не правда, такой код работает отдельно, видимо ты нагородил ерунды, и до него дело не доходит просто
kpa9pt вне форума   Ответить с цитированием
Старый 18.10.2014, 07:52   #10
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

вставлю свои нубские 5 копеек на случай если команды такой действительно нет в синтаксисе... сразу скажу не проверял, но в теории будет работать:
1. заходим в папку с ладвой, копируем л2.ехе два раза.
2. одну копию называем что-то типа L2.VASYA.EXE или VASYA.L2.EXE - я забыл в каком варианте ладва запускается, а в каком нет... кароче или тот или тот
3. вторую копию L2.FEDYA.EXE или FEDYA.L2.EXE
4. запускаем две копии л2пх.
5. в одной копии ставим галку работать как прокси сервер и указываем порт... эм... какой там порт? 7788?
6. в другой копии ставим галку работать как прокси сервер и порт скажем 7789
7. запускаем проксифиер и создаем там правила перехвата для ехе файла федя - адрес 127.0.0.1 порт 7788, для ехе файла васи - 127.0.0.1 и порт 7789
8. после запускаем одну копию ладвы и вторую и логинимся каждый на своего персонажа.

в теории каждый л2пх будет видеть только один коннект, а значит сендтусервер будет слать только тому, кому надо. останется решить вопрос с синхронизацией... эм... заводим третьего персонажа, с третьего ехе файла, на которого нет правил в проксифиере и следовательно он не светится в л2пх, а в скриптах добавляем условие: если темный эльф кидает зигу, то запускать скрипты. правда один хрен там будет небольшой рассинхрон.... )))

п.с.: рекомендации для мазохистов, любящих сложности. я все-таки думаю что какая-то команда для такого "proxy" случая есть... пинайте атцов-основателей, чтоб они дали творческого пинка в ответ в нужном направлении
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack


Опции темы
Опции просмотра

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

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


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

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

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