[IMG] AutoAngel — кроссплатформенная open-source библиотека, написанная на языке C++ (имеются биндинги для Python и lua), которая даёт возможность автоматически работать с файлами различных форматов движка Angelica3D. Многим в нашей сфере не раз приходила в голову идея об автоматизации тех или иных действий при работе с файлами. Да, нынче существуют крайне мощные редакторы практически для всех известных форматов. Разработчики трудятся над ними, чтобы предоставить пользователю красивый и удобный интерфейс, ускорив и упростив работу над выпуском обновлений. Но ни один редактор не даёт возможности полноценно обрабатывать файлы на уровне скриптов. Когда я в очередной раз понял, что мне придётся совершить множество одних и тех же действий (добавить 42 питомца, 42 яйца, 42 рецепта со сложной иерархией, 42 описания, 42 скилла и т.д.), тогда и пришла мысль о создании библиотеки AutoAngel. AutoAngel позволяет писать короткие, удобные и понятные утилиты и скрипты на языках Python и lua без ущерба производительности (ядро библиотеки на C++). Библиотека является достаточно молодой, но уже даёт достаточно широкие возможности по автоматизации рутинных действий. Поддерживаемые форматы: elements.data — чтение, модификация, запись. Поддержка любых версий, всех листов (основана на конфигах sELedit). pck архивы — чтение. Стандартные ключи, без поддержки pkx. Примеры использования: Утилита сравнения elements.data (python, lua) - показывает, чем отличаются два elements.data (удаления/добавления/изменения элементов). Утилита сравнения pck архивов (python, lua) - показывает, чем отличаются два архива (удаления/добавления/изменения элементов). Симулятор лута (python, lua) - показывает средний и суммарный лут с моба за N попыток его убийства. Генератор описания шахт (python, lua) - выводит описание содержимого шахт/сундуков с иконками предметов из ЛК для форума. Исходный код и инструкции по сборке: [IMG] Поддерживаемые платформы: Windows, Linux Поддерживаемые языки: C++, Python, lua Планы на будущее: Подробная документация pck+pkx, сохранение архивов, шифрование. Больше форматов Больше примеров
./gs gs01 gs.conf gmserver.conf gsalias.conf is27 is22 is21 is26 is05 is31 is10
Ребят. Я тупенький, объясните пожалуйста - ЧТО ЭТО? Какие отличия от сборок? Спасибо Исходный код (исходники, сорцы) - это результат работы одного или нескольких программистов, содержит описание логики работы какой-либо программы. При помощи определенных утилит (компилятор, линкер), исходный код можно превратить в исполняемый файл (или библиотеку). Наличие исходников позволяет произвольным образом переписывать, дописывать, видоизменять логику работы программы (в нашем случае - PW'шных сервисов gs, gamedbd, logservice, ...). Без исходного кода необходимо копаться в дизассемблерах, отладчиках, декомпиляторах, hex-редакторах и прочем.
Не нашел классы скиллов((9(99 Компиляция скиллов происходит нестандартным образом. Полное описание скиллов хранится в специфическом формате в файле, который отсутствует в слитом архиве. При помощи генератора (на Java, см. например PWServer/cskill_20150831/gen) из него получается набор SkillStub'ов - *.cpp и *.h Полученные стабы собираются в статическую библиотеку libskill.a (а вот она уже есть в слитых файлах!) Библиотека прилинковывается к ядру в процессе его сборки PROFIT!! Итого: скиллы существуют уже в скомпилированном виде, отредактировать их нельзя, но собрать ядро с их использованием можно.
Данная тема является репостом с RageZone, все права принадлежат им. Я не имею никакого отношения к сливу, все благодарности перенаправляются уважаемому Scena. Полный исходный код серверной части вплоть до версии 1.5.3, слитый с PWI — тык. Приятной работы!
Советую. Профессионал и просто отличный человек.
почему нет если там захардкожены скилы и не используется платформоспецифичные вызовы? Код вполне может быть кроссплатформенным. Но здесь речь идёт про уже скомпилированный libskill.so, который явно является динамической библиотекой под *nix системы и никак не может быть использован вместо, например, dll.
Простите, не удержался. Сообщения выше - показатель того, что человек продает файлы, даже не представляя, как они работают и компилируются. Он лишь научился писать команду make :). Так что техподдержка явно не предполагается. Абсурдность ситуации в том, что покупатели будут абсолютно такими же "специалистами". Небольшой намек - вы же понимаете, что после покупки исходников придется купить и C++ программиста, который согласится с этим работать? А его услуги будут не намного дешевле текущих цен на реверс-рынке.
1. Молодец, ты только здесь, чтобы хвастаться другим и принижать? Возможно, это трудности перевода, но я никого не пытался принизить :) 2. Совместимость с типом разработчика, который захочет эти вещи не требуется. Они не нуждаются в заранее созданный продукт, предоставленный им, но предпочитают делать свои собственные дерьмо. Вы, кажется, не понимают, что это основа для создания продуктов и знаний от, а не какой-то простой системы, которые будут даны по прихоти Вы видите, как я захожу на вашу страницу продажи плагинов и рассказываю людям, насколько бесполезна система PVP Rank, потому что это можно сделать на панели, а не внутри игры? Нет. Пост, который вы делаете здесь, является грубым. И вам не нужно приходить к другим лицам на распродаже, чтобы рекламировать свой товар Это не грубость, а простые рассуждения. Я же не пишу, что исходники некачественные, с багами, собираются только старыми компиляторами, работать в них на современном уровне почти невозможно, в них отсутствуют скиллы (только в виде объектных файлов). Нет, я просто предостерёг людей, которые этим могут интересоваться, какие подводные камни их могут ожидать. Или Ваша цель - заработать больше денег? Предупреждён - значит вооружён. Приходите в мою тему и критикуйте мой товар, я буду только благодарен. Отзывы дают путь к развитию. 3. Части исходного кода можно использовать и скомпилировать, если у вас есть мозги, и эта продажа предназначена для пользователей, у которых его нет и у него нет надежды получить его. Что если кто-то захочет получить Gauth 2.0 для игры, отличной от Perfect World? Так далее Вот это уже другой разговор. Распишите в первом посте, зачем это может быть нужно и покупатели найдутся. Кроме того, у вас есть тот же исходный код и узнал от него, чтобы сделать "Plugin System" и теперь вы пришли сюда, чтобы дерьмо на нем, потому что вы не хотите, чтобы он распространен Вы только приходите на эту тему и говорите об этом, чтобы повредить моим продажам, потому что у вас есть источник, и вы не хотите, чтобы другие покупали его ... Очевидно что вы просто не хотите чтобы другие имели то же самое что вы должны работать от (wasntme) Опять какие-то трудности перевода. Я не переживаю о том, что исходники разлетаются по миру. Да хоть в шаре будут (будут, ещё как). Но мне грустно, что существует мнение, что плагины работают благодаря исходникам. Это большое заблуждение, в чём легко убедиться немного поразмыслив. Больше не буду пугать покупателей. Покупайте :)
Поздно. Порассуждаем: зачем людям исходники? 1. Изучение. Все специалисты, работающие с PW на профессиональном уровне, уже имеют на руках эти файлы. Поздно. 2. "А давайте всё перепишем". Поздно. Доводить до уровня 1.5.5 или выше? Где ж вы столько человеко-часов найдете? Не забывайте про необходимость совместимости с клиентом. 3. Делать фичи. Тут два момента - Вы привязаны к 1.5.1 и у Вас нет на руках исходников клиента. (Реклама: плагинам пофиг на версию и они могут всё и без исходников!) Но это не значит, что покупатель не найдётся. У нас тут много богатых фанатиков, которые считают, что исходный код - великий дар. И когда они потратят деньги, они поймут, насколько бессмысленной была покупка.
Дорогие друзья и не только, прошу вашей помощи. Я изучаю внутреннее устройство стандартного AI и его возможности (тот самый, что в AIPolicy.data), в связи с чем хочу собрать некоторый фидбэк: Какие возможности AI лично Вы использовали? Какие возможности AI Вы хотели использовать, но не смогли из-за сложности реализации или ограничений редактора? Каких возможностей не нашлось в AI для реализации Вашей безумной идеи? Как сильно Вы ненавидите китайцев? Подробные ответы приветствуются. Спасибо! P.S. Вопрос по PW, но опыт из JD и похожих игр также принимается. P.P.S. Если ответ совпадает с одним из уже озвученных, можно просто лайкнуть соответствующий пост. P.P.P.S. Не стоит ждать от меня редактора.
Почему бы не написать диссектор? - До этого момента я не встречался с таким если честно. Погуглил и посмотрел, как я понимаю это плагин который показывает пользователю уже расшифрованный трафик. Моя же программа показывает расшифрованный трафик и позволит составить конфиг для каждого пакета по его разбору. WS не покажет же нам что тут у нас номер пакета, далее ид и время итд. В этом ты ошибаешься. Приведу пример, чтобы расставить все точки на i - тык. Диссектор - это плагин для акулы, позволяющий как угодно вертеть перехваченным трафиком: Преобразовывать его перед обработкой (расшифровка) Сохранять промежуточные данные - прошёл пакет входа в игру => сохранили ID персонажа. Авторизовались => сохранили ключи шифрования. Парсить - перегонять байтики в структуры. Отображать - в виде многоуровневого дерева, которое в простом случае может быть списком, а какой-нибудь инвентарь - большим поддеревом (которое можно свернуть, чтобы не мозолило глаза). В этом дереве можно писать и имя пакета, и ID, размер, версию протокола и прочее. Можно прямо из диссектора распарсить elements.data и заменять ID предметов на названия. Плагины пишутся на C, python или lua. Мне сложно распиарить их ещё больше, так как я писал лишь один для работы с xiaomi трафиком, но пример с комментариями могу скинуть в ЛС. Это действительно мощный инструмент, если в нём разобраться. Благодаря python/lua можно не заморачиваться с перекомпиляцией, да и каждый сможет подкорректировать код под себя.
Всем спасибо за ответы. ужа написал часть по перехвату пакетов. Сейчас начинаю писать часть по разбору пакетов в сруктуры(конечно же руками). По шифрованию могу добавить. Для каждой игры будет шифрование отдельно. Всем кто хочет потом снифить свою игру я выложу интерфейс по общению с длл, и будет счастье. Зачем переизобретать акулу? Шифрование для каждой игры надо писать отдельно - почему бы не написать диссектор? Ручной разбор пакетов - почему бы не написать диссектор? И мы автоматически получаем приятный интерфейс, множество удобных функций, высокую скорость работы. Но я знаю, что морг полон людей с бесконечным свободным временем, поэтому не буду отговаривать. [IMG]
Wireshark + кастомный диссектор
Ссылка тебе ничего не даст, тема на закрытом форуме pwid.ru Ты слишком жесток - ссылку на видео автор разрешил распространять (чем я давно занимаюсь :)) P.S. Существование форума подтверждаю
sorry for my English, How do I translate "jz +6646" to "0F 84 46 66 00 00" bytes...? I prefer to use my own assembler to opcode compiler, but you can check this service (remember to replace 6646 with 0x6646).
Если это тестовый сервер, сделай данж мировой локацией и не парься. Если хочется и рыбку съесть, и оставить данж данжем - ковыряй LoginTask::OnGetRole, там на основе некоторых условий вычисляется, подгружать ли последнюю позицию или отбрасывать в начало.
детская мечта сделать игру типа ГТА только что бы еще реалистичнее) Напомнило
Как понимаю, его разработка так и не вышла в свет? Благодарю за интерес. Пока что проект заморожен. Причина проста - есть более актуальный продукт, который: интереснее (с точки зрения как результата, так и разработки); прибыльнее (отношение стоимости к единице затраченного времени); требует меньшего времени на поддержку и разработку. Античит будет выпущен, но никаких сроков я давать не буду - для этого нужно свободное время и энтузиазм.
Здравствуйте, хотел узнать насколько реально достать исходники, а именно открытый рабочий код сервера любой версии? И есть ли он уже у кого-то? Отвечу вопросом на вопрос - а зачем они тебе? Для изучения на 99% хватит отладочной информации (не в счёт #define's, templates и бинари, собранные в Release). Для переписывания - зависит от потребностей. Чисто серверные модификации делаются без исходников на ассемблере/C/C++, сложность конечно зависит от размера работ. Если же хочется сделать новую расу или что-либо глобальное с клиентскими зависимостями, то нужны и исходники клиента, редкость которых повыше будет. Вердикт - сорцы сервера нужны только тем, кто занимается оставшимся 1%.
Имена участников (разделяйте запятой).