Jump to content
Korean Random
Ekspoint

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

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post

Short link
Share on other sites

 

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

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

Share this post


Link to post

Short link
Share on other sites

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

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

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

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

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

Share this post


Link to post

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

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

Share this post


Link to post

Short link
Share on other sites

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...