Furien Mod (Plugin de Baza) 2015

Pluginuri pentru modul AmxModX.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
Challenger.
Fost moderator
Fost moderator
Posts: 2530
Joined: 07 Dec 2014, 14:32
Detinator Steam: Da
Reputatie: Fost Super Moderator
Nume anterior: whisTle
Puncte: 1.7 / 3
Fond eXtream: 0
Contact:

14 Jun 2015, 13:59

LOLpgl wrote:Poftim :
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <csx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN "Furien Mod"
#define VERSION "2.0"
#define AUTHOR "Aragon*"

#if cellbits == 32
#define OFFSET_BZ 235
#else
#define OFFSET_BZ 268
#endif

#define FURIEN_GRAVITY		0.5
#define FURIEN_SPEED		750.0
#define TEAM_FURIEN 1
#define TEAM_ANTIFURIEN 2

#define SKYNAME		"blood_"

#define TASKID_C4COUNTDOWN		453
#define TASKID_CANPLANT			10001 
//Settings
new bool:MakeVisible[33], Float:Wallorigin[33][3]

//Parachute
#define PARACHUTE_CLASS		"Parachute"
new ParaENT[33];

new JumpNum[33] = 0, bool:MultiJump[33] = false, SpriteEffect, bool: CanPlant;

new C4_CountDownDelay;
new cvar_gamedescription, removebuyzone,  cvar_autojoin_team, cvar_autojoin_class
new RandomLights[][] = {
	"d",
	"e",
	"f",
	"g"
}

new SkyTermination[][] = {
	"bk",
	"dn",
	"ft",
	"lf",
	"rt",
	"up"
}
new Prefix[] = "[FURIEN]"

new C4Sprite, MSGScreenFade, MaxPlayers;
//new Float:PlayerOrigin[33][3]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	cvar_gamedescription = register_cvar("furien_gamename", "Furien Revelation 2014")
	cvar_autojoin_team = register_cvar("furien_team", "5")
	cvar_autojoin_class = register_cvar("furien_class", "5")
	
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1)
	RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch_Weapon")
	RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch_Weapon")
	RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch_Weapon")
	RegisterHam(Ham_Touch, "player", "HAM_Player_Touch", 1);
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_c4", "C4_PrimaryAttack"); 
	
	register_forward(FM_AddToFullPack, "FWD_AddToFullPack", 1);	
	register_forward(FM_PlayerPreThink, "FWD_ParachutePreThink");
	register_forward(FM_PlayerPreThink, "FWD_PlayerPreThink");
	register_forward(FM_GetGameDescription, "FWD_GameDescription")	
	
	register_event("HLTV", "EVENT_NewRound", "a", "1=0", "2=0");
	register_event("DeathMsg", "EVENT_Death", "a")
	register_event("SendAudio", "EVENT_SwitchTeam", "a", "1=0", "2=%!MRAD_ctwin");
	
	register_logevent("LOGEVENT_RoundStart", 2, "1=Round_Start");
	register_logevent("LOGEVENT_RoundEnd", 2, "1=Round_End");
	
	register_message(get_user_msgid("StatusIcon"), "MSG_StatusIcon");
	register_message(get_user_msgid("TextMsg"), "MSG_TextMessage");
	register_message(get_user_msgid("ShowMenu"), "MSG_ShowMenu")
	register_message(get_user_msgid("VGUIMenu"), "MSG_VGUIMenu")
	register_message(get_user_msgid("SendAudio"), "MSG_SendAudio")
	
	MSGScreenFade = get_user_msgid("ScreenFade");
	MaxPlayers = get_maxplayers();
	register_clcmd("say /rs", "CmdResetScore")
	register_clcmd("say_team /rs", "CmdResetScore")
	register_clcmd("jointeam", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 1", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 2", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 3", "CMD_BlockJoinTeam")
	register_clcmd("chooseteam", "CMD_BlockChooseTeam")
}

public plugin_precache() {
	SpriteEffect = precache_model("sprites/Furien/Dead.spr")
	C4Sprite = precache_model("sprites/Furien/C4.spr");
	
	removebuyzone = register_cvar("furien_removebuyzone", "1")
	
	if(get_pcvar_num(removebuyzone)) {
		
		remove_entity_name("info_map_parameters");
		remove_entity_name("func_buyzone");
		
		new Entity = create_entity("info_map_parameters");
		
		DispatchKeyValue(Entity, "buying", "3");
		DispatchSpawn(Entity);
	}
	set_cvar_string("sv_skyname", SKYNAME)
	for(new i = 0; i < sizeof SkyTermination; ++i) {
		new Sky[64];
		formatex(Sky,sizeof(Sky)-1,"gfx/env/%s%s.tga", SKYNAME, SkyTermination);
		precache_generic(Sky);
	}
}

public CmdResetScore(id) {
	if(get_user_frags(id) == 0 && get_user_deaths(id) == 0) 
		ColorChat(id, "!g%s !nScorul tau este deja!g 0-0!g !", Prefix)
	else {
		for(new i = 0; i < 2; i++) {
			cs_set_user_deaths(id, 0);
			set_user_frags(id, 0);
		}
		new Name[32]
		get_user_name(id, Name, 31)
		ColorChat(0, "!g%s!n Jucatorul!g %s!n si-a resetat scorul!", Prefix, Name)
	}
}

public CMD_BlockJoinTeam(id) {
	console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
	return 1;
}

public CMD_BlockChooseTeam(id) {
	console_print(id, "*** Nu ai voie sa foloseti ChooseTeam ! ***")
	return 1;
}

public Ham_Spawn_Post(id) {
	if(is_user_connected(id) && is_user_alive(id)) {
		strip_user_weapons(id)
		fm_give_item(id, "weapon_knife")
		ResetScreen(id)
		//set_task(float(get_cvar_num("mp_freezetime")), "GetSpawn", id)
		switch(get_user_team(id)) {
			case TEAM_FURIEN: {
				fm_give_item(id, "weapon_knife")
				fm_give_item(id, "weapon_grenade")
				fm_give_item(id, "weapon_smokegrenade")
				fm_give_item(id, "weapon_flashbang")
				cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
				fm_set_user_health(id, 100)
				fm_set_user_armor(id, 0)
				set_user_footsteps(id, 1)
			}
			case TEAM_ANTIFURIEN: {
				fm_give_item(id, "weapon_knife")
				fm_give_item(id, "weapon_grenade")
				fm_give_item(id, "weapon_smokegrenade")
				fm_give_item(id, "weapon_flashbang")
				cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
				fm_set_user_health(id, 150)
				fm_set_user_armor(id, 0)
				set_user_footsteps(id, 0)
			}
		}
	}
}

/*public GetSpawn(id) {
	pev(id, pev_origin, PlayerOrigin[id])
	set_task(6.0, "TASK_CheckAFK", id)
}*/

public HAM_Touch_Weapon(ent, id) {
	if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN && !(get_pdata_cbase(ent, 39, 4) > 0))
		return HAM_SUPERCEDE
	
	return HAM_IGNORED
}

public HAM_Player_Touch(id, world) {
	if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN) {   
		new ClassName[32];
		pev(world, pev_classname, ClassName,(32-1));
		if(equal(ClassName, "worldspawn") || equal(ClassName, "func_wall") || equal(ClassName, "func_breakable"))
			pev(id, pev_origin, Wallorigin[id]);
	}
	return HAM_SUPERCEDE;
}

public C4_PrimaryAttack(Ent) {
	if(!CanPlant) 
		return HAM_SUPERCEDE
		
	return HAM_IGNORED
}

public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set) {
	if(is_user_connected(ent) && is_user_connected(host) && is_user_alive(ent)) {
		if(is_user_alive(host) && get_user_team(ent) == 1 && get_user_team(host) == 1 || !is_user_alive(host) && get_user_team(ent) == 1 && pev(host, pev_iuser2) == ent|| get_user_team(ent) == 1 && pev(ent, pev_maxspeed) <= 1.0) {
			set_es(es, ES_RenderFx, kRenderFxNone);
			set_es(es, ES_RenderMode, kRenderTransTexture);
			set_es(es, ES_RenderAmt, 255);
		}
		else if(get_user_team(ent) == 1) {
			set_es(es, ES_RenderFx, kRenderFxNone);
			set_es(es, ES_RenderMode, kRenderTransTexture);
			static Float:Origin[3]
			pev(ent, pev_origin, Origin)
			
			if(get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && fm_get_speed(ent) <= 5 || get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && Origin[0] == Wallorigin[ent][0] && Origin[1] == Wallorigin[ent][1] && Origin[2] == Wallorigin[ent][2])
				set_es(es, ES_RenderAmt, 0);	
			else
				set_es(es, ES_RenderAmt, 255);
		}
	}
}

public FWD_ParachutePreThink(id) {
	if(is_user_alive(id)) {
		new Float:FallSpeed = -50.0;
		new Float:Frame;
		
		new Button = pev(id, pev_button);
		new OldButton = pev(id, pev_oldbuttons);
		new Flags = pev(id, pev_flags);
		
		if(ParaENT[id] > 0 &&(Flags & FL_ONGROUND)) {
			if(pev(ParaENT[id],pev_sequence) != 2) {
				set_pev(ParaENT[id], pev_sequence, 2);
				set_pev(ParaENT[id], pev_gaitsequence, 1);
				set_pev(ParaENT[id], pev_frame, 0.0);
				set_pev(ParaENT[id], pev_fuser1, 0.0);
				set_pev(ParaENT[id], pev_animtime, 0.0);
				return;
			}
			pev(ParaENT[id],pev_fuser1, Frame);
			Frame += 2.0;
			set_pev(ParaENT[id],pev_fuser1,Frame);
			set_pev(ParaENT[id],pev_frame,Frame);
			
			if(Frame > 254.0) {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
			else {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
			return;
		}
		if(Button & IN_USE) {
			new Float:Velocity[3];
			pev(id, pev_velocity, Velocity);
			
			if(Velocity[2] < 0.0) {
				if(ParaENT[id] <= 0) {
					ParaENT[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
					
					if(ParaENT[id] > 0) {
						set_pev(ParaENT[id],pev_classname, PARACHUTE_CLASS);
						set_pev(ParaENT[id], pev_aiment, id);
						set_pev(ParaENT[id], pev_owner, id);
						set_pev(ParaENT[id], pev_movetype, MOVETYPE_FLY);
						set_pev(ParaENT[id], pev_sequence, 0);
						set_pev(ParaENT[id], pev_gaitsequence, 1);
						set_pev(ParaENT[id], pev_frame, 0.0);
						set_pev(ParaENT[id], pev_fuser1, 0.0);
					}
				}
				if(ParaENT[id] > 0) {
					set_pev(id, pev_sequence, 3);
					set_pev(id, pev_gaitsequence, 1);
					set_pev(id, pev_frame, 1.0);
					set_pev(id, pev_framerate, 1.0);
					
					Velocity[2] = (Velocity[2] + 40.0 < FallSpeed) ? Velocity[2] + 40.0 : FallSpeed;
					set_pev(id, pev_velocity, Velocity);
					
					if(pev(ParaENT[id],pev_sequence) == 0) {
						pev(ParaENT[id],pev_fuser1, Frame);
						Frame += 1.0;
						set_pev(ParaENT[id],pev_fuser1,Frame);
						set_pev(ParaENT[id],pev_frame,Frame);
						
						if(Frame > 100.0) {
							set_pev(ParaENT[id], pev_animtime, 0.0);
							set_pev(ParaENT[id], pev_framerate, 0.4);
							set_pev(ParaENT[id], pev_sequence, 1);
							set_pev(ParaENT[id], pev_gaitsequence, 1);
							set_pev(ParaENT[id], pev_frame, 0.0);
							set_pev(ParaENT[id], pev_fuser1, 0.0);
						}
					}
				}
			}
			
			else if(ParaENT[id] > 0) {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
		}
		else if((OldButton & IN_USE) && ParaENT[id] > 0) {
			engfunc(EngFunc_RemoveEntity, ParaENT[id]);
			ParaENT[id] = 0;
		}
	}
}
			
public FWD_PlayerPreThink(id) {
	if(is_user_connected(id)) { 
		if(get_user_team(id) == TEAM_FURIEN) {
			if(pev(id, pev_gravity) > FURIEN_GRAVITY && pev(id, pev_gravity) > 0.1)
				set_pev(id, pev_gravity, FURIEN_GRAVITY)
		
			if(pev(id, pev_maxspeed) < FURIEN_SPEED && pev(id, pev_maxspeed) > 1.0) {
				set_pev(id, pev_maxspeed, FURIEN_SPEED)
			}
		}	
		if((get_user_button(id) & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(get_user_oldbutton(id) & IN_JUMP)) {
			if(JumpNum[id] < 1) {
					MultiJump[id] = true;
					JumpNum[id]++
			}
		}
		if((get_user_button(id) & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) 
			JumpNum[id] = 0
		if(get_user_team(id) == TEAM_FURIEN) {
			new _C4 = find_ent_by_model(-1, "weaponbox", "models/w_backpack.mdl")
				
			if(is_valid_ent(_C4)) {
				new Float:MyOrigin[3], Float:TargetOrigin[3]
				entity_get_vector(id, EV_VEC_origin, MyOrigin)
				entity_get_vector(_C4, EV_VEC_origin, TargetOrigin)
					
				if(is_in_viewcone(id, TargetOrigin)) {
					new Float:Middle[3], Float:HitPoint[3]
					xs_vec_sub(TargetOrigin, MyOrigin, Middle)
					trace_line(-1, MyOrigin, TargetOrigin, HitPoint)
						
					new Float:WallOffset[3], Float:DistanceToWall
					DistanceToWall = vector_distance(MyOrigin, HitPoint) - 10.0
					new Float:Len = xs_vec_len(Middle)
					xs_vec_copy(Middle, WallOffset)
						
					WallOffset[0] /= Len, WallOffset[1] /= Len, WallOffset[2] /= Len
					WallOffset[0] *= DistanceToWall, WallOffset[1] *= DistanceToWall, WallOffset[2] *= DistanceToWall
						
					new Float:SpriteOffset[3]
					xs_vec_add(WallOffset, MyOrigin, SpriteOffset)
						
					message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)
					write_byte(TE_SPRITE)
					write_coord(floatround(SpriteOffset[0]))
					write_coord(floatround(SpriteOffset[1]))
					write_coord(floatround(SpriteOffset[2]+36.0))
					write_short(C4Sprite)
					write_byte(floatround(2.5))
					write_byte(50)
					message_end()
				}
			}
		}
	}
}

public client_PostThink(id) {
	if(is_user_alive(id)) {
		if(get_user_team(id) == TEAM_FURIEN) {
			static Float:Origin[3];
			pev(id, pev_origin, Origin);
		
			static Button ;
			Button = pev(id, pev_button)
		
			if(Button & IN_USE && get_distance_f(Origin, Wallorigin[id]) <= 5.0 && !(pev(id, pev_flags) & FL_ONGROUND)) {
				new Float:Velocity[3];
				new ClimbSpeed = floatround(pev(id, pev_maxspeed) / 1.8)
				if(Button & IN_FORWARD) {
					velocity_by_aim(id, ClimbSpeed, Velocity);
					fm_set_user_velocity(id, Velocity);
				}
				else if(Button & IN_BACK) {
					velocity_by_aim(id, -ClimbSpeed, Velocity);
					fm_set_user_velocity(id, Velocity);
				}
				else {
					set_pev(id, pev_origin, Wallorigin[id])
					velocity_by_aim(id, 0, Velocity);
					fm_set_user_velocity(id, Velocity);
				}
			}
		}
		if(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)
			MultiJump[id] = false;
		}
	}
}

public FWD_GameDescription() { 
	static GameName[32]
	get_pcvar_string(cvar_gamedescription, GameName, 31)
	
	forward_return(FMV_STRING, GameName)
	
	return FMRES_SUPERCEDE
}
		
public MSG_StatusIcon(msg_id, msg_dest, id) {
	static Attrib 
	Attrib = get_msg_arg_int(2)
	
	if(Attrib == (1<<1))
		set_msg_arg_int(2, ARG_BYTE, 0)
	
	new Icon[8];
	get_msg_arg_string(2, Icon, 7);
	if(get_pcvar_num(removebuyzone)) {
		static const BuyZone[] = "buyzone";
		
		if(equal(Icon, BuyZone)) {
			set_pdata_int(id, OFFSET_BZ, get_pdata_int(id, OFFSET_BZ, 5) & ~(1 << 0), 5);
			
			return PLUGIN_HANDLED;
		}
	}
	return PLUGIN_CONTINUE;
}

public MSG_TextMessage() {
	static TextMsg[22];
	get_msg_arg_string(2, TextMsg, charsmax(TextMsg))
	if(equal(TextMsg, "#Terrorists_Win")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#CTs_Win")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#Bomb_Defused")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#Target_Bombed")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#Target_Saved")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#C4_Plant_At_Bomb_Spot")) {
		if(!CanPlant)
			return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE;
}

public MSG_ShowMenu(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
	
	JoinTeam_Task(id, msgid)
	
	return PLUGIN_HANDLED
}

public MSG_VGUIMenu(msgid, dest, id) {
	if(get_msg_arg_int(1) != 2 || !Should_AutoJoin(id))
		return PLUGIN_CONTINUE
	
	JoinTeam_Task(id, msgid)
	
	return PLUGIN_HANDLED
}

public MSG_SendAudio() {
	static Sound[17]
	get_msg_arg_string(2, Sound, sizeof Sound - 1)
	
	if(equal(Sound, "terwin") || equal(Sound, "ctwin") || equal(Sound, "rounddraw") || equal(Sound, "bombpl") || equal(Sound, "bombdef"))
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}	

bool:Should_AutoJoin(id) {
	return(get_pcvar_num(cvar_autojoin_team) && !get_user_team(id) && !task_exists(id))
}

JoinTeam_Task(id, menu_msgid) {
	static param_menu_msgid[2]
	param_menu_msgid[0] = menu_msgid
	
	set_task(0.1, "Force_JoinTeam", id, param_menu_msgid, sizeof param_menu_msgid)
}

public Force_JoinTeam(menu_msgid[], id) {
	if(get_user_team(id))
		return
	
	static team[2], class[2]
	get_pcvar_string(cvar_autojoin_team, team, sizeof team - 1)
	get_pcvar_string(cvar_autojoin_class, class, sizeof class - 1)
	Force_Team_Join(id, menu_msgid[0], team, class)
}

stock Force_Team_Join(id, menu_msgid,  team[] = "5", 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)
}


public bomb_planted(planter) {
	C4_CountDownDelay = get_cvar_num("mp_c4timer") - 1
	TASK_C4_CountDown();
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii au plantat bomba!")
	set_lights("b")
}

public EVENT_NewRound() {
	remove_task(TASKID_CANPLANT)
	CanPlant = false;
	for(new i = 0; i < sizeof RandomLights; i++)
		set_lights(RandomLights)
	
	new Float:FloatTime = get_cvar_num("mp_freezetime") + (get_cvar_num("mp_roundtime") * 60) - 60.0
	set_task(FloatTime, "TASK_CanPlant", TASKID_CANPLANT)
}

public EVENT_SwitchTeam() {
	new Players[32], PlayersNum, id;
	get_players(Players, PlayersNum)
	if(PlayersNum) {
		for(new i; i < PlayersNum; i++) {
			id = Players
			BeginDelay(id)
		}
	}
}

public BeginDelay(id) {
	if(is_user_connected(id)) {
		switch(id) {
			case 1..7: set_task(0.1, "BeginTeamSwap", id)
			case 8..15: set_task(0.2, "BeginTeamSwap", id)
			case 16..23: set_task(0.3, "BeginTeamSwap", id)
			case 24..32: set_task(0.4, "BeginTeamSwap", id)
		}
	}
}

public BeginTeamSwap(id) {
	if(is_user_connected(id)) {
		switch(get_user_team(id)) {
			case TEAM_FURIEN: cs_set_user_team(id, CS_TEAM_CT)
			case TEAM_ANTIFURIEN: cs_set_user_team(id, CS_TEAM_T)
		}
	}
}

public TASK_CanPlant() {
	CanPlant = true;
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii pot planta bomba!")
	set_lights("c")
}

public LOGEVENT_RoundStart()
	remove_task(TASKID_C4COUNTDOWN)
	
public LOGEVENT_RoundEnd() 
	remove_task(TASKID_C4COUNTDOWN)
	
public ScreenFade(Red, Green, Blue) {
	message_begin(MSG_BROADCAST, MSGScreenFade);
	write_short(1<<0);
	write_short(1<<0);
	write_short(1<<2);
	write_byte(Red);
	write_byte(Green);
	write_byte(Blue);
	write_byte(255);
	message_end();
}

ResetScreen(id) {
	message_begin(MSG_ONE_UNRELIABLE, MSGScreenFade, _, id);
	write_short(1<<12); 
	write_short(1<<8);
	write_short(1<<1);
	write_byte(0);
	write_byte(0);
	write_byte(0);
	write_byte(255);
	message_end();
}

/*public SameOrigin(id) {
	new Float:Origin[3];
	set_pev(id, pev_origin, Origin)
	for(new i = 0; i < MaxPlayers; i++) {
		if(Origin != PlayerOrigin[id])
			return 0;
	}
	return 1;
}*/
		

public TASK_C4_CountDown() {
	new Red, Green, Blue
	if(C4_CountDownDelay > 10)
		Red = 0, Green = 255, Blue = 0;
	else if(C4_CountDownDelay > 5)
		Red = 255, Green = 200, Blue = 0;
	else if(C4_CountDownDelay <= 5)
		Red = 255, Green = 0, Blue = 0;
	
	if(C4_CountDownDelay) {
		new Message[256];
		formatex(Message,sizeof(Message)-1,"----------^n| C4: %d |^n----------", C4_CountDownDelay);

		set_hudmessage(Red, Green, Blue, -1.0, 0.78, 0, 6.0, 1.0)
		show_hudmessage(0, "%s", Message)
		set_task(1.0, "TASK_C4_CountDown", TASKID_C4COUNTDOWN);
		C4_CountDownDelay--;
	}
	else if(!C4_CountDownDelay)
		C4_CountDownDelay = 0;
}

/*public TASK_CheckAFK(id) {
	if(SameOrigin(id)) {
		user_silentkill(id)
		ColorChat(0, "!g%s!n Jucatorii!g AFK!n au fost omorati", Prefix)
	}
}*/

stock ColorChat(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, "!n", "^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)) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	} 
}

Mersi,si cum fac sa nu se mai intunece ?
NU sunt intermediar.

Dacă ai nevoie de ajutor pe forum dă-mi un PM şi rezolvăm.

REGULAMENT FORUM

RECLAMAȚII MODERATORI

RECLAMAȚII PM
Activitate scăzută
RoyalServer 2
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

15 Jun 2015, 14:52

FurienUltimate wrote:
LOLpgl wrote:Poftim :
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <csx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN "Furien Mod"
#define VERSION "2.0"
#define AUTHOR "Aragon*"

#if cellbits == 32
#define OFFSET_BZ 235
#else
#define OFFSET_BZ 268
#endif

#define FURIEN_GRAVITY		0.5
#define FURIEN_SPEED		750.0
#define TEAM_FURIEN 1
#define TEAM_ANTIFURIEN 2

#define SKYNAME		"blood_"

#define TASKID_C4COUNTDOWN		453
#define TASKID_CANPLANT			10001 
//Settings
new bool:MakeVisible[33], Float:Wallorigin[33][3]

//Parachute
#define PARACHUTE_CLASS		"Parachute"
new ParaENT[33];

new JumpNum[33] = 0, bool:MultiJump[33] = false, SpriteEffect, bool: CanPlant;

new C4_CountDownDelay;
new cvar_gamedescription, removebuyzone,  cvar_autojoin_team, cvar_autojoin_class
new RandomLights[][] = {
	"d",
	"e",
	"f",
	"g"
}

new SkyTermination[][] = {
	"bk",
	"dn",
	"ft",
	"lf",
	"rt",
	"up"
}
new Prefix[] = "[FURIEN]"

new C4Sprite, MSGScreenFade, MaxPlayers;
//new Float:PlayerOrigin[33][3]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	cvar_gamedescription = register_cvar("furien_gamename", "Furien Revelation 2014")
	cvar_autojoin_team = register_cvar("furien_team", "5")
	cvar_autojoin_class = register_cvar("furien_class", "5")
	
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1)
	RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch_Weapon")
	RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch_Weapon")
	RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch_Weapon")
	RegisterHam(Ham_Touch, "player", "HAM_Player_Touch", 1);
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_c4", "C4_PrimaryAttack"); 
	
	register_forward(FM_AddToFullPack, "FWD_AddToFullPack", 1);	
	register_forward(FM_PlayerPreThink, "FWD_ParachutePreThink");
	register_forward(FM_PlayerPreThink, "FWD_PlayerPreThink");
	register_forward(FM_GetGameDescription, "FWD_GameDescription")	
	
	register_event("HLTV", "EVENT_NewRound", "a", "1=0", "2=0");
	register_event("DeathMsg", "EVENT_Death", "a")
	register_event("SendAudio", "EVENT_SwitchTeam", "a", "1=0", "2=%!MRAD_ctwin");
	
	register_logevent("LOGEVENT_RoundStart", 2, "1=Round_Start");
	register_logevent("LOGEVENT_RoundEnd", 2, "1=Round_End");
	
	register_message(get_user_msgid("StatusIcon"), "MSG_StatusIcon");
	register_message(get_user_msgid("TextMsg"), "MSG_TextMessage");
	register_message(get_user_msgid("ShowMenu"), "MSG_ShowMenu")
	register_message(get_user_msgid("VGUIMenu"), "MSG_VGUIMenu")
	register_message(get_user_msgid("SendAudio"), "MSG_SendAudio")
	
	MSGScreenFade = get_user_msgid("ScreenFade");
	MaxPlayers = get_maxplayers();
	register_clcmd("say /rs", "CmdResetScore")
	register_clcmd("say_team /rs", "CmdResetScore")
	register_clcmd("jointeam", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 1", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 2", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 3", "CMD_BlockJoinTeam")
	register_clcmd("chooseteam", "CMD_BlockChooseTeam")
}

public plugin_precache() {
	SpriteEffect = precache_model("sprites/Furien/Dead.spr")
	C4Sprite = precache_model("sprites/Furien/C4.spr");
	
	removebuyzone = register_cvar("furien_removebuyzone", "1")
	
	if(get_pcvar_num(removebuyzone)) {
		
		remove_entity_name("info_map_parameters");
		remove_entity_name("func_buyzone");
		
		new Entity = create_entity("info_map_parameters");
		
		DispatchKeyValue(Entity, "buying", "3");
		DispatchSpawn(Entity);
	}
	set_cvar_string("sv_skyname", SKYNAME)
	for(new i = 0; i < sizeof SkyTermination; ++i) {
		new Sky[64];
		formatex(Sky,sizeof(Sky)-1,"gfx/env/%s%s.tga", SKYNAME, SkyTermination);
		precache_generic(Sky);
	}
}

public CmdResetScore(id) {
	if(get_user_frags(id) == 0 && get_user_deaths(id) == 0) 
		ColorChat(id, "!g%s !nScorul tau este deja!g 0-0!g !", Prefix)
	else {
		for(new i = 0; i < 2; i++) {
			cs_set_user_deaths(id, 0);
			set_user_frags(id, 0);
		}
		new Name[32]
		get_user_name(id, Name, 31)
		ColorChat(0, "!g%s!n Jucatorul!g %s!n si-a resetat scorul!", Prefix, Name)
	}
}

public CMD_BlockJoinTeam(id) {
	console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
	return 1;
}

public CMD_BlockChooseTeam(id) {
	console_print(id, "*** Nu ai voie sa foloseti ChooseTeam ! ***")
	return 1;
}

public Ham_Spawn_Post(id) {
	if(is_user_connected(id) && is_user_alive(id)) {
		strip_user_weapons(id)
		fm_give_item(id, "weapon_knife")
		ResetScreen(id)
		//set_task(float(get_cvar_num("mp_freezetime")), "GetSpawn", id)
		switch(get_user_team(id)) {
			case TEAM_FURIEN: {
				fm_give_item(id, "weapon_knife")
				fm_give_item(id, "weapon_grenade")
				fm_give_item(id, "weapon_smokegrenade")
				fm_give_item(id, "weapon_flashbang")
				cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
				fm_set_user_health(id, 100)
				fm_set_user_armor(id, 0)
				set_user_footsteps(id, 1)
			}
			case TEAM_ANTIFURIEN: {
				fm_give_item(id, "weapon_knife")
				fm_give_item(id, "weapon_grenade")
				fm_give_item(id, "weapon_smokegrenade")
				fm_give_item(id, "weapon_flashbang")
				cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
				fm_set_user_health(id, 150)
				fm_set_user_armor(id, 0)
				set_user_footsteps(id, 0)
			}
		}
	}
}

/*public GetSpawn(id) {
	pev(id, pev_origin, PlayerOrigin[id])
	set_task(6.0, "TASK_CheckAFK", id)
}*/

public HAM_Touch_Weapon(ent, id) {
	if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN && !(get_pdata_cbase(ent, 39, 4) > 0))
		return HAM_SUPERCEDE
	
	return HAM_IGNORED
}

public HAM_Player_Touch(id, world) {
	if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN) {   
		new ClassName[32];
		pev(world, pev_classname, ClassName,(32-1));
		if(equal(ClassName, "worldspawn") || equal(ClassName, "func_wall") || equal(ClassName, "func_breakable"))
			pev(id, pev_origin, Wallorigin[id]);
	}
	return HAM_SUPERCEDE;
}

public C4_PrimaryAttack(Ent) {
	if(!CanPlant) 
		return HAM_SUPERCEDE
		
	return HAM_IGNORED
}

public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set) {
	if(is_user_connected(ent) && is_user_connected(host) && is_user_alive(ent)) {
		if(is_user_alive(host) && get_user_team(ent) == 1 && get_user_team(host) == 1 || !is_user_alive(host) && get_user_team(ent) == 1 && pev(host, pev_iuser2) == ent|| get_user_team(ent) == 1 && pev(ent, pev_maxspeed) <= 1.0) {
			set_es(es, ES_RenderFx, kRenderFxNone);
			set_es(es, ES_RenderMode, kRenderTransTexture);
			set_es(es, ES_RenderAmt, 255);
		}
		else if(get_user_team(ent) == 1) {
			set_es(es, ES_RenderFx, kRenderFxNone);
			set_es(es, ES_RenderMode, kRenderTransTexture);
			static Float:Origin[3]
			pev(ent, pev_origin, Origin)
			
			if(get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && fm_get_speed(ent) <= 5 || get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && Origin[0] == Wallorigin[ent][0] && Origin[1] == Wallorigin[ent][1] && Origin[2] == Wallorigin[ent][2])
				set_es(es, ES_RenderAmt, 0);	
			else
				set_es(es, ES_RenderAmt, 255);
		}
	}
}

public FWD_ParachutePreThink(id) {
	if(is_user_alive(id)) {
		new Float:FallSpeed = -50.0;
		new Float:Frame;
		
		new Button = pev(id, pev_button);
		new OldButton = pev(id, pev_oldbuttons);
		new Flags = pev(id, pev_flags);
		
		if(ParaENT[id] > 0 &&(Flags & FL_ONGROUND)) {
			if(pev(ParaENT[id],pev_sequence) != 2) {
				set_pev(ParaENT[id], pev_sequence, 2);
				set_pev(ParaENT[id], pev_gaitsequence, 1);
				set_pev(ParaENT[id], pev_frame, 0.0);
				set_pev(ParaENT[id], pev_fuser1, 0.0);
				set_pev(ParaENT[id], pev_animtime, 0.0);
				return;
			}
			pev(ParaENT[id],pev_fuser1, Frame);
			Frame += 2.0;
			set_pev(ParaENT[id],pev_fuser1,Frame);
			set_pev(ParaENT[id],pev_frame,Frame);
			
			if(Frame > 254.0) {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
			else {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
			return;
		}
		if(Button & IN_USE) {
			new Float:Velocity[3];
			pev(id, pev_velocity, Velocity);
			
			if(Velocity[2] < 0.0) {
				if(ParaENT[id] <= 0) {
					ParaENT[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
					
					if(ParaENT[id] > 0) {
						set_pev(ParaENT[id],pev_classname, PARACHUTE_CLASS);
						set_pev(ParaENT[id], pev_aiment, id);
						set_pev(ParaENT[id], pev_owner, id);
						set_pev(ParaENT[id], pev_movetype, MOVETYPE_FLY);
						set_pev(ParaENT[id], pev_sequence, 0);
						set_pev(ParaENT[id], pev_gaitsequence, 1);
						set_pev(ParaENT[id], pev_frame, 0.0);
						set_pev(ParaENT[id], pev_fuser1, 0.0);
					}
				}
				if(ParaENT[id] > 0) {
					set_pev(id, pev_sequence, 3);
					set_pev(id, pev_gaitsequence, 1);
					set_pev(id, pev_frame, 1.0);
					set_pev(id, pev_framerate, 1.0);
					
					Velocity[2] = (Velocity[2] + 40.0 < FallSpeed) ? Velocity[2] + 40.0 : FallSpeed;
					set_pev(id, pev_velocity, Velocity);
					
					if(pev(ParaENT[id],pev_sequence) == 0) {
						pev(ParaENT[id],pev_fuser1, Frame);
						Frame += 1.0;
						set_pev(ParaENT[id],pev_fuser1,Frame);
						set_pev(ParaENT[id],pev_frame,Frame);
						
						if(Frame > 100.0) {
							set_pev(ParaENT[id], pev_animtime, 0.0);
							set_pev(ParaENT[id], pev_framerate, 0.4);
							set_pev(ParaENT[id], pev_sequence, 1);
							set_pev(ParaENT[id], pev_gaitsequence, 1);
							set_pev(ParaENT[id], pev_frame, 0.0);
							set_pev(ParaENT[id], pev_fuser1, 0.0);
						}
					}
				}
			}
			
			else if(ParaENT[id] > 0) {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
		}
		else if((OldButton & IN_USE) && ParaENT[id] > 0) {
			engfunc(EngFunc_RemoveEntity, ParaENT[id]);
			ParaENT[id] = 0;
		}
	}
}
			
public FWD_PlayerPreThink(id) {
	if(is_user_connected(id)) { 
		if(get_user_team(id) == TEAM_FURIEN) {
			if(pev(id, pev_gravity) > FURIEN_GRAVITY && pev(id, pev_gravity) > 0.1)
				set_pev(id, pev_gravity, FURIEN_GRAVITY)
		
			if(pev(id, pev_maxspeed) < FURIEN_SPEED && pev(id, pev_maxspeed) > 1.0) {
				set_pev(id, pev_maxspeed, FURIEN_SPEED)
			}
		}	
		if((get_user_button(id) & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(get_user_oldbutton(id) & IN_JUMP)) {
			if(JumpNum[id] < 1) {
					MultiJump[id] = true;
					JumpNum[id]++
			}
		}
		if((get_user_button(id) & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) 
			JumpNum[id] = 0
		if(get_user_team(id) == TEAM_FURIEN) {
			new _C4 = find_ent_by_model(-1, "weaponbox", "models/w_backpack.mdl")
				
			if(is_valid_ent(_C4)) {
				new Float:MyOrigin[3], Float:TargetOrigin[3]
				entity_get_vector(id, EV_VEC_origin, MyOrigin)
				entity_get_vector(_C4, EV_VEC_origin, TargetOrigin)
					
				if(is_in_viewcone(id, TargetOrigin)) {
					new Float:Middle[3], Float:HitPoint[3]
					xs_vec_sub(TargetOrigin, MyOrigin, Middle)
					trace_line(-1, MyOrigin, TargetOrigin, HitPoint)
						
					new Float:WallOffset[3], Float:DistanceToWall
					DistanceToWall = vector_distance(MyOrigin, HitPoint) - 10.0
					new Float:Len = xs_vec_len(Middle)
					xs_vec_copy(Middle, WallOffset)
						
					WallOffset[0] /= Len, WallOffset[1] /= Len, WallOffset[2] /= Len
					WallOffset[0] *= DistanceToWall, WallOffset[1] *= DistanceToWall, WallOffset[2] *= DistanceToWall
						
					new Float:SpriteOffset[3]
					xs_vec_add(WallOffset, MyOrigin, SpriteOffset)
						
					message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)
					write_byte(TE_SPRITE)
					write_coord(floatround(SpriteOffset[0]))
					write_coord(floatround(SpriteOffset[1]))
					write_coord(floatround(SpriteOffset[2]+36.0))
					write_short(C4Sprite)
					write_byte(floatround(2.5))
					write_byte(50)
					message_end()
				}
			}
		}
	}
}

public client_PostThink(id) {
	if(is_user_alive(id)) {
		if(get_user_team(id) == TEAM_FURIEN) {
			static Float:Origin[3];
			pev(id, pev_origin, Origin);
		
			static Button ;
			Button = pev(id, pev_button)
		
			if(Button & IN_USE && get_distance_f(Origin, Wallorigin[id]) <= 5.0 && !(pev(id, pev_flags) & FL_ONGROUND)) {
				new Float:Velocity[3];
				new ClimbSpeed = floatround(pev(id, pev_maxspeed) / 1.8)
				if(Button & IN_FORWARD) {
					velocity_by_aim(id, ClimbSpeed, Velocity);
					fm_set_user_velocity(id, Velocity);
				}
				else if(Button & IN_BACK) {
					velocity_by_aim(id, -ClimbSpeed, Velocity);
					fm_set_user_velocity(id, Velocity);
				}
				else {
					set_pev(id, pev_origin, Wallorigin[id])
					velocity_by_aim(id, 0, Velocity);
					fm_set_user_velocity(id, Velocity);
				}
			}
		}
		if(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)
			MultiJump[id] = false;
		}
	}
}

public FWD_GameDescription() { 
	static GameName[32]
	get_pcvar_string(cvar_gamedescription, GameName, 31)
	
	forward_return(FMV_STRING, GameName)
	
	return FMRES_SUPERCEDE
}
		
public MSG_StatusIcon(msg_id, msg_dest, id) {
	static Attrib 
	Attrib = get_msg_arg_int(2)
	
	if(Attrib == (1<<1))
		set_msg_arg_int(2, ARG_BYTE, 0)
	
	new Icon[8];
	get_msg_arg_string(2, Icon, 7);
	if(get_pcvar_num(removebuyzone)) {
		static const BuyZone[] = "buyzone";
		
		if(equal(Icon, BuyZone)) {
			set_pdata_int(id, OFFSET_BZ, get_pdata_int(id, OFFSET_BZ, 5) & ~(1 << 0), 5);
			
			return PLUGIN_HANDLED;
		}
	}
	return PLUGIN_CONTINUE;
}

public MSG_TextMessage() {
	static TextMsg[22];
	get_msg_arg_string(2, TextMsg, charsmax(TextMsg))
	if(equal(TextMsg, "#Terrorists_Win")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#CTs_Win")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#Bomb_Defused")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#Target_Bombed")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#Target_Saved")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#C4_Plant_At_Bomb_Spot")) {
		if(!CanPlant)
			return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE;
}

public MSG_ShowMenu(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
	
	JoinTeam_Task(id, msgid)
	
	return PLUGIN_HANDLED
}

public MSG_VGUIMenu(msgid, dest, id) {
	if(get_msg_arg_int(1) != 2 || !Should_AutoJoin(id))
		return PLUGIN_CONTINUE
	
	JoinTeam_Task(id, msgid)
	
	return PLUGIN_HANDLED
}

public MSG_SendAudio() {
	static Sound[17]
	get_msg_arg_string(2, Sound, sizeof Sound - 1)
	
	if(equal(Sound, "terwin") || equal(Sound, "ctwin") || equal(Sound, "rounddraw") || equal(Sound, "bombpl") || equal(Sound, "bombdef"))
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}	

bool:Should_AutoJoin(id) {
	return(get_pcvar_num(cvar_autojoin_team) && !get_user_team(id) && !task_exists(id))
}

JoinTeam_Task(id, menu_msgid) {
	static param_menu_msgid[2]
	param_menu_msgid[0] = menu_msgid
	
	set_task(0.1, "Force_JoinTeam", id, param_menu_msgid, sizeof param_menu_msgid)
}

public Force_JoinTeam(menu_msgid[], id) {
	if(get_user_team(id))
		return
	
	static team[2], class[2]
	get_pcvar_string(cvar_autojoin_team, team, sizeof team - 1)
	get_pcvar_string(cvar_autojoin_class, class, sizeof class - 1)
	Force_Team_Join(id, menu_msgid[0], team, class)
}

stock Force_Team_Join(id, menu_msgid,  team[] = "5", 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)
}


public bomb_planted(planter) {
	C4_CountDownDelay = get_cvar_num("mp_c4timer") - 1
	TASK_C4_CountDown();
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii au plantat bomba!")
	set_lights("b")
}

public EVENT_NewRound() {
	remove_task(TASKID_CANPLANT)
	CanPlant = false;
	for(new i = 0; i < sizeof RandomLights; i++)
		set_lights(RandomLights)
	
	new Float:FloatTime = get_cvar_num("mp_freezetime") + (get_cvar_num("mp_roundtime") * 60) - 60.0
	set_task(FloatTime, "TASK_CanPlant", TASKID_CANPLANT)
}

public EVENT_SwitchTeam() {
	new Players[32], PlayersNum, id;
	get_players(Players, PlayersNum)
	if(PlayersNum) {
		for(new i; i < PlayersNum; i++) {
			id = Players
			BeginDelay(id)
		}
	}
}

public BeginDelay(id) {
	if(is_user_connected(id)) {
		switch(id) {
			case 1..7: set_task(0.1, "BeginTeamSwap", id)
			case 8..15: set_task(0.2, "BeginTeamSwap", id)
			case 16..23: set_task(0.3, "BeginTeamSwap", id)
			case 24..32: set_task(0.4, "BeginTeamSwap", id)
		}
	}
}

public BeginTeamSwap(id) {
	if(is_user_connected(id)) {
		switch(get_user_team(id)) {
			case TEAM_FURIEN: cs_set_user_team(id, CS_TEAM_CT)
			case TEAM_ANTIFURIEN: cs_set_user_team(id, CS_TEAM_T)
		}
	}
}

public TASK_CanPlant() {
	CanPlant = true;
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii pot planta bomba!")
	set_lights("c")
}

public LOGEVENT_RoundStart()
	remove_task(TASKID_C4COUNTDOWN)
	
public LOGEVENT_RoundEnd() 
	remove_task(TASKID_C4COUNTDOWN)
	
public ScreenFade(Red, Green, Blue) {
	message_begin(MSG_BROADCAST, MSGScreenFade);
	write_short(1<<0);
	write_short(1<<0);
	write_short(1<<2);
	write_byte(Red);
	write_byte(Green);
	write_byte(Blue);
	write_byte(255);
	message_end();
}

ResetScreen(id) {
	message_begin(MSG_ONE_UNRELIABLE, MSGScreenFade, _, id);
	write_short(1<<12); 
	write_short(1<<8);
	write_short(1<<1);
	write_byte(0);
	write_byte(0);
	write_byte(0);
	write_byte(255);
	message_end();
}

/*public SameOrigin(id) {
	new Float:Origin[3];
	set_pev(id, pev_origin, Origin)
	for(new i = 0; i < MaxPlayers; i++) {
		if(Origin != PlayerOrigin[id])
			return 0;
	}
	return 1;
}*/
		

public TASK_C4_CountDown() {
	new Red, Green, Blue
	if(C4_CountDownDelay > 10)
		Red = 0, Green = 255, Blue = 0;
	else if(C4_CountDownDelay > 5)
		Red = 255, Green = 200, Blue = 0;
	else if(C4_CountDownDelay <= 5)
		Red = 255, Green = 0, Blue = 0;
	
	if(C4_CountDownDelay) {
		new Message[256];
		formatex(Message,sizeof(Message)-1,"----------^n| C4: %d |^n----------", C4_CountDownDelay);

		set_hudmessage(Red, Green, Blue, -1.0, 0.78, 0, 6.0, 1.0)
		show_hudmessage(0, "%s", Message)
		set_task(1.0, "TASK_C4_CountDown", TASKID_C4COUNTDOWN);
		C4_CountDownDelay--;
	}
	else if(!C4_CountDownDelay)
		C4_CountDownDelay = 0;
}

/*public TASK_CheckAFK(id) {
	if(SameOrigin(id)) {
		user_silentkill(id)
		ColorChat(0, "!g%s!n Jucatorii!g AFK!n au fost omorati", Prefix)
	}
}*/

stock ColorChat(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, "!n", "^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)) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	} 
}

Mersi,si cum fac sa nu se mai intunece ?
| Afiseaza codul
public bomb_planted(planter) {
	C4_CountDownDelay = get_cvar_num("mp_c4timer") - 1
	TASK_C4_CountDown();
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii au plantat bomba!")
	set_lights("b")
}

public EVENT_NewRound() {
	remove_task(TASKID_CANPLANT)
	CanPlant = false;
	for(new i = 0; i < sizeof RandomLights; i++)
		set_lights(RandomLights)
	
	new Float:FloatTime = get_cvar_num("mp_freezetime") + (get_cvar_num("mp_roundtime") * 60) - 60.0
	set_task(FloatTime, "TASK_CanPlant", TASKID_CANPLANT)
}

public TASK_CanPlant() {
	CanPlant = true;
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii pot planta bomba!")
	set_lights("c")
}

->
| Afiseaza codul
public bomb_planted(planter) {
	C4_CountDownDelay = get_cvar_num("mp_c4timer") - 1
	TASK_C4_CountDown();
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii au plantat bomba!")
}

public EVENT_NewRound() {
	remove_task(TASKID_CANPLANT)
	CanPlant = false;
	
	new Float:FloatTime = get_cvar_num("mp_freezetime") + (get_cvar_num("mp_roundtime") * 60) - 60.0
	set_task(FloatTime, "TASK_CanPlant", TASKID_CANPLANT)
}

public TASK_CanPlant() {
	CanPlant = true;
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii pot planta bomba!")
}


Cauti publicurile astea si le inlocuiesti cu ce ti-am dat eu. Astfel, vei scapa de luminozitate.
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
User avatar
Challenger.
Fost moderator
Fost moderator
Posts: 2530
Joined: 07 Dec 2014, 14:32
Detinator Steam: Da
Reputatie: Fost Super Moderator
Nume anterior: whisTle
Puncte: 1.7 / 3
Fond eXtream: 0
Contact:

15 Jun 2015, 15:58

YONTU wrote:
FurienUltimate wrote:
LOLpgl wrote:Poftim :
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <csx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN "Furien Mod"
#define VERSION "2.0"
#define AUTHOR "Aragon*"

#if cellbits == 32
#define OFFSET_BZ 235
#else
#define OFFSET_BZ 268
#endif

#define FURIEN_GRAVITY		0.5
#define FURIEN_SPEED		750.0
#define TEAM_FURIEN 1
#define TEAM_ANTIFURIEN 2

#define SKYNAME		"blood_"

#define TASKID_C4COUNTDOWN		453
#define TASKID_CANPLANT			10001 
//Settings
new bool:MakeVisible[33], Float:Wallorigin[33][3]

//Parachute
#define PARACHUTE_CLASS		"Parachute"
new ParaENT[33];

new JumpNum[33] = 0, bool:MultiJump[33] = false, SpriteEffect, bool: CanPlant;

new C4_CountDownDelay;
new cvar_gamedescription, removebuyzone,  cvar_autojoin_team, cvar_autojoin_class
new RandomLights[][] = {
	"d",
	"e",
	"f",
	"g"
}

new SkyTermination[][] = {
	"bk",
	"dn",
	"ft",
	"lf",
	"rt",
	"up"
}
new Prefix[] = "[FURIEN]"

new C4Sprite, MSGScreenFade, MaxPlayers;
//new Float:PlayerOrigin[33][3]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	cvar_gamedescription = register_cvar("furien_gamename", "Furien Revelation 2014")
	cvar_autojoin_team = register_cvar("furien_team", "5")
	cvar_autojoin_class = register_cvar("furien_class", "5")
	
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1)
	RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch_Weapon")
	RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch_Weapon")
	RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch_Weapon")
	RegisterHam(Ham_Touch, "player", "HAM_Player_Touch", 1);
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_c4", "C4_PrimaryAttack"); 
	
	register_forward(FM_AddToFullPack, "FWD_AddToFullPack", 1);	
	register_forward(FM_PlayerPreThink, "FWD_ParachutePreThink");
	register_forward(FM_PlayerPreThink, "FWD_PlayerPreThink");
	register_forward(FM_GetGameDescription, "FWD_GameDescription")	
	
	register_event("HLTV", "EVENT_NewRound", "a", "1=0", "2=0");
	register_event("DeathMsg", "EVENT_Death", "a")
	register_event("SendAudio", "EVENT_SwitchTeam", "a", "1=0", "2=%!MRAD_ctwin");
	
	register_logevent("LOGEVENT_RoundStart", 2, "1=Round_Start");
	register_logevent("LOGEVENT_RoundEnd", 2, "1=Round_End");
	
	register_message(get_user_msgid("StatusIcon"), "MSG_StatusIcon");
	register_message(get_user_msgid("TextMsg"), "MSG_TextMessage");
	register_message(get_user_msgid("ShowMenu"), "MSG_ShowMenu")
	register_message(get_user_msgid("VGUIMenu"), "MSG_VGUIMenu")
	register_message(get_user_msgid("SendAudio"), "MSG_SendAudio")
	
	MSGScreenFade = get_user_msgid("ScreenFade");
	MaxPlayers = get_maxplayers();
	register_clcmd("say /rs", "CmdResetScore")
	register_clcmd("say_team /rs", "CmdResetScore")
	register_clcmd("jointeam", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 1", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 2", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 3", "CMD_BlockJoinTeam")
	register_clcmd("chooseteam", "CMD_BlockChooseTeam")
}

public plugin_precache() {
	SpriteEffect = precache_model("sprites/Furien/Dead.spr")
	C4Sprite = precache_model("sprites/Furien/C4.spr");
	
	removebuyzone = register_cvar("furien_removebuyzone", "1")
	
	if(get_pcvar_num(removebuyzone)) {
		
		remove_entity_name("info_map_parameters");
		remove_entity_name("func_buyzone");
		
		new Entity = create_entity("info_map_parameters");
		
		DispatchKeyValue(Entity, "buying", "3");
		DispatchSpawn(Entity);
	}
	set_cvar_string("sv_skyname", SKYNAME)
	for(new i = 0; i < sizeof SkyTermination; ++i) {
		new Sky[64];
		formatex(Sky,sizeof(Sky)-1,"gfx/env/%s%s.tga", SKYNAME, SkyTermination);
		precache_generic(Sky);
	}
}

public CmdResetScore(id) {
	if(get_user_frags(id) == 0 && get_user_deaths(id) == 0) 
		ColorChat(id, "!g%s !nScorul tau este deja!g 0-0!g !", Prefix)
	else {
		for(new i = 0; i < 2; i++) {
			cs_set_user_deaths(id, 0);
			set_user_frags(id, 0);
		}
		new Name[32]
		get_user_name(id, Name, 31)
		ColorChat(0, "!g%s!n Jucatorul!g %s!n si-a resetat scorul!", Prefix, Name)
	}
}

public CMD_BlockJoinTeam(id) {
	console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
	return 1;
}

public CMD_BlockChooseTeam(id) {
	console_print(id, "*** Nu ai voie sa foloseti ChooseTeam ! ***")
	return 1;
}

public Ham_Spawn_Post(id) {
	if(is_user_connected(id) && is_user_alive(id)) {
		strip_user_weapons(id)
		fm_give_item(id, "weapon_knife")
		ResetScreen(id)
		//set_task(float(get_cvar_num("mp_freezetime")), "GetSpawn", id)
		switch(get_user_team(id)) {
			case TEAM_FURIEN: {
				fm_give_item(id, "weapon_knife")
				fm_give_item(id, "weapon_grenade")
				fm_give_item(id, "weapon_smokegrenade")
				fm_give_item(id, "weapon_flashbang")
				cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
				fm_set_user_health(id, 100)
				fm_set_user_armor(id, 0)
				set_user_footsteps(id, 1)
			}
			case TEAM_ANTIFURIEN: {
				fm_give_item(id, "weapon_knife")
				fm_give_item(id, "weapon_grenade")
				fm_give_item(id, "weapon_smokegrenade")
				fm_give_item(id, "weapon_flashbang")
				cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
				fm_set_user_health(id, 150)
				fm_set_user_armor(id, 0)
				set_user_footsteps(id, 0)
			}
		}
	}
}

/*public GetSpawn(id) {
	pev(id, pev_origin, PlayerOrigin[id])
	set_task(6.0, "TASK_CheckAFK", id)
}*/

public HAM_Touch_Weapon(ent, id) {
	if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN && !(get_pdata_cbase(ent, 39, 4) > 0))
		return HAM_SUPERCEDE
	
	return HAM_IGNORED
}

public HAM_Player_Touch(id, world) {
	if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN) {   
		new ClassName[32];
		pev(world, pev_classname, ClassName,(32-1));
		if(equal(ClassName, "worldspawn") || equal(ClassName, "func_wall") || equal(ClassName, "func_breakable"))
			pev(id, pev_origin, Wallorigin[id]);
	}
	return HAM_SUPERCEDE;
}

public C4_PrimaryAttack(Ent) {
	if(!CanPlant) 
		return HAM_SUPERCEDE
		
	return HAM_IGNORED
}

public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set) {
	if(is_user_connected(ent) && is_user_connected(host) && is_user_alive(ent)) {
		if(is_user_alive(host) && get_user_team(ent) == 1 && get_user_team(host) == 1 || !is_user_alive(host) && get_user_team(ent) == 1 && pev(host, pev_iuser2) == ent|| get_user_team(ent) == 1 && pev(ent, pev_maxspeed) <= 1.0) {
			set_es(es, ES_RenderFx, kRenderFxNone);
			set_es(es, ES_RenderMode, kRenderTransTexture);
			set_es(es, ES_RenderAmt, 255);
		}
		else if(get_user_team(ent) == 1) {
			set_es(es, ES_RenderFx, kRenderFxNone);
			set_es(es, ES_RenderMode, kRenderTransTexture);
			static Float:Origin[3]
			pev(ent, pev_origin, Origin)
			
			if(get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && fm_get_speed(ent) <= 5 || get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && Origin[0] == Wallorigin[ent][0] && Origin[1] == Wallorigin[ent][1] && Origin[2] == Wallorigin[ent][2])
				set_es(es, ES_RenderAmt, 0);	
			else
				set_es(es, ES_RenderAmt, 255);
		}
	}
}

public FWD_ParachutePreThink(id) {
	if(is_user_alive(id)) {
		new Float:FallSpeed = -50.0;
		new Float:Frame;
		
		new Button = pev(id, pev_button);
		new OldButton = pev(id, pev_oldbuttons);
		new Flags = pev(id, pev_flags);
		
		if(ParaENT[id] > 0 &&(Flags & FL_ONGROUND)) {
			if(pev(ParaENT[id],pev_sequence) != 2) {
				set_pev(ParaENT[id], pev_sequence, 2);
				set_pev(ParaENT[id], pev_gaitsequence, 1);
				set_pev(ParaENT[id], pev_frame, 0.0);
				set_pev(ParaENT[id], pev_fuser1, 0.0);
				set_pev(ParaENT[id], pev_animtime, 0.0);
				return;
			}
			pev(ParaENT[id],pev_fuser1, Frame);
			Frame += 2.0;
			set_pev(ParaENT[id],pev_fuser1,Frame);
			set_pev(ParaENT[id],pev_frame,Frame);
			
			if(Frame > 254.0) {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
			else {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
			return;
		}
		if(Button & IN_USE) {
			new Float:Velocity[3];
			pev(id, pev_velocity, Velocity);
			
			if(Velocity[2] < 0.0) {
				if(ParaENT[id] <= 0) {
					ParaENT[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
					
					if(ParaENT[id] > 0) {
						set_pev(ParaENT[id],pev_classname, PARACHUTE_CLASS);
						set_pev(ParaENT[id], pev_aiment, id);
						set_pev(ParaENT[id], pev_owner, id);
						set_pev(ParaENT[id], pev_movetype, MOVETYPE_FLY);
						set_pev(ParaENT[id], pev_sequence, 0);
						set_pev(ParaENT[id], pev_gaitsequence, 1);
						set_pev(ParaENT[id], pev_frame, 0.0);
						set_pev(ParaENT[id], pev_fuser1, 0.0);
					}
				}
				if(ParaENT[id] > 0) {
					set_pev(id, pev_sequence, 3);
					set_pev(id, pev_gaitsequence, 1);
					set_pev(id, pev_frame, 1.0);
					set_pev(id, pev_framerate, 1.0);
					
					Velocity[2] = (Velocity[2] + 40.0 < FallSpeed) ? Velocity[2] + 40.0 : FallSpeed;
					set_pev(id, pev_velocity, Velocity);
					
					if(pev(ParaENT[id],pev_sequence) == 0) {
						pev(ParaENT[id],pev_fuser1, Frame);
						Frame += 1.0;
						set_pev(ParaENT[id],pev_fuser1,Frame);
						set_pev(ParaENT[id],pev_frame,Frame);
						
						if(Frame > 100.0) {
							set_pev(ParaENT[id], pev_animtime, 0.0);
							set_pev(ParaENT[id], pev_framerate, 0.4);
							set_pev(ParaENT[id], pev_sequence, 1);
							set_pev(ParaENT[id], pev_gaitsequence, 1);
							set_pev(ParaENT[id], pev_frame, 0.0);
							set_pev(ParaENT[id], pev_fuser1, 0.0);
						}
					}
				}
			}
			
			else if(ParaENT[id] > 0) {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
		}
		else if((OldButton & IN_USE) && ParaENT[id] > 0) {
			engfunc(EngFunc_RemoveEntity, ParaENT[id]);
			ParaENT[id] = 0;
		}
	}
}
			
public FWD_PlayerPreThink(id) {
	if(is_user_connected(id)) { 
		if(get_user_team(id) == TEAM_FURIEN) {
			if(pev(id, pev_gravity) > FURIEN_GRAVITY && pev(id, pev_gravity) > 0.1)
				set_pev(id, pev_gravity, FURIEN_GRAVITY)
		
			if(pev(id, pev_maxspeed) < FURIEN_SPEED && pev(id, pev_maxspeed) > 1.0) {
				set_pev(id, pev_maxspeed, FURIEN_SPEED)
			}
		}	
		if((get_user_button(id) & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(get_user_oldbutton(id) & IN_JUMP)) {
			if(JumpNum[id] < 1) {
					MultiJump[id] = true;
					JumpNum[id]++
			}
		}
		if((get_user_button(id) & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) 
			JumpNum[id] = 0
		if(get_user_team(id) == TEAM_FURIEN) {
			new _C4 = find_ent_by_model(-1, "weaponbox", "models/w_backpack.mdl")
				
			if(is_valid_ent(_C4)) {
				new Float:MyOrigin[3], Float:TargetOrigin[3]
				entity_get_vector(id, EV_VEC_origin, MyOrigin)
				entity_get_vector(_C4, EV_VEC_origin, TargetOrigin)
					
				if(is_in_viewcone(id, TargetOrigin)) {
					new Float:Middle[3], Float:HitPoint[3]
					xs_vec_sub(TargetOrigin, MyOrigin, Middle)
					trace_line(-1, MyOrigin, TargetOrigin, HitPoint)
						
					new Float:WallOffset[3], Float:DistanceToWall
					DistanceToWall = vector_distance(MyOrigin, HitPoint) - 10.0
					new Float:Len = xs_vec_len(Middle)
					xs_vec_copy(Middle, WallOffset)
						
					WallOffset[0] /= Len, WallOffset[1] /= Len, WallOffset[2] /= Len
					WallOffset[0] *= DistanceToWall, WallOffset[1] *= DistanceToWall, WallOffset[2] *= DistanceToWall
						
					new Float:SpriteOffset[3]
					xs_vec_add(WallOffset, MyOrigin, SpriteOffset)
						
					message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)
					write_byte(TE_SPRITE)
					write_coord(floatround(SpriteOffset[0]))
					write_coord(floatround(SpriteOffset[1]))
					write_coord(floatround(SpriteOffset[2]+36.0))
					write_short(C4Sprite)
					write_byte(floatround(2.5))
					write_byte(50)
					message_end()
				}
			}
		}
	}
}

public client_PostThink(id) {
	if(is_user_alive(id)) {
		if(get_user_team(id) == TEAM_FURIEN) {
			static Float:Origin[3];
			pev(id, pev_origin, Origin);
		
			static Button ;
			Button = pev(id, pev_button)
		
			if(Button & IN_USE && get_distance_f(Origin, Wallorigin[id]) <= 5.0 && !(pev(id, pev_flags) & FL_ONGROUND)) {
				new Float:Velocity[3];
				new ClimbSpeed = floatround(pev(id, pev_maxspeed) / 1.8)
				if(Button & IN_FORWARD) {
					velocity_by_aim(id, ClimbSpeed, Velocity);
					fm_set_user_velocity(id, Velocity);
				}
				else if(Button & IN_BACK) {
					velocity_by_aim(id, -ClimbSpeed, Velocity);
					fm_set_user_velocity(id, Velocity);
				}
				else {
					set_pev(id, pev_origin, Wallorigin[id])
					velocity_by_aim(id, 0, Velocity);
					fm_set_user_velocity(id, Velocity);
				}
			}
		}
		if(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)
			MultiJump[id] = false;
		}
	}
}

public FWD_GameDescription() { 
	static GameName[32]
	get_pcvar_string(cvar_gamedescription, GameName, 31)
	
	forward_return(FMV_STRING, GameName)
	
	return FMRES_SUPERCEDE
}
		
public MSG_StatusIcon(msg_id, msg_dest, id) {
	static Attrib 
	Attrib = get_msg_arg_int(2)
	
	if(Attrib == (1<<1))
		set_msg_arg_int(2, ARG_BYTE, 0)
	
	new Icon[8];
	get_msg_arg_string(2, Icon, 7);
	if(get_pcvar_num(removebuyzone)) {
		static const BuyZone[] = "buyzone";
		
		if(equal(Icon, BuyZone)) {
			set_pdata_int(id, OFFSET_BZ, get_pdata_int(id, OFFSET_BZ, 5) & ~(1 << 0), 5);
			
			return PLUGIN_HANDLED;
		}
	}
	return PLUGIN_CONTINUE;
}

public MSG_TextMessage() {
	static TextMsg[22];
	get_msg_arg_string(2, TextMsg, charsmax(TextMsg))
	if(equal(TextMsg, "#Terrorists_Win")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#CTs_Win")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#Bomb_Defused")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#Target_Bombed")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#Target_Saved")) {
		ScreenFade(0, 0, 0)
		return PLUGIN_HANDLED;
	}
	else if(equal(TextMsg, "#C4_Plant_At_Bomb_Spot")) {
		if(!CanPlant)
			return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE;
}

public MSG_ShowMenu(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
	
	JoinTeam_Task(id, msgid)
	
	return PLUGIN_HANDLED
}

public MSG_VGUIMenu(msgid, dest, id) {
	if(get_msg_arg_int(1) != 2 || !Should_AutoJoin(id))
		return PLUGIN_CONTINUE
	
	JoinTeam_Task(id, msgid)
	
	return PLUGIN_HANDLED
}

public MSG_SendAudio() {
	static Sound[17]
	get_msg_arg_string(2, Sound, sizeof Sound - 1)
	
	if(equal(Sound, "terwin") || equal(Sound, "ctwin") || equal(Sound, "rounddraw") || equal(Sound, "bombpl") || equal(Sound, "bombdef"))
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}	

bool:Should_AutoJoin(id) {
	return(get_pcvar_num(cvar_autojoin_team) && !get_user_team(id) && !task_exists(id))
}

JoinTeam_Task(id, menu_msgid) {
	static param_menu_msgid[2]
	param_menu_msgid[0] = menu_msgid
	
	set_task(0.1, "Force_JoinTeam", id, param_menu_msgid, sizeof param_menu_msgid)
}

public Force_JoinTeam(menu_msgid[], id) {
	if(get_user_team(id))
		return
	
	static team[2], class[2]
	get_pcvar_string(cvar_autojoin_team, team, sizeof team - 1)
	get_pcvar_string(cvar_autojoin_class, class, sizeof class - 1)
	Force_Team_Join(id, menu_msgid[0], team, class)
}

stock Force_Team_Join(id, menu_msgid,  team[] = "5", 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)
}


public bomb_planted(planter) {
	C4_CountDownDelay = get_cvar_num("mp_c4timer") - 1
	TASK_C4_CountDown();
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii au plantat bomba!")
	set_lights("b")
}

public EVENT_NewRound() {
	remove_task(TASKID_CANPLANT)
	CanPlant = false;
	for(new i = 0; i < sizeof RandomLights; i++)
		set_lights(RandomLights)
	
	new Float:FloatTime = get_cvar_num("mp_freezetime") + (get_cvar_num("mp_roundtime") * 60) - 60.0
	set_task(FloatTime, "TASK_CanPlant", TASKID_CANPLANT)
}

public EVENT_SwitchTeam() {
	new Players[32], PlayersNum, id;
	get_players(Players, PlayersNum)
	if(PlayersNum) {
		for(new i; i < PlayersNum; i++) {
			id = Players
			BeginDelay(id)
		}
	}
}

public BeginDelay(id) {
	if(is_user_connected(id)) {
		switch(id) {
			case 1..7: set_task(0.1, "BeginTeamSwap", id)
			case 8..15: set_task(0.2, "BeginTeamSwap", id)
			case 16..23: set_task(0.3, "BeginTeamSwap", id)
			case 24..32: set_task(0.4, "BeginTeamSwap", id)
		}
	}
}

public BeginTeamSwap(id) {
	if(is_user_connected(id)) {
		switch(get_user_team(id)) {
			case TEAM_FURIEN: cs_set_user_team(id, CS_TEAM_CT)
			case TEAM_ANTIFURIEN: cs_set_user_team(id, CS_TEAM_T)
		}
	}
}

public TASK_CanPlant() {
	CanPlant = true;
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii pot planta bomba!")
	set_lights("c")
}

public LOGEVENT_RoundStart()
	remove_task(TASKID_C4COUNTDOWN)
	
public LOGEVENT_RoundEnd() 
	remove_task(TASKID_C4COUNTDOWN)
	
public ScreenFade(Red, Green, Blue) {
	message_begin(MSG_BROADCAST, MSGScreenFade);
	write_short(1<<0);
	write_short(1<<0);
	write_short(1<<2);
	write_byte(Red);
	write_byte(Green);
	write_byte(Blue);
	write_byte(255);
	message_end();
}

ResetScreen(id) {
	message_begin(MSG_ONE_UNRELIABLE, MSGScreenFade, _, id);
	write_short(1<<12); 
	write_short(1<<8);
	write_short(1<<1);
	write_byte(0);
	write_byte(0);
	write_byte(0);
	write_byte(255);
	message_end();
}

/*public SameOrigin(id) {
	new Float:Origin[3];
	set_pev(id, pev_origin, Origin)
	for(new i = 0; i < MaxPlayers; i++) {
		if(Origin != PlayerOrigin[id])
			return 0;
	}
	return 1;
}*/
		

public TASK_C4_CountDown() {
	new Red, Green, Blue
	if(C4_CountDownDelay > 10)
		Red = 0, Green = 255, Blue = 0;
	else if(C4_CountDownDelay > 5)
		Red = 255, Green = 200, Blue = 0;
	else if(C4_CountDownDelay <= 5)
		Red = 255, Green = 0, Blue = 0;
	
	if(C4_CountDownDelay) {
		new Message[256];
		formatex(Message,sizeof(Message)-1,"----------^n| C4: %d |^n----------", C4_CountDownDelay);

		set_hudmessage(Red, Green, Blue, -1.0, 0.78, 0, 6.0, 1.0)
		show_hudmessage(0, "%s", Message)
		set_task(1.0, "TASK_C4_CountDown", TASKID_C4COUNTDOWN);
		C4_CountDownDelay--;
	}
	else if(!C4_CountDownDelay)
		C4_CountDownDelay = 0;
}

/*public TASK_CheckAFK(id) {
	if(SameOrigin(id)) {
		user_silentkill(id)
		ColorChat(0, "!g%s!n Jucatorii!g AFK!n au fost omorati", Prefix)
	}
}*/

stock ColorChat(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, "!n", "^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)) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	} 
}

Mersi,si cum fac sa nu se mai intunece ?
| Afiseaza codul
public bomb_planted(planter) {
	C4_CountDownDelay = get_cvar_num("mp_c4timer") - 1
	TASK_C4_CountDown();
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii au plantat bomba!")
	set_lights("b")
}

public EVENT_NewRound() {
	remove_task(TASKID_CANPLANT)
	CanPlant = false;
	for(new i = 0; i < sizeof RandomLights; i++)
		set_lights(RandomLights)
	
	new Float:FloatTime = get_cvar_num("mp_freezetime") + (get_cvar_num("mp_roundtime") * 60) - 60.0
	set_task(FloatTime, "TASK_CanPlant", TASKID_CANPLANT)
}

public TASK_CanPlant() {
	CanPlant = true;
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii pot planta bomba!")
	set_lights("c")
}

->
| Afiseaza codul
public bomb_planted(planter) {
	C4_CountDownDelay = get_cvar_num("mp_c4timer") - 1
	TASK_C4_CountDown();
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii au plantat bomba!")
}

public EVENT_NewRound() {
	remove_task(TASKID_CANPLANT)
	CanPlant = false;
	
	new Float:FloatTime = get_cvar_num("mp_freezetime") + (get_cvar_num("mp_roundtime") * 60) - 60.0
	set_task(FloatTime, "TASK_CanPlant", TASKID_CANPLANT)
}

public TASK_CanPlant() {
	CanPlant = true;
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.38, 1, 3.1, 3.0)
	show_hudmessage(0, "Furienii pot planta bomba!")
}


Cauti publicurile astea si le inlocuiesti cu ce ti-am dat eu. Astfel, vei scapa de luminozitate.

Bun.Mersi !
NU sunt intermediar.

Dacă ai nevoie de ajutor pe forum dă-mi un PM şi rezolvăm.

REGULAMENT FORUM

RECLAMAȚII MODERATORI

RECLAMAȚII PM
Activitate scăzută
User avatar
Challenger.
Fost moderator
Fost moderator
Posts: 2530
Joined: 07 Dec 2014, 14:32
Detinator Steam: Da
Reputatie: Fost Super Moderator
Nume anterior: whisTle
Puncte: 1.7 / 3
Fond eXtream: 0
Contact:

21 Jun 2015, 13:28

O mare problema la acest plugin e ca:
Daca runda se termina si bomba nu a explodat inca,timpul de la bomba ramane in hud.Si cand se termina timpul dispare.
Dar ramane acolo si runda viitoare.
NU sunt intermediar.

Dacă ai nevoie de ajutor pe forum dă-mi un PM şi rezolvăm.

REGULAMENT FORUM

RECLAMAȚII MODERATORI

RECLAMAȚII PM
Activitate scăzută
User avatar
50Cent # HackeR
Membru, skill +2
Membru, skill +2
Posts: 755
Joined: 10 Oct 2015, 16:05
Detinator Steam: Da
CS Status: CS GO This Good Game =]]
Detinator server CS: N-am asa ceva ? =]]
SteamID: 50Cent # HackeR
Reputatie: Castigator Membru CLUB eXtream @ Mos Nicolae (4 luni)
Restrictie mesaje private
Fond eXtream: 0
Location: Caras-Severin-Resita
Contact:

18 Dec 2015, 22:53

Buguri, la acest plugin de baza l-am incercat
ursul panda
Membru, skill 0
Membru, skill 0
Posts: 57
Joined: 19 Jul 2017, 22:18
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

15 Aug 2017, 11:48

E buguit tare... l-am instalat si la furien ma da cu pistol si cutit...
User avatar
DaNNe.
Fost moderator
Fost moderator
Posts: 2811
Joined: 08 Nov 2013, 20:43
Detinator Steam: Da
CS Status: Activitate scăzută
SteamID: /id/FurienMaster
Reputatie: Nick anterior: DnD. Gold, Emrys
0.5/3
Fost moderator ajutator
Fost Membru Club eXtreamCS (doua luni)
Has thanked: 244 times
Been thanked: 129 times
Contact:

09 Dec 2017, 21:45

Da, stiu ca are BUG-uri. Plugin-ul a fost facut la comanda pentru Mutex, dupa care l-am folosit impreuna pe FURIEN CS1. Bineinteles, nu aceasta versiune.
Aici se gaseste versiunea fara bug-uri: anunturi/modul-furien-clasic-t348568.html
Post Reply

Return to “AmxModX”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 14 guests