Версия: 1.4
Использует модули:
amxmodx
fun
cstrike
amxmisc
Плагин может быть не идеальный, но зато удобный и прост в применение.
[spoiler][pawn]
- #include <amxmodx>
- #include <fun>
- #include <cstrike>
- #include <amxmisc>
- #pragma tabsize 0
- #define adtime 600.0
- new pcvar_Advertise
- new pcvar_Display
- new cvar_showhudmsg
- public plugin_init()
- {
- register_plugin("Меню сервера", "1.4", "OverGame")
- register_clcmd("say /rs", "reset_score")
- register_clcmd("amx_menu", "menu_server", ADMIN_ALL,"")
- register_clcmd("menu", "menu_server")
- register_clcmd("say /menu", "menu_server")
- register_clcmd("vipmenu", "vip_menu")
- register_clcmd("amxmenu", "adm_menu_new")
- register_clcmd("say /adminka","admin_motd",0)
- cvar_showhudmsg = register_cvar("show_hudmsg", "1");
- pcvar_Advertise = register_cvar("sv_rsadvertise", "1")
- pcvar_Display = register_cvar("sv_rsdisplay", "1")
- if(get_cvar_num("sv_rsadvertise") == 1)
- {
- set_task(adtime, "advertise", _, _, _, "b")
- }
- }
- public client_putinserver(id)
- {
- if(get_pcvar_num(cvar_showhudmsg))
- set_task(1.0, "task_hudmsg", id, _, _, "b")
- if(get_pcvar_num(pcvar_Advertise) == 1)
- {
- set_task(10.0, "connect_message", id, _, _, "a", 1)
- }
- }
- public task_hudmsg(id)
- {
- set_hudmessage(0, 255, 0, 0.75, 0.0, 0, 6.0, 12.0)
- show_hudmessage(id, "Нажмите F3 для открытия меню!")
- }
- public reset_score(id)
- {
- cs_set_user_deaths(id, 0)
- set_user_frags(id, 0)
- cs_set_user_deaths(id, 0)
- set_user_frags(id, 0)
- if(get_pcvar_num(pcvar_Display) == 1)
- {
- new name[33]
- get_user_name(id, name, 32)
- set_hudmessage(255, 0, 0, -1.0, 0.20, 0, 0.2, 12.0)
- show_hudmessage(0, "%s, вы успешно обнулили свой счет!", name)
- }
- else
- {
- set_hudmessage(255, 0, 0, -1.0, 0.20, 0, 0.2, 12.0)
- show_hudmessage(0, "Вы успешно обнулили свой счет!")
- }
- }
- public admin_motd(id,level,cid) {
- if (!cmd_access(id,level,cid,1))
- return PLUGIN_CONTINUE
- show_motd(id,"adminka.txt","Магазин")
- return PLUGIN_CONTINUE
- }
- public connect_message(id)
- {
- if(is_user_connected(id))
- {
- client_print(id, print_chat, "Напишите /rs и обнулите свой счет!")
- }
- }
- public menu_server(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- static s_MenuItem[64]
- formatex(s_MenuItem, charsmax(s_MenuItem), "\yПривет: \r%s", name)
- new menu = menu_create(s_MenuItem, "menu_handler" )
- if(is_user_alive(id))
- {
- menu_additem(menu, "\yОбнулить Счет","1")
- menu_additem(menu, "\yЗабанить игрока","2")
- }
- else
- {
- menu_additem(menu, "\dОбнулить Счет","1")
- menu_additem(menu, "\dЗабанить игрока","2")
- }
- menu_additem(menu, "\yТоп лучших игроков","3")
- menu_additem(menu, "\yУзнать свой Ранг","4")
- menu_additem(menu, "\yКупить админку/vip","5")
- if(get_user_flags(id) & ADMIN_KICK)
- {
- menu_additem(menu, "\yВип меню \r[Вы вип]","6")
- }
- else
- {
- menu_additem(menu, "\dВип меню [Вы не вип]","6")
- }
- if(get_user_flags(id) & ADMIN_BAN)
- {
- menu_additem(menu, "\yAmxMenu \r[Вы админ]","7")
- }
- else
- {
- menu_additem(menu, "\dAmxMenu [Вы не админ]","7")
- }
- menu_setprop(menu, MPROP_BACKNAME, "Назад")
- menu_setprop(menu, MPROP_NEXTNAME, "Далее")
- menu_setprop(menu, MPROP_EXITNAME, "Выход")
- menu_display(id,menu,0)
- return PLUGIN_HANDLED
- }
- public adm_menu_new(id)
- {
- static s_MenuItem[64]
- formatex(s_MenuItem, charsmax(s_MenuItem), "\rМеню администратора")
- new menu = menu_create(s_MenuItem, "amxmenu_fuc")
- if(get_user_flags(id) & ADMIN_BAN)
- {
- menu_additem(menu, "\yВыкинуть с сервера","1")
- menu_additem(menu, "\yЗабанить игрока","2")
- menu_additem(menu, "\yУдарить/Убить игрока","3")
- menu_additem(menu, "\yСменить карту","4")
- menu_additem(menu, "\yГолосовать за карту","5")
- }
- else
- {
- menu_additem(menu, "\dВыкинуть с сервера [Вы не админ]","1")
- menu_additem(menu, "\dЗабанить игрока [Вы не админ]","2")
- menu_additem(menu, "\dУдарить/Убить игрока [Вы не админ]","3")
- menu_additem(menu, "\dСменить карту [Вы не админ]","4")
- menu_additem(menu, "\dГолосовать за карту [Вы не админ]","5")
- }
- menu_setprop(menu, MPROP_EXITNAME, "Выход")
- menu_display(id,menu,0)
- return PLUGIN_HANDLED
- }
- public vip_menu(id)
- {
- static s_MenuItem[64]
- formatex(s_MenuItem, charsmax(s_MenuItem), "\rВип меню")
- new menu = menu_create(s_MenuItem, "vipmenu_fuc")
- if(get_user_flags(id) & ADMIN_KICK)
- {
- menu_additem(menu, "\yВыкинуть с сервера","1")
- menu_additem(menu, "\yВзять 5000$","2")
- menu_additem(menu, "\yВзять гранату","3")
- menu_additem(menu, "\yГолосовать за карту","4")
- }
- else
- {
- menu_additem(menu, "\dВыкинуть с сервера [Вы не вип]","1")
- menu_additem(menu, "\dВзять 5000$ [Вы не вип]","2")
- menu_additem(menu, "\dВзять гранату [Вы не вип]","3")
- menu_additem(menu, "\dГолосовать за карту [Вы не вип]","4")
- }
- menu_setprop(menu, MPROP_EXITNAME, "Выход")
- menu_display(id,menu,0)
- return PLUGIN_HANDLED
- }
- public client_authorized(id)
- {
- client_cmd(id, "bind ^"F3^" ^"menu^"")
- }
- public menu_handler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- new data[6], iName[64], access, callback
- menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
- new key = str_to_num(data)
- switch(key)
- {
- case 1:{
- if(is_user_alive(id))
- client_cmd(id, "say /rs")
- menu_server(id)
- }
- case 2:{
- if(is_user_alive(id))
- client_cmd(id, "say /voteban")
- }
- case 3:{
- client_cmd(id, "say /top15")
- menu_server(id)
- }
- case 4:{
- client_cmd(id, "say /rank")
- menu_server(id)
- }
- case 5:{
- client_cmd(id, "say /adminka")
- menu_server(id)
- }
- case 6:{
- if(get_user_flags(id) & ADMIN_KICK)
- vip_menu(id)
- }
- case 7:{
- if(get_user_flags(id) & ADMIN_BAN)
- adm_menu_new(id)
- }
- }
- return PLUGIN_HANDLED
- }
- public amxmenu_fuc(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- new data[6], iName[64], access, callback
- menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
- new key = str_to_num(data)
- switch(key)
- {
- case 1:{
- if(get_user_flags(id) & ADMIN_BAN)
- client_cmd(id, "amx_kickmenu")
- adm_menu_new(id)
- }
- case 2:{
- if(get_user_flags(id) & ADMIN_BAN)
- client_cmd(id, "amx_banmenu")
- adm_menu_new(id)
- }
- case 3:{
- if(get_user_flags(id) & ADMIN_BAN)
- client_cmd(id, "amx_slapmenu")
- adm_menu_new(id)
- }
- case 4:{
- if(get_user_flags(id) & ADMIN_BAN)
- client_cmd(id, "amx_mapmenu")
- adm_menu_new(id)
- }
- case 5:{
- if(get_user_flags(id) & ADMIN_BAN)
- client_cmd(id, "amx_votemapmenu")
- adm_menu_new(id)
- }
- }
- return PLUGIN_HANDLED
- }
- public vipmenu_fuc(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- new data[6], iName[64], access, callback
- menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
- new key = str_to_num(data)
- switch(key)
- {
- case 1:{
- if(get_user_flags(id) & ADMIN_KICK)
- client_cmd(id, "amx_kickmenu")
- vip_menu(id)
- }
- case 2:{
- if(get_user_flags(id) & ADMIN_KICK)
- cs_set_user_money(id, cs_get_user_money(id) + 5000)
- vip_menu(id)
- }
- case 3:{
- if(get_user_flags(id) & ADMIN_KICK)
- give_item(id, "weapon_hegrenade")
- vip_menu(id)
- }
- case 4:{
- if(get_user_flags(id) & ADMIN_KICK)
- client_cmd(id, "amx_votemapmenu")
- vip_menu(id)
- }
- }
- return PLUGIN_HANDLED
- }