#include < amxmodx >
#include < hamsandwich >
#include < engine >
#include < cstrike >
#include < fun >
#include < csx >
#include < nvault>
#include < fakemeta >
#include < fakemeta_util >
 
 
#define PLUGIN "Deathrun"
#define VERSION "1.0"
#define AUTHOR "spRyTe"
 
#define prefix "HEKER"
#define IMMUNITY_ACCESS_LEVEL ADMIN_IMMUNITY
 
#define AUTO_TEAM_JOIN_DELAY 0.1
 
#define TEAM_SELECT_VGUI_MENU_ID 2
new g_szName[ 33 ][ 32 ];
new g_Knife[ 33 ];
new iVault;
 
//MULTIJUMP
new jumpnum[33] = 0
new bool:dojump[33] = false
new bool:multijump[33]
 
new const g_szMoneyAccesFlag[ ] = "y";
new bool: superdmg[33],bool: knife1[33],bool: knife2[33],bool: knife3[33],bool:knife4[33],bool: knife6[33],bool: knife7[33],bool: knife8[33];
 
native get_user_points(id)
	native set_user_points(id,money)
 
 
new g_pcvar_team
new g_pcvar_class
new g_pcvar_imm
 
 
//MODELE
new v_dmgknife[] = "models/knife-mod/v_dmgknife.mdl";
new v_silentknife[] = "models/knife-mod/v_silentknife.mdl";
new v_speedknife[] = "models/knife-mod/v_speedknife.mdl";
new v_jumpknife[] = "models/knife-mod/v_jumpknife.mdl";
new v_healthknife[] = "models/knife-mod/v_healthknife.mdl";
new v_defaultknife[] = "models/knife-mod/v_defaultknife.mdl";
new v_allknife[] ="models/knife-mod/v_allknife.mdl";
/////////////////////////////////
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("CurWeapon","CurWeapon","be","1=1") 
	register_clcmd("say /knife","knifemenu")
	register_clcmd("say_team /knife","knifemenu")
	register_clcmd("say knife","knifemenu")
	register_clcmd("say_team knife","knifemenu")
	register_concmd("knife","knifemenu")
	RegisterHam(Ham_TakeDamage, "player", "vip_damage")
	register_message(get_user_msgid("ShowMenu"), "message_show_menu")
	register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")
 
	g_pcvar_team = register_cvar("ajc_team", "2")
	g_pcvar_class = register_cvar("ajc_class", "5")
	g_pcvar_imm = register_cvar("ajc_imm", "0")
 
	RegisterHam(Ham_Killed, "player", "fwdPlayerKilledPost", 1);
	iVault  =  nvault_open(  "deathrun_knifetype"  );
	if(  iVault  ==  INVALID_HANDLE  )
		{
		set_fail_state(  "nValut returned invalid handle!"  );
	}
}
public client_authorized( id )
	{
	if( is_user_bot( id ) )
		return 0;
 
	get_user_name( id, g_szName[ id ], sizeof ( g_szName[] ) -1 );
	LoadMoney( id );
 
	return 0;
 
}
public client_putinserver(id)
	{
	jumpnum[id] = 0
	dojump[id] = false
}
public client_disconnect( id )
	{
	if( is_user_bot( id ) )
		return 0;
 
	SaveMoney( id );
	jumpnum[id] = 0
	dojump[id] = false
	return 0;
 
}
public LoadMoney( id )
	{
	static szData[ 256 ],  iTimestamp;
 
	if(  nvault_lookup( iVault, g_szName[ id ], szData, sizeof ( szData ) -1, iTimestamp ))
		{
		static szMoney[ 15 ];
		parse( szData, szMoney, sizeof ( szMoney ) -1 );
		g_Knife[ id ] = str_to_num( szMoney );
 
		return;
	}
	else
	{
		g_Knife[ id ] = 0;
	}
 
}
 
 
public SaveMoney(  id  )
	{
 
	static szData[ 256 ];
	formatex( szData, sizeof ( szData ) -1, "%i", g_Knife[ id ] );
	nvault_set( iVault, g_szName[ id ], szData );
}
 
public plugin_end( )
	{
	nvault_close( iVault );
}
public knifemenu(id){
	new menu = menu_create( "[Magic KNIFE]", "menu_knife" )
	menu_additem(menu, "\wDMG \yKNIFE\r(2xDMG)", "1", 0)
	menu_additem(menu, "\wSILET\yKNIFE\r(No FootSteps)", "2", 0 )
	menu_additem(menu, "\wSPEED \yKNIFE \r(MORE SPEED)", "3", 0 )
	menu_additem(menu, "\wJUMP \y KNIFE \r(LOW GRAVITY)", "4", 0 )
	if(g_Knife[id] == 0)
		{
		menu_additem(menu, "\wHEALTH \y KNIFE\r(REGENERATION HP) \y 200 points", "5",0)
	}
	if(g_Knife[id] >= 2)
		{
		menu_additem(menu, "\wHEALTH \y KNIFE\r(REGENERATION HP)", "5",0)
	}
	if(g_Knife[id] <= 2)
		{
		menu_additem(menu, "\wMULTI \y JUMP KNIFE \r (2x JUMP) \y 500 points", "6",0)
	}
	if(g_Knife[id] >= 4)
		{
		menu_additem(menu, "\wMULTI \y JUMP KNIFE \r (2x JUMP)", "6",0)
	}
 
	if(g_Knife[id] <= 4)
		{
		menu_additem(menu, "\wALL\y KNIFE \r(ALL IN ONE)\y 1000 points", "7", 0 )
	}
	if(g_Knife[id] >= 6)
		{
		menu_additem(menu, "\wALL\y KNIFE \r(ALL IN ONE)", "7", 0 )
	}
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
}
public menu_knife(id,menu,item)
	{
	if(item == MENU_EXIT)
		{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	if( !( get_user_flags( id ) & read_flags( g_szMoneyAccesFlag ) ) )
		{
		Color(id,"^4[%s]^3 Trebuie sa ai numele inregistrat pentru a folosi acest cutit",prefix)
		Color(id,"^4[%s]^3 Foloseste ^3 /inregistrare parola",prefix)
		return PLUGIN_HANDLED;
	}
	new data[6], szName[64], access, callback
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
	switch(key) 
	{
		case 1:
		{
			knife1[id] = true;
			knife2[id] = false;
			knife3[id] = false;
			knife4[id] = false;
			knife6[id] = false;
			knife7[id] = false;
			superdmg[id] = true;
			knife8[id] = false;
			multijump[id] = false;
			set_user_footsteps(id,0)
			set_user_maxspeed(id,170.0)
			set_user_gravity(id,1.0)
			iSetKnife(id)
			Color(id,"^4[%s]^3 Ai ales ^4 [DMG KNIFE]^3,vei avea DMG dublu asupra victimei!",prefix)
			return PLUGIN_HANDLED;
		}
		case 2:
		{
			knife1[id] = false;
			knife2[id] = true;
			knife3[id] = false;
			knife4[id] = false;
			knife6[id] = false;
			knife7[id] = false;
			knife8[id] = false;
			multijump[id] = false;
			set_user_footsteps(id,1)
			set_user_maxspeed(id,250.0)
			set_user_gravity(id,1.0)
			iSetKnife(id)
			Color(id,"^4[%s]^3 Ai ales ^4 [Silent KNIFE]^3,pasii tai nu se vor auzi!",prefix)
			return PLUGIN_HANDLED;
		}
		case 3:
		{
			knife1[id] = false;
			knife2[id] = false;
			knife3[id] = true;
			knife4[id] = false;
			knife6[id] = false;
			knife7[id] = false;
			knife8[id] = false;
			multijump[id] = false;
			Color(id,"^4[%s]^3 Ai ales ^4 [SPEED KNIFE]^3,vei avea mai multa viteza!",prefix)
			set_user_footsteps(id,0)
			set_user_gravity(id,1.0)
			iSetKnife(id)
			set_user_maxspeed(id,400.0)
			return PLUGIN_HANDLED;
		}
		case 4:
		{
			knife1[id] = false;
			knife2[id] = false;
			knife3[id] = false;
			knife4[id] = true;
			knife6[id] = false;
			knife7[id] = false;
			knife8[id] = false;
			multijump[id] = false;
			Color(id,"^4[%s]^3 Ai ales ^4 [JUMP KNIFE]^3,vei avea mai putine gravitatie!",prefix)
			set_user_footsteps(id,0)
			set_user_maxspeed(id,250.0)
			set_user_gravity(id,0.5)
			iSetKnife(id)
			return PLUGIN_HANDLED;
		}
		case 5:
		{
			if(get_user_points(id) < 300 && g_Knife[id] == 0)
				{
				Color(id,"^4[%s]^3 Nu ai destul points! Ai doar %i points ",prefix,get_user_points(id))
				return PLUGIN_HANDLED;
			}
			if(get_user_points(id) >= 300 && g_Knife[id] == 0)
				{
				set_user_points(id,get_user_points(id) - 300)
				g_Knife[id] = 2;
				SaveMoney(id);
				knife1[id] = false;
				knife2[id] = false;
				knife3[id] = false;
				knife4[id] = false;
				knife6[id] = true;
				knife7[id] = false;
				knife8[id] = false;
				multijump[id] = false;
				set_user_footsteps(id,0)
				set_user_maxspeed(id,250.0)
				set_user_gravity(id,1.0)
				set_task(10.0,"regenerare",id)
				iSetKnife(id)
				Color(id,"^4[%s]^3 Ai ales ^4 [HEALTH KNIFE]^3,viata ta se va regenera odata la 10 sec cu inca 20 HP!",prefix)
				SaveMoney(id)
				return PLUGIN_HANDLED;
			}
			if(g_Knife[id] >= 2)
				{
				knife1[id] = false;
				knife2[id] = false;
				knife3[id] = false;
				knife4[id] = false;
				knife6[id] = true;
				knife7[id] = false;
				knife8[id] = false;
				multijump[id] = false;
				superdmg[id] = true;
				set_user_footsteps(id,0)
				set_user_maxspeed(id,250.0)
				set_user_gravity(id,1.0)
				set_task(10.0,"regenerare",id)
				iSetKnife(id)
				Color(id,"^4[%s]^3 Ai ales ^4 [HEALTH KNIFE]^3,viata ta se va regenera odata la 10 sec cu inca 20 HP!",prefix)
				SaveMoney(id)
				return PLUGIN_HANDLED;
			}
		}
		case 6:
		{
			if(get_user_points(id) < 500 && g_Knife[id] < 2)
				{
				Color(id,"^4[%s]^3 Trebuie sa ai achizitionat si ^3[HEALTH KNIFE]",prefix)
				return PLUGIN_HANDLED;
			}
			if(get_user_points(id) < 500 && (g_Knife[id] == 2))
				{
				Color(id,"^4[%s]^3 Nu ai destul points! Ai doar %i points ",prefix,get_user_points(id))
				return PLUGIN_HANDLED;
			}
			if(get_user_points(id) >= 500 && g_Knife[id] == 2)
				{
				set_user_points(id,get_user_points(id) - 500)
				g_Knife[id] = 4;
				SaveMoney(id)
				knife1[id] = false;
				knife2[id] = false;
				knife3[id] = false;
				knife4[id] = false;
				knife6[id] = true;
				knife7[id] = false;
				knife8[id] = true;
				multijump[id] = true;
				set_user_footsteps(id,0)
				set_user_maxspeed(id,250.0)
				set_user_gravity(id,1.0)
				set_task(10.0,"regenerare",id)
				iSetKnife(id)
				Color(id,"^4[%s]^3 Ai ales ^4 [MULTI JUMP KNIFE]^3,2x Jump + Regenerare HP!",prefix)
				SaveMoney(id)
				return PLUGIN_HANDLED;
			}
			if(g_Knife[id] >= 4)
				{
				knife1[id] = false;
				knife2[id] = false;
				knife3[id] = false;
				knife4[id] = false;
				knife6[id] = false;
				knife7[id] = false;
				knife8[id] = true;
				multijump[id] = true;
				superdmg[id] = true;
				set_user_footsteps(id,0)
				set_user_maxspeed(id,250.0)
				set_user_gravity(id,1.0)
				set_task(10.0,"regenerare",id)
				iSetKnife(id)
				Color(id,"^4[%s]^3 Ai ales ^4 [MULTI JUMP KNIFE]^3,2x Jump + Regenerare HP!",prefix)
				return PLUGIN_HANDLED;
			}
		}
		case 7:
		{
			if(get_user_points(id) < 1000 && g_Knife[id] < 5)
				{
				Color(id,"^4[%s]^3 Trebuie sa ai achizitionat si ^3KNIFES anterioare",prefix)
				return PLUGIN_HANDLED;
			}
			if(get_user_points(id) < 1000 && g_Knife[id] == 4)
				{
				Color(id,"^4[%s]^3 Nu ai destul points! Ai doar %i points ",prefix,get_user_points(id))
				return PLUGIN_HANDLED;
			}
			if(get_user_points(id) >= 1000 && g_Knife[id] >=4)
				{
				set_user_points(id,get_user_points(id) - 1000)
				g_Knife[id] = 6;
				SaveMoney(id)
				knife1[id] = false;
				knife2[id] = false;
				knife3[id] = false;
				knife4[id] = false;
				knife6[id] = false;
				knife7[id] = true;
				knife8[id] = false;
				multijump[id] = true;
				superdmg[id] = true;
				set_user_footsteps(id,0)
				set_user_maxspeed(id,250.0)
				set_user_gravity(id,1.0)
				set_task(10.0,"regenerare",id)
				iSetKnife(id)
				Color(id,"^4[%s]^3 Ai ales ^4 [ALL KNIFE]^3,ai toate beneficiile!",prefix)
				SaveMoney(id)
				return PLUGIN_HANDLED;
			}
			if(g_Knife[id] >= 6)
				{
				knife1[id] = false;
				knife2[id] = false;
				knife3[id] = false;
				knife4[id] = false;
				knife6[id] = false;
				knife7[id] = true;
				knife8[id] = false;
				multijump[id] = true;
				superdmg[id] = true;
				set_user_footsteps(id,1)
				set_user_maxspeed(id,340.0)
				set_user_gravity(id,0.5)
				set_task(10.0,"regenerare",id)
				iSetKnife(id)
				Color(id,"^4[%s]^3 Ai ales ^4 [ALL KNIFE]^3,vei avea toate beneficiile!",prefix)
				return PLUGIN_HANDLED;
			}
		}
 
	}
	menu_destroy(menu)
	return 1;
}
public regenerare(id)
	{
	if(knife4[id] == true || knife7[id] == true)
		{
		set_user_health(id,get_user_health(id) + 30)
		set_task(20.0,"regenerare2",id)
		Color(id,"^4[%s]^3 Ai primit ^4 +30 HP ^3 de la cutit!In 10 secunde viata ti se va regenera!",prefix)
		return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
}
public regenerare2(id)
	{
	if(knife4[id] == true || knife7[id] == true)
		{
		set_user_health(id,get_user_health(id) + 30)
		set_task(20.0,"regenerare",id)
		Color(id,"^4[%s]^3 Ai primit ^4 +30 HP ^3 de la cutit!In 10 secunde viata ti se va regenera!",prefix)
		return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
}
 
public CurWeapon(id)
	{
	if(get_user_weapon(id) == CSW_KNIFE && knife1[id] == true)
		{
		set_pev(id, pev_viewmodel2, v_dmgknife)
 
	}
	if(get_user_weapon(id) == CSW_KNIFE && knife2[id] == true)
		{
		set_pev(id, pev_viewmodel2, v_silentknife)
 
	}
	if(get_user_weapon(id) == CSW_KNIFE && knife3[id] == true)
		{
		set_pev(id, pev_viewmodel2, v_speedknife)
 
	}
	if(get_user_weapon(id) == CSW_KNIFE && knife4[id] == true)
		{
		set_pev(id, pev_viewmodel2, v_jumpknife)
 
	}
	if(get_user_weapon(id) == CSW_KNIFE && knife8[id] == true)
		{
		set_pev(id, pev_viewmodel2, v_defaultknife)
 
	}
	if(get_user_weapon(id) == CSW_KNIFE  && knife6[id] == true)
		{
		set_pev(id, pev_viewmodel2, v_healthknife)
	}
	if( get_user_weapon(id) == CSW_KNIFE  && knife7[id] == true)
		{
		set_pev(id, pev_viewmodel2, v_allknife)
 
	}
	//PUTERI
	if(get_user_weapon(id) == CSW_KNIFE && knife1[id] == true)
		{
		set_user_footsteps(id,0)
		set_user_maxspeed(id,250.0)
		set_user_gravity(id,1.0)
	}
	if(get_user_weapon(id) == CSW_KNIFE && knife2[id] == true)
		{
		set_user_footsteps(id,1)
		set_user_maxspeed(id,250.0)
		set_user_gravity(id,1.0)
	}
	if(get_user_weapon(id) == CSW_KNIFE && knife3[id] == true)
		{
		set_user_footsteps(id,0)
		set_user_maxspeed(id,400.0)
		set_user_gravity(id,1.0)
	}
	if(get_user_weapon(id) == CSW_KNIFE && knife4[id] == true)
		{
		set_user_footsteps(id,0)
		set_user_maxspeed(id,250.0)
		set_user_gravity(id,0.5)
	}
	if(get_user_weapon(id) == CSW_KNIFE&& knife8[id] == true)
		{
		set_user_footsteps(id,0)
		set_user_maxspeed(id,250.0)
		set_user_gravity(id,1.0)
	}
	if(get_user_weapon(id) == CSW_KNIFE  && knife6[id] == true)
		{
		set_user_footsteps(id,0)
		set_user_maxspeed(id,250.0)
		set_user_gravity(id,1.0)
	}
	if(get_user_weapon(id) == CSW_KNIFE  && knife7[id] == true)
		{
		set_user_footsteps(id,1)
		set_user_maxspeed(id,400.0)
		set_user_gravity(id,0.5)
	}
	new wID = get_user_weapon(id, _, _);
 
	if(wID != CSW_KNIFE)
		{
		set_user_footsteps(id,0)
		set_user_maxspeed(id,250.0)
		set_user_gravity(id,1.0)
	}
	return PLUGIN_HANDLED   
}
public vip_damage(victima, inflictor, atacator, Float:dmg)
	{
	if(is_user_alive(atacator) && get_user_weapon(atacator) == CSW_KNIFE && superdmg[atacator] == true)
		{
		SetHamParamFloat(4, dmg * 2.0)
		return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
}
public plugin_precache()
	{
	precache_model("models/knife-mod/v_dmgknife.mdl")
	precache_model("models/knife-mod/v_silentknife.mdl")
	precache_model("models/knife-mod/v_speedknife.mdl")
	precache_model("models/knife-mod/v_jumpknife.mdl")
	precache_model("models/knife-mod/v_defaultknife.mdl")
	precache_model("models/knife-mod/v_healthknife.mdl")
	precache_model("models/knife-mod/v_allknife.mdl")
}
stock Color(const id, const input[], any:...)
	{
	new count = 1, players[32]
	static msg[191]
	vformat(msg, 190, input, 3)
 
	replace_all(msg, 190, "!g", "^4") // Green Color
	replace_all(msg, 190, "!y", "^1") // Default Color
	replace_all(msg, 190, "!team", "^3") // Team Color
 
 
	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 iSetKnife(id) {
	new wID = get_user_weapon(id, _, _);
 
	if(wID != CSW_KNIFE)
		return 0;
 
	if(knife1[id] == true) {
		entity_set_string(id, EV_SZ_viewmodel, "models/knife-mod/v_dmgknife.mdl");
	}
	if(knife2[id] == true) {
		entity_set_string(id, EV_SZ_viewmodel, "models/knife-mod/v_silentknife.mdl");
	}
	if(knife3[id] == true) {
		entity_set_string(id, EV_SZ_viewmodel, "models/knife-mod/v_speedknife.mdl");
	}
	if(knife4[id] == true) {
		entity_set_string(id, EV_SZ_viewmodel, "models/knife-mod/v_jumpknife.mdl");
	}
	if(knife8[id] == true) {
		entity_set_string(id, EV_SZ_viewmodel, "models/knife-mod/v_defaultknife.mdl");
	}
	if(knife6[id] == true) {
		entity_set_string(id, EV_SZ_viewmodel, "models/knife-mod/v_healthknife.mdl");
	}
	if(knife7[id] == true) {
		entity_set_string(id, EV_SZ_viewmodel, "models/knife-mod/v_allknife.mdl");
	}
	return 0;
}
public fwdPlayerKilledPost(iVictim, iKiller, iShoudlGib)
	{
	if(get_user_team(iVictim) == 2)
		{
		set_task(2.0,"respawn",iVictim)
	}
	return HAM_IGNORED;
}
public respawn(id)
{
	ExecuteHamB(Ham_CS_RoundRespawn, id)
	return PLUGIN_HANDLED;
}
/* =================================== AUTO TEAM JOIN ==========================*/
public client_PreThink(id)
	{
	if(!is_user_alive(id)) return PLUGIN_CONTINUE
	new nbut = get_user_button(id)
	new obut = get_user_oldbutton(id)
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
		{
		if(jumpnum[id] < 1 && multijump[id] == true)
			{
			dojump[id] = true
			jumpnum[id]++
			return PLUGIN_CONTINUE
		}
	}
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
		{
		jumpnum[id] = 0
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}
 
public client_PostThink(id)
	{
	if(!is_user_alive(id)) return PLUGIN_CONTINUE
	if(dojump[id] == true && multijump[id] == true)
		{
		new Float:velocity[3]	
		entity_get_vector(id,EV_VEC_velocity,velocity)
		velocity[2] = random_float(265.0,285.0)
		entity_set_vector(id,EV_VEC_velocity,velocity)
		dojump[id] = false
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}
public message_show_menu(msgid, dest, id) {
	if (!should_autojoin(id))
		return PLUGIN_CONTINUE
 
	static team_select[] = "#Team_Select"
	static menu_text_code[sizeof team_select]
	get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1)
	if (!equal(menu_text_code, team_select))
		return PLUGIN_CONTINUE
 
	set_force_team_join_task(id, msgid)
 
	return PLUGIN_HANDLED
}
 
public message_vgui_menu(msgid, dest, id) {
	if (get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID || !should_autojoin(id))
		return PLUGIN_CONTINUE
 
	set_force_team_join_task(id, msgid)
 
	return PLUGIN_HANDLED
}
 
bool:should_autojoin(id) {
	return (get_pcvar_num(g_pcvar_team) && !get_user_team(id) && !task_exists(id) && (!get_pcvar_num(g_pcvar_imm) || !(get_user_flags(id) & IMMUNITY_ACCESS_LEVEL)))
}
 
set_force_team_join_task(id, menu_msgid) {
	static param_menu_msgid[2]
	param_menu_msgid[0] = menu_msgid
	set_task(AUTO_TEAM_JOIN_DELAY, "task_force_team_join", id, param_menu_msgid, sizeof param_menu_msgid)
}
 
public task_force_team_join(menu_msgid[], id) {
	if (get_user_team(id))
		return
 
	static team[2], class[2]
	get_pcvar_string(g_pcvar_team, team, sizeof team - 1)
	get_pcvar_string(g_pcvar_class, class, sizeof class - 1)
	force_team_join(id, menu_msgid[0], team, class)
}
 
stock force_team_join(id, menu_msgid, /* const */ team[] = "5", /* const */ class[] = "0") {
	static jointeam[] = "jointeam"
	if (class[0] == '0') {
		engclient_cmd(id, jointeam, team)
		return
	}
 
	static msg_block, joinclass[] = "joinclass"
	msg_block = get_msg_block(menu_msgid)
	set_msg_block(menu_msgid, BLOCK_SET)
	engclient_cmd(id, jointeam, team)
	engclient_cmd(id, joinclass, class)
	set_msg_block(menu_msgid, msg_block)
}