Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
#define PLUGIN "AdminMenu"
#define VERSION "1.0"
#define AUTHOR "Crash94"
new szBlock[33][6]
new g_Cvar[7]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
g_Cvar[1] = register_cvar("adminmenu_block_item1", "3")
g_Cvar[2] = register_cvar("adminmenu_block_item2", "2")
g_Cvar[3] = register_cvar("adminmenu_block_item3", "1")
g_Cvar[4] = register_cvar("adminmenu_block_item4", "1")
g_Cvar[5] = register_cvar("adminmenu_hp", "255")
g_Cvar[6] = register_cvar("adminmenu_money", "16000")
register_clcmd("say /menuadmin", "MainMenu")
register_clcmd("say_team /menuadmin", "MainMenu")
register_dictionary("adminmenu.txt")
}
public RoundStart()
{
new szPlayers[32]
new szPlayerNum, szPlayer
get_players(szPlayers, szPlayerNum)
for (new i; i < szPlayerNum; i++)
{
szPlayer = szPlayers[i]
for(new k; k < 6; k++)
{
--szBlock[szPlayer][k]
}
}
}
public MainMenu(id)
{
if(!(get_user_flags(id) & ADMIN_RESERVATION))
{
ChatColor(id, "%L", id, "ADMINMENU_NOACCESS")
return PLUGIN_HANDLED
}
new szText[555]
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_TITLE")
new menu = menu_create( szText, "MainMenu_handler" )
if(szBlock[id][1] <= 0 && is_user_alive(id))
{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_1", get_pcvar_num( g_Cvar[5] ))
menu_additem( menu, szText, "1", 0 )
}else{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_1", get_pcvar_num( g_Cvar[5] ))
menu_additem( menu, szText, "1", ADMIN_ADMIN )
}
if(szBlock[id][2] <= 0 && is_user_alive(id))
{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_2", get_pcvar_num( g_Cvar[6] ))
menu_additem( menu, szText, "2", 0 )
}else{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_2", get_pcvar_num( g_Cvar[6] ))
menu_additem( menu, szText, "2", ADMIN_ADMIN )
}
if(szBlock[id][3] <= 0 && is_user_alive(id))
{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_3")
menu_additem( menu, szText, "3", 0 )
}else{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_3")
menu_additem( menu, szText, "3", ADMIN_ADMIN )
}
if(szBlock[id][4] <= 0 && is_user_alive(id))
{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_4")
menu_additem( menu, szText, "4", 0 )
}else{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_4")
menu_additem( menu, szText, "4", ADMIN_ADMIN )
}
if(szBlock[id][5] <= 0 && !is_user_alive(id))
{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_5")
menu_additem( menu, szText, "5", 0 )
}else{
formatex( szText, charsmax( szText ), "%L", id, "ADMINMENU_MAINMENU_ITEM_5")
menu_additem( menu, szText, "5", ADMIN_ADMIN )
}
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
menu_setprop( menu, MPROP_NEXTNAME, "Далше")
menu_setprop( menu, MPROP_BACKNAME, "Назад")
menu_setprop( menu, MPROP_EXITNAME, "Выход")
menu_display( id, menu, 0 )
return PLUGIN_HANDLED
}
public MainMenu_handler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new szData[6], szName[64], szAccess, szCallback
menu_item_getinfo(menu, item, szAccess, szData, charsmax( szData ), szName, charsmax( szName ), szCallback)
new szKey = str_to_num( szData )
switch( szKey )
{
case 1:
{
szBlock[id][1] = get_pcvar_num( g_Cvar[1] )
set_user_health(id, get_pcvar_num( g_Cvar[5] ))
ChatColor(id, "%L", id, "ADMINMENU_HP", get_pcvar_num( g_Cvar[5] ))
}
case 2:
{
szBlock[id][2] = get_pcvar_num( g_Cvar[2] )
cs_set_user_money(id, get_pcvar_num( g_Cvar[6] ))
ChatColor(id, "%L", id, "ADMINMENU_MONEY", get_pcvar_num( g_Cvar[6] ))
}
case 3:
{
szBlock[id][3] = get_pcvar_num( g_Cvar[3] )
drop_weapons(id, 1)
drop_weapons(id, 2)
give_item(id, "weapon_awp")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
cs_set_user_bpammo(id, CSW_AWP, 30)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
ChatColor(id, "%L", id, "ADMINMENU_WEAPONS1")
}
case 4:
{
szBlock[id][4] = get_pcvar_num( g_Cvar[4] )
drop_weapons(id, 1)
drop_weapons(id, 2)
give_item(id, "weapon_m3")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
cs_set_user_bpammo(id, CSW_XM1014, 32)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
ChatColor(id, "%L", id, "ADMINMENU_WEAPONS2")
}
case 5:
{
new tt_a = 0
new ct_a = 0
new players[32], numplayers;
get_players( players, numplayers );
for (new i = 0; i < numplayers; i++ )
{
new id = players[i];
if(is_user_alive(id) && cs_get_user_team(id) & CS_TEAM_CT)
ct_a++
if(is_user_alive(id) && cs_get_user_team(id) & CS_TEAM_T)
tt_a++
}
if(tt_a > 1 || ct_a > 1)
{
szBlock[id][5] = true
ExecuteHam(Ham_CS_RoundRespawn, id)
ChatColor(id, "%L", id, "ADMINMENU_REVIVE")
} else {
ChatColor(id, "%L", id, "ADMINMENU_REVIVE_1_ALIVE")
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
public client_authorized(id)
{
client_cmd(id, "bind ^"F2^" ^"say /menuadmin^"")
}
Сделайте так что-бы если в команде т или кт оставался 1 игрок то Возрождение не работало и писало , Остался 1 игрок возрождение не возможно
И что-бы возрождение не работало если сидишь в спек. И писало Вы находитесь в команде spec возрождение не возможно