L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
Не правда, такой код работает отдельно, видимо ты нагородил ерунды, и до него дело не доходит просто
отдельно да я не спорю. но если я два таких скрипта одновременно запущу то каждый скрипт будет слать пакеты в каждое окно или же в то окно от которого пришел изначальный пакет
Мне надо так. 3 чара один стоит не рыпается.
двое стоят и под каждым чаром лежит итем к примеру.
Первый чар например пишет в чат чтонибудь.
Два скрипта настроены так что в первом скрипте Лежит готовый пакет на подбор итема чаром 2, а второй скрипт разумеется с готовым пакетом на подбор итема чаром 3, итемы у каждого свои.
Скрипты одновременно срабатывают на сообщение от первого чара, и каждый скрипт шлет готовый пакет на подбор итема своему окну. И чары одновременно поднимают итемы с пола.
Если слать пакеты функцией SendtoServer; без указания имени чара окна которому шлется пакет, то насколько я знаю пакеты от скрипта скорее всего пошлются в первое окно.
Напоминаю тем кто не знает в чем проблема. Проблема в том что нет имени соединения только [Proxy]#464 , есть только айди соединения но по нему вышеупомянутые функции не пашут ни хрена. Пашут но некорректно.
Надо чтобы окно знало куда слать пакеты, обязательное условие в скрипте чтоб было указано какому окну слать пакет.
Добавлено через 4 минуты
Цитата:
Сообщение от 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" случая есть... пинайте атцов-основателей, чтоб они дали творческого пинка в ответ в нужном направлении
Твой метод можно использовать но там не будет синхронизации как ты сказал. С таким же успехом можно и на двух компах запустить окна. Но всё же они с каким то но значительным интервалом будут слать пакеты, что не будет удовлетворять потребности дюпа)
Последний раз редактировалось Хламчег, 18.10.2014 в 19:36.
Причина: Добавлено сообщение
Хламчег, попробуй выяснить почему у соединений нет имени
так как пакетник писался на заказ и начинает ловить траффик с геймсервера, траффик логина не показывается. И он перехватывает траффик на порту 7788, а траффик в свою очередь перехватывается с клиента Хуком в клиент, другими словами до того как клиент л2 шифрует траффик, тоесть до того как он пойдет в интернет. еще не защифрованный траффик клиента ловит. а клиент как слал так и шлёт траффик по соединению. тоесть там нет обхода шифрации, нет Нюксор файла. Может быть можно какой нибудт скрипт написать который имя задает по имени чара в пакете CharSelected , имя чара в пакетах есть. сервер Руофф
procedure SetName(Name:string)
задает имя для текущего соединения
действует для текущего обрабатываемого соединения либо, для явно установленного с помошью UseForConnectName имени соединения или установленного с помошью UseForConnectID идентификатора соединения.
Я делал так. В начале скрипта в куске который срабатывает при включении скрипта писал SetName(asd11); и соединение не переименовывалось, и проверял переменную ConnectName она так же как и была пустой так и осталась
Добавлено через 40 минут
Интересует вот это UseForConnectName , это что функция или процедура? и с чем их вообще есть? я если честно по этим делам чуть тормоз. подскажите плизз кому не тяжело. Можно ли этим как бы в полуручном режиме сменить название соединения. Всякие ритуалы с ConnectID и остальное не помогает так как ConnectID прыгает с одного окна на другое, тоесть это переменная для двух окон одна получается, сейчас она 464 а на какую то секунду две будет 455 например и опять станет 464, вот такую бороду заметил когда выводил эту переменную в сообщении от перса в игровой чат(((.
Писал в скайп Хкору, он ушел на покой( и помогать не стал, так как занят, ну его можно понять, у него времени нету. Если тут найдется чел кто мне поможет буду очень благодарен пишите в скайп giran1234 или сюда
Добавлено через 21 час 35 минут
Так же сегодня пробовал менять память процесса через артмани. Получилось такое что я нашел в памяти ячейку с названием подключения. Ставил на работу скрипт отправлял успешно в нужное окно, менял айди через Артмани, и получилось что не отправляло, тоесть название успешно сменилось. Потом менял в скрипте в функции SendToServerEx(); название соединения на то которое менял и успешно отправлялось. Но беда в том что в памяти я не смог найти определенную ячейку памяти в которой хранится название соединения. Так как память всегда бегает. И это очень тяжело так как не найти ячейку если она пуста.
Потом наткнулся на то что у меня пакет CharSelectedInfo кривой, в нем неправильно отображается ник персонажа, и некоторые данные. Если у кого есть Готовый пакет на Хроники Ertheia то скиньте пожалуста, очень надо. Самому долго придется править его. Для начала я пробовал, получилось что ник отображается правильно но всё же соединение не получает имя, после выбора чара. Беда
Последний раз редактировалось Хламчег, 21.10.2014 в 22:44.
Причина: Добавлено сообщение
Решил свою проблему таким образом. Использовал setname();
Делал так. запускал пакетник. писал скрипт
if fromclient and (pck[1]=#$56) then
SetName('123');
begin
Buf:=#$49;
WriteS(ConnectName);
writed(0);
sendtoserver;
end;
end.
Скрипт делал такое. Когда запускалось действие СоциалАкшион, то скрипт изменял имя соединение с никакого на 123, и сразу же писал в чат 123.
После этой манипуляции соединение получало название 123, и можно было уже писать скрипты с условием and ConnectName=('123') и SendToserverEx('123');
Дальше переименовывал в скрипте 123 на любое другое имя и запускал, под другое окно. Как оба коннекта были проименованы запускал скрипты под них и всё прекрасно работало.
Решил свою проблему таким образом. Использовал setname();
Делал так. запускал пакетник. писал скрипт
if fromclient and (pck[1]=#$56) then
SetName('123');
begin
Buf:=#$49;
WriteS(ConnectName);
writed(0);
sendtoserver;
end;
end.
Скрипт делал такое. Когда запускалось действие СоциалАкшион, то скрипт изменял имя соединение с никакого на 123, и сразу же писал в чат 123.
После этой манипуляции соединение получало название 123, и можно было уже писать скрипты с условием and ConnectName=('123') и SendToserverEx('123');
Дальше переименовывал в скрипте 123 на любое другое имя и запускал, под другое окно. Как оба коннекта были проименованы запускал скрипты под них и всё прекрасно работало.