

MatroseFuchs
Разработчик-
Публикации
1 385 -
Зарегистрирован
-
Посещение
-
Бои
7586 -
Клан
[LESTA]
Тип публикации
Профили
Форум
Календарь
Все публикации пользователя MatroseFuchs
-
Приветствую, спасибо что обратил внимание, поправим с обновой.
-
Организационная часть Разработка мода Все модификации API_v2 разрабатываются на специально выделенном аккаунте и выданным ключом разработчика мода. Для получения аккаунта и ключа разработчика мода необходимо подать заявку личным сообщением куратору Мододелов - MatroseFuchs. Публикация мода Прототип мода должен быть передан куратору для проверки до его публикации. После проверки и одобрения на публикацию мода, куратор передает разработчику мода скомпилированный и подписанный мод, который не должен быть изменен, а опубликован в том виде, котором получил от куратора. Переданный мод будет действовать 30 дней с момента передачи разработчику мода. При необходимости срок действия мода может быть продлен, для этого необходимо обратиться к куратору Мододелов. Техническая часть 1. Ресурсы. Для модов API_v2 доступен импорт модулей клиента игры, использование необфусциронных объектов, методов движка игры и модулей/библиотек Python, используемых клиентом. Так же для удобства добавлены методы аналогично API_v1.0: events.onFlashReady(func) events.onSFMEvent(func) events.onReceiveShellInfo(func) events.onBattleStart(func) events.onBattleEnd(func) events.onBattleQuit(func) events.onKeyEvent(func) events.onMouseEvent(func) events.onGotRibbon(func) events.onAchievementEarned(func) events.onBattleStatsReceived(func) events.onMarkupLoaded(func) Все остальные методы доступны обычным импортом из ModsShell. 2. Подготовка Каталог загрузки мода: Korabli\bin\<last version>\res_mods\PnFMods\<Mod_name> Main.py Основной файл мода должен содержать константу " API_VERSION = 'API_v2.0' " и индивидуальную подпись разработчика мода (будет выдана с аккаунтом разработчика мода). import os import ModsShell API_VERSION = 'API_v2.0' SIGNATURE = 'pNfJDPyi4&79_uiwpjeJwBKQHW/nt0CwAAAGNpcGhlcl90ZXh0cwABAABD/...' 3. Разработка мода. Мод разрабатывается используя доступные ресурсы клиента Main.swf Без изменений, работает как в API_v1.0. Тестовый мод прикреплен: TestMod1.zip Внимание! Данный мануал будет актуален начиная с версии 0.10.4, но заявки подать можно уже сейчас.
-
[ALL] Настраиваемые панели "DeCease Style"
MatroseFuchs ответил в тему AutoSpy в Интерфейсные модификации
Опубликовано. -
Добрый, добавим.
-
Опубликовано.
-
Функция "print" заменена на "utils.logInfo", которая так же выводит информацию в лог файл.
-
[All] Ranks numbers (иконки ранговых боев Золотой Лиги)
MatroseFuchs ответил в тему anonym_VGR4JG4hCPJY в Интерфейсные модификации
Опубликовано. -
Опубликовано.
- 1 ответ
-
- 1
-
-
[All] Cruise Control (alt) (Корабельный телеграф)
MatroseFuchs ответил в тему anonym_VGR4JG4hCPJY в Интерфейсные модификации
Опубликовано. -
Получить статистику кораблей на акке
MatroseFuchs ответил в тему Jeka_l200 в Объявления и обсуждение модификаций
Добрый день, в вашем личном кабинете есть ссылка на "Кабинет разработчика", там есть доступ к различной статистике, можно начать с этого. -
Почему , модпаки не устанавливаются в папку рес-мод .
MatroseFuchs ответил в тему anonym_hE5XWBADTpFR в Объявления и обсуждение модификаций
Добрый день! В текущей версии клиента все моды устанавливаются в каталог "World_of_Warships\bin\2744482\res_mods\0.9.7.0". Если вы устанавливаете прицел из модпака, то как правило модпаки устанавливают моды в нужную папку и вам остается после установки мода запустить клиент игры, затем в клиенте игры открыть настройки->управление->выбрать прицел->динамический прицел и выбрать из списка установленный. Если же вы устанавливаете вручную, то смотрите инструкцию по установке.- 3 ответа
-
- 3
-
-
[All] Коллекционер. Старые эмблемы.
MatroseFuchs ответил в тему anonym_VGR4JG4hCPJY в Графические модификации
Опубликовано. -
[All] Consumable Gold and Green (Иконки снаряжения)
MatroseFuchs ответил в тему anonym_VGR4JG4hCPJY в Интерфейсные модификации
Опубликовано. -
[All] Модифицированные иконки снаряжения
MatroseFuchs ответил в тему Sergbob в Интерфейсные модификации
Опубликовано. -
[All] Иконки снаряжения из ранних версий
MatroseFuchs ответил в тему BattleFrame в Интерфейсные модификации
Опубликовано. -
[25.7.0.0] Измененные риббоны (в виде флагов), компас и прицел "Тип 10"
MatroseFuchs ответил в тему ruslan3d_akmanov в Графические модификации
Опубликовано. -
проблема с обновлением модов
MatroseFuchs ответил в тему evgehaaa1991 в Объявления и обсуждение модификаций
Здравствуйте, пришлите пожалуйста мне в ЛС лог файл "C:\ProgramData\Wargaming.net\World of Warships ModStation\WorldOfWarships.ModStation.log". -
Прошу прощения, к сожалению ошибся, класс этой кнопки не доступен, тут либо пользоваться простой кнопкой "fl.controls.Button" или нарисовать свой объект кнопки, т.к. сам по себе "scaleform.clik.controls.Button;" еще не кнопка а простой DisplayObject.
-
Свойство видимости у кнопки "visible" пробовали настроить?
-
Забыл еще кое что добавить
-
Здравствуйте. Вам нужно использовать другие кнопки: import scaleform.clik.controls.Button; private var myButton:Button; private var buttonClass:Class = getDefinitionByName("button_default") as Class; # стиль кнопки как в игре myButton = new buttonClass; gameAPI.stage.addChild(myButton);
-
[All] German, Europe, Pan Asia, Argentina flags.
MatroseFuchs ответил в тему anonym_VGR4JG4hCPJY в Графические модификации
Опубликовано. -
Обновление модификаций для версии 0.9.0.0 Обновлена и доступна модификация "Счетовод" Обновлена и доступна модификация "Быстрый доступ к сигналам" Обновлена и доступна модификация "Трюм-рей v2" Обновлена и доступна модификация "Компаньон" Исправлена модификация "Расширенный чат BADoBEST" Обновление модификаций происходит при запуске ModStation и не требует переустановки самой программы, достаточно запустить программу и при необходимости применить обновление установленных ранее модификаций игры. С уважением,
-
Небольшое обновление ModStation Добавлены ссылки на видео превью для следующих модификаций: Nomogram Classic Ламповый набор '12 вариантов' Камо для FSI Amagi Камо для XJBMG Cronus Миникарта от AutoSpy Модифицированный загрузочный экран "ModStation" Ссылка доступна при наведении курсора на картинку превью. С уважением,
-
В этом руководстве разберем на простом примере как добавить и использовать технологию Unbound на сцене ModAPI. Т.к. верстка Unbound обрабатывается на стороне Flash, то разработка мода будет связана в осноном с файлами ActionScript. Итак, нам понадобится обработчик верстки и основной файл для Flash API аналогичный тому что мы уже делали в предыдущих примерах. Но сначала подготовим XML файлик с простым кодом верстки, над которым будем эксперементировать, например нарисуем квадрат в углу. test_window.xml Создадим XML файл с простенькой версткой простого белого квадрата. Полученный XML файл необходимо прогнать через утилиту "xml2as.bat", чтобы скомпилировать выражения верстки в SWF файл аналогично тому что мы делали с модификацией готовых XML. Полученный SWF файл положим в "..\res_mods\<X.X.X.X>\gui\unbound\flash" и добавим его путь в "..\gui\flash\USSExpressionsLoader.xml". Movie.as Для обработки XML файлов с версткой Unbound нам нужно создать инструмент обработки. Для этого откроем редактор AcrionScript (например FlashDevelop) и создадим новый проект. Основной Flash файл мода назовем, как это принято "Main.as", а для обработки верстки создадим другой и назавем его например "Movie.as" с которого и начнем. Наш класс обработчика Movie нам нужно унаследовать от класса "ScaleformMovie", который мы импортируем из внешней библиотеки "wows_library.swc" (см. настройку редактора), командой "import lesta.dialogs.ScaleformMovie;". В этом родительском классе у нас будет почти весь необходимый арсенал для работы с версткой Unbound. Далее объявим переменную для "элемента" верстки "private var unboundElement:UnboundElement;" и импортируем этот тип данных "import lesta.libs.unbound.UnboundElement;". Еще нам понадобится контроллер для нашего элемента, объявим и его "private var unboundController:UnboundElementController;", так же импортируем его класс "import lesta.dialogs.battle_window_controllers.UnboundElementController;". Т.к. наш класс обработчик унаследован от родительского класса, то теперь необходимо корректно описать главную функцию класса "public function Movie()". Если мы заглянем в родительский класс, то увидим что его главная функция имеет три параметра, поэтому нам тоже нужно задать эти три параметра. При создании экземпляра нашего класса мы передадим туда все необходимые параметры. Теперь в этой функции Movie() по правилам добавим вызов родительского класса (super()) и передадим ему параметры функции нашего класса. Здесь же добавим коллбэк, который будет обновлять размер сцены элемента. Следующую функцию которую мы опишем будет основная функция обработки верстки. Итак, объявим функцию, например назавем ее "public function buildUnboundApplication():void", создадим экземпляр элемента "new UnboundElement()". Теперь нашему элементу нужно указать в свойстве "config" путь до XML файл с версткой. Это можно сделать например указав прямой путь в формате "C:\\Games\\Korabli\\res_mods\\0.8.7.0\\PnFMods\\ubtest\\test_window.xml" (так указывется путь в ActionScript), или добавиф функцию поиска файла "get configPath()", это нужно из-за особенностей загрузки файлов, т.к папка с модом находится вне дериктроии загрузки файлов. После этого в свойстве элемента "rootElementId" укажем название элемента в верстке, который будет главным за отображение на сцене. Далее нам нужно создать экземпляр контроллера элемента "new UnboundElementController()", который будет ответственным за загрузку этого элемента. В свойство "clip" нужно задать экземпляр элемента "unboundElement", через метод "setDataHub" в свойство контроллера добавим экземпляр датахаба "setDataHub(dataHub)", который мы передадим при инициализации "Movie" (этот экземпляр dataHub не будет содержать данных но добавить его нужно), через метод "setUbCentral" добавим экземпляр "protoCentral" (будет содержать все байндинги), который находится в родительском классе "ScaleformMovie", далее с помощью метода "initController()" инициализируем его. Теперь зададим размер сцены элемента вызвав функцию "setStageSize"и передадим ей размеры сцены из оснвного класса Main мода, который мы опишем далее. В функции создадим екземпляр сцены из доступных компонентов "lesta.components.Stage", и зададим атрибуты компонента "width, height, scale и evStageSizeChanged", затем передадим эти размеры контроллеру элемента. И наконец добавим наш элемент на сцену "addChild(unboundElement)". Main.as В оснвном классе мода объявим две переменные - "dataHub:DataHub" и "movie:Movie" (наш обработчик верстки). В главной функции класса создадим экземпляр датахаба и объявим вызов "super();" главной функции родительского класса "ModBase" от которого мы наследуем наш "Main". Переопределим функцию "init()" родительского класса "ModBase" и опишем ее, т.к. она будет выполняться при инициализации (при необходимости можно переопределить другие функции родительского класса). В этой функции нам так же нужно вызвать переопределяемую функцию родительского класса "super.init();", теперь создадим экземпляр обработчика верстки "movie" и передадим ему требуемые параметры "new Movie(dataHub, this.stage, gameAPI)". Далее добавим экземпляр обработчка верстки в контейнер нашего мода "addChild(movie)", добавим обработчику прослушиватель события добавления его на сцену "movie.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);" и добавим ссылку нашего мода на сцену ModAPI "gameAPI.stage.addChild(this)". Опишем последнюю функцию, которая будет вызываться при загрузке обработчика на сцену "onAddedToStage(event:Event)". Чтобы Scaleform принял наш movie, нам нужно создать сущность "entity" с id сцены (id - ComponentClass.stage), компонент сцены "stageComponent" с этим же id, добавить в сущность компонент сцены, получить коллекцию сущностей с компонентами сцен и в эту коллекуию добавить нашу сущность "collection.add(entity)". Теперь мы можем использовать метод нашего обработчика для вывода результата на сцену "movie.buildUnboundApplication();" и удалим прослушиватель, т.к. он нам больше не нужен, наш элемент теперь на сцене ModAPI. Mod on unbound Скомпилируем наш проект и получившийся файл Main.swf (название конечного файла проекта можно задать в свойствах проекта) положим в папку мода. Добавим туда файл Main.py в котором напишем одну строчку "API_VERSION = 'API_v1.0'", т.к. без нее мод работать не будет. В папку с модом добавим наш подготовленный XML файл с версткой, а скомпилированный SWF файл из XML-ки положим в "gui\unbound\flash" и добавим к ней путь в "gui\flash\USSExpressionsLoader.xml". Запустим клиент игры и убедимся что наш мод обработал файл с версткой и отобразил в углу окна игры квадратик белого цвета. Добавляем данные в скоуп Разберем использование такого инструмента как контроллер, который позволяет добавлять данные в скоуп и оперировать ими, и для этого нам понадобится написать свой контроллер. Итак, создадим в проекте новый *.as файл и назавем его "MyUbController", он будет наследовать от класса "UbController". В контроллере переопределим метод "override public function init(param1:Vector.<IUbExpression>):void" чтобы в него можно было передавать вычисленые аргументы. Передадим аргументы в родительский класс "super.init(param1);" и запишем в скоуп строку, которую потом отобразим "scope.myText = "Text";". Наш контроллер готов. Добавим в основной файл "Main.as" контроллер через "import" если файл лежит в подкаталоге, или как в нашем случае контроллер лежит в одном каталоге с другими файлами проекта, тогда просто объявим контроллер "MyUbController;" чтобы инициализировать его и данные контроллера можно было использовать (если ваш контроллер находится в томже каталоге что и Main.as, то импортировать его не требуется), либо настроить ваш редактор таким образом, чтобы при сборке SWF файла он включал так же не используемые файлы проекта. Теперь добавим полученный контроллер в XML файл, добавим текстовый блок и используем данные из скоупа для отображения. Не забываем что полсле изменения верстки необходимо пересобрать ее SWF-ку, в противном случае изменения мы не увидим. Запустим игру и посмотрим на результат. Наш простенький мод готов. PS Для того чтобы перетаскивать наш отрисованный элемент и при этом не ломалась верстка, необходимо создать файл настроек "UserPrefs" в котором они будут храниться и обновляться, и соответственно написать соответствующую логику.