Участник
Пользователь
- Сообщения
- 899
- Реакции
- 150
- Помог
- 25 раз(а)
Здравствуйте.
Задался вопросом, а как же грамотно закрывать buy меню (стандартное) человеку в нужный момент, если он использует VGUI?
Сделал таким методом:
Если кратно - я засылаю мессагу игроку, которая закрывает vgui меню, и казалось бы, всё хорошо, оно закрывает меню, но есть одно но, если открывать меню на букву o (команда buyequip), то vgui меню остается, но в тоже время вызывается и новое меню (паблик ShowNewBuyMenu).
Есть ли более современные методы для открытия меню на кнопку B, если игрок использует VGUI стиль? Желательно не меняя игроку setinfo или какие-то данные. Или это нереально?
Задался вопросом, а как же грамотно закрывать buy меню (стандартное) человеку в нужный момент, если он использует VGUI?
Сделал таким методом:
C#:
new const g_szBuyCommands[][] = {
"bullpup",
"buy", "buyequip", "cl_autobuy",
"cl_rebuy", "cl_setautobuy", "cl_setrebuy", "client_buy_open"
};
new g_iMsgID_BuyClose;
public plugin_init() {
g_iMsgID_BuyClose = get_user_msgid("BuyClose");
for(new iCmd;iCmd<=charsmax(g_szBuyCommands);iCmd++)
register_clcmd(g_szBuyCommands[iCmd],"Check_OpenMenu");
}
public Check_OpenMenu(const id) {
if(rg_get_user_buyzone(id))
ShowNewBuyMenu(id);
}
public ShowNewBuyMenu(const id) {
message_begin(MSG_ONE, g_iMsgID_BuyClose, .player = id);
message_end();
// Тут код.
}
stock bool:rg_get_user_buyzone(const pIndex) {
new iSignals[UnifiedSignals];
get_member(pIndex,m_signals,iSignals);
return bool:(SignalState:iSignals[US_State] & SIGNAL_BUY);
}
Есть ли более современные методы для открытия меню на кнопку B, если игрок использует VGUI стиль? Желательно не меняя игроку setinfo или какие-то данные. Или это нереально?