Ekspoint Posted June 29, 2016 Share Posted June 29, 2016 (edited) # -*- coding: utf-8 -*- from gui.app_loader import g_appLoader from gui.Scaleform.framework import ViewTypes from gui.doc_loaders import messages_panel_reader def newReadSettings(ctx, root): data = oldReadSettings(ctx, root) data['useHtml'] = True return data oldReadSettings = messages_panel_reader._readSettings messages_panel_reader._readSettings = newReadSettings def showMessage(type, message, color='#FFD700'): ctrl = g_appLoader.getDefBattleApp() if ctrl is not None: messages = '<font color="%s">%s</font>' % (color, message) battle_page = ctrl.containerManager.getContainer(ViewTypes.VIEW).getView() if type == 'VehicleMessages': return battle_page.components['battle' + type].as_showPurpleMessageS(None, messages) if type == 'VehicleErrorMessages': return battle_page.components['battle' + type].as_showPurpleMessageS(None, messages) if type == 'PlayerMessages': return battle_page.components['battle' + type].as_showSelfMessageS(None, messages) showMessage('PlayerMessages', u'Тестовое сообщение над мини картой') showMessage('VehicleMessages', u'Тестовое сообщение над панелью снарядов') showMessage('VehicleErrorMessages', u'Тестовое сообщение в центре над прицелом, зелёного цвета', '#80D639') Edited July 2, 2016 by Ekspoint 1 @ Quote Link to comment Short link Share on other sites More sharing options...
spoter Posted July 1, 2016 Share Posted July 1, 2016 (edited) Пока только такое решение нашёл: from gui.battle_control import g_sessionProvider from gui.doc_loaders import messages_panel_reader def newReadMessages(ctx, root): data = oldReadMessages(ctx, root) data['CUSTOM_MESSAGE'] = ('%(message)s', ('purple', 'purple')) return data def newReadSettings(ctx, root): data = oldReadSettings(ctx, root) data['useHtml'] = True return data oldReadMessages = messages_panel_reader._readMessages oldReadSettings = messages_panel_reader._readSettings messages_panel_reader._readMessages = newReadMessages messages_panel_reader._readSettings = newReadSettings def showMessage(message, color='#FFD700', type=0): ctrl = p__g_sessionProvider.shared.messages if ctrl is not None: if type ==1: return ctrl.onShowVehicleMessageByKey('CUSTOM_MESSAGE', {'message': '<font color="%s">%s</font>' % (color, message)}) if type == 2: return ctrl.onShowVehicleErrorByKey('CUSTOM_MESSAGE', {'message': '<font color="%s">%s</font>' % (color, message)}) return ctrl.onShowPlayerMessageByKey('CUSTOM_MESSAGE', {'message': '<font color="%s">%s</font>' % (color, message)}) showMessage('Тестовое сообщение над мини картой') showMessage('Тестовое сообщение над панелью снарядов', type=1) showMessage('Тестовое сообщение в центре над прицелом, зелёного цвета', color='#80D639', type=2) Но так-то не искал особо. Кстати, два цвета указываются для обычного режима и второй для режима цветовой слепоты Edited July 1, 2016 by spoter 2 @ Quote Link to comment Short link Share on other sites More sharing options...
IzeBerg Posted July 1, 2016 Share Posted July 1, 2016 (edited) from gui.Scaleform.framework import ViewTypes from gui.app_loader import g_appLoader battle = g_appLoader.getDefBattleApp() battle_page = battle.containerManager.getContainer(ViewTypes.VIEW).getView() battle_page.components['battleVehicleMessages'].as_showGreenMessageS(None, 'Text') # battleVehicleMessages, battleVehicleErrorMessages, battlePlayerMessages Edited July 1, 2016 by IzeBerg 4 @ Quote Link to comment Short link Share on other sites More sharing options...
spoter Posted July 1, 2016 Share Posted July 1, 2016 Разница в том что у меня можно HTML во все поля использовать, т.е. цвета, картинки и т.д. и т.п. но как вариант, тоже неплохо! @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted July 1, 2016 Author Share Posted July 1, 2016 @spoter, спс @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted July 2, 2016 Author Share Posted July 2, 2016 обновил шапку 1 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted August 3, 2016 Share Posted August 3, 2016 (edited) Да, блин, через одно известное место как всегда сделали. Хрен подкопаешься по-нормальному. Либо подключать свое сообщение к приватному атрибуту, костыль одним словом, либо самому резолвить методы... Картошка как всегда. import gui.app_loader import gui.Scaleform.daapi.view.battle.shared.messages.fading_messages def showMessageOnPanel(msgType, msgKey, msgText, msgColor): if gui.app_loader.g_appLoader.getDefBattleApp() is not None and msgType in ['Vehicle', 'VehicleError', 'Player']: panel = gui.app_loader.g_appLoader.getDefBattleApp().containerManager.getContainer(ViewTypes.VIEW).getView().components['battle' + msgType + 'Messages'] methods = gui.Scaleform.daapi.view.battle.shared.messages.fading_messages._COLOR_TO_METHOD if msgColor in methods: getattr(panel, methods[msgColor])(msgKey, msgText) return showMessageOnPanel('Vehicle', None, 'Message!', 'purple') Edited August 3, 2016 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
l_zubr Posted November 15, 2016 Share Posted November 15, 2016 from gui.Scaleform.framework import ViewTypes from gui.app_loader import g_appLoader battle = g_appLoader.getDefBattleApp() battle_page = battle.containerManager.getContainer(ViewTypes.VIEW).getView() battle_page.components['battleVehicleMessages'].as_showGreenMessageS(None, 'Text') # battleVehicleMessages, battleVehicleErrorMessages, battlePlayerMessages Как я долга это искал, спасибо бро @ Quote Link to comment Short link Share on other sites More sharing options...
ahwa Posted February 3, 2017 Share Posted February 3, 2017 is 0.9.17.3 ERROR: g_appLoader.getDefBattleApp object has no attribute 'containerManager' @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted February 4, 2017 Share Posted February 4, 2017 @ahwa, наверное, скобки (вызов) пропустил, не? @ Quote Link to comment Short link Share on other sites More sharing options...
ahwa Posted February 5, 2017 Share Posted February 5, 2017 Каким образом? @ 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.