Vit_ amin
Добрая душа
- Сообщения
- 1,525
- Реакции
- 688
Приветствую, кто нибудь из скриптеров работал с ValveMenu (я имею в виду KeyValue меню через ESC), имеется кусок кода:
Вот только вообще не ясно как отловить когда что-то нажали и тому подобное.
Единственное, что я придумал, это использовать setinfo и через OnClientSettingsChanged ловить
Да вот только при заходе игрока проверяется/вызывается OnClientSettingsChanged (который мне не нужен), я пытался в строке:
Использовать в конце заглушку по типу:
Но OnClientSettingsChanged видит только последнюю выполненную setinfo в одном стоке.
Как быть то товарищи ?
--- Добавлено позже ---
Решение:
Создать "фейковую" консольную команду
И через неё уже всё проверять
PHP:
void OpenESCMenu(int iClient, int iOption)
{
char szBuffer[192];
SetGlobalTransTarget(iClient);
KeyValues hKV = new KeyValues("NightVision_Menu");
hKV.SetNum("time", 20);
hKV.SetNum("level", 1);
switch (iOption)
{
case 0, 1:
{
hKV.JumpToKey("1", true);
hKV.SetString("command", "setinfo __color Default; z_nightvision_r 255; z_nightvision_g 192; z_nightvision_b 128; cancelselect");
FormatEx(szBuffer, sizeof(szBuffer), "%t", "NightVision_DefaultColor");
hKV.SetString("msg", szBuffer);
...
}
...
Единственное, что я придумал, это использовать setinfo и через OnClientSettingsChanged ловить
Да вот только при заходе игрока проверяется/вызывается OnClientSettingsChanged (который мне не нужен), я пытался в строке:
PHP:
hKV.SetString("command", "setinfo __color Default; z_nightvision_r 255; z_nightvision_g 192; z_nightvision_b 128; cancelselect");
PHP:
setinfo __color \"\"
Как быть то товарищи ?
--- Добавлено позже ---
Решение:
Создать "фейковую" консольную команду
PHP:
RegConsoleCmd("__test_command", "", "Test Command is Used for buffer between ValveMenu and Server CallBack");
И через неё уже всё проверять
Последнее редактирование: