Jump to content
Korean Random
aks1983

Немного про среду для разработки модов

Recommended Posts

wotswf содержит as3 из battle.swf, lobby.swf, common_i18n.swf,

а так же библиотеки org.idmedia.as3commons, com.adobe.serialization.json и fl.*,

которые можно скачать отдельно.

 

Для декомпиляции я использую jpexs-decompiler,

далее пробую собрать swc-библиотеки из lobby и battle,

исправляя ошибки декомпиляции.

Этот процесс долгий, но требуется один раз -

в итоге получаются lobby.swc и battle.swc,

готовые для подключения как внешние библиотеки.

Смертельный, между прочим, для меня оказался, номер.

Я сдался на третьи сутки, наткнувшись глазом на сук в виде import BigWorld

Сдался, потому что подозреваю что этот объект, бигворльд, прячется внути флэшек,

которые не могу подлинковать внутри PyCharm и не понимаю как при помощи https://www.free-decompiler.com/flash/

распотрошить c:\Games\WoT\res_mods\0.9.15.2\gui\flash\* и главное, как подлинковать.

Если этот путь уже кем-то пройден, оставьте вешку, может скриншот готового каталога, может копию потрошёных флэшек,

или удастся вспомнить какие были грабли с ошибками декомпиляции флэшек.

 

Мне тут в ЛС прочили что меньше чем за три месяца зависалова с потрохами танковых исходников въехать не получится.

Боюсь, есть недооценка запутанности процесса.

 

 

  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Я сдался на третьи сутки, наткнувшись глазом на сук в виде import BigWorld

И что страшного в этом?

Это хорошо документированный класс.

Он написан на CAPI и расположен в exe-файле)

Share this post


Link to post

Short link
Share on other sites

И что страшного в этом?

Это хорошо документированный класс.

Он написан на CAPI и расположен в exe-файле)

Испугало то, что IDE (pycharm) его не разыскала и стала так ругаться что я чуть под стол не полез прятаться от неё.

Я-то старыйпень, привык, чтобы весь код был непременно доступен для отладки, причём прямо в IDE.

Чтобы по всему коду было можно лазить и радоваться, а тут оказывается, часть работы пойдёт вслепую.

 

Ну. если bigworld документирован, то из ИДЕ придётся переключаться в доку,

чтобы сопоставлять, "не к нему ли в n-цатой строке обращается препарируемый мод".  

Удобств, как в сельском доме, но что ж, будем пльзоваться уличным сортиром а воду таскать ведром из колодца.

Хорошо хоть 220 подведено :)

Edited by Yozki

Share this post


Link to post

Short link
Share on other sites

Я-то старыйпень, привык, чтобы весь код был непременно доступен для отладки, причём прямо в IDE.

Лезешь в моды - забудь об этом.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Смертельный, между прочим, для меня оказался, номер.

Я сдался на третьи сутки, наткнувшись глазом на сук в виде import BigWorld

Сдался, потому что подозреваю что этот объект, бигворльд, прячется внути флэшек,

которые не могу подлинковать внутри PyCharm и не понимаю как при помощи https://www.free-decompiler.com/flash/

распотрошить c:\Games\WoT\res_mods\0.9.15.2\gui\flash\* и главное, как подлинковать.

Если этот путь уже кем-то пройден, оставьте вешку, может скриншот готового каталога, может копию потрошёных флэшек,

или удастся вспомнить какие были грабли с ошибками декомпиляции флэшек.

 

Мне тут в ЛС прочили что меньше чем за три месяца зависалова с потрохами танковых исходников въехать не получится.

Боюсь, есть недооценка запутанности процесса.

 

 

 

Привет!

 

BigWorld - это built-in модуль движка (как и GUI, Math, ResMgr, _Scaleform и может что-то еще), по сути это API для связи Python <---> Движок

 

В контексе флеша - BigWorld'а нет, флэш работает исключительно внутри Scaleform, который раскрыт в питоне модулем _Scaleform (смотрим scripts/client/gui/Scaleform/Flash.py)

 

Если непонятно, то Scaleform это аналог Adobe Flash Player, имеет свой движок и набор базовый AS3-классов для построения интерфейса (как у Flash есть Flex). Кроме того, Wargaming создал свой набор классов для построения интерфейса игры - окна, кнопки и т.д. (это как Spark у Flex). Вот эти два набора нам и нужны для успешного собирания своих флешек, неймспейсы scaleform.click, scaleform.net (это классы Scaleform) и net.wg.* (это классы Wargaming). lobby.swf содержит наиболее полный набор классов для лобби, поэтому берем его, и battle.swf для боя.

 

Создавать открытые репозитории этого кода мне кажется незаконным. Инструменты для автоматизации есть в репозитории XVM (но в него тоже надо вникать).

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

например мой знакомый кодит в Visual Studio, использует так же встроенный дебаг

Разве в VisualStudio есть поддержка Питона? Подсветки синтаксиса же не будет.

Share this post


Link to post

Short link
Share on other sites

@spoter, я ставил в свое время студию... с ней столько говна на систему накатывается...

ИМХО, чем проще (и чем меньше зависимостей), тем лучше, но в разумной мере естественно.

Share this post


Link to post

Short link
Share on other sites

@GPCracker, у меня VS 2016 Ultimate пиратка установлена. Это рай для кодера, создающего оконные приложения. Насчёт зависимостей не знаю, обычно сношу все приложения вместе с виндой.

Share this post


Link to post

Short link
Share on other sites

Религиозные войны по выбору IDE ещё устройте :)

Я считаю что инструмент нужно брать тот, который нравится и работать с ним удобно. На вкус и цвет, все фломастеры разные.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

у меня VS 2016 Ultimate пиратка установлена. Это рай для кодера

Если учесть, что есть только версии 2015 и 2017 и у них нет Ultimate версии...

Share this post


Link to post

Short link
Share on other sites

Если учесть, что есть только версии 2015 и 2017 и у них нет Ultimate версии...

Я в ссылке у бабушки, и, скажем так, забыл версию VS на домашнем ПК. 2015 значит

Edited by Pavel3333

Share this post


Link to post

Short link
Share on other sites

 

 

Для разработки я использую IDE JetBrains PyCharm

Я с этой системой работал (недолго) пару лет назад, решил возобновить навык. И сразу вопросы :)

 

 

 

В клиенте танков есть встроенный remote debug, по умолчанию настроенный на Pycharm, но никто не запрещает подключатся к нему из другой IDE достаточно закинуть содержимое архива pycharm-debug.egg из дистрибутив pycharm в папку \World_of_Tanks\res_bw\scripts\common\pydev\pycharm\ и вписать в свой скрипт import bwpydevd bwpydevd.startDebug() главное следите чтобы скрипты были идентичны

Не нашел pycharm-debug.egg  в дистрибутиве. Мы же о PyCharm community Edition говорим? Бесплатная общедоступная версия?

Нашел зато дебаггер парой постов ниже, с которым в терминале общаться надо. Не оч удобно, но покатит. можно хоть кое-какие структуры кое-как сдампить.

 

И вот они - вопросы.

1. Обладая декомпилированными исходниками клиента (спасибо, опять же, этому форуму), как их подсунуть pycharm-у, чтобы работало автодополнение и code-inspection?

2. Сдампив кое-что из клиента (структуры-объекты-классы из constants, Bigworld) - как это можно подсунуть pyCharm, для тех же целей?

3. Как перезагрузить свой мод в клиент, не перезапуская сам клиент? Раньше работало перемотать реплей, сейчас нет :(

 

подскажите, пожалуйста. Или ткните в ссылку, где такие вопросы более уместны.

Спасибо.

Share this post


Link to post

Short link
Share on other sites

архив для дебага бери в папке установленного Пичарма, Вот доки

 

1. Создаёшь такую структуру папок в проекте:

post-6927-0-52493700-1488976822_thumb.png

Чтобы пометить папку как корень, для поиска скриптов в проекте делай так:

post-6927-0-97742500-1488976834_thumb.png

2. Точно так же, смотри скриншоты выше. Создаешь папку для BigWorld, указываешь как корень, создаешь файлы bigWord.py, ResMgr.py, GUI.py и делаешь заглушки в них, какие тебе нужны:

def callback(param, check_start_time):
    return None

def cancelCallback(param):
    return None

def wg_collideSegment(spaceID, start, end, param):
    return None

Ну или наполняешь их по данным из документации от BigWorld, правда общедоступная очень устарела.

 

3. Как перезагружать мод в клиенте я тоже в недоумении, даже не заметил когда это поломали.

На крайний случай запускай pjOrion и в нём напрямую пиши код, чтобы посмотреть на результаты или получить мгновенные значения

Edited by spoter

Share this post


Link to post

Short link
Share on other sites

 

 

архив для дебага бери в папке установленного Пичарма, Вот доки

 

Увы, во первых же строках доков написато:

Remote Debugging

This feature is supported in Professional edition only.

 

А так как у меня не проф, а коммунити едишн (бесплатное), в этом плане у меня неудача. попользуюсь другими дебаггерами. Спасибо.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Приветствую! WG что то наломали и пропала папка res_bw...
Я так понимаю это конец дебагу через PyCharm? Если нет, то помогите пожалуйста разобраться как теперь настраивать PyCharm, потому как восстановление папки res_bw не помогает.

Share this post


Link to post

Short link
Share on other sites

\World_of_Tanks\res\packages\scripts.pkg\scripts\common\bwpydevd.pyc

содержимое архива pycharm-debug.egg из Pycharm кидай сюда:

\World_of_Tanks\res_mods\<версия>\scripts\common\pydev\pycharm\pydev\

 

дальше как обычно:

import bwpydevd
bwpydevd.startDebug()

Edited by spoter
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

\World_of_Tanks\res\packages\scripts.pkg\scripts\common\bwpydevd.pyc

содержимое архива pycharm-debug.egg из Pycharm кидай сюда:

\World_of_Tanks\res_mods\<версия>\scripts\common\pydev\pycharm\pydev\

 

дальше как обычно:

import bwpydevd

bwpydevd.startDebug()

Спасибо большое! А то я прям отчаялся, перешёл на Pycharm (а новая версия вообще прикольная стала) и тут такое :)

Share this post


Link to post

Short link
Share on other sites

Драствуйте всем. Мне нужен помош я создал мод через c#  как его включить или куда надо установить как импортировать я не понял не работаеть пж скажите

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...