PW Library OOG — библиотека для работы с пакетами игры Perfect World, базирующаяся на новой технологии Out of Game (Вне игры), позволяя тем самым реализовать бота, который будет работать без клиента игры.
Язык разработки — C#, библиотека может использоваться на всех dotNet языках программирования.
Взаимодействие между библиотекой и целевой программой осуществляется посредством событий, вызываемых из библиотеки.
Структура
PWProtocol.cs — класс–инициализатор. SocketsClient.cs — асинхронная реализация сокетов. RC4.cs — шифрование/дешифрование методом RC4. MPPCUnpacker.cs — распаковщик по алгоритму MPPC. Packet.cs — инкапсулированная структура для сборки пакетов.
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
VeTaL_UA, могу предоставить исходные коды (в пм, естественно;а можете и сами декомплировать), если есть какие-то сомнения.
Я, конечно, особенно код не комментировал, но тем не менее могу и подробно рассказать, что и для чего, а также предоставить прототип пакетов движения (на данный момент есть некоторая проблема с 0x07 (MoveStop) (Client -> Server), связанная с углом поворота чара).
Последний раз редактировалось Desmond Hume; 14.08.2013 в 09:34.
Причина: Слово пропустил
Если вы и правда автор, то прошу прощения и снимаю шляпу. Просто видел ну очень похожую библиотеку другого автора
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
VeTaL_UA, да ничего страшного, ошибаться может каждый.
Собственно, на немного новой библиотеки (эта более стабильна, хотя стоит поправить маленькую ошибку с куинтом) у меня стоит OOG бот, который копает рес на одной точке. Палится ужасно, правда...
Если где–то и есть похожая библиотека с нормально реализованными пакетами движения, хотелось бы получить ссылку на неё, или же, если у кого-то хватит мысли, алгоритм (на словах) вычисления угла поворота чара. Пока удается поворачивать его лишь в четырех направлениях (С, Ю, З, В).
Ну вот как я и думал, простая математика.
Максимальное значение байта: 255. Значит необходимо составить биекцию Y = F(X) такой чтобы Y было множество: {0..256}, а X {0..360}.
Биекция:
Y = (256 / 360) * X
Обратная функция:
X = Round(Y * 360 / 256)
Иначе говоря в PW не 360 градусов, а всего 256. Т.е каждый PW градус это эквивалент 1,40625 градусам.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось nitrotek; 14.08.2013 в 19:49.
Да уж, и система координат у них XZY.
PW такой PW..
Не знаю, как обстоят в этом плане дела с ООГ, но если можно получить структуру игрока, то в её начале есть косинус и синус угла поворота игрока (смещения раньше были +0xC для синуса и +0x2C для косинуса, думаю, сейчас ничего не изменилось).
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
BritishColonist, в пакетах позиции данных фиксированы (иначе в редких случаях), смещения тут не требуются. Позиция отсылается сервером в пакете 0x08 (PlayerPos) (Server -> Client), длина её составляет 12 байт (по 4 байта на каждую из мировых осей).
в пакетах позиции данных фиксированы (иначе в редких случаях), смещения тут не требуются
Благодарю за пояснения, но я давал смещения не для пакетов (лолшто?), а для структуры игрока.
Ну, на всякий случай. Если в ООГ можно получить структуру, то можно будет узнать и угол поворота персонажа.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).