Закину сюда, вдруг кому то пригодится.
Нашлась возможность показывать какие-нибудь всплывающие окна с меню и даже читать с них информацию прямо из скрипта.
Делается это следующей функцией:
Код
SendStringMessage("WXMsg.CreatePopUp","WXNETP.Chat")
, где WXNETP.Chat - меню, которое хотим вывести на экран.
Таким образом можно добавить в твик MENUTWKXINGAME свои менюхи и отобразить в любой нужный момент. Скорее всего таким же образом можно и выводить какие то виджеты на экран, например очки команд в определенном режиме / деньги / лучшего игрока на момент игры и т.п.
Возможно и прочитать из скрипта клик по кнопке в таком меню. Для этого добавляем в твике свою текстовую/числовую строку для записи значения кнопки (Обзовем TXT.MyValue), а на саму кнопку вешаем:
Код
<Messages_Selected>WXMsg.SetDataResource^TXT.MyValue^4</Messages_Selected>
<Messages_Selected>WXMsg.KillPopUpNamed$WXFEP.MyMenu</Messages_Selected>
<Messages_Selected>Game.BriefingDialogNowOff</Messages_Selected>
Таким образом мы передали в нашу строку значение 4, закрыли нашу менюху и запустили встроенную в игру функцию Game.BriefingDialogNowOff, чтобы узнать о моменте нажатия кнопки.
Далее в скрипте отслеживаем событие нажатия и читаем нашу строку:
Код
function Game_BriefingDialogNowOff()
local option = GetData("TXT.MyValue")
Message ("Menu click: "..option)
end
Но! Если скрипт по нажатию кнопки вешать функции, которые влияют на состояние игры, при сетевой игре это приведет к рассинхрону, т.к. нажатие кнопки не передастся другим игрокам. Если найду, как это решить - дополню тему.