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
Link to comment
Short link
Share on other sites

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

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

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

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

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

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

 

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

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

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

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

Edited by Yozki
Link to comment
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
Link to comment
Short link
Share on other sites

  • 2 months later...

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

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

Link to comment
Short link
Share on other sites

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

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

  • Upvote 1
Link to comment
Short link
Share on other sites

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

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

Edited by Pavel3333
Link to comment
Short link
Share on other sites

  • 2 months later...

 

 

Для разработки я использую 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. Как перезагрузить свой мод в клиент, не перезапуская сам клиент? Раньше работало перемотать реплей, сейчас нет :(

 

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

Спасибо.

Link to comment
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
Link to comment
Short link
Share on other sites

 

 

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

 

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

Remote Debugging

This feature is supported in Professional edition only.

 

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

  • Upvote 1
Link to comment
Short link
Share on other sites

  • 4 weeks later...

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

Link to comment
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
Link to comment
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 (а новая версия вообще прикольная стала) и тут такое :)

Link to comment
Short link
Share on other sites

  • 2 years later...

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

Link to comment
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...