Доработайте Пж

panov

New Member
Код:
#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 возрождение не возможно
 

GaMeRs

New Member
Код:
#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:
                {
			if(get_user_team(id) != 3)
			{
				if(GetAlivePl() > 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")
	                        }
			} else {
				ChatColor(id, "%L", id, "ADMINMENU_REVIVE_SPEC")
			}
                }
        }
        menu_destroy(menu)
        return PLUGIN_HANDLED
}

stock GetAlivePl()
{
	new Count, i
	for(i = 1; i <= get_maxplayers(); i++)
	{
		if(is_user_alive(i) && is_user_connected(i) && get_user_team(i) != 3)
			Count++
	}
	return Count
}

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^"")

В ланг файл добавь.
ADMINMENU_REVIVE_SPEC = Ну типа ты играешь за наблюдателей и не можешь возродиться.
 
Сверху