Menu de equipos (ReAPI)
#1
Buenas gente, ando necesitando un menu de equipos que sea con ReAPI, desde ya gracias.  Mario
Responder
#2
(06/08/2022, 03:59 PM)David77 escribió: Buenas gente, ando necesitando un menu de equipos que sea con ReAPI, desde ya gracias.  Mario

espero q te sirva (no especificaste bien de lo que querias el menu asi que lo deje asi nms)

Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <reapi>

const PDATA_SAFE 2;

// CS Teams
enum
{
 
FM_CS_TEAM_UNASSIGNED 0,
 
FM_CS_TEAM_T,
 
FM_CS_TEAM_CT,
 
FM_CS_TEAM_SPECTATOR
}

enum _:m_hMaxTeams
{
 
GAME_TEAM_TT,
 
GAME_TEAM_CT
}

new const 
GameData_TeamName[m_hMaxTeams][16] = 
{
 
"Terrorista",
 
"Anti-Terrorista"
}

enum _:m_hOptions
{
    m_szOptionName[32],
    m_iOptionTeam
}

new const 
GameMenu_Options[][m_hOptions] =
{
    {  "Opcion 1 CT",  GAME_TEAM_CT    },
    {  "Opcion 1 TT",  GAME_TEAM_TT    },
    {  "Opcion 2 CT",  GAME_TEAM_CT    },
    {  "Opcion 2 TT",  GAME_TEAM_TT    }
}

public 
plugin_init()
{
    register_plugin("Menu Team""1.0""TKod");

    register_clcmd("tmenu""clcmd_team_menu");
}

public 
clcmd_team_menu(const pPlayer)
{
    if(!is_user_connected(pPlayer))
        return PLUGIN_HANDLED;

    new pTeam Player_GetTeam(pPlayer);

    switch(pTeam)
    {
        case FM_CS_TEAM_CT:
            show_menu_team(pPlayerGAME_TEAM_CT);
        case FM_CS_TEAM_T:
            show_menu_team(pPlayerGAME_TEAM_TT);
    }

    return PLUGIN_HANDLED;
}

public 
show_menu_team(const pPlayer, const pTeam)
{
    new szTitle[78];
    formatex(szTitlecharsmax(szTitle), "\yMenu \r-\y %s"GameData_TeamName[pTeam]);

    new hMenu menu_create(szTitle"menu_team"), szPos[3], i;

    for(0sizeof(GameMenu_Options); i++)
    {
        if(GameMenu_Options[i][m_iOptionTeam] != pTeam)
            continue;

        num_to_str(iszPoscharsmax(szPos));
        menu_additem(hMenuGameMenu_Options[i][m_szOptionName], szPos);
    }

    menu_setprop(hMenuMPROP_NEXTNAME"Siguiente");
    menu_setprop(hMenuMPROP_BACKNAME"Atras");
    menu_setprop(hMenuMPROP_EXITNAME"Salir");

    menu_display(pPlayerhMenu);
}

public 
menu_team(const pPlayer, const pMenu, const pKey)
{
    if(pKey == MENU_EXIT || !is_user_connected(pPlayer))
    {
        menu_destroy(pMenu);
        return PLUGIN_HANDLED;
    }

    new szData[3], pOption;
    menu_item_getinfo(pMenupKey_szDatacharsmax(szData));

    pOption str_to_num(szData);

    client_print_color(pPlayerpPlayer"^4[AMXX]^1 Escogiste la ^3%s"GameMenu_Options[pOption][m_szOptionName]);
    menu_destroy(pMenu);
    return PLUGIN_HANDLED;
}

// Get User Team
stock Player_GetTeam(const pPlayer)
{
 
// Evitar la caída del servidor si los datos privados de la entidad no están initalizados
 
if(pev_valid(pPlayer) != PDATA_SAFE)
 return 
FM_CS_TEAM_UNASSIGNED;
 
 return 
get_member(pPlayerm_iTeam);

Responder
#3
(10/08/2022, 09:38 PM)Tkod escribió: espero q te sirva (no especificaste bien de lo que querias el menu asi que lo deje asi nms)

Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <reapi>

const PDATA_SAFE 2;

// CS Teams
enum
{
 
FM_CS_TEAM_UNASSIGNED 0,
 
FM_CS_TEAM_T,
 
FM_CS_TEAM_CT,
 
FM_CS_TEAM_SPECTATOR
}

enum _:m_hMaxTeams
{
 
GAME_TEAM_TT,
 
GAME_TEAM_CT
}

new const 
GameData_TeamName[m_hMaxTeams][16] = 
{
 
"Terrorista",
 
"Anti-Terrorista"
}

enum _:m_hOptions
{
    m_szOptionName[32],
    m_iOptionTeam
}

new const 
GameMenu_Options[][m_hOptions] =
{
    {  "Opcion 1 CT",  GAME_TEAM_CT    },
    {  "Opcion 1 TT",  GAME_TEAM_TT    },
    {  "Opcion 2 CT",  GAME_TEAM_CT    },
    {  "Opcion 2 TT",  GAME_TEAM_TT    }
}

public 
plugin_init()
{
    register_plugin("Menu Team""1.0""TKod");

    register_clcmd("tmenu""clcmd_team_menu");
}

public 
clcmd_team_menu(const pPlayer)
{
    if(!is_user_connected(pPlayer))
        return PLUGIN_HANDLED;

    new pTeam Player_GetTeam(pPlayer);

    switch(pTeam)
    {
        case FM_CS_TEAM_CT:
            show_menu_team(pPlayerGAME_TEAM_CT);
        case FM_CS_TEAM_T:
            show_menu_team(pPlayerGAME_TEAM_TT);
    }

    return PLUGIN_HANDLED;
}

public 
show_menu_team(const pPlayer, const pTeam)
{
    new szTitle[78];
    formatex(szTitlecharsmax(szTitle), "\yMenu \r-\y %s"GameData_TeamName[pTeam]);

    new hMenu menu_create(szTitle"menu_team"), szPos[3], i;

    for(0sizeof(GameMenu_Options); i++)
    {
        if(GameMenu_Options[i][m_iOptionTeam] != pTeam)
            continue;

        num_to_str(iszPoscharsmax(szPos));
        menu_additem(hMenuGameMenu_Options[i][m_szOptionName], szPos);
    }

    menu_setprop(hMenuMPROP_NEXTNAME"Siguiente");
    menu_setprop(hMenuMPROP_BACKNAME"Atras");
    menu_setprop(hMenuMPROP_EXITNAME"Salir");

    menu_display(pPlayerhMenu);
}

public 
menu_team(const pPlayer, const pMenu, const pKey)
{
    if(pKey == MENU_EXIT || !is_user_connected(pPlayer))
    {
        menu_destroy(pMenu);
        return PLUGIN_HANDLED;
    }

    new szData[3], pOption;
    menu_item_getinfo(pMenupKey_szDatacharsmax(szData));

    pOption str_to_num(szData);

    client_print_color(pPlayerpPlayer"^4[AMXX]^1 Escogiste la ^3%s"GameMenu_Options[pOption][m_szOptionName]);
    menu_destroy(pMenu);
    return PLUGIN_HANDLED;
}

// Get User Team
stock Player_GetTeam(const pPlayer)
{
 
// Evitar la caída del servidor si los datos privados de la entidad no están initalizados
 
if(pev_valid(pPlayer) != PDATA_SAFE)
 return 
FM_CS_TEAM_UNASSIGNED;
 
 return 
get_member(pPlayerm_iTeam);


Thinking

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)