Jump to content
Korean Random

battleMessagePanel 9.15.1


Recommended Posts


# -*- 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 by Ekspoint
  • Upvote 1
Link to comment
Short link
Share on other sites

Пока только такое решение нашёл:

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 by spoter
  • Upvote 2
Link to comment
Short link
Share on other sites


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 by IzeBerg
  • Upvote 4
Link to comment
Short link
Share on other sites


 

Разница в том что у меня можно HTML во все поля использовать, т.е. цвета, картинки и т.д. и т.п.

но как вариант, тоже неплохо!

Link to comment
Short link
Share on other sites

  • 1 month later...

Да, блин, через одно известное место как всегда сделали.

Хрен подкопаешься по-нормальному.

Либо подключать свое сообщение к приватному атрибуту, костыль одним словом, либо самому резолвить методы...

Картошка как всегда.

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 by GPCracker
Link to comment
Short link
Share on other sites

  • 3 months later...
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

Как я долга это искал, спасибо бро

Link to comment
Short link
Share on other sites

  • 2 months later...

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...