Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 27.08.2016, 11:36   #111
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
Версия протокола используется только на пакетном уровне и только для OOG ботов (пакет клиент->сервер 0x0E=ProtocolVersion), зачем оно тебе?
А как определить, с каким клиентом я работаю?
Smwr вне форума   Ответить с цитированием
Старый 29.08.2016, 22:44   #112
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от Smwr Посмотреть сообщение
А как определить, с каким клиентом я работаю?
100% гарантированного варианта не знаю, вполне возможно что в клиенте где-то эта инфа зашита (встречал упоминания, что можно клиент вызывать с параметром L2ProtocolVersion и типа в ответ получишь версию клиента/протокола - не знаю на сколько это правда).
Один из вариантов который мне советовали - создавать базу с engine.dll (отличать их друг от друга можно по размеру файла/кода).
Наш вариант определения озвучивать не буду по личным причинам.
Можешь для начала все клиенты считать HF5 (как наиболее распространенный клиент), а можешь отдавать настройку на откуп пользователю.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
За это сообщение ScythLab нажился спасибкой от:
Старый 30.08.2016, 07:11   #113
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
Один из вариантов который мне советовали - создавать базу с engine.dll (отличать их друг от друга можно по размеру файла/кода).
понятно, так и думал.

Цитата:
Сообщение от ScythLab Посмотреть сообщение
можно клиент вызывать с параметром L2ProtocolVersion
можно, но пока так и не въехал, откуда он ее берет.

Последний раз редактировалось Smwr, 31.08.2016 в 07:24.
Smwr вне форума   Ответить с цитированием
Старый 31.08.2016, 12:35   #114
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

У кого есть какие мысли как заинжектить свою dll на руофе с фростом.

При попытке выделения памяти в процессе l2.exe через VirtualAllocEx возвращает ошибку - отказано в доступе даже если указать параметр PAGE_READONLY.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 31.08.2016, 13:43   #115
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
У кого есть какие мысли как заинжектить свою dll на руофе с фростом.

При попытке выделения памяти в процессе l2.exe через VirtualAllocEx возвращает ошибку - отказано в доступе даже если указать параметр PAGE_READONLY.
Драйвера защиты рулят
Пиши в личку - подскажу в какую сторону копать.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
За это сообщение ScythLab нажился спасибкой от:
Старый 26.09.2016, 15:35   #116
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Разобрал почти все, что хотел.
А вопрос с баффами и скилллистом так и остался нерешенным DD
Нигде, кроме как в UI их нет, походу.

Точнее баффы юзера нашёл в двух экземплярах(как и писал), первый можно получить путём хитрых смещений, правда endtime там на момент приема пакета. но это впринципе не такая большая проблема, т.к. проверять, изменились ли баффы(сравнивая это самое время с предыдущим) не проблема.

А вот с баффами сопартийцев всё очень плохо.

Они хранятся в виде 2-мерного массива в классе NCIconTabCtrl который в свою очередь лежит в классе UWindowHandle, который лежит в классе UUIScript и вроде как рядом лежит OID обьекта. Дальше стало лень искать, откуда ноги растут. Ситуацию осложняет то, что в NWindow не экспортируется ничего полезного, а тамошний код сложнее поддается анализу.

Скиллист тоже нашёл только ввиде массива айдишников.

В итоге сижу и думаю, а стоило ли вообще заморачиваться с такой реализацией, т.к. всё равно без хуков не обойтись...

Назрел вопрос - при юзе скилла клиент сам считает его откат? Потому что пакет C7=SkillCoolTime:d(listSize:Loop.01.0004)d(skillID :Get.Skill)d(skillLvl)d(reuseDelay)d(timeRemain) приходит только при открытии скилллиста, мб есть еще что то?

Последний раз редактировалось Smwr, 26.09.2016 в 18:39.
Smwr вне форума   Ответить с цитированием
Старый 26.09.2016, 20:01   #117
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Smwr, на сколько помню, если у перса есть неактивные скиллы, то SkillCoolTime автоматически приходит при входе в игру; если этого пакета не пришло, то считаем, что любой скилл можно юзать.
И после каждого использования скилла приходит пакет 48=MagicSkillUse, где указано время каста и время отката.
Дальше клиент сам считает, но и сервер параллельно тоже считает и не позволит раньше времени использовать скилл.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
За это сообщение ScythLab нажился спасибкой от:
Старый 27.09.2016, 10:59   #118
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
Smwr, на сколько помню, если у перса есть неактивные скиллы, то SkillCoolTime автоматически приходит при входе в игру; если этого пакета не пришло, то считаем, что любой скилл можно юзать.
И после каждого использования скилла приходит пакет 48=MagicSkillUse, где указано время каста и время отката.
Дальше клиент сам считает, но и сервер параллельно тоже считает и не позволит раньше времени использовать скилл.
Большое спасибо, почему то не додумался посмотреть, что в magicskilluse есть время отката
Поковырял обработчик, и нашёл то, что искал.
А не находил ранее, потому что ожидал увидеть целое, а оказалось, что время в л2 в float/double.
Smwr вне форума   Ответить с цитированием
Старый 17.11.2016, 17:14   #119
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

/del

Последний раз редактировалось Smwr, 18.11.2016 в 09:46.
Smwr вне форума   Ответить с цитированием
Старый 30.01.2019, 20:52   #120
Заблокирован
 
Регистрация: 30.01.2019
Сообщений: 6
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
nasta456 пока неопределено
По умолчанию

спасибо за ответы)
nasta456 вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

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


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

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

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