Здравствуйте, Подскажите как сделать авто открытие меню в начале раунда начиная со 2 раунда, пытался сделать не получилось
Вложения
-
1.2 KB Просмотры: 16
#include <amxmodx>
#include <hamsandwich>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "deprkid"
new gl_round;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_event("HLTV", "EventStartRound", "a", "1=0", "2=0");
register_event("TextMsg", "EventRestartRound", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
register_clcmd("sraundeweap", "cmdMenu", ADMIN_ALL);
RegisterHam(Ham_Spawn,"player","player_respawn")
}
public EventRestartRound()
gl_round = 0;
public EventStartRound()
++gl_round;
public player_respawn(id) {
if(gl_round >= 2)
client_cmd(id, "vipmenu");
}
public cmdMenu(id) {
new i_Menu = menu_create("Оружия", "menu_handler");
menu_additem(i_Menu, "L-VIP", "1", 0);
menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
menu_display(id, i_Menu, 0)
}
public menu_handler(id, menu, item) {
menu_destroy(menu);
if( item < 0 ) return PLUGIN_CONTINUE;
new cmd[3], access, callback;
menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
new Choise = str_to_num(cmd)
switch (Choise) {
case 1: {
}
}
return PLUGIN_HANDLED;
}
#include <amxmodx>
#include <reapi>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "deprkid"
new gl_round;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHookChain(RG_CSGameRules_RestartRound, "CSGameRules_RestartRound");
RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", 1);
register_clcmd("sraundeweap", "cmdMenu", ADMIN_ALL);
}
public CSGameRules_RestartRound()
gl_round = get_member_game(m_bCompleteReset) ? 0 : gl_round +1;
public CBasePlayer_Spawn(id) {
if(gl_round >= 2)
client_cmd(id, "vipmenu");
}
public cmdMenu(id) {
if(!is_user_alive(id))
return;
new i_Menu = menu_create("Оружия", "menu_handler");
menu_additem(i_Menu, "L-VIP", "1", 0);
menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
menu_display(id, i_Menu, 0)
}
public menu_handler(id, menu, item) {
menu_destroy(menu);
if(is_user_connected(id) && item != MENU_EXIT) {
switch(item) {
case 0: {
}
}
}
}
#include <amxmodx>
#include <reapi>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "deprkid"
#define GetRoundNum() (get_member_game(m_iTotalRoundsPlayed) + 1)
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", 1);
register_clcmd("sraundeweap", "cmdMenu");
}
public CBasePlayer_Spawn(id) {
if(GetRoundNum() >= 2)
cmdMenu(id);
}
public cmdMenu(id) {
if(!is_user_alive(id))
return PLUGIN_HANDLED;
new i_Menu = menu_create("Оружия", "menu_handler");
menu_additem(i_Menu, "L-VIP");
menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
menu_display(id, i_Menu, 0);
return PLUGIN_HANDLED;
}
public menu_handler(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item) {
case 0: {
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
#define NeedFlag ADMIN_ALL
register_clcmd("sraundeweap", "cmdMenu", NeedFlags);
public cmdMenu(id, Flag) {
if(!is_user_alive(id))
return PLUGIN_HANDLED;
if(~get_user_flags(id) & Flag)
return PLUGIN_HANDLED;
// выполняем код
return PLUGIN_HANDLED;
}
#include <amxmodx>
#include <reapi>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "deprkid"
#define GetRoundNum() (get_member_game(m_iTotalRoundsPlayed) + 1)
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", 1);
register_clcmd("sraundeweap", "cmdMenu");
}
public CBasePlayer_Spawn(id) {
if(GetRoundNum() >= 2)
ShowUserMenu(id);
}
public cmdMenu(id) {
if(!is_user_alive(id))
return PLUGIN_HANDLED;
ShowUserMenu(id);
return PLUGIN_HANDLED;
}
public ShowUserMenu(Id) {
new i_Menu = menu_create("Оружия", "menu_handler");
menu_additem(i_Menu, "L-VIP");
menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
menu_display(id, i_Menu, 0);
}
public menu_handler(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item) {
case 0: {
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Дело совсем не в этом. Команды с доступом -1 не могут быть найдены из другого плагина через get_clcmd.Nordic Warrior, а разве достаточно просто указать? Не нужно ли использовать тот-же cmd_access из amxmisc? Или банальную проверку на флаг в таком случае? У него этого нету, да и ADMIN_ALL даёт всем доступ, что по умолчанию стоит. Или я путаю?
#include <amxmodx>
#include <reapi>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "deprkid"
#define GetRoundNum() (get_member_game(m_iTotalRoundsPlayed) + 1)
new gl_menu;
const round = 2; //с какого раунда
#define FLAGS ADMIN_LEVEL_H // флаг доступа к меню
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", 1);
register_clcmd("sraundeweap", "cmdMenu", FLAGS);
create_menu();
}
public CBasePlayer_Spawn(id) {
if(GetRoundNum() >= round)
cmdMenu(id);
}
public cmdMenu(id) {
if(is_user_alive(id))
menu_display(id, gl_menu);
}
create_menu() {
gl_menu = menu_create("Оружия", "menu_handler");
menu_additem(gl_menu, "Оружие 1");
menu_setprop(gl_menu, MPROP_NEXTNAME, "Далее");
menu_setprop(gl_menu, MPROP_BACKNAME, "Назад");
menu_setprop(gl_menu, MPROP_EXITNAME, "Выход");
}
public menu_handler(id, menu, item) {
if(!is_user_alive(id) || item == MENU_EXIT)
return PLUGIN_HANDLED;
switch(item) {
case 0: {
}
}
return PLUGIN_HANDLED;
}