Jump to content
Korean Random

VasyaPRO_2014

User
  • Posts

    313
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by VasyaPRO_2014

  1. Это словарьСоответсвенно BigWorld.player().arena.vehicles.values() список из значений этого словаря. По нему можно обращаться по индексу: BigWorld.player().arena.vehicles.values()[0] Либо пройтись циклом: for player in BigWorld.player().arena.vehicles.values(): # Здесь player - тоже словарь, и у него есть разные ключи среди которых name и vehicleType print player['name'], # Player name print player['vehicleType'].type.userString # Vehicle name
  2. Весело тут у вас. Так уже ведь. Так можно с любым скриптом под протектором ориона сделать? (не с обфусцированым байткодом)
  3. Раньше было примерно так: "playerNameFull": { "left": "<font color='#{colorBattles}'>{kb}</font> {nick}", "right": "{nick} <font color='#{colorBattles}'>{kb}</font>", "width": 0 // 0 - ширина по умолчанию }, "vehicleName": { "left": "<font color='#{colorEFF}'>{eff}</font> <font color='#{colorWinrate}'>{winrate:.0f}%</font>", "right": "<font color='#{colorWinrate}'>{winrate:.0f}%</font> <font color='#{colorEFF}'>{eff}</font>", "width": 0 }, скриншот
  4. Да вот так должно работать, единственное, что макрос default_color пока не работает и <br/> в конце теперь не нужен. Пробуйте как-то так: "<font color='#{colorWGR}'>{wgr}</font> <font color='#{colorBattles}'>{kb}</font> {nick}"
  5. в playersPanel/playerNameCut. Как то так: // Текстовое поле с никнеймом игрока в средних (medium) ушах "playerNameCut": { "left": "<font size='12' face='Consolas' color='#{colorBattles}'>{kb:<3}</font> <font color='{colorEFF}'>{nick:.16}</font>", "right": "<font color='{colorEFF}'>{nick:.16}</font> <font size='12' face='Consolas' color='#{colorBattles}'>{kb:>3}</font>", "width": 140 },
  6. Спасибо, исправил. Это тоже исправил. StatsInBattle_v2.1_test4.zip
  7. Так добавьте процент побед в конфиге. Макрос {winrate}. Доделал маркеры, пока сделал как до 0.9.15.1 т.е. можно просто редактировать текст в полях под название танка и никнейм (не html), в будущем хочу сделать возможность добавлять свои поля, с html-текстом нужно только грамотно организовать передачу данных в AS. Ещё сделал выключалку для переключателя режимов ушей мишью и добавил настройку положения ушей по вертикали. Владельцы ноутбуков и маленьких мониторов оценят:) StatsInBattle_v2.1_test3.zip Если есть какие баги вы пишите, а то я сам могу не заметить. У меня пока вроде ещё ничего не вылетало.
  8. @wers, Установите шрифт Consolas либо поменяйте на любой другой в конфиге. Сделал загрузку в бой: StatsInBattle_v2.1_test2.zip
  9. В общем нормально сделать мод я смогу ещё не скоро, так что держите пока тестовую версию StatsInBattle_v2.1_test1.zip. Мод может работать нестабильно, стать причиной вылетов клиента и прочих радостей, просьба сообщать о всех найденных ошибках прилагая python.log. Из изменений: теперь в playersPanel просто три текстовых поля, а в текстовых полях из tab теперь нормально работает разноцветный текст. И ещё ширину текстовых полей теперь можно настроить в конфиге (почему бы и нет). Сразу хочу отметить, что без редактирования battle.swf теперь никак (по крайней мере если нам нужна поддержка html в ушах) из-за чего теперь: 1. Мне придётся каждый раз когда вг внесут изменения в battle.swf заново влезать в эти дебри, что мне не очень то и нравится. 2. Если ещё кому то придётся патчить battle.swf тогда моды окажутся несовместимы. Маркеры и загрузка пока не работают. Все сделано ногами, т.к. процесс редактирования ActionScript у меня происходит ооооочень медленно и неудобно. Во всяком случае большое спасибо - без него у меня бы не получилось и то что мы имеем сейчас. Тестируем;)
  10. @VGS_13, Тут дело в том, что доказать в ЦПП, что этот игрок использует запрещенные моды, ссылаясь на неофициальный ресурс, в котором любой пользователь может зарегистрироваться под любым ником, вероятнее всего не получится. А если и получится, то это означает, что любого честного игрока можно забанить таким способом, что ещё хуже.
  11. Ну бред же, такой скрин легко подделать, и банить за такое никто не будет.Более того это может быть любой мод и далеко не факт что он показывает на миникарте то, что вы подумали.
  12. Там у вг всё переделано, нужно много чего заново переписывать, да ещё и скорее всего без патча battle.swf не обойтись, из за чего мод нужно будет обновлять после каждого патча, + с совместимостью с другими модами могут возникнуть проблемы. Зато можно полностью настроить html-текст, а также ширину (что будет особенно полезно в средних ушах) для любого текстового поля. Пока сделал только уши и таб, и то немного костыльно получилось. Не уверен, что успею всё доделать к релизу А это процент боев на арте:) макрос {spg_percent} Очень интересно что в новом патче сделают разработчики XVM, если будет сильное улучшение производительности, пожалуй перейду на него, уж очень хочется потестить новые плюшки, которые я пропустил, такие как кастомные текстовые поля, динамические макросы, xmqp и прочая годнота.
  13. А зачем тогда вообще все остальные флешки сделали? Чую после обновы начнутся огромные проблемы с совместимостью модов.
  14. У картошки это делается в скрипте scripts\client\avatarinputhandler\control_modes.pyc примерно 850 строка. Там у класса SniperControlMode (который отвечает за снайперский режим) есть методы enable и disable, которые вызываются при входе в снайперский режим и выходе из него соответственно. Вот их содержимое: def enable(self, **args): # При входе в снайперский режим super(SniperControlMode, self).enable(**args) SoundGroups.g_instance.changePlayMode(1) self._cam.enable(args['preferredPos'], args['saveZoom']) self.__binoculars.enabled = True self.__binoculars.setEnableLensEffects(SniperControlMode._LENS_EFFECTS_ENABLED) BigWorld.wg_enableTreeHiding(True) # Включить прозрачность кустов BigWorld.wg_setTreeHidingRadius(15.0, 10.0) # Установиить дистанцию прозрачности на 15м, что означает второй аргумент я не знаю) TriggersManager.g_manager.activateTrigger(TRIGGER_TYPE.SNIPER_MODE) g_postProcessing.enable('sniper') desc = BigWorld.player().vehicleTypeDescriptor isHorizontalStabilizerAllowed = desc.gun['turretYawLimits'] is None self._cam.aimingSystem.enableHorizontalStabilizerRuntime(isHorizontalStabilizerAllowed) return def disable(self, isDestroy=False): # При выходе из снайперского режима super(SniperControlMode, self).disable() self.__binoculars.enabled = False BigWorld.wg_enableTreeHiding(False) # Отключить прозрачность кустов. g_postProcessing.disable() if TriggersManager.g_manager is not None: TriggersManager.g_manager.deactivateTrigger(TRIGGER_TYPE.SNIPER_MODE) return Редактировать его на прямую не советую, лучше создайте свой скрипт с примерно следующим содержимым: import BigWorld # Импортируем модуль с нужными нам функциями from AvatarInputHandler.control_modes import SniperControlMode # Импортируем нужный нам класс from Avatar import PlayerAvatar # И ещё это импортируем чтобы прозрачность была включена с начала боя radius = 25.0 # Создадим переменную для хранения радиуса прозрачности растительности # Сохраняем оригинальные методы old_enable = SniperControlMode.enable # Вызывается при входе в снайперский режим old_disable = SniperControlMode.disable # Вызывается при выходе из снайперского режима old_onInitStepCompleted = PlayerAvatar._PlayerAvatar__onInitStepCompleted # Вызывается в начале боя, причем нескольуо раз, мы подменяем его ибо в нем картошка тоже отключает прозрачность # Создаем свои def new_enable(self, **args): old_enable(self, **args) # Вызываем оригинальный метод BigWorld.wg_setTreeHidingRadius(radius,10.0) # Устанавливаем дистанцию прозрачности def new_disable(self, isDestroy=False): old_disable(self, isDestroy) BigWorld.wg_enableTreeHiding(True) # Вновь включаем прозрачность т.к. картошка уже успела выключить:) def new_onInitStepCompleted(self): # Сразу после загрузки в бой old_onInitStepCompleted(self) BigWorld.wg_enableTreeHiding(True) # И тут тоже включим ибо картоха опять выключила BigWorld.wg_setTreeHidingRadius(radius,10.0) # И установим сразу дистанцию # Заменяем оригинальные методы на свои SniperControlMode.enable = new_enable SniperControlMode.disable = new_disable PlayerAvatar._PlayerAvatar__onInitStepCompleted = new_onInitStepCompleted Потом компилируем, в название добавляем mod_ и закидываем в res_mods/версия/scripts/client/gui/mods.Вот, что у меня получилось scripts.zip З.Ы. Это конечно далеко не самый лучший способ, но он не ломает другие моды и не требует переписывания под каждый патч. З.Ы.Ы. Все действия вы производите на свой страх и риск, я не могу гарантировать, что вас не забанят за читерство:)
  15. Это можно сделать из питона примерно таким кодом: BigWorld.wg_enableTreeHiding(True) BigWorld.wg_setTreeHidingRadius(<Здесь дистанция>, 0)
  16. Спасибо большое! Нашёл маленькую опечатку: Ещё хоткеи немного странно работают: после запуска программы тот же + на нампаде уже не работает (громкость звука увеличивается, но написать "+" к примеру в текстовом редакторе уже не выйдет) - неудобно немного.
  17. Мда. Ну вот почему вот так не работает: from gui.Scaleform.framework import ViewTypes from gui.app_loader.loader import g_appLoader playersPanel = g_appLoader.getDefBattleApp().containerManager.getContainer(ViewTypes.VIEW).getView().components['playersPanel'] print playersPanel.flashObject.listLeft.getItemsByIndex(3)._listItem.playerNameFullTF.htmlText А вот так работает: from gui.Scaleform.framework import ViewTypes from gui.app_loader.loader import g_appLoader playersPanel = g_appLoader.getDefBattleApp().containerManager.getContainer(ViewTypes.VIEW).getView().components['playersPanel'] PlayersPanelListItemHolder = playersPanel.flashObject.listLeft.getItemsByIndex(3) print PlayersPanelListItemHolder._listItem.playerNameFullTF.htmlText Столько времени тупил, пока случайно не исправил. И то не понимаю как оно работает :D. , Ещё раз спасибо большое за помощь. И ещё последний вопрос (надеюсь этот уж точно последний:D): Все эти манипуляции с asasm нужно будет делать каждый раз когда картоха захочет что-то поменять во флешке? И что с совместимостью с другими модами, если ещё кому понадобится изменить что-то battle.swf? Использовать два мода что меняют battle.swf без танцев с asasm не получится?
  18. Ясно, спасибо. И наконец: делаю я playersPanel.flashObject.listLeft.getItemsByIndex(1).listItem, по идее должен получить экземпляр класса PlayersPanelListItem, в котором уже находятся заветные textField'ы: playerNameFullTF, playerNameCutTF и vehicleTF. Но нет, в нем нет таких атрибутов не смотря но то, что все они public. Я опять что-то делаю не так?
  19. И как мне перевести читабельный as код в asasm?
  20. Жесть. Ну его нафиг этот флеш)
  21. , Спасибо. Единственное что не совсем понятно как редактировать .asasm файлы, но это фигня. Как обратится к элементам вектора из питона?
×
×
  • Create New...