Убрать меню с выбором класса

Сообщения
21
Реакции
7
Привет всем, какием образом можно сделать что бы при выборе КТ или ТТ сразу кидало за команду, а не выводило еще меню с выбором класса?

Код:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>

public plugin_init()
{
register_plugin("Connect Menu", "1.2", "Realution");

register_clcmd("chooseteam", "ShowMenu")

register_message(96, "MessageShowMenu");
register_message(114, "MessageVGUIMenu");

register_menucmd(register_menuid("Team Menu"), MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0, "HandleMenu");
}

public ShowMenu(id)
{
new szMenu[512], iLen = formatex(szMenu, charsmax(szMenu), "\yМеню Выбора Команды:^n^n"), iKeys = MENU_KEY_0;
new iNumTe = get_teamplayersnum(CS_TEAM_T), iNumCt = get_teamplayersnum(CS_TEAM_CT), CsTeams:iTeam = cs_get_user_team(id);
if(iNumTe > iNumCt) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \dТеррористы^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \wТеррористы^n");
iKeys |= MENU_KEY_1;
}
if(iNumCt > iNumTe) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \dКонтр Террористы^n^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[2] \wКонтр Террористы^n^n^n");
iKeys |= MENU_KEY_2;
}
if(CS_TEAM_UNASSIGNED < iTeam < CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \dСлучайный Выбор^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \yСлучайный Выбор^n^n");
iKeys |= MENU_KEY_5;
}
if(iTeam == CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[6] \dНаблюдение^n^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[6] \wНаблюдатели^n");
iKeys |= MENU_KEY_6;
}
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[0] \wВыход");
return show_menu(id, iKeys, szMenu, -1, "Team Menu");
}

public HandleMenu(id, iKey)
{
switch(iKey)
{
case 0:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "1");
}
case 1:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "2");
}
case 2:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "3");
}
case 4:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "5");
}
case 5:
{
user_kill(id, 1);
engclient_cmd(id, "jointeam", "6");
}
}
return PLUGIN_HANDLED;
}

public MessageShowMenu(iMsgId, iMsgDest, iReceiver)
{
static szArg4[20]; get_msg_arg_string(4, szArg4, charsmax(szArg4));
if(equal(szArg4, "#Team_Select", 12) || equal(szArg4, "#IG_Team_Select", 15) || equal(szArg4, "#IG_VIP_Team_Select", 19))
{
set_pdata_int(iReceiver, 205, 0);
return ShowMenu(iReceiver);
}
return PLUGIN_CONTINUE;
}

public MessageVGUIMenu(iMsgId, iMsgDest, iReceiver)
{
if(get_msg_arg_int(1) == 2)
{
set_pdata_int(iReceiver, 205, 0);
return ShowMenu(iReceiver);
}
return PLUGIN_CONTINUE;
}

get_teamplayersnum(const CsTeams:iTeam)
{
static players[32], iNum;
get_players(players, iNum, "che", iTeam == CS_TEAM_T ? "TERRORIST" : "CT");
return iNum;
}
 
Сообщения
515
Реакции
459
Предупреждения
17
Помог
8 раз(а)
Код:
case 0:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "1");
engclient_cmd(id, "joinclass", "6");

}

Если так
 
Сообщения
515
Реакции
459
Предупреждения
17
Помог
8 раз(а)
YahOoo, если реч идет о VGUI меню то можно пробовать его блокнуть:
Код:

const _VGUI_Menu_Team = 2
const _VGUI_Menu_Class_T = 26
const _VGUI_Menu_Class_CT = 27

const IsTargetMenu = ((1 << _VGUI_Menu_Team)|(1 << _VGUI_Menu_Class_T)|(1 << _VGUI_Menu_Class_CT))

const VGUIMenu_MenuType = 1
const m_iMenu = 205

public MessageVGUIMenu(iMsgId, iMsgDest, iReceiver)
{
if(IsTargetMenu & (1 << get_msg_arg_int(VGUIMenu_MenuType)))
{
set_pdata_int(iReceiver, m_iMenu, 0);
ShowMenu(iReceiver);

return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE;
}
 
Сообщения
94
Реакции
14
Помог
5 раз(а)
Vaqtincha, Добавил этот код в плагин в самый низ, не компилируется, или как правильно сделать?
 
Сообщения
94
Реакции
14
Помог
5 раз(а)
Vaqtincha,
Код:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>

public plugin_init()
{
register_plugin("Connect Menu", "1.2", "Realution");

register_clcmd("chooseteam", "ShowMenu")

register_message(96, "MessageShowMenu");
register_message(114, "MessageVGUIMenu");

register_menucmd(register_menuid("Team Menu"), MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0, "HandleMenu");
}

public ShowMenu(id)
{
new szMenu[512], iLen = formatex(szMenu, charsmax(szMenu), "\yМеню Выбора Команды:^n^n"), iKeys = MENU_KEY_0;
new iNumTe = get_teamplayersnum(CS_TEAM_T), iNumCt = get_teamplayersnum(CS_TEAM_CT), CsTeams:iTeam = cs_get_user_team(id);
if(iNumTe > iNumCt) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \dТеррористы^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \wТеррористы^n");
iKeys |= MENU_KEY_1;
}
if(iNumCt > iNumTe) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \dКонтр Террористы^n^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[2] \wКонтр Террористы^n^n^n");
iKeys |= MENU_KEY_2;
}
if(CS_TEAM_UNASSIGNED < iTeam < CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \dСлучайный Выбор^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \yСлучайный Выбор^n^n");
iKeys |= MENU_KEY_5;
}
if(iTeam == CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[6] \dНаблюдение^n^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[6] \wНаблюдатели^n");
iKeys |= MENU_KEY_6;
}
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[0] \wВыход");
return show_menu(id, iKeys, szMenu, -1, "Team Menu");
}

public HandleMenu(id, iKey)
{
switch(iKey)
{
case 0:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "1");
}
case 1:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "2");
}
case 2:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "3");
}
case 4:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "5");
}
case 5:
{
user_kill(id, 1);
engclient_cmd(id, "jointeam", "6");
}
}
return PLUGIN_HANDLED;
}

public MessageShowMenu(iMsgId, iMsgDest, iReceiver)
{
static szArg4[20]; get_msg_arg_string(4, szArg4, charsmax(szArg4));
if(equal(szArg4, "#Team_Select", 12) || equal(szArg4, "#IG_Team_Select", 15) || equal(szArg4, "#IG_VIP_Team_Select", 19))
{
set_pdata_int(iReceiver, 205, 0);
return ShowMenu(iReceiver);
}
return PLUGIN_CONTINUE;
}

public MessageVGUIMenu(iMsgId, iMsgDest, iReceiver)
{
if(get_msg_arg_int(1) == 2)
{
set_pdata_int(iReceiver, 205, 0);
return ShowMenu(iReceiver);
}
return PLUGIN_CONTINUE;
}

get_teamplayersnum(const CsTeams:iTeam)
{
static players[32], iNum;
get_players(players, iNum, "che", iTeam == CS_TEAM_T ? "TERRORIST" : "CT");
return iNum;
}

const _VGUI_Menu_Team = 2
const _VGUI_Menu_Class_T = 26
const _VGUI_Menu_Class_CT = 27

const IsTargetMenu = ((1 << _VGUI_Menu_Team)|(1 << _VGUI_Menu_Class_T)|(1 << _VGUI_Menu_Class_CT))

const VGUIMenu_MenuType = 1
const m_iMenu = 205

public MessageVGUIMenu(iMsgId, iMsgDest, iReceiver)
{
if(IsTargetMenu & (1 << get_msg_arg_int(VGUIMenu_MenuType)))
{
set_pdata_int(iReceiver, m_iMenu, 0);
ShowMenu(iReceiver);

return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE;
}
Screenshot_2.jpg
 
Сообщения
515
Реакции
459
Предупреждения
17
Помог
8 раз(а)
Andrey, Да все норм с компилятором. У вас дубл функции
public MessageVGUIMenu(iMsgId, iMsgDest, iReceiver)
 
Сообщения
515
Реакции
459
Предупреждения
17
Помог
8 раз(а)
Andrey, Извините у вас с логикой все норм ?
 
Сообщения
94
Реакции
14
Помог
5 раз(а)
Vaqtincha, С логикой да! В скриптинге не шарю!
 
Сообщения
263
Реакции
335
Помог
4 раз(а)
Andrey, тут не нужны знания в скриптинге, тут нужна внимательность, в посте #4 вам дали ответ, в плагине который указал ТС уже используется функция public MessageVGUIMenu(iMsgId, iMsgDest, iReceiver) (см. 93 строку) А вы получается еще в конце плагина добавляете её же с поста #4.

PHP:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>

public plugin_init()
{
register_plugin("Connect Menu", "1.2", "Realution");

register_clcmd("chooseteam", "ShowMenu")

register_message(96, "MessageShowMenu");
register_message(114, "MessageVGUIMenu");

register_menucmd(register_menuid("Team Menu"), MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0, "HandleMenu");
}

public ShowMenu(id)
{
new szMenu[512], iLen = formatex(szMenu, charsmax(szMenu), "\yМеню Выбора Команды:^n^n"), iKeys = MENU_KEY_0;
new iNumTe = get_teamplayersnum(CS_TEAM_T), iNumCt = get_teamplayersnum(CS_TEAM_CT), CsTeams:iTeam = cs_get_user_team(id);
if(iNumTe > iNumCt) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \dТеррористы^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \wТеррористы^n");
iKeys |= MENU_KEY_1;
}
if(iNumCt > iNumTe) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \dКонтр Террористы^n^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[2] \wКонтр Террористы^n^n^n");
iKeys |= MENU_KEY_2;
}
if(CS_TEAM_UNASSIGNED < iTeam < CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \dСлучайный Выбор^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \yСлучайный Выбор^n^n");
iKeys |= MENU_KEY_5;
}
if(iTeam == CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[6] \dНаблюдение^n^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[6] \wНаблюдатели^n");
iKeys |= MENU_KEY_6;
}
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[0] \wВыход");
return show_menu(id, iKeys, szMenu, -1, "Team Menu");
}

public HandleMenu(id, iKey)
{
switch(iKey)
{
case 0:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "1");
engclient_cmd(id, "joinclass", "6");

}
case 1:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "2");
}
case 2:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "3");
}
case 4:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "5");
}
case 5:
{
user_kill(id, 1);
engclient_cmd(id, "jointeam", "6");
}
}
return PLUGIN_HANDLED;
}

public MessageShowMenu(iMsgId, iMsgDest, iReceiver)
{
static szArg4[20]; get_msg_arg_string(4, szArg4, charsmax(szArg4));
if(equal(szArg4, "#Team_Select", 12) || equal(szArg4, "#IG_Team_Select", 15) || equal(szArg4, "#IG_VIP_Team_Select", 19))
{
set_pdata_int(iReceiver, 205, 0);
return ShowMenu(iReceiver);
}
return PLUGIN_CONTINUE;
}

const _VGUI_Menu_Team = 2
const _VGUI_Menu_Class_T = 26
const _VGUI_Menu_Class_CT = 27

const IsTargetMenu = ((1 << _VGUI_Menu_Team)|(1 << _VGUI_Menu_Class_T)|(1 << _VGUI_Menu_Class_CT))

const VGUIMenu_MenuType = 1
const m_iMenu = 205
public MessageVGUIMenu(iMsgId, iMsgDest, iReceiver)
{
if(IsTargetMenu & (1 << get_msg_arg_int(VGUIMenu_MenuType)))
{
set_pdata_int(iReceiver, m_iMenu, 0);
ShowMenu(iReceiver);

return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE;
}

get_teamplayersnum(const CsTeams:iTeam)
{
static players[32], iNum;
get_players(players, iNum, "che", iTeam == CS_TEAM_T ? "TERRORIST" : "CT");
return iNum;
}
 
Сообщения
94
Реакции
14
Помог
5 раз(а)
SonG, Поставил с вашего поста, зашел, выбор команд. не убирается.
 

Вложения

Сообщения
263
Реакции
335
Помог
4 раз(а)
Andrey, Кто не убирается ??? :dash1:

p.s. Ранг "ч0ткий"
 
Сообщения
21
Реакции
7
Vaqtincha, Не работает:sad: Все так же меню выбора класса вылезает.
 
Сообщения
94
Реакции
14
Помог
5 раз(а)
SonG, На скрине что не видно? Меню с выбором команды!
 
Сообщения
515
Реакции
459
Предупреждения
17
Помог
8 раз(а)
YahOoo,
6 Мар 2017
Забыл удалить строку server_print("MessageVGUIMenu")
 

Вложения

  • 4.3 KB Просмотры: 61
Сообщения
263
Реакции
335
Помог
4 раз(а)
Andrey, На скрине как раз и видно, что меню с выбором команды работает. ТС просил помочь с тем, что бы автоматически после выборы команды, скин игрока выбирался автоматически. А что ты хочешь сделать и что думаешь сделать, известно лишь одному тебе.
 
Сообщения
21
Реакции
7
Vaqtincha, Все ништяк, сразу за команду бросает, только меню с классами все равно лезет :D
 

Вложения

Сообщения
443
Реакции
319
Помог
13 раз(а)
Destroy его. Оно все равно не заработает. Просто появляется вроде.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу