Raised This Month: $51 Target: $400
 12% 

Solved Model for player


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
HundredEyes
Member
Join Date: Sep 2022
Old 11-25-2022 , 10:28   Model for player
Reply With Quote #1

Hi! I want to add custom model for the player who became guardian:


Source:

Code:
#pragma semicolon 1

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>

#define PLUGIN_NAME		"Guardian"
#define PLUGIN_VERSION		"1.43"
#define PLUGIN_AUTHOR		"XzaR"
#define PLUGIN_PREFIX		"[GN]:"

#define MAXPLAYERS		32
#define ADMIN_FLAG 		ADMIN_CVAR

#define SPAWN_TIME		"5.0"
#define SPAWN_WEAPON		"weapon_mp5navy"
#define SPAWN_AMMO		"ammo_9mm"

#define TASK_RESPAWNING		333
#define TASK_LEADER		666

new g_msg_status_icon;
new g_msg_say_text;

new cvar_guardian;
new cvar_spawntime;
new cvar_weapon;
new cvar_ammo;

new g_ts_leader;
new g_ct_leader;

new bool:g_ts_leader_alive;
new bool:g_ct_leader_alive;

//---------------------------------------------------------------------

stock create_status_icon(id,status,sprite[],red,green,blue)
{
	message_begin(MSG_ONE,g_msg_status_icon,{0,0,0},id);
	write_byte(status);
	write_string(sprite);
	write_byte(red);
	write_byte(green);
	write_byte(blue);
	message_end();
}

stock client_cprint(id,type,text[],...)
{ 
	new text_buffer[255];
	vformat(text_buffer,254,text,4);
	
	replace_all(text_buffer,254,"\y","^1");
	replace_all(text_buffer,254,"\t","^3");
	replace_all(text_buffer,254,"\g","^4");
	
	message_begin(type,g_msg_say_text,{0,0,0},id);
	write_byte(id);
	write_string(text_buffer);
	message_end();
}

//---------------------------------------------------------------------

public plugin_init()
{
	//Plugin
	register_plugin(PLUGIN_NAME,PLUGIN_VERSION,PLUGIN_AUTHOR);
	
	//Dictionaries
	register_dictionary("guardian.txt");
	
	//Cvars
	cvar_guardian = register_cvar("sv_guardian","1");
	cvar_spawntime = register_cvar("sv_ga_spawntime",SPAWN_TIME);
	cvar_weapon = register_cvar("sv_ga_weapon",SPAWN_WEAPON);
	cvar_ammo = register_cvar("sv_ga_ammo",SPAWN_AMMO);
	
	//Console Commands
	register_concmd("amx_guardian","handler_cmd",ADMIN_FLAG);
	register_concmd("amx_ga_spawntime","handler_cmd",ADMIN_FLAG);
	register_concmd("amx_ga_weapon","handler_cmd",ADMIN_FLAG);
	register_concmd("amx_ga_ammo","handler_cmd",ADMIN_FLAG);
	
	//Server Commands
	register_srvcmd("sv_guardian","handler_cmd",-1);
	register_srvcmd("sv_ga_spawntime","handler_cmd",-1);
	register_srvcmd("sv_ga_weapon","handler_cmd",-1);
	register_srvcmd("sv_ga_ammo","handler_cmd",-1);
	
	//Client Commands
	register_clcmd("say","handler_say",-1);
	register_clcmd("say_team","handler_say",-1);
	
	//Events
	register_event("HLTV","event_new_round","a", "1=0", "2=0");
	
	//Ham Events
	RegisterHam(Ham_Spawn,"player","event_player_spawn",1);
	RegisterHam(Ham_Killed,"player","event_player_killed",1);
	
	//User Messages
	g_msg_status_icon = get_user_msgid("StatusIcon");
	g_msg_say_text = get_user_msgid("SayText");
}

//---------------------------------------------------------------------

public random_leader_ts()
{
	new players[MAXPLAYERS],id;
	static num;
	new name_leader[32];
	new bool:found;
	
	get_players(players,num,"eh","TERRORIST");
	for(new i; i < num; i++)
	{
		if(!is_user_connected(players[i]) || players[i] == 0) continue;
		
		id = players[i];
		if((random_num(1,num) == num) && (id != g_ts_leader))
		{
			g_ts_leader = id;
			found = true;
			break;
		}
	}
	
	if(!found)
	{
		g_ts_leader = id;
	}
	
	if(g_ts_leader > 0)
	{
		g_ts_leader_alive = true;
		get_user_name(g_ts_leader,name_leader,31);
		//client_print(0,print_chat,"%s %L",PLUGIN_PREFIX,LANG_PLAYER,"HAS_BEEN_CHOSEN_TS",name_leader);
		client_cprint(g_ts_leader,MSG_ALL,"\y%s %L",PLUGIN_PREFIX,LANG_PLAYER,"HAS_BEEN_CHOSEN_TS",name_leader);
	}
}

public random_leader_ct()
{
	new players[MAXPLAYERS],id;
	static num;
	new name_leader[32];
	new bool:found;
	
	get_players(players,num,"eh","CT");
	for(new i; i < num; i++)
	{
		if(!is_user_connected(players[i]) || players[i] == 0) continue;
		
		id = players[i];
		if((random_num(1,num) == num) && (id != g_ct_leader))
		{
			g_ct_leader = id;
			found = true;
			break;
		}
	}
	
	if(!found)
	{
		g_ct_leader = id;
	}
	
	if(g_ct_leader > 0)
	{
		g_ct_leader_alive = true;
		get_user_name(g_ct_leader,name_leader,31);
		//client_print(0,print_chat,"%s %L",PLUGIN_PREFIX,LANG_PLAYER,"HAS_BEEN_CHOSEN_CT",name_leader);
		client_cprint(g_ct_leader,MSG_ALL,"\y%s %L",PLUGIN_PREFIX,LANG_PLAYER,"HAS_BEEN_CHOSEN_CT",name_leader);
	}
}

public delay_leader_ts(parm[1])
{
	create_status_icon(parm[0],1,"suit_full",255,0,0);
	set_user_rendering(parm[0],kRenderFxGlowShell,255,0,0,kRenderNormal,10);
	leader_bonus(parm[0]);
}

public delay_leader_ct(parm[1])
{
	create_status_icon(parm[0],1,"suit_full",0,0,255);
	set_user_rendering(parm[0],kRenderFxGlowShell,0,0,255,kRenderNormal,10);
	leader_bonus(parm[0]);
}

public leader_bonus(id)
{
	set_user_health(id,150); 
	cs_set_user_armor (id,200,CsArmorType:2);
}

public respawn_player(parm[1])
{
	new bool:respawn = false;
	static weapon[32],ammo[16];
	get_pcvar_string(cvar_weapon,weapon,31);
	get_pcvar_string(cvar_ammo,ammo,15);
	
	if((g_ts_leader_alive) && (get_user_team(parm[0]) == 1))
	{
		respawn = true;
	}
	
	if((g_ct_leader_alive) && (get_user_team(parm[0]) == 2))
	{
		respawn = true;
	}
	
	if(respawn == true)
	{
		ExecuteHamB(Ham_CS_RoundRespawn,parm[0]);
		
		give_item(parm[0],weapon);
		give_item(parm[0],ammo);
		give_item(parm[0],ammo);
	}
	
	return PLUGIN_CONTINUE;
}

//---------------------------------------------------------------------

public client_disconnect(id)
{
	if(id == g_ts_leader) g_ts_leader_alive = false;
	if(id == g_ct_leader) g_ct_leader_alive = false;
}

public client_changeteam(id,newteam,oldteam) 
{
	if((!is_user_alive(id)) || (oldteam != newteam))
	{
		if(id == g_ts_leader) g_ts_leader_alive = false;
		if(id == g_ct_leader) g_ct_leader_alive = false;
	}
}

//---------------------------------------------------------------------

public event_new_round()
{
	if((get_pcvar_num(cvar_guardian) != 1) || (get_playersnum() < 2)) return PLUGIN_CONTINUE;
	
	random_leader_ts();
	random_leader_ct();
	
	return PLUGIN_CONTINUE;
}

public event_player_spawn(id)
{
	if((get_pcvar_num(cvar_guardian) != 1) || (!is_user_alive(id))) return HAM_IGNORED;
	
	new bool:leader = false;
	if(g_ts_leader == id)
	{
		leader = true;
		static parm[1];
		parm[0] = id;
		
		set_task(0.5,"delay_leader_ts",TASK_LEADER + id,parm,1);
	}
	
	if(g_ct_leader == id)
	{
		leader = true;
		static parm[1];
		parm[0] = id;
		
		set_task(0.5,"delay_leader_ct",TASK_LEADER + id,parm,1);
	}
	
	if(!leader)
	{
		new CsArmorType:armortype;
		new armor = cs_get_user_armor(id,armortype);
		if(armor > 100)
		{
			if(cs_get_user_vip(id))
			{
				cs_set_user_armor(id,150,armortype);
			}
			else cs_set_user_armor(id,100,armortype);
		}
		
		set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,10);
	}
	
	if(task_exists(TASK_RESPAWNING + id,0))
	{
		remove_task(TASK_RESPAWNING + id,0);
	}
	
	return HAM_HANDLED;
}

//---------------------------------------------------------------------

public event_player_killed(id,killer,shouldgib)
{
	if((get_pcvar_num(cvar_guardian) != 1)) return HAM_IGNORED;
	
	new name[32];
	get_user_name(id,name,31);
	if(g_ts_leader == id)
	{
		g_ts_leader_alive = false;
		create_status_icon(id,0,"suit_full",255,0,0);
		
		set_hudmessage(255,0,0,-1.0,0.45,0,1.0,4.0,0.1,0.2,3);
		show_hudmessage (0,"%L",LANG_PLAYER,"TS_DEAD",name);
		
		//client_print(0,print_chat,"%s %L",PLUGIN_PREFIX,LANG_PLAYER,"TS_DEAD",name);
		client_cprint(g_ts_leader,MSG_ALL,"\y%s %L",PLUGIN_PREFIX,LANG_PLAYER,"COLOR_TS_DEAD",name);
		
		return HAM_HANDLED;
	}
	else if(g_ct_leader == id)
	{
		g_ct_leader_alive = false;
		create_status_icon(id,0,"suit_full",0,0,255);
		
		set_hudmessage(0,0,255,-1.0,0.45,0,1.0,4.0,0.1,0.2,3);
		show_hudmessage (0,"%L", LANG_PLAYER, "CT_DEAD",name);
		
		//client_print(0,print_chat,"%s %L",PLUGIN_PREFIX,LANG_PLAYER,"CT_DEAD",name);
		client_cprint(g_ct_leader,MSG_ALL,"\y%s %L",PLUGIN_PREFIX,LANG_PLAYER,"COLOR_CT_DEAD",name);
		
		return HAM_HANDLED;
	}
	
	static Float:spawntime,parm[1];
	spawntime = get_pcvar_float(cvar_spawntime);
	parm[0] = id;
		
	set_task(spawntime,"respawn_player",TASK_RESPAWNING + id,parm,1);
		
	new bool:respawn = false;
	if((g_ts_leader_alive) && (get_user_team(id) == 1))
	{
		respawn = true;
	}
	else if((g_ct_leader_alive) && (get_user_team(id) == 2))
	{
		respawn = true;
	}
		
	if(respawn)
	{
		set_hudmessage(255,255,255,-1.0,-1.0,2,1.0,(spawntime - 0.8),0.1,0.2,-1);
		show_hudmessage(id,"%L",id,"REVIVE");
	}

	return HAM_HANDLED;
}

//---------------------------------------------------------------------

public handler_cmd(id,level,cid)
{
	if (!cmd_access(id,level,cid,1))
	{
		return PLUGIN_HANDLED;
	}
	
	static cmd[32],arg1[32];
	read_argv(0,cmd,31);
	read_argv(1,arg1,31);
	
	if(equal(cmd,"sv_guardian") || equal(cmd,"amx_guardian"))
	{
		if(equal(arg1,"1"))
		{
			set_pcvar_num(cvar_guardian,1);
			set_cvar_num("sv_restartround",1);
		}
		else if(equal(arg1,"0"))
		{
			set_pcvar_num(cvar_guardian,0);
			set_cvar_num("sv_restartround",1);
		}
	}
	else if(equal(cmd,"sv_ga_spawntime") || equal(cmd,"amx_ga_spawntime"))
	{
		set_pcvar_float(cvar_spawntime,str_to_float(arg1));
	}
	else if(equal(cmd,"sv_ga_weapon") || equal(cmd,"amx_ga_weapon"))
	{
		set_pcvar_string(cvar_weapon,arg1);
	}
	else if(equal(cmd,"sv_ga_ammo") || equal(cmd,"amx_ga_ammo"))
	{
		set_pcvar_string(cvar_ammo,arg1);
	}
	
	return PLUGIN_HANDLED;
}

public handler_say(id)
{
	if(get_pcvar_num(cvar_guardian) != 1) return PLUGIN_CONTINUE;
	
	static said[32];
	read_args(said,31);
	remove_quotes(said);

	if(equal(said,"/guardian") || equal(said,"/guardians"))
	{
		static name_ts[32],name_ct[32];
		get_user_name(g_ts_leader,name_ts,31);
		get_user_name(g_ct_leader,name_ct,31);
		
		client_cprint(id,MSG_ONE,"\y%s %L",PLUGIN_PREFIX,id,"IS_GUARDIAN_TS",name_ts);
		client_cprint(id,MSG_ONE,"\y%s %L",PLUGIN_PREFIX,id,"IS_GUARDIAN_CT",name_ct);
	}
	
	return PLUGIN_CONTINUE;
}

//---------------------------------------------------------------------

Last edited by HundredEyes; 11-29-2022 at 15:17.
HundredEyes is offline
 



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 11:56.


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