Перейти к содержимому
Korean Random
Mr A

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

Рекомендуемые сообщения

(изменено)

Данное руководство предназначено для пользователей 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.

Изменено пользователем Mr A
  • Нравится 10

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

----

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

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

Изменено пользователем iBat

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

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

Что-то поменялось? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

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:

 

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

Изменено пользователем solowey

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

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

Изменено пользователем Mr A

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Заработало.

groß danke

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

время еще не пришло?  :shy:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

 

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

 

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

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не осилил сборку проекта. Господа, не могли бы вы обновить манул?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пиши, что именно не получается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

swfmill не находит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

swfmill не находит

post-28388-0-01954500-1428344156_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×