Mensajes: 11
Temas: 3
Registro en: Aug 2020
Reputación:
0
Buenas gente, ando necesitando un menu de equipos que sea con ReAPI, desde ya gracias.
Mensajes: 59
Temas: 8
Registro en: Jan 2017
Reputación:
1
(06/08/2022, 03:59 PM)David77 escribió: Buenas gente, ando necesitando un menu de equipos que sea con ReAPI, desde ya gracias.
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(pPlayer, GAME_TEAM_CT); case FM_CS_TEAM_T: show_menu_team(pPlayer, GAME_TEAM_TT); }
return PLUGIN_HANDLED; }
public show_menu_team(const pPlayer, const pTeam) { new szTitle[78]; formatex(szTitle, charsmax(szTitle), "\yMenu \r-\y %s", GameData_TeamName[pTeam]);
new hMenu = menu_create(szTitle, "menu_team"), szPos[3], i;
for(i = 0; i < sizeof(GameMenu_Options); i++) { if(GameMenu_Options[i][m_iOptionTeam] != pTeam) continue;
num_to_str(i, szPos, charsmax(szPos)); menu_additem(hMenu, GameMenu_Options[i][m_szOptionName], szPos); }
menu_setprop(hMenu, MPROP_NEXTNAME, "Siguiente"); menu_setprop(hMenu, MPROP_BACKNAME, "Atras"); menu_setprop(hMenu, MPROP_EXITNAME, "Salir");
menu_display(pPlayer, hMenu); }
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(pMenu, pKey, _, szData, charsmax(szData));
pOption = str_to_num(szData);
client_print_color(pPlayer, pPlayer, "^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(pPlayer, m_iTeam); }
Mensajes: 3,238
Temas: 47
Registro en: Feb 2015
Reputación:
34
(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(pPlayer, GAME_TEAM_CT); case FM_CS_TEAM_T: show_menu_team(pPlayer, GAME_TEAM_TT); }
return PLUGIN_HANDLED; }
public show_menu_team(const pPlayer, const pTeam) { new szTitle[78]; formatex(szTitle, charsmax(szTitle), "\yMenu \r-\y %s", GameData_TeamName[pTeam]);
new hMenu = menu_create(szTitle, "menu_team"), szPos[3], i;
for(i = 0; i < sizeof(GameMenu_Options); i++) { if(GameMenu_Options[i][m_iOptionTeam] != pTeam) continue;
num_to_str(i, szPos, charsmax(szPos)); menu_additem(hMenu, GameMenu_Options[i][m_szOptionName], szPos); }
menu_setprop(hMenu, MPROP_NEXTNAME, "Siguiente"); menu_setprop(hMenu, MPROP_BACKNAME, "Atras"); menu_setprop(hMenu, MPROP_EXITNAME, "Salir");
menu_display(pPlayer, hMenu); }
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(pMenu, pKey, _, szData, charsmax(szData));
pOption = str_to_num(szData);
client_print_color(pPlayer, pPlayer, "^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(pPlayer, m_iTeam); }
|