Jump to content
Korean Random
Mr A

Среда разработчика: Работа в среде / Development environment: Working in it

Recommended Posts

Данное руководство предназначено для пользователей Windows, желающих внести вклад в создание* модификаций для World of Tanks, в нём будут описаны методы, используемые разработчиками XVM.

* Вам понадобятся знания основ программирования, ActionScript 2/3, Python 2.7. Неподготовленному пользователю рекомендуется сначала прочитать профильную литературу и пользовательские руководства.

 

Прежде чем приступить к работе, необходимо установить и настроить среду разработчика.

"Компиляция AS2 (боевой интерфейс)"

1. Запустите Cygwin

2. Выполните команду перехода в \src\xvm-as2\swf, напечатав cd "YOUR_PATH" и нажав "Enter"

3. Запустите сборку модифицированных swf, напечатав ./1.make-patched-swfs.bat и нажав "Enter"

01.PNG

4. Проверьте результат: в директории \src\xvm-as2\swf должны быть .swf файлы. Cygwin больше не понадобится

5. Выберите любой файл .as2proj из \src\xvm-as2, двойным нажатием запустите среду разработки

01.PNG

6. Cкомпилируйте проект, нажав F8

7. В случае успеха последней строчкой вывода должно быть Done(0)

02.PNG

8. Выделите все остальные файлы проектов в дереве проекта

9. Скомпилируйте их, вызвав контекстное меню и нажав "Build Project Files"

03.PNG

10. Проверьте результат: в \bin должны быть .swf файлы. Они готовы к копированию в директорию игры

"Компиляция AS3 (ангарный интерфейс)"

Компиляция AS3 проектов похожа на AS2, но есть некоторые особенности: первым должен быть скомпилирован wg.as3proj, а вторым - xvm.as3proj.

1. Выберите файл проекта wg.as3proj из \src\xvm, двойным нажатием запустите среду разработки

2. Скомпилируйте проект, нажав F8

3. В дереве проекта выделите xvm.as3proj, скомпилируйте его, вызвав контекстное меню и нажав "Build Project Files"

4. Выделите все остальные файлы проектов в дереве проекта

5. Скомпилируйте их, вызвав контекстное меню и нажав "Build Project Files"

6. Проверьте результат: в \release\mods должны быть .swf файлы. Они готовы к копированию в директорию игры

"Компиляция Python (инфраструктура)"

1. Запустите Cygwin

2. Выполните команду перехода в \src\xpm, напечатав cd "YOUR_PATH" и нажав "Enter"

3. Запустите* компиляцию python файлов, напечатав ./build-all.sh и нажав "Enter"

02.PNG

4. Проверьте результат: в \bin\xpm\scripts\client\gui\mods\xvmstat должны быть .pyc файлы. Они уже скопированы в директорию игры

* Важно: директория игрового клиента \res_mods\X.Y.Z\scripts будет очищена и запустится клиент игры. Для того, чтобы изменить данное поведение, нужно отредактировать файл скрипта (подробнее о редактировании рассказано в разделе "Редактирование файлов": "Отключаем автоматизацию тестирования Python-компиляции").

"Автоматизация тестирования"

Чтобы тестировать результат компиляции, требуется копировать файлы в директорию игры и запускать клиент (возможно, с файлом реплея). Вручную это делать долго и неэффективно, поэтому используются скрипты автоматизации. Они используют переменную среды WOT_DIRECTORY, изменяя файлы в WOT_DIRECTORY\res_mods и запускают клиент в соответствии с параметрами, указанными в \utils\test.sh (подробнее о редактировании рассказано в разделе "Редактирование файлов": "Запускаем клиент с файлом реплея").

 

AS-файлы:

После компиляции AS файлов нажмите Test Project (F5).

Важно: файлы из директории репозитория перезапишут существующие.

 

Python-файлы:

Скрипт build-all.sh изначально использует скрипты автоматизации после компиляции. Для того, чтобы изменить данное поведение, нужно отредактировать файл скрипта (подробнее о редактировании рассказано в разделе "Редактирование файлов": "Отключаем автоматизацию тестирования Python-компиляции").

Важно: директория игрового клиента \res_mods\X.Y.Z\scripts будет очищена перед копированием новых файлов.

"Редактирование файлов"

Большое количество файлов в репозитории можно редактировать текстовым редактором (напр. Notepad++), вы можете открыть python-файлы (.py) в \xpm\xvmstat, файлы конфигурации (.xc) в \release\configs\default или даже файлы проектов FlashDevelop (.as2proj, .as3proj), вызывая контекстное меню и нажимая на пункт "Edit with Notepad++". Тем не менее, AS файлы удобнее редактировать через FlashDevelop, пользуясь всеми удобствами IDE.

"Запускаем клиент с файлом реплея"

1. Откройте директорию \utils

2. Вызовите контекстное меню файла test.sh

3. Нажмите на пункт "Edit with Notepad++"

4. В открывшемся окне найдите строчку "#SAMPLE_REPLAY=test.wotreplay"

01.PNG

5. Измените ее на "SAMPLE_REPLAY=test.wotreplay". Это будет означать запуск скриптом автоматизации test.wotreplay клиентом игры

6. Сохраните файл, нажав Ctrl+S

7. Проверьте результат: запустите скрипт автоматизации путем, описанным в разделе "Автоматизация тестирования". Должен запуститься реплей test.wotreplay

Файл реплея должен находиться в директории /utils/replays, а его имя совпадать с указанным в файле. Остальные строчки с названиями реплеев должны быть закомментированы знаком # (последняя не закомментированная строчка будет являться значением SAMPLE_REPLAY).

"Отключаем автоматизацию тестирования Python-компиляции"

1. Откройте директорию \src\xpm

2. Вызовите контекстное меню файла build-all.sh

3. Нажмите на пункт "Edit with Notepad++"

4. В открывшемся окне найдите строчку " run"

5. Измените ее на " #run". Это будет означать, что очистка директории \res_mods\X.Y.Z\scripts и копирование в неё скомпилированных файлов, а также запуск скрипта автоматизации не требуется

6. Сохраните файл, нажав Ctrl+S

7. Проверьте результат: запустите build-all.sh путём, описанным в разделе "Компиляция Python". Клиент игры не должен запуститься, а в директории \res_mods\X.Y.Z\scripts не должно произойти изменений

"Регистрация изменений в репозитории"

После того, как вы внесли изменения в файлы, их необходимо зафиксировать в репозитории (как локально, так и на сервере).

1. Запустите SourceTree

2. Нажмите "Ветка", заполните поле "Новая ветка" (напр. feature-ОБЛАСТЬ_ИЗМЕНЕНИЙ), нажмите "Создать ветку"

01.PNG

3. Нажмите "Зафиксировать", заполните поля в появившемся диалоге вашими данными (указание e-mail Bitbucket свяжет коммиты с вашим аккаунтом), нажмите "OK"

02.PNG

4. Установите флажки у тех файлов, которые вы хотите зафиксировать, нажмите в область поля "Сообщение к коммиту"

03.PNG

5. Заполните краткое описание изменений, установите флажок "Отправить сразу на...", нажмите "Зафиксировать"

04.PNG

6. Проверьте результат: откройте страницу вашего репозитория на Bitbucket, в столбце "Recent activity" должен появиться ваш коммит

05.PNG

7. Проверьте результат: в меню слева нажмите "Commits", на открывшейся странице должен отобразиться граф коммитов (как в SourceTree)

06.PNG

После этого можно переходить к созданию pull request'ов для того, чтобы предложить ваши изменения в основной репозиторий (напр. разработчикам XVM).

"Создание pull request'ов"

Pull request'ы предназначены для того, чтобы предлагать ваши изменения в основной репозиторий проекта. Перед тем, как создать pull request, вы должны убедиться, что ваши изменения зарегистрированы на сервере Bitbucket (подробнее о регистрации изменений рассказано в разделе "Регистрация изменений в репозитории").

1. Откройте страницу вашего репозитория на Bitbucket, в меню слева нажмите "Pull requests"

2. На открывшейся странице нажмите "Create pull request"

01.PNG

3. На открывшейся странице из выпадающего списка слева вверху выберите ветку в вашем проекте с изменениями

4. Заполните поля "Title", "Description" названием и кратким описанием соответственно

5. Нажмите "Create pull request"

02.PNG

6. Должна открыться страница pull request'a, где в дальнейшем будет происходить обсуждение предложенных вами изменений пользователями, а в случае одобрения владельцами репозитория - подтверждение слияние кода

03.PNG

 

Будет полезно прочитать ещё одно руководство от Mixaill.

Edited by Mr A
  • Upvote 10

Share this post


Link to post

Short link
Share on other sites

После означенных пунктов по сборке получилось вот что. Файл Applicatioin.swf удалился, а новый не появился. Как оказалось, нужно еще заглянуть в папку \xvm\src\xvm\swf\ и немножко поколдовать :)

Edited by iBat

Share this post


Link to post

Short link
Share on other sites

Файл Applicatioin.swf удалился, а новый не появился.

Завтра дополню руководство.

Share this post


Link to post

Short link
Share on other sites

1.make-patched-swfs.7z

При компиляции файла src\xvm\swf\1.make-patched-swfs.bat Появляется куча ошибок:

 

Application.swf
"abcexport.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"rabcdasm" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Apply patch: Application.comments.patch
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Naur Application.orig-0.orig/net/wg/gui/messenger/windows/ContactsWindow.
class.asasm Application.orig-0/net/wg/gui/messenger/windows/ContactsWindow.class
.asasm
|--- Application.orig-0.orig/net/wg/gui/messenger/windows/ContactsWindow.class.a
sasm    2014-11-04 21:02:45 +0300
|+++ Application.orig-0/net/wg/gui/messenger/windows/ContactsWindow.class.asasm2
014-11-04 21:23:37 +0300
--------------------------
File to patch:

 

Что с этим делать?

Edited by solowey

Share this post


Link to post

Short link
Share on other sites

@solowey, необходимо распаковать rabcdasm и добавить его папку в Path. Забыл это указать в установке, пишу.

Edited by Mr A

Share this post


Link to post

Short link
Share on other sites

 

 

Компиляция AS3 проектов похожа на AS2, но есть некоторые особенности: первым должен быть скомпилирован wg.as3proj, а вторым - xvm.as3proj.
С появлением фреймворка этих скриптов больше нет. Тема будет обновляться?
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

С появлением фреймворка этих скриптов больше нет. Тема будет обновляться?

Всему свое время:)

Share this post


Link to post

Short link
Share on other sites

Всему свое время:)

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

проблема в том что я не профессиональный программист, а энтузиаст.

у меня не получилось реанимировать старый мод, нужна хоть какая то помощь с:

 

С появлением фреймворка этих скриптов больше нет. Тема будет обновляться?

 

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

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

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

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

Сейчас нет ни у кого времени чтобы обновить доку, поэтому просто задавай конкретные вопросы, постараемся ответить.

В качестве примеров можешь использовать уже готовые компоненты - xvm_comments, xvm_crew, xvm_profiler, xvm_quests и т.д. В твоем случае необходимо будет сделать xvm_squad.

Share this post


Link to post

Short link
Share on other sites

раздел Компиляция AS2 (боевой интерфейс)

 

post-28388-0-31673400-1428336816_thumb.png

 

swf не создаются

 

Share this post


Link to post

Short link
Share on other sites

значит patch не находит.

открой батник, посмотри что он делает, там все просто

Share this post


Link to post

Short link
Share on other sites

Еще можно права на файлы проверить. Если нет прав у текущего пользователя - добавить.

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.

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.

×