AtotIK Posted July 23, 2016 Share Posted July 23, 2016 (edited) Ну как говорится - доберемся - пошуршим. @GPCracker, как успехи? Есть хорошие новости? Edited July 23, 2016 by AtotIK @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 24, 2016 Author Share Posted July 24, 2016 (edited) GPCracker, как успехи? Есть хорошие новости?Ну они там и намутили. Уже думаю, а не сходить ли до магаза за пивом...Пока только понял, что они перенесли все новые классы в DAAPI секцию, и запилили судя во всему какое-то наследование. Пытаюсь разобраться в структуре ихнего кода. Они миникарту раздолбали на дофига классов... В общем и целом, написано довольно неплохо, но раскурить быстро не получится. Изменились сильно сами алгоритмы. Плюс потребуется время разобраться в структуре, как найти конструктора и что ему сказать. В общем, посмотрел я классы. Даже без углубленного анализа и поиска хвостов понятно, что если делать без костылей (а коих я делать не хочу), то только для адекватной обработки всего этого дела на питоне (чтобы без конфликтов на уровне IDшников и т.д.) потребуется как минимум создать пару классов. Это не говоря уже о том, что я еще даже не докопался до непосредственно вызовов миникарты и не разбирался в синтаксисе обращений. Походу дела придется еще и карту декомпилить, чтобы понять что с той стороны происходит. Одно могу сказать точно - это не один патч пилили втихую, просто "очень неожиданно выкатили". Объем работы очень большой, и чтобы в этом всем разобраться придется достаточно приличное количество времени в этом порыться. "Запилить обнову по-быстрому" однозначно не получится. Upd 1. Докопался таки до вызовов флешки (ну насколько я понимаю, это оно) def _addEntry(self, symbol, container, matrix = None, active = False, transformProps = settings.TRANSFORM_FLAG.FULL): return self._parentObj.addEntry(symbol, container, matrix=matrix, active=active, transformProps=transformProps) def _delEntry(self, entryID): self._parentObj.delEntry(entryID) def _invoke(self, entryID, name, *args): self._parentObj.invoke(entryID, name, *args) def _move(self, entryID, container): self._parentObj.move(entryID, container) def _setMatrix(self, entryID, matrix): self._parentObj.setMatrix(entryID, matrix) def _setActive(self, entryID, active): self._parentObj.setActive(entryID, active)Аргументы совсем другие. Из старого осталось только МПшка, но без нее никак. Все остальное пока не ясно. Upd 2. Нашел один "быстрый хвост" но он привел, как и в ангаре, на блок сеттингов UI. В текущей организации мод просто вызывает миникарту, в новой придется работать с поднятием класса и подпиской на ивенты. Напрямую получить адрес вьюшки - это тот еще костыль. Одно время дебажил что-то в ангаре, делал так - на WST/Орионе такое норм делать, но не в продакшне. Так что быстрой обновы не получится, а нормальную делать - порядке очереди. Планов много - времени мало. Edited July 24, 2016 by GPCracker 4 @ Quote Link to comment Short link Share on other sites More sharing options...
ShuraBB Posted July 24, 2016 Share Posted July 24, 2016 >Они миникарту раздолбали на дофига классов...Вот вот, я тоже Оооочень "обрадоавлся" :-( @ Quote Link to comment Short link Share on other sites More sharing options...
AtotIK Posted July 24, 2016 Share Posted July 24, 2016 пилили втихую, просто "очень неожиданно выкатили"В 9.17 по плану было. Но вот почему именно сейчас им вожжа под хвост попала - непонятно. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 24, 2016 Share Posted July 24, 2016 (edited) Напрямую получить адрес вьюшки - это тот еще костыль.? from gui.Scaleform.framework import ViewTypes from gui.Scaleform.genConsts.BATTLE_VIEW_ALIASES import BATTLE_VIEW_ALIASES from gui.app_loader.loader import g_appLoader minimap = g_appLoader.getDefBattleApp().containerManager.getContainer(ViewTypes.VIEW).getView().components[BATTLE_VIEW_ALIASES.MINIMAP] print minimap # <gui.Scaleform.daapi.view.battle.classic.minimap.ClassicMinimapComponent object at 0x30F53AD0>или так: from gui.shared import events, g_eventBus, EVENT_BUS_SCOPE from gui.Scaleform.genConsts.BATTLE_VIEW_ALIASES import BATTLE_VIEW_ALIASES def onComponentRegistered(event): if event.alias == BATTLE_VIEW_ALIASES.MINIMAP: minimap = event.componentPy g_eventBus.addListener(events.ComponentEvent.COMPONENT_REGISTERED, onComponentRegistered) Edited July 24, 2016 by ShadowHunterRUS 2 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 24, 2016 Author Share Posted July 24, 2016 (edited) from gui.Scaleform.framework import ViewTypes from gui.Scaleform.genConsts.BATTLE_VIEW_ALIASES import BATTLE_VIEW_ALIASES from gui.app_loader.loader import g_appLoader minimap = g_appLoader.getDefBattleApp().containerManager.getContainer(ViewTypes.VIEW).getView().components[BATTLE_VIEW_ALIASES.MINIMAP] print minimap # <gui.Scaleform.daapi.view.battle.classic.minimap.ClassicMinimapComponent object at 0x30F53AD0> Интересное предложение. Однако вопрос с тем, что там за новые параметры передаются, остается открытым.Никто случаем в этом еще не копался? У меня тестового нет, а выкачивать тут инет не позволяет, да и некуда пока. Кстати, может кто скинуть флешку тестовой миникарты? Edited July 24, 2016 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 24, 2016 Share Posted July 24, 2016 (edited) Никто случаем в этом еще не копался?кто-то из xvm копался) Edited July 24, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 24, 2016 Author Share Posted July 24, 2016 кто-то из xvm копался)А они там у себя ничего не постили? А то может кто ссылочкой поделится? @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 24, 2016 Share Posted July 24, 2016 Кстати, может кто скинуть флешку тестовой миникарты? minimap.swf А они там у себя ничего не постили? https://bitbucket.org/XVM/xvm/src/18b2b38bc17ece9210dba1a884688d5b7f6ae0fa/src/xpm/xvm_battle/minimap.py?at=9.15.1&fileviewer=file-view-default 1 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 24, 2016 Author Share Posted July 24, 2016 , а флешку они тоже весело запилили... Кстати, тут попутно еще некоторые моменты проглядываются. С этой обновой возможно таки получится запилить смену заднего фона миникарты в реалтайме (ну я имею ввиду саму карту). Ну скажем запилить по хоткею тепловую карту высот, тепловую карту разьездов и т.д. Была раньше такая идея, но раньше менять карту после создания миникарты было нельзя. М.б. сейчас можно будет... Надо будет как-нить затестить, как разберусь что к чему. def as_setBackgroundS(self, path): """ :param path: :return : """ if self._isDAAPIInited(): return self.flashObject.as_setBackground(path) self.as_setBackgroundS(_IMAGE_PATH_FORMATTER.format(arenaVisitor.type.getMinimapTexture())) public function as_setBackground(param1:String) : void { this.background.source = param1; } public var background:UILoaderAlt = null;тут так-то флеш-объект вызывается, а не Scaleform компонент как раньше.Обнова однозначно положительная, но чтобы с ней разобраться нужно время. У ХВМщиков там везде TODO стоит, тоже, видно "раскуривают" еще... Из системы вызовов кое-чего таки проглядывается... Часть вызовов идет напрямую на флешку, но подвижные элементы создаются через Scaleform компонент. Раскурить логику не так-то просто... 1 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 24, 2016 Share Posted July 24, 2016 Ну скажем запилить по хоткею тепловую карту высоткоторая в .cdata? Или отдельный пак в res_mods хранить? @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 24, 2016 Author Share Posted July 24, 2016 которая в .cdata? Или отдельный пак в res_mods хранить?Я не особо шарю в структуре ресурсов игры, но как пример могу привести @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 24, 2016 Share Posted July 24, 2016 как пример могу привестижаль эту карту... @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 24, 2016 Author Share Posted July 24, 2016 (edited) жаль эту карту...Этому билду уже несколько патчей. Как основная, даже в наложении на нормальную, оно не очень, а менять карту в бою без пересборки UI раньше было нельзя. Потому на тему и подзабили на некоторое время. Первый тестовый заход для всех желающих потестить. Можно запускать на реплее, по логике, тоже должно нормально работать, если я нигде не накосячил. Билд тестовый, за пределы темы не выносим, пока не отдебажим. Оптимизация, понятное дело нулевая, основная цель - хотфикс. Эта тестовая версия, и работает некорректно, нужна рабочая - ищите ниже. MinimapGunMarkers_0.9.15.1CT_alpha_#1.zip З.Ы. Я это вообще не запускал, ибо у меня просто нет тестового клиента. Так что не бомбим :) Да, забыл сказать - конфиг не забудьте! В дефолте для противников отключено. Edited July 24, 2016 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 24, 2016 Share Posted July 24, 2016 (edited) showMessageOnPanelоно сломано. сейчас так -> http://www.koreanrandom.com/forum/topic/32527-/ from Account import _readClientServerVersionтоже сломано. теперь так: from account_shared import readClientServerVersion Edited July 24, 2016 by ShadowHunterRUS 1 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 24, 2016 Author Share Posted July 24, 2016 , да хрен с ним. Это побочка. Пока руки не дошли. Маркеры-то работают? @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 24, 2016 Share Posted July 24, 2016 Маркеры-то работают?у меня не заработали @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 24, 2016 Author Share Posted July 24, 2016 (edited) у меня не заработалиОшибки есть кроме этих? Вобщем, залатал что ты сказал, версию поправил, сообщение закомментил просто. Эта тестовая версия, и работает некорректно, нужна рабочая - ищите ниже. MinimapGunMarkers_0.9.15.1CT_alpha_#2.zip Edited July 24, 2016 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 24, 2016 Share Posted July 24, 2016 (edited) Ошибки есть кроме этих? Вобщем, залатал что ты сказал, версию поправил, сообщение закомментил просто. MinimapGunMarkers_0.9.15.1CT_alpha_#2.zip По KEY_M миникарта исчезает вообще. Стоп. Это и в чистом клиенте так) Edited July 24, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 24, 2016 Author Share Posted July 24, 2016 По Ctrl + M миникарта исчезает вообще. Лог пустой.Возможно у картохи хоткей на миникарту срабатывает. Хоткеи это все побочка. Просто включи все фильтры в конфиге, поставь enable activate True. Чтобы сразу по логике работало. Нужно маркеры отдебажить, остальное потом. @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.