VGUI Team menu

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
29
Реакции
4
Помог
1 раз(а)
Ошибка
None
ОС
Linux
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 09:10:05 Jul 7 2017 (7561)
ReGamedll
ReGameDLL version 5.7.0.312
Список метамодулей
Metamod v1.21
Список плагинов
admin.amxx
admincmd.amxx
adminhelp.amxx
adminslots.amxx
multilingual.amxx
menufront.amxx
cmdmenu.amxx
plmenu.amxx
mapsmenu.amxx
pluginmenu.amxx
adminchat.amxx
antiflood.amxx
scrollmsg.amxx
imessage.amxx
adminvote.amxx
nextmap.amxx
mapchooser.amxx
timeleft.amxx
pausecfg.amxx
statscfg.amxx
statsx.amxx
amx_settings_api.amxx
aliens_vs_predator.amxx
avp_alien_species.amxx
avp_marine_species.amxx
avp_weapons.amxx
avp_marine_class.amxx
Исходный код
#include <amxmodx>
#include <reapi>
#include <avp_alien_species>
#include <avp_marine_species>

public plugin_init()
{
register_plugin("Aliens vs Predator Mod", AVP_VERSION_STR, "Crazy");

RegisterHookChain(RG_ShowVGUIMenu, "CGamedllFunc_ShowVGUIMenu");
}

public CGamedllFunc_ShowVGUIMenu(this, VGUIMenu:iMenuType, bitsSlots, szOldMenu[])
{
if (is_user_bot(this))
return HC_CONTINUE;

if (iMenuType != VGUI_Menu_Team)
return HC_CONTINUE;

showMenuSpecies(this);
return HC_SUPERCEDE;
}

showMenuSpecies(this)
{
new szBuffer[64];

formatex(szBuffer, charsmax(szBuffer), "Aliens vs. Predator^n^n\d--- CHOOSE YOUR SPECIES ---");

new hMenu = menu_create(szBuffer, "menuSpecies");

menu_additem(hMenu, "Aliens");
menu_additem(hMenu, "Marines");
menu_additem(hMenu, "Predators");

menu_setprop(hMenu, MPROP_NUMBER_COLOR, "\y");

menu_display(this, hMenu, 0);
}

public menuSpecies(this, hMenu, iItem)
{
if (!is_user_connected(this))
return PLUGIN_HANDLED;

menu_destroy(hMenu);

switch (iItem)
{
case MENU_EXIT:
return PLUGIN_HANDLED;

case 0:
avp_alien_classes_menu(this);

case 1:
avp_show_marines_menu(this);
}

return PLUGIN_HANDLED;
}
Hello, I'm trying to block VGUI team menu and show my own custom menu instead. It's working but player doesn't join in spectator team and stay "stucked".If I force the player to respawn (rg_round_respawn), nothing occurs, even if I set he team to TEAM_TERRORIST or TEAM_CT.
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Please attach this includes:
Код:
#include <avp_alien_species>
#include <avp_marine_species>
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Can you attach this plugin?
For without it we won't find a solution.
 
Сообщения
29
Реакции
4
Помог
1 раз(а)
The only one I'm trying to "respawn" player is the avp_marine_species (lines 166, 167)
 

Вложения

Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
There is another example how to show custom menu
Код:
#include <amxmodx>
#include <reapi>

public plugin_init() {
    RegisterHookChain(RG_ShowVGUIMenu, "ShowVGUIMenu", false);
    RegisterHookChain(RG_HandleMenu_ChooseTeam, "HandleMenu_ChooseTeam", false);
}

public ShowVGUIMenu(const id, VGUIMenu:menuType, const bitsSlots, szOldMenu[]) {
    if (is_user_bot(id) || menuType != VGUI_Menu_Team) {
        return HC_CONTINUE;
    }

    set_member(id, m_bForceShowMenu, true);
    new keys = MENU_KEY_1 | MENU_KEY_2;
    new menu[192];
    new len = formatex(menu, charsmax(menu), "\wSelect team^n^n");
    len += formatex(menu[len], charsmax(menu) - len, "\d[\r1\d] \rRandom team^n");
    len += formatex(menu[len], charsmax(menu) - len, "\d[\r2\d] \wSpectator^n");

    SetHookChainArg(3, ATYPE_INTEGER, keys);
    SetHookChainArg(4, ATYPE_STRING, menu);
    
    return HC_CONTINUE;
}

public HandleMenu_ChooseTeam(const id, const MenuChooseTeam:slot) {
    switch (slot) {
        case MenuChoose_T: {
            new team = (random(100) % 2)  + 1;
            SetHookChainArg(2, ATYPE_INTEGER, team);
        }

        case MenuChoose_CT: {
            SetHookChainArg(2, ATYPE_INTEGER, MenuChoose_Spec);
        }
    }
}
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
CrazY, try:

Код:
public menuMarines(this, hMenu, iItem)
{
    if (!is_user_connected(this))
        return PLUGIN_HANDLED;

    menu_destroy(hMenu)

    if (iItem == MENU_EXIT)
    {
        g_iMenuClassId[this] = -1;

        avp_species_menu(this);
        return PLUGIN_HANDLED;
    }

    if (iItem == ACTION_JOIN_IN_GAME)
    {
        client_print(0, print_chat, "JOIN IN TEAM");

        avp_set_team(this, AVP_TEAM_MARINE);
        //engclient_cmd(this, "jointeam", "1");
-        rg_set_user_team(this, TEAM_TERRORIST, MODEL_UNASSIGNED);
+        rg_join_team(this, TEAM_TERRORIST);
+        set_member(this, m_bTeamChanged, false);
        rg_round_respawn(this);
        //rg_set_user_team(this, TEAM_TERRORIST, MODEL_UNASSIGNED);

        //set_task(0.1, "taskRespawn", this);
       
        return PLUGIN_HANDLED;
    }
   
    g_iMenuAction[this] = iItem;

    showMenuByAction(this);
    return PLUGIN_HANDLED;
}
 
Сообщения
29
Реакции
4
Помог
1 раз(а)
Thanks Minni, I just did some changes to check if player already is in TEAM_TERRORIST. It's working fine now.
 
Статус
В этой теме нельзя размещать новые ответы.

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

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