Dragon armor 65 Posted July 17, 2018 (edited) Приветствую всех. Т.к. дискуссии не получилось, сокращу первый пост. Сам же продолжу неспешно делать мод, в теме буду выкладывать прогресс разработки. Что за мод? Мод для возможности запуска клиента игры без подключению к серверу. Что сделано на данный момент. Запуск ангара со всей техникой, с генерацией которой не возникло ошибок (без шведских ПТ с осадным режимом). Общая информация. На данный момент использую версию 0.9.22.0.1, это последняя версия перед патчем 1.0, потому что, начиная с 1.0 были какие-то изменения в сетевом протоколе, а мне не хочется разбираться, что именно поменяли. Всё ещё очень сырое, работает до первой внештатной ситуации, абсолютные пути прописаны прямо в коде, запуск из отладчика и прочие радости debug версии. Реализовал загрузку ангара, добавил почти всю технику и экипаж к ней. Много каких-то непонятных для меня ошибок, т.к. не мододел и с питоном достаточно плохо знаком. Например, при создании техники шведских ПТ с осадным режимом, возникает ошибка создания на сервере. При выборе в ангаре некоторой техники, возникает ошибка уже в клиенте, что, в некоторых случаях, странно, потому что выбираю существующую в игре технику, например, ELC EVEN 90 или 268/4. В логе ошибка "list index out of range", а отладчик питона к клиенту не умею цеплять. Что забавно, Waffentrager E100 выбирается без проблем. А VK168.02 Mauerbrecher опять с той же ошибкой. Или ещё недочёт, на 10 уровне у техники не исследованы модули, этого, видимо, ещё не реализовал для команды CMD_SYNC_DATA, а может это ещё где-то содержится. Много времени уходит на то, чтобы понять, что и где содержится и откуда это достать. С созданием техники провозился очень долго, мне, как сишнику, крайне не привычен питон, в котором любой объект содержит всё, что угодно, и понять, что именно, надо долго искать, где он создаётся, что в него записывается. А в итоге строка вида "for veh_item in vehicles.g_list.getList(i).values()", чтобы достать compactDescr. Ах да, ещё и распарсить надо, items.parseIntCompactDescr, хотя где-то лежат уже нужные нация и id техники. На скринах стату показывать бесполезно, там 0 боёв и 100500 рейтинга, как и везде, чего мелочиться-то. Она не из CMD_SYNC_DOSSIERS берётся, видимо, а из CMD_SYNC_DATA. Сейчас только ангар. И прогресс моих ЛБЗ на момент записи трафика. Edited July 19, 2018 by Dragon armor Дискуссии не получилось. 7 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,425 #436437 Posted July 17, 2018 52 минуты назад, Dragon armor сказал: Надо ли продолжать дальше, а если надо, то зачем? Ну если это будет OpenSource, то для обмена опыта было бы неплохо 3 Quote Share this post Link to post Short link Share on other sites
Dragon armor 65 #436439 Posted July 17, 2018 Только что, SkepticalFox сказал: для обмена опыта было бы неплохо Какого именно опыта? Из скриптов игры берётся только то, что нужно для сервера. Сейчас это весь items, в котором парсятся xml файлы. 1 Quote Share this post Link to post Short link Share on other sites
DWG 427 #436440 Posted July 17, 2018 Так и непонятно.. А зачем, а зачем.. Карты запускаются и можно кататься хоть на одной карте? Или это только вход в ангар и всё? 2 4 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,425 #436441 Posted July 17, 2018 Только что, Dragon armor сказал: Какого именно опыта? Из скриптов игры берётся только то, что нужно для сервера. Сейчас это весь items, в котором парсятся xml файлы. программерского) может на c++17 писать будешь круто, а может на Rust'е чисто за эстетику) 1 Quote Share this post Link to post Short link Share on other sites
DWG 427 #436445 Posted July 17, 2018 (edited) 9 минут назад, SkepticalFox сказал: Ну если это будет OpenSource, то для обмена опыта было бы неплохо Это скорее не законченный проект через который читеры в другие игры графику тырят, наврятли OpenSource.. Edited July 17, 2018 by DWG 4 Quote Share this post Link to post Short link Share on other sites
Dragon armor 65 #436447 Posted July 17, 2018 1 минуту назад, SkepticalFox сказал: программерского) может на c++17 писать будешь круто, а может на Rust'е чисто за эстетику) Не, у меня сишка. 2 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,425 #436451 Posted July 17, 2018 3 минуты назад, Dragon armor сказал: Не, у меня сишка. Для серверной физики? Крайне неудачный выбор Quote Share this post Link to post Short link Share on other sites
Dragon armor 65 #436454 Posted July 17, 2018 Только что, SkepticalFox сказал: Для серверной физики? Не самому же писать физику. Планировал Newton, но до этого далеко ещё. Нужно ещё с картами будет разбираться, там space.bin, в котором всё интересующее содержится, крайне запутанный. 2 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,425 #436456 Posted July 17, 2018 (edited) 8 минут назад, Dragon armor сказал: там space.bin, в котором всё интересующее содержится, крайне запутанный. Не пиши велосипед главное) пиши - помогу с ним для сервера главное колижны просчитать из space.bin/.cdata Edited July 17, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Dragon armor 65 #436457 Posted July 17, 2018 2 минуты назад, SkepticalFox сказал: для сервера главное колижны просчитать из space.bin/.cdata Понятно, что нужны будут только коллижн-модели. Когда пытался разобраться со структурой файла, там находил информацию о деревьях. Это тоже нужно будет. Позиции баз, точек респавна техники там же лежит. Структура файла, как помню, достаточно простая, разбито всё на блоки, но дальше не смог сделать, потому что назначение многих блоков не понятно, смещения из одного блока использовались в другом и так далее. Мне, на тот момент не было интересно, что там. Сейчас немного рано. Хотя можно попробовать сделать загрузку карты, а потом недостающий функционал добавлять. 9 минут назад, SkepticalFox сказал: пиши - помогу с ним Ты можешь всю (необходимую) информацию оттуда достать? Знаешь, как файл устроен? 1 Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,147 #436459 Posted July 17, 2018 1 час назад, Dragon armor сказал: А нужен ли эмулятор сервера? долго, сложно, много чего реверсить среди пакетов от сервера. В чисто познавательных целях - хорошо, но ЦА не схавает, им это не нужно. 33 минуты назад, SkepticalFox сказал: для сервера главное колижны просчитать из space.bin/.cdata а невидимые стенки можно просмотреть по спейсу? Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,425 #436460 Posted July 17, 2018 24 минуты назад, Dragon armor сказал: Ты можешь всю (необходимую) информацию оттуда достать? Знаешь, как файл устроен? https://bitbucket.org/SkepticalFox/wot-space.bin-utils/src/master/ Вроде как могу) 2 минуты назад, Pavel3333 сказал: а невидимые стенки можно просмотреть по спейсу? конечно нет, на сервере отдельная карта со всем этим Quote Share this post Link to post Short link Share on other sites
Dragon armor 65 #436461 Posted July 17, 2018 4 минуты назад, Pavel3333 сказал: долго, сложно, много чего реверсить среди пакетов от сервера. Сетевой протокол мне полностью известен. Да, долго, но сейчас всё заключается в том, чтобы добавлять функции-обработчики для пакетов на питоне. 5 минут назад, Pavel3333 сказал: В чисто познавательных целях - хорошо, но ЦА не схавает, им это не нужно. Вот это вот да. Больше, чем на покатать одному по карте, рассчитывать не стоит. Хотя, как замену оффсерверу речи, естественно, не идёт. 5 минут назад, SkepticalFox сказал: https://bitbucket.org/SkepticalFox/wot-space.bin-utils/src/master/ Принято. Потом посмотрю. 2 Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,147 #436463 Posted July 17, 2018 2 часа назад, Dragon armor сказал: мне, как сишнику ты джуниор в Си? :) Quote Share this post Link to post Short link Share on other sites
Dragon armor 65 #436464 Posted July 17, 2018 @Pavel3333 Не знаю, а как оценить? Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,147 #436466 Posted July 17, 2018 @Dragon armor https://habr.com/post/322692/ Quote Share this post Link to post Short link Share on other sites
Dragon armor 65 #436467 Posted July 17, 2018 @Pavel3333 Похоже, джуна перерос, но до миддла не дотягиваю. Но это трудно оценить, надо кого-то со стороны. У меня нет соответствующего образования, в какой-то области знания достаточно большие, в другой - нулевые. Нахватался там, здесь, применяю по необходимости. Цитата Начинающий разработчик (или не разработчик, в принципе эта триада применима к любой профессии в IT), сам справляется с маленькими задачками, но постоянно нуждается в помощи, код ревью, и сам сложные задачи никак не осилит. Ну то есть осилит, но вместо дня потратит на них месяц, а это никому не надо. В помощи постоянно не нуждаюсь, задачи не настолько простые. Но сложные задачи за день не сделаю. Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,147 #436468 Posted July 17, 2018 @Dragon armor в принципе, если и писать парсеры на основе реверса полученных с сервера WG пакетов, то лучше юзать kaitai struct, как это делал наш товарищ @SkepticalFox. А структуры кидать в опен-сорс ррепозитории. Это даст опыта остальным, есть вероятность того, что Вам подсобят в этом нелегком деле. Quote Share this post Link to post Short link Share on other sites
Dragon armor 65 #436469 Posted July 17, 2018 1 минуту назад, Pavel3333 сказал: если и писать парсеры на основе реверса полученных с сервера WG пакетов, то лучше юзать kaitai struct У меня уже всё распарсено. У некоторых пакетов неизвестно назначение некоторых полей, структура пакетов, которые ни разу не были получены, тоже не всегда известна. Но у клиента всего 14 сообщений, которые он может отправить на сервер и то, используется 3 штуки, пока в ангаре. Остальное через питон, а там все параметры открыты. 6 минут назад, Pavel3333 сказал: А структуры кидать в опен-сорс ррепозитории. Это даст опыта остальным, есть вероятность того, что Вам подсобят в этом нелегком деле. Скину всё как-нибудь, что есть. Когда что-то будет готово, что можно показать. Quote Share this post Link to post Short link Share on other sites