Raised This Month: $ Target: $400
 0% 

[help] slender mod


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Maverickmz
Junior Member
Join Date: Feb 2014
Old 03-12-2014 , 00:45   [help] slender mod
Reply With Quote #1

Hello , my slender no cause damage when near you , eh put all plugins correctly, does everything but when life takes no near you.
Leaving. Sma, there any error? Help! Sorry for my bad english, i am spanish
Attached Files
File Type: sma Get Plugin or Get Source (slenderman_mod.sma - 530 views - 19.3 KB)

Last edited by Maverickmz; 03-12-2014 at 00:53.
Maverickmz is offline
NikKOo31
Senior Member
Join Date: May 2013
Location: Home
Old 03-12-2014 , 05:13   Re: [help] slender mod
Reply With Quote #2

The code is good, posibly your slender didn't spawn.
You may replace set_user_health with a fakadamage, else no one will get frags.
Try debugging the plugin.. put some client_print in the prethink foward to see if that part of the code is being executed.. If it doesn't your problem is in the first if (in the prethink forward) ^^

Last edited by hornet; 03-12-2014 at 06:17. Reason: English only
NikKOo31 is offline
Maverickmz
Junior Member
Join Date: Feb 2014
Old 03-12-2014 , 08:55   Re: [help] slender mod
Reply With Quote #3

Quote:
Originally Posted by NikKOo31 View Post
The code is good, posibly your slender didn't spawn.
You may replace set_user_health with a fakadamage, else no one will get frags.
Try debugging the plugin.. put some client_print in the prethink foward to see if that part of the code is being executed.. If it doesn't your problem is in the first if (in the prethink forward) ^^
You can help me? I have no idea about this ... please! : '(
Maverickmz is offline
NikKOo31
Senior Member
Join Date: May 2013
Location: Home
Old 03-12-2014 , 13:53   Re: [help] slender mod
Reply With Quote #4

Look at the huds I added for debug. Try the plugin and you will know if that part of code is being executed or not

Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <xs>

#define PLUGIN "Slender Mod"
#define VERSION "1.1.0 RC4"
#define AUTHOR "UnitedDevs"

#define SLENDER_RADIUS 250.0
#define SLENDER_DELAY 0.32
#define SLENDER_L_DELAY 15.0
#define SLENDER_EDITOR_ACCESS ADMIN_BAN


#define SetAlive(%1) ( gBitAlive |= (1<<%1) ) 
#define SetDead(%1) ( gBitAlive &= ~(1<<%1) ) 
#define IsAlive(%1) ( gBitAlive & (1<<%1) ) 

#define m_iVGUI         510
#define m_fGameHUDInitialized   349


/* CVars */

new cvar_light,cvar_damage,cvar_speed,cvar_pages,cvar_delay,cvar_sky

/* Constants */

new const g_szGamePrefix[]            =    "!team[AMXX]"

stock const FIRST_JOIN_MSG[]          =   "#Team_Select"
stock const FIRST_JOIN_MSG_SPEC[]    =   "#Team_Select_Spect"
stock const INGAME_JOIN_MSG[]       =   "#IG_Team_Select"
stock const INGAME_JOIN_MSG_SPEC[]    =   "#IG_Team_Select_Spect"
stock const VGUI_JOIN_TEAM_NUM       =   2
const iMaxLen                   =    sizeof(INGAME_JOIN_MSG_SPEC);

new CTCount,TCount,g_MsgShowMenu

/* Sounds */
new const g_szTeleportSound[]      = "slenderman/bassdrum.wav"
new const g_szSlenderLaugh[]       = "slenderman/slenderlaugh.wav"

/* Model */
new const g_szSlenderModel[]       = "models/player/slenderman/slenderman.mdl"

/* Sprite */
new const g_szPageSprite[]         = "sprites/slenderpage.spr"
new const g_szEditorSprite[]	   = "sprites/editorsprite.spr"

/* Floats */

new Float:g_flLastTeleportTime[33]
new Float:g_flSlayDelay[33]
new Float:g_flLaughDelay[33]

/* Integer */

new g_iPages,g_iLastTerr,gBitAlive,g_iSlenderId

/* Booleans */

new g_bAllPagesShow

/* Precache */

public plugin_precache()
{
	precache_sound(g_szTeleportSound)
	precache_sound(g_szSlenderLaugh)
	precache_model(g_szSlenderModel)
	precache_model(g_szPageSprite)
	precache_model(g_szEditorSprite)
}

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar("slender_version", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY);
	register_dictionary("slender.txt")
	
	/* Register Stuff */
	
	RegisterHam(Ham_Spawn,                     	"player", "fw_Spawn", 1)
	RegisterHam(Ham_Player_PreThink,             "player", "fw_PlayerPreThink")
	
	register_forward( FM_Spawn,                  "fw_SpawnPost",1)
	register_forward( FM_Touch,                  "fw_Touch")
	register_forward( FM_GetGameDescription,     "GameDesc")
	
	/* Events */
	
	register_event("DeathMsg",                   "ev_Death", "a")
	register_event("HLTV",                       "ev_HLTV", "a", "1=0", "2=0")
	
	/* Touch */
	
	register_touch("slenderpage",               	"player","player_touch_slenderpage")
	
	/* Messages */
	
	register_message(get_user_msgid("ShowMenu"), "message_ShowMenu")
	register_message(get_user_msgid("VGUIMenu"), "message_VGUIMenu")
	
	
	/* Commands */
	
	register_clcmd("reloadlights",               "ApplyEnvironment")
	
	register_clcmd("chooseteam",                 "show_team_menu")
	register_clcmd("jointeam",                   "jointeam")
	register_clcmd("joinclass",                  "jointeam")
	register_clcmd("say /editor",				 "origin_2_file_menu")
	
	register_impulse(100,                        "OnFlashLight")
	
	/* Cvars */
	
	cvar_light      = register_cvar               ("slender_light","b")
	cvar_delay      = register_cvar               ("slender_teleport_delay","6")
	cvar_speed      = register_cvar               ("slender_speed","100")
	cvar_damage     = register_cvar               ("slender_damage","30")
	cvar_pages      = register_cvar               ("slender_pages","8")
	cvar_sky        = register_cvar               ("slender_sky","black")
	
	/* Misc */
	g_MsgShowMenu 	= 								get_user_msgid("ShowMenu");
	g_bAllPagesShow = 								false
	
	ApplyEnvironment()
	
}

public client_disconnect(id)
{
	if(id == g_iSlenderId)
	{
		server_cmd("sv_restartround 1")
		g_iSlenderId = 0
	}
}

/* Cvar's goes here */

public plugin_cfg()
{
	set_cvar_num("mp_flashlight", 1)
	set_cvar_num("mp_limitteams ", 0)
	set_cvar_num("mp_autobalance", 0)
}

/* Fowards */

public fw_PlayerPreThink(id)
{
	if(!IsAlive(id) 
	|| !is_user_alive(id) 
	|| cs_get_user_team(id) != CS_TEAM_CT 
	|| !is_user_alive(g_iSlenderId)) 
	return; 
	
	//************************************DEBUG*************************************************
	set_hudmessage(255, 255, 255, -0.5, 0.1, 0, 6.0, 12.0, 0.1)
	show_hudmessage(0, "Slender esta vivo")
	//******************************************************************************************
	
	new Float:origin[3];
	entity_get_vector(id, EV_VEC_origin, origin);
	
	if(ExecuteHam(Ham_FVisible, g_iSlenderId, id) 
	&& entity_range(g_iSlenderId, id) <= SLENDER_RADIUS 
	&& is_in_viewcone(g_iSlenderId,origin) 
	&& get_gametime() > g_flSlayDelay[id] ) 
	{
		//************************************DEBUG*****************************************
		new name[32]
		get_user_name(id, name, 31)
		set_hudmessage(255, 255, 255, -0.5, 0.3, 0, 6.0, 12.0, 0.1)
		show_hudmessage(0, "Slender esta haciendo danio a %s", name)
		//**********************************************************************************
	
		set_user_health(id, get_user_health(id) - get_pcvar_num(cvar_damage))
		shake_user_screen(id)
		g_flSlayDelay[id] = get_gametime() + SLENDER_DELAY
		if(get_gametime() > g_flLaughDelay[id])
		{
			emit_sound( id, CHAN_ITEM, g_szSlenderLaugh, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
			g_flLaughDelay[id] = get_gametime() + SLENDER_L_DELAY
		}
	}
	else
	{
		//************************************DEBUG*****************************************
		new name[32]
		get_user_name(id, name, 31)
		set_hudmessage(255, 255, 255, -0.5, 0.3, 0, 6.0, 12.0, 0.1)
		show_hudmessage(0, "Slender NO esta haciendo danio a %s", name)
		//**********************************************************************************	
	}
}

public fw_SpawnPost( iEntity )
{
	new szClassname[ 32 ];
	pev(iEntity,pev_classname,szClassname,charsmax( szClassname ) );
	
	static const g_szObjectives[ ][ ] = 
	{
		"func_bomb_target",
		"info_bomb_target",
		"hostage_entity",
		"monster_scientist",
		"func_hostage_rescue",
		"info_hostage_rescue",
		"info_vip_start",
		"func_vip_safetyzone",
		"func_escapezone"
	}  
	
	for(new i=0;i<sizeof g_szObjectives;i++)
	{
		if(equali(szClassname,g_szObjectives[i]))
		{
			remove_entity( iEntity );
			break;
		}
	}
}

public fw_Touch( ent , id )
{
	new g_MaxPlayers = get_maxplayers()
	
	static const models[][] =
	{
		"models/w_backpack.mdl",
		"models/w_flashbang.mdl",
		"models/w_hegrenade.mdl",
		"models/w_smokegrenade.mdl"
	}
	
	if (!(1 <= id <= g_MaxPlayers) || !pev_valid(ent) || !(pev(ent , pev_flags) & FL_ONGROUND))
		return FMRES_IGNORED;
	
	static szEntModel[32];
	pev(ent , pev_model , szEntModel , 31);
	
	return equal(szEntModel , models[random(sizeof(models))]) ? FMRES_IGNORED : FMRES_SUPERCEDE;
}
public fw_Spawn(id)
{
	if(is_user_alive(id))
	{
		SetAlive(id) 
		switch(cs_get_user_team(id))
		{
			case CS_TEAM_T    : set_task(0.3,"slenderstuff",id)
			case CS_TEAM_CT   : set_task(0.3,"humanstuff",id)
		}
	}
}
public ev_Death()
{
	new iAttacker = read_data(1)
	new id = read_data(2)
	SetDead(id)
	new user_name[33]
	get_user_name(id, user_name, charsmax(user_name))
	if(is_user_alive(iAttacker) && cs_get_user_team(id) == CS_TEAM_CT && cs_get_user_team(iAttacker) == CS_TEAM_T)
	{
		ChatColor(0, "%s !g%s !yfue asesinado por Slenderman!",g_szGamePrefix, user_name)
	}
}

public ev_HLTV(id) 
{
	g_iPages = 1
	new i, iPlayers[ 32 ], iNum, iPlayer;
	get_players( iPlayers, iNum, "c")
	
	if( iNum <= 1 )
		return PLUGIN_CONTINUE;
	
	for( i = 0; i < iNum; i++ ) 
	{
		iPlayer = iPlayers[ i ];
		if( cs_get_user_team( iPlayer ) == CS_TEAM_T )
		{
			cs_set_user_team( iPlayer, CS_TEAM_CT )
		}
	}
	
	new iRandomPlayer, CsTeams:iTeam;
	while( ( iRandomPlayer = iPlayers[ random_num( 0, iNum - 1 ) ] ) == g_iLastTerr ) { }
	
	g_iLastTerr = iRandomPlayer;
	
	iTeam = cs_get_user_team( iRandomPlayer );
	
	if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT ) 
	{
		new szName[ 32 ];
		get_user_name( iRandomPlayer, szName, 31 );
		
		ChatColor(0, "%s !g%s !yes Slenderman!",g_szGamePrefix, szName)
		
		create_sprite(iRandomPlayer)
		g_iSlenderId = iRandomPlayer
		
		cs_set_user_team(iRandomPlayer, CS_TEAM_T);
		
		//************************************DEBUG*****************************************
		set_hudmessage(255, 255, 255, -0.5, 0.4, 0, 6.0, 12.0, 0.1)
		show_hudmessage(0, "Slender spawneo")
		//**********************************************************************************
	} 
	else 
	{
		ev_HLTV(id);
	}
	
	return PLUGIN_CONTINUE;
}

/* Gameplay Stuff */

public slenderstuff(id)
{
	strip_user_weapons(id);
	cs_set_user_money(id,0);
	cs_set_user_nvg(id,1)
	
	set_user_footsteps(id, 1)
	set_user_godmode(id, 1)
	
	engfunc(EngFunc_SetClientMaxspeed, id, get_pcvar_float(cvar_speed))
	
	cs_set_user_model(id, "slenderman")
	
}
public humanstuff(id)
{
	strip_user_weapons( id );
	give_item(id, "weapon_knife")
	cs_set_user_money( id, 0 );
	cs_set_user_nvg(id,0)
	
	set_user_footsteps(id, 0)
	set_user_godmode(id, 0)
	
	cs_set_user_model(id, "gsg9")
	
	set_hudmessage(255, 255, 255, -0.5, 0.5, 0, 6.0, 12.0, 0.1)
	show_hudmessage(id, "Encuentra las %i páginas!", get_pcvar_num(cvar_pages))
	
}
public ApplyEnvironment()
{
	static light_cvar[3]
	get_pcvar_string(cvar_light,light_cvar,charsmax(light_cvar))
	set_lights(light_cvar)
	
	static sky_cvar[33]
	get_pcvar_string(cvar_sky,sky_cvar,charsmax(sky_cvar))
	
	set_cvar_string("sv_skyname",sky_cvar)
	
}
public OnFlashLight(id)
{
	switch(cs_get_user_team(id))
	{
		case CS_TEAM_T: TeleportPlayer(id)
		case CS_TEAM_CT: return PLUGIN_CONTINUE
	}
	return PLUGIN_HANDLED
}

public TeleportPlayer(id)
{
	if(!is_user_alive(id) || cs_get_user_team(id) != CS_TEAM_T)
		return PLUGIN_HANDLED
	
	new Float:flGameTime = get_gametime();
	
	new iDelay = get_pcvar_num( cvar_delay );
	
	if( flGameTime - g_flLastTeleportTime[ id ] < iDelay )
	{
		ChatColor(id, "%s !yTienes que esperar !g%i !ysegundos cada !g2 !yteleports",g_szGamePrefix,iDelay)
		return PLUGIN_HANDLED
	}
	
	new vOldLocation[3], vNewLocation[3]
	
	get_user_origin( id, vOldLocation );
	get_user_origin( id, vNewLocation, 3 );
	
	emit_sound( 0, CHAN_ITEM, g_szTeleportSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
	
	vOldLocation[2] += 15;
	vNewLocation[0] += ( ( vNewLocation[0] - vOldLocation[0] > 0 ) ? -50 : 50 );
	vNewLocation[1] += ( ( vNewLocation[1] - vOldLocation[1] > 0 ) ? -50 : 50 );
	vNewLocation[2] += 40;         
	
	set_user_origin( id, vNewLocation );
	g_flLastTeleportTime[ id ] = get_gametime();
	
	new parm[5];
	parm[0] = id;
	parm[1] = vOldLocation[0];
	parm[2] = vOldLocation[1];
	parm[3] = vOldLocation[2];
	parm[4] = vNewLocation[2];
	
	set_task( 0.1, "CheckStuck", 1337 + id, parm, 5 );
	return PLUGIN_HANDLED
}

public CheckStuck(parm[])
{
	new id = parm[0]   
	
	new vOldLocation[3], vOrigin[3];
	
	vOldLocation[0] = parm[1];
	vOldLocation[1] = parm[2];
	vOldLocation[2] = parm[3];
	
	get_user_origin( id, vOrigin );
	
	if ( parm[4] == vOrigin[2] )
	{
		set_user_origin( id, vOldLocation );
	}
}

/* Misc */

public GameDesc( )
{ 
	new szVersName[64]
	formatex(szVersName,charsmax(szVersName),"SlenderMod %s by UnitedDevs",VERSION)
	
	forward_return( FMV_STRING, szVersName ); 
	return FMRES_SUPERCEDE; 
}

/* Origin2File */
public origin_2_file_menu(id)
{
	if(!get_user_flags(id) && SLENDER_EDITOR_ACCESS)
		return PLUGIN_HANDLED
	
	new menu = menu_create("Editor de spawn de páginas","origin_2_file_handler")
	new save[64],show[64],remove[64]
	
	formatex(save, charsmax(save), "Guardar páginas \ractuales")
	formatex(show, charsmax(show), "Mostrar lugares de las \rpáginas")
	formatex(remove, charsmax(remove),"Remover todas las \rpáginas")
	
	menu_additem(menu,save,			"1",0);
	
	if(g_bAllPagesShow)
		menu_additem(menu,show, 	"2",1<<31);
	else
		menu_additem(menu,show,		"2",0)
	
	if(!g_bAllPagesShow)
		menu_additem(menu,remove,	"3",1<<31);
	else
		menu_additem(menu,remove,   "3",0)
	
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
	menu_display(id, menu, 0);
	return PLUGIN_HANDLED
}
public origin_2_file_handler(id, menu, item)
{
	static filename[256]
	get_configsdir(filename,charsmax(filename))
	
	static map[32]
	get_mapname(map, charsmax(map))
	
	formatex(filename, charsmax(filename), "%s\slenderman\maps\%s.cfg",filename,map)
	
	new data[6], szName[64];
	new 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:
		{	
			new iOrigin[3]
			get_user_origin(id, iOrigin, 0)
			
			new origincontent[256]
			formatex(origincontent, charsmax(origincontent), "%d %d %d", iOrigin[0],iOrigin[1],iOrigin[2])
			
			write_file(filename, origincontent)
		}
		case 2:
		{
			new lines = file_size(filename, 1);
			for (new line=0; line <=lines; line++)
			{
				static iOrigin[3][8]
				static Float:origin[3]
				static lineBuffer[256], len;
				read_file(filename, line, lineBuffer, charsmax(lineBuffer), len);
				
				parse(lineBuffer,iOrigin[0],7,iOrigin[1],7,iOrigin[2],7)
				
				origin[0] = str_to_float(iOrigin[0])
				origin[1] = str_to_float(iOrigin[1])
				origin[2] = str_to_float(iOrigin[2])
				
				new ent = create_entity("env_sprite")
				
				entity_set_string(ent, EV_SZ_classname, "editorpage")
				entity_set_model(ent, g_szEditorSprite)
				entity_set_int(ent, EV_INT_spawnflags, SF_SPRITE_STARTON)
				entity_set_float(ent, EV_FL_framerate, 30.0)
				
				DispatchSpawn(ent)
				
				entity_set_origin(ent, origin)
				entity_set_size(ent, Float:{-25.0, -25.0, -25.0}, Float:{25.0, 25.0, 25.0})
				entity_set_int(ent, EV_INT_solid, SOLID_TRIGGER)
				entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLY)
				entity_set_int(ent, EV_INT_rendermode, kRenderTransAdd)
				entity_set_float(ent, EV_FL_renderamt, 255.0)
				entity_set_float(ent, EV_FL_scale, 1.0)
				entity_set_float(ent, EV_FL_gravity,0.0) 
				
			}
			g_bAllPagesShow = true
		}
		case 3:
		{
			DeleteAllEditorSprites()
			
		}	
	}
}

public DeleteAllEditorSprites()
{
	new ent = -1
	while((ent = find_ent_by_class(ent,"editorpage")))
	{
		remove_entity(ent)
	}
	g_bAllPagesShow = false
}

/* Pages Stuff */

public DeleteAllSprites()
{
	new ent = -1
	while((ent = find_ent_by_class(ent,"slenderpage")))
	{
		remove_entity(ent)
	}
}

public create_sprite(id)
{
	new map[32],config[32],file[64]
	
	get_mapname(map, charsmax(map))
	get_localinfo("amxx_configsdir",config,charsmax(config))
	
	formatex(file,charsmax(file),"%s\slenderman\maps\%s.cfg",config,map)
	
	if(file_exists(file))
	{
		DeleteAllSprites()
		
		new iOrigin[3][8]
		new Float:origin[3]
		
		new lines = file_size(file, 1);
		new randomLine = random(lines);
		
		new lineBuffer[256], len;
		read_file(file, randomLine, lineBuffer, charsmax(lineBuffer), len);
		
		parse(lineBuffer,iOrigin[0],7,iOrigin[1],7,iOrigin[2],7)
		
		origin[0] = str_to_float(iOrigin[0])
		origin[1] = str_to_float(iOrigin[1])
		origin[2] = str_to_float(iOrigin[2])
		
		new ent = create_entity("env_sprite")
		
		entity_set_string(ent, EV_SZ_classname, "slenderpage")
		entity_set_model(ent,g_szPageSprite)
		entity_set_int(ent, EV_INT_spawnflags, SF_SPRITE_STARTON)
		entity_set_float(ent, EV_FL_framerate, 30.0)
		
		DispatchSpawn(ent)
		
		entity_set_origin(ent, origin)
		entity_set_size(ent, Float:{-25.0, -25.0, -25.0}, Float:{25.0, 25.0, 25.0})
		entity_set_int(ent, EV_INT_solid, SOLID_TRIGGER)
		entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLY)
		entity_set_int(ent, EV_INT_rendermode, kRenderTransAdd)
		entity_set_float(ent, EV_FL_renderamt, 255.0)
		entity_set_float(ent, EV_FL_scale, 1.0)
		entity_set_float(ent, EV_FL_gravity,0.0)   
		
		ChatColor(id, "%s !yPágina numero !g%i generada!",g_szGamePrefix,g_iPages)
	}
	else
	{
		ChatColor(0, "%s !gError !y: Archivo de páginas no encontrado!",g_szGamePrefix)
	}
}

public player_touch_slenderpage(ent, id)
{
	if(cs_get_user_team(id) == CS_TEAM_CT)
	{
		remove_entity(ent)
		
		new szName[32];
		get_user_name(id, szName, 31);
		
		set_hudmessage(255, 255, 255, -0.5, 0.5, 0, 6.0, 12.0, 0.1)
		show_hudmessage(id, "Página %i de %i", g_iPages, get_pcvar_num(cvar_pages))
		
		ChatColor(0, "%s !g%s !yencontro una página! !g%i !yde !g%i",g_szGamePrefix,szName,g_iPages,get_pcvar_num(cvar_pages))
		
		if(g_iPages >= get_pcvar_num(cvar_pages))
		{
			user_kill(g_iSlenderId)
			g_iPages = 1
		}
		
		g_iPages++	
		create_sprite(id)
	}
}

/* Color Chat */

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") // Green Color
    replace_all(msg, 190, "!y", "^1") // Default Color
    replace_all(msg, 190, "!team", "^3") // Team Color
    replace_all(msg, 190, "!team2", "^0") // Team2 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();
            }
        }
        
    }
}

/* Team Manager */

public message_ShowMenu(iMsgid, iDest, id)
{
	static sMenuCode[iMaxLen];
	get_msg_arg_string(4, sMenuCode, sizeof(sMenuCode) - 1)
	if(equal(sMenuCode, FIRST_JOIN_MSG) || equal(sMenuCode, FIRST_JOIN_MSG_SPEC))
	{
		show_team_menu(id)
		return PLUGIN_HANDLED
		
	}
	return PLUGIN_CONTINUE;
}

public message_VGUIMenu(iMsgid, iDest, id)
{
	if(get_msg_arg_int(1) != VGUI_JOIN_TEAM_NUM)
	{
		return PLUGIN_CONTINUE;
	}
	
	show_team_menu(id)
	return PLUGIN_HANDLED;
}

public count_teams()
{
	CTCount = 0
	TCount = 0
	
	new Players[32] 
	new playerCount, i 
	get_players(Players, playerCount, "") 
	for (i=0; i<playerCount; i++) 
	{
		if (is_user_connected(Players[i])) 
		{
			if (cs_get_user_team(Players[i]) == CS_TEAM_CT) CTCount++
			if (cs_get_user_team(Players[i]) == CS_TEAM_T) TCount++
		}
	}
}

public team_choice(id, menu, item)
{
	static dst[32], data[5], access, callback
	static restore, vgui, msgblock
	
	if(item == MENU_EXIT)
	{
		msgblock = get_msg_block(g_MsgShowMenu)
		set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
		engclient_cmd(id, "jointeam", "2")
		engclient_cmd(id, "joinclass", "2")
		set_msg_block(g_MsgShowMenu, msgblock)
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	
	restore = get_pdata_int(id, m_iVGUI)
	vgui = restore & (1<<0)
	if(vgui)
		set_pdata_int(id, m_iVGUI, restore & ~(1<<0))
	
	
	menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
	menu_destroy(menu)
	
	switch(data[0])
	{
		case('1'): 
		{            
			count_teams()
			
			if(TCount < 1)
			{
				msgblock = get_msg_block(g_MsgShowMenu)
				set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
				engclient_cmd(id, "jointeam", "1")
				engclient_cmd(id, "joinclass", "1")
				set_msg_block(g_MsgShowMenu, msgblock)
			}
			else
			{
				msgblock = get_msg_block(g_MsgShowMenu)
				set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
				engclient_cmd(id, "jointeam", "2")
				engclient_cmd(id, "joinclass", "2")
				set_msg_block(g_MsgShowMenu, msgblock)
			}
			
		}
		case('2'): 
		{
			msgblock = get_msg_block(g_MsgShowMenu)
			set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
			engclient_cmd(id, "jointeam", "2")
			engclient_cmd(id, "joinclass", "2")
			set_msg_block(g_MsgShowMenu, msgblock)
		}
		
	}
	if(vgui)
		set_pdata_int(id, m_iVGUI, restore)
	return PLUGIN_HANDLED
}

public show_team_menu(id)
{
	static menu
	
	menu = menu_create("\wSelecciona tu \rclase:", "team_choice")
	
	if(TCount < 1) 
		menu_additem(menu, "Slenderman", "1", 0)
	else 
		menu_additem(menu, "\dSlenderman", "1", 1<<31)
	
	menu_additem(menu, "Humano", "2", 0)
	menu_display(id, menu)
	
	return PLUGIN_HANDLED
}

public jointeam(id) return PLUGIN_HANDLED

/* Stocks */

stock shake_user_screen(id)
{
	message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, id)  // Shake Screen
	write_short(1<<14)
	write_short(1<<14)
	write_short(1<<14)
	message_end()
}
NikKOo31 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 06:04.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode