Cerere modificare plugin anti-rush

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
Xeno985
Membru, skill +1
Membru, skill +1
Posts: 206
Joined: 05 Jul 2017, 22:07
Detinator Steam: Da
CS Status: Disponibil, doar cand sunt acasa.
Detinator server CS: Nu
SteamID: 512916512916
Reputatie: Membru Club eXtreamCS (28 Jan - 28 Feb)
Fond eXtream: 0
Location: 127.0.0.1
Discord: nvF4B8A
Has thanked: 12 times
Been thanked: 4 times
Contact:

29 Jul 2017, 09:34

Salut, cum spune si titlul, vreau sa fie modificat pluginul de anti-rush astfel incat dupa 30 secunde de la inceperea rundei sa se dezactiveze automat, iar daca se poate, acele secunde sa se poata modifica din cvar (daca se poate bine, daca nu, iara bine).
plugin | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <engine>

//Used for create_middle functions
#define tag_sprite_size_horizontal   4000
#define tag_sprite_size_vertical   600
#define tag_sprite_vertical_increments   15

#define MINNUM      2

new bool:stopplugin

new beamsprite

new CTspawn_loc[3]
new Tspawn_loc[3]

new plugin_enabled, plugin_fence, plugin_2ppl, plugin_checktime, plugin_redrawtime, plugin_fencecolor, plugin_fencealpha, plugin_punishment

new Float:farthest_point1[3]
new Float:farthest_point2[3]
new alivenum, maxplayers

new Float:oldtime

new multiplier

public plugin_init()
{
	register_plugin("No Rush","2.0","GHW_Chronic")
	
	plugin_enabled = register_cvar("NR_enabled","1")
	plugin_fence = register_cvar("NR_fence","1")
	plugin_2ppl = register_cvar("NR_twopeople","1")
	plugin_punishment = register_cvar("NR_punishment","1")
	plugin_checktime = register_cvar("NR_checktime","2.0")
	plugin_redrawtime = register_cvar("NR_redrawtime","15.0")
	plugin_fencecolor = register_cvar("NR_fencecolor","green")
	plugin_fencealpha = register_cvar("NR_fencealpha","200")
	
	stopplugin=true
	new mapname[32]
	get_mapname(mapname,31)
	new configfile[200]
	get_configsdir(configfile,199)
	format(configfile,199,"%s/no_rush_maps.ini",configfile)
	if(file_exists(configfile))
	{
		new read[32], trash
		for(new i=0;i<file_size(configfile,1);i++)
		{
			read_file(configfile,i,read,31,trash)
			if(equali(mapname,read))
			{
				set_task(0.1,"spawn_locs")
				set_task(0.2,"create_middle1")
				oldtime = get_pcvar_float(plugin_redrawtime)
				stopplugin=false
				break;
			}
		}
	}
	
	register_event("DeathMsg","checknum","a")
	register_event("ResetHUD","checknum","b")
	
	maxplayers = get_maxplayers()
}

public plugin_precache()
{
	beamsprite = precache_model("sprites/dot.spr")
}

public client_putinserver(id)
{
	if(!stopplugin)
	{
		set_task(get_pcvar_float(plugin_checktime),"prethink",id,"",0,"b")
	}
}

public client_disconnect(id)
{
	remove_task(id)
}

public checknum()
{
	if(get_pcvar_num(plugin_enabled) && !stopplugin)
	{
		new newnum
		for(new i=0;i<=maxplayers;i++)
		{
			if(is_user_alive(i)) newnum++
		}
		if(alivenum>MINNUM && newnum<=MINNUM && get_pcvar_num(plugin_2ppl))
		{
			client_print(0,print_chat,"[AMXX] You can now cross over to the other side since only 2 people remain.")
		}
		alivenum=newnum
	}
}

public prethink(id)
{
	if(is_user_alive(id) && !stopplugin && get_pcvar_num(plugin_enabled) && !(alivenum<=MINNUM && get_pcvar_num(plugin_2ppl)) )
	{
		new origin[3]
		get_user_origin(id,origin)
		new team[32]
		get_user_team(id,team,31)
		new teamnum=1
		if(containi(team,"CT")!=-1 || containi(team,"Counter")!=-1)
		{
			teamnum=2
		}
		if( /*(get_distance(origin,CTspawn_loc)<get_distance(origin,Tspawn_loc) && teamnum==1) ||*/ (get_distance(origin,Tspawn_loc)<get_distance(origin,CTspawn_loc) && teamnum==2) )
		{
			if(get_pcvar_num(plugin_punishment)==1) user_kill(id)
			else
			{
				new origin[3]
				get_user_origin(id,origin)
				new Float:vector1[3]
				if(teamnum==2)
				{
					vector1[0] = float(CTspawn_loc[0]) - origin[0]
					vector1[1] = float(CTspawn_loc[1]) - origin[1]
					vector1[2] = float(CTspawn_loc[2]) - origin[2]
				}
				else
				{
					vector1[0] = float(Tspawn_loc[0]) - origin[0]
					vector1[1] = float(Tspawn_loc[1]) - origin[1]
					vector1[2] = float(Tspawn_loc[2]) - origin[2]
				}
				new Float:num = floatsqroot(250*250 / vector1[0]*vector1[0] + vector1[1]*vector1[1] + vector1[2]*vector1[2])
				vector1[0] *= num
				vector1[1] *= num
				vector1[2] *= num
				set_user_velocity(id,vector1)
			}
			client_print(id,print_chat,"[AMXX] No crossing the middle line.")
		}
	}
}

public spawn_locs()
{
	new ent1 = find_ent_by_class(0,"info_player_start")
	new ent2 = find_ent_by_class(0,"info_player_deathmatch")
	if(!ent1)
	{
		log_amx("No info_player_start found")
		stopplugin=true
	}
	if(!ent2)
	{
		log_amx("No info_player_deathmatch found")
		stopplugin=true
	}
	new Float:CTspawn_loc_F[3]
	new Float:Tspawn_loc_F[3]
	entity_get_vector(ent1,EV_VEC_origin,CTspawn_loc_F)
	entity_get_vector(ent2,EV_VEC_origin,Tspawn_loc_F)
	CTspawn_loc[0] = floatround(CTspawn_loc_F[0])
	CTspawn_loc[1] = floatround(CTspawn_loc_F[1])
	CTspawn_loc[2] = floatround(CTspawn_loc_F[2])
	Tspawn_loc[0] = floatround(Tspawn_loc_F[0])
	Tspawn_loc[1] = floatround(Tspawn_loc_F[1])
	Tspawn_loc[2] = floatround(Tspawn_loc_F[2])
}

public create_middle1()
{
	//***
	//Simple Algebra to calculate the location of the middle line(s).
	//***
	
	new Float:CTspawn_loc_F[3]
	new Float:Tspawn_loc_F[3]
	IVecFVec(CTspawn_loc,CTspawn_loc_F)
	IVecFVec(Tspawn_loc,Tspawn_loc_F)
	
	new Float:line1_slope = (CTspawn_loc_F[1] - Tspawn_loc_F[1]) / (CTspawn_loc_F[0] - Tspawn_loc_F[0])
	new Float:line2_slope = -1.0 * (1.0 / line1_slope)
	
	new Float:midpoint[3]
	midpoint[0] = (CTspawn_loc_F[0] + Tspawn_loc_F[0]) / 2
	midpoint[1] = (CTspawn_loc_F[1] + Tspawn_loc_F[1]) / 2
	midpoint[2] = (CTspawn_loc_F[2] + Tspawn_loc_F[2]) / 2
	
	if(floatabs(line2_slope)>1.0)
	{
		farthest_point1[1] = midpoint[1] + (tag_sprite_size_horizontal / 2)
		farthest_point2[1] = midpoint[1] - (tag_sprite_size_horizontal / 2)
		
		farthest_point1[0] = (farthest_point1[1] - midpoint[1] + (line2_slope * midpoint[0])) / line2_slope
		farthest_point2[0] = (farthest_point2[1] - midpoint[1] + (line2_slope * midpoint[0])) / line2_slope
	}
	
	if(floatabs(line2_slope)<=1.0)
	{
		farthest_point1[0] = midpoint[0] + (tag_sprite_size_horizontal / 2)
		farthest_point2[0] = midpoint[0] - (tag_sprite_size_horizontal / 2)
		
		farthest_point1[1] = line2_slope*(farthest_point1[0]-midpoint[0]) + midpoint[1]
		farthest_point2[1] = line2_slope*(farthest_point2[0]-midpoint[0]) + midpoint[1]
	}
	
	farthest_point1[2] = midpoint[2] - (tag_sprite_size_vertical / 2)
	
	set_task(get_pcvar_float(plugin_redrawtime),"create_middle2",1337,"",0,"b")
}

public create_middle2()
{
	if(!stopplugin && get_pcvar_num(plugin_fence) && get_pcvar_num(plugin_enabled) && !(alivenum<=MINNUM && get_pcvar_num(plugin_2ppl)))
	{
		set_task(0.1,"create_middle3",0,"",0,"a",(tag_sprite_size_vertical / tag_sprite_vertical_increments))
		multiplier=1
	}
	if(oldtime!=get_pcvar_float(plugin_redrawtime))
	{
		remove_task(1337)
		set_task(get_pcvar_float(plugin_redrawtime),"create_middle1",1337,"",0,"b")
		oldtime=get_pcvar_float(plugin_redrawtime)
	}
}

public create_middle3()
{
	new zpoint = floatround(farthest_point1[2]) + (multiplier * tag_sprite_vertical_increments)
	multiplier++
	new color[32], red, green, blue
	get_pcvar_string(plugin_fencecolor,color,31)
	if(equali(color,"red"))
	{
		red=255
		green=0
		blue=0
	}
	else if(equali(color,"blue"))
	{
		red=0
		green=0
		blue=255
	}
	else if(equali(color,"white"))
	{
		red=255
		green=255
		blue=255
	}
	else if(equali(color,"random"))
	{
		red=random_num(0,255)
		green=random_num(0,255)
		blue=random_num(0,255)
	}
	else if(equali(color,"Yellow"))
	{
		red = 255
		green = 255
		blue = 0
	}
	else if(equali(color,"Orange"))
	{
		red = 255
		green = 128
		blue = 64
	}
	else if(equali(color,"Pink"))
	{
		red = 255
		green = 0
		blue = 128
	}
	else if(equali(color,"Indigo"))
	{
		red = 0
		green = 255
		blue = 255
	}
	else
	{
		red=0
		green=255
		blue=0
	}
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(0)      //TE_BEAMPOINTS
	write_coord(floatround(farthest_point1[0]))
	write_coord(floatround(farthest_point1[1]))
	write_coord(zpoint)
	write_coord(floatround(farthest_point2[0]))
	write_coord(floatround(farthest_point2[1]))
	write_coord(zpoint)
	write_short(beamsprite)
	write_byte(1)      // framestart
	write_byte(1)      // framerate
	write_byte(get_pcvar_num(plugin_redrawtime) * 10)// life in 0.1's
	write_byte(5)      // width
	write_byte(0)      // noise
	write_byte(red)      // red
	write_byte(green)   // green
	write_byte(blue)   // blue
	write_byte(get_pcvar_num(plugin_fencealpha))// brightness
	write_byte(0)      // speed
	message_end()
}
👉 Panel Counter-Strike: Click. 👈
👉💎 Shop: Click. 💎👈
👉💻 Filme: Click. 💻👈
👉📧 Contact: Steam 📧👈
RoyalServer 2
User avatar
Radu eXtream
eXtream Mod
eXtream Mod
Posts: 1780
Joined: 12 Sep 2014, 20:32
Detinator Steam: Da
SteamID: /id/raducu7
Reputatie: eXtream Mod
Fost Membru Club eXtreamCS (22 luni)
0.7 / 3
Fond eXtream: 0
Location: Iași
Discord: RaduSerifu
Has thanked: 39 times
Been thanked: 11 times
Contact:

29 Jul 2017, 11:12

Mutat la modificare pluginuri
Image
| | | | | |
User avatar
UnFoRgIvEnNn
Membru, skill +1
Membru, skill +1
Posts: 151
Joined: 08 Apr 2014, 17:06
Detinator Steam: Da
Detinator server CS: Da
Location: Targu-Jiu
Contact:

05 Sep 2017, 18:38

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <engine>

//Used for create_middle functions
#define tag_sprite_size_horizontal   4000
#define tag_sprite_size_vertical   600
#define tag_sprite_vertical_increments   15

#define MINNUM      2

new bool:stopplugin

new beamsprite

new CTspawn_loc[3]
new Tspawn_loc[3]

new plugin_enabled, plugin_fence, plugin_2ppl, plugin_checktime, plugin_redrawtime, plugin_fencecolor, plugin_fencealpha, plugin_punishment

new Float:farthest_point1[3]
new Float:farthest_point2[3]
new alivenum, maxplayers

new Float:oldtime

new multiplier

new plugin_time;
new g_stop;

public plugin_init()
{
	register_plugin("No Rush","2.0","GHW_Chronic")
	
        register_logevent("rstart", 2, "1=Round_Start");
	plugin_enabled = register_cvar("NR_enabled","1")
	plugin_fence = register_cvar("NR_fence","1")
	plugin_2ppl = register_cvar("NR_twopeople","1")
	plugin_punishment = register_cvar("NR_punishment","1")
	plugin_checktime = register_cvar("NR_checktime","2.0")
	plugin_redrawtime = register_cvar("NR_redrawtime","15.0")
	plugin_fencecolor = register_cvar("NR_fencecolor","green")
	plugin_fencealpha = register_cvar("NR_fencealpha","200")
        plugin_time = register_cvar("NR_time","30")  // timp in secunde antirush
	
	stopplugin=true
	new mapname[32]
	get_mapname(mapname,31)
	new configfile[200]
	get_configsdir(configfile,199)
	format(configfile,199,"%s/no_rush_maps.ini",configfile)
	if(file_exists(configfile))
	{
		new read[32], trash
		for(new i=0;i<file_size(configfile,1);i++)
		{
			read_file(configfile,i,read,31,trash)
			if(equali(mapname,read))
			{
				set_task(0.1,"spawn_locs")
				set_task(0.2,"create_middle1")
				oldtime = get_pcvar_float(plugin_redrawtime)
				stopplugin=false
				break;
			}
		}
	}
	
	register_event("DeathMsg","checknum","a")
	register_event("ResetHUD","checknum","b")
	
	maxplayers = get_maxplayers()
}

public plugin_precache()
{
	beamsprite = precache_model("sprites/dot.spr")
}

public client_putinserver(id)
{
	if(!stopplugin)
	{
		set_task(get_pcvar_float(plugin_checktime),"prethink",id,"",0,"b")
	}
}

public rstart()
{
g_stop = false;
set_task(get_pcvar_float(plugin_time),"reset");
}

public reset() g_stop = true;

public client_disconnect(id)
{
	remove_task(id)
}

public checknum()
{
	if(get_pcvar_num(plugin_enabled) && !stopplugin)
	{
		new newnum
		for(new i=0;i<=maxplayers;i++)
		{
			if(is_user_alive(i)) newnum++
		}
		if(alivenum>MINNUM && newnum<=MINNUM && get_pcvar_num(plugin_2ppl) || g_stop)
		{
			client_print(0,print_chat,"[AMXX] You can now cross over to the other side since only 2 people remain.")
		}
		alivenum=newnum
	}
}

public prethink(id)
{
        if(g_stop) return PLUGIN_HANDLED;

	if(is_user_alive(id) && !stopplugin && get_pcvar_num(plugin_enabled) && get_user_team(id) == 2 && !(alivenum<=MINNUM && get_pcvar_num(plugin_2ppl)) )
	{
		new origin[3]
		get_user_origin(id,origin)
		new team[32]
		get_user_team(id,team,31)
		new teamnum=1
		if(containi(team,"CT")!=-1 || containi(team,"Counter")!=-1)
		{
			teamnum=2
		}
		if( (get_distance(origin,CTspawn_loc)<get_distance(origin,Tspawn_loc) && teamnum==1) || (get_distance(origin,Tspawn_loc)<get_distance(origin,CTspawn_loc) && teamnum==2) )
		{
			if(get_pcvar_num(plugin_punishment)==1) user_kill(id)
			else
			{
				new origin[3]
				get_user_origin(id,origin)
				new Float:vector1[3]
				if(teamnum==2)
				{
					vector1[0] = float(CTspawn_loc[0]) - origin[0]
					vector1[1] = float(CTspawn_loc[1]) - origin[1]
					vector1[2] = float(CTspawn_loc[2]) - origin[2]
				}
				else
				{
					vector1[0] = float(Tspawn_loc[0]) - origin[0]
					vector1[1] = float(Tspawn_loc[1]) - origin[1]
					vector1[2] = float(Tspawn_loc[2]) - origin[2]
				}
				new Float:num = floatsqroot(250*250 / vector1[0]*vector1[0] + vector1[1]*vector1[1] + vector1[2]*vector1[2])
				vector1[0] *= num
				vector1[1] *= num
				vector1[2] *= num
				set_user_velocity(id,vector1)
			}
			client_print(id,print_chat,"[AMXX] No crossing the middle line.")
		}
	}
        return PLUGIN_HANDLED;
}

public spawn_locs()
{
        if(g_stop) return PLUGIN_HANDLED;
	new ent1 = find_ent_by_class(0,"info_player_start")
	new ent2 = find_ent_by_class(0,"info_player_deathmatch")
	if(!ent1)
	{
		log_amx("No info_player_start found")
		stopplugin=true
	}
	if(!ent2)
	{
		log_amx("No info_player_deathmatch found")
		stopplugin=true
	}
	new Float:CTspawn_loc_F[3]
	new Float:Tspawn_loc_F[3]
	entity_get_vector(ent1,EV_VEC_origin,CTspawn_loc_F)
	entity_get_vector(ent2,EV_VEC_origin,Tspawn_loc_F)
	CTspawn_loc[0] = floatround(CTspawn_loc_F[0])
	CTspawn_loc[1] = floatround(CTspawn_loc_F[1])
	CTspawn_loc[2] = floatround(CTspawn_loc_F[2])
	Tspawn_loc[0] = floatround(Tspawn_loc_F[0])
	Tspawn_loc[1] = floatround(Tspawn_loc_F[1])
	Tspawn_loc[2] = floatround(Tspawn_loc_F[2])
	return PLUGIN_HANDLED;
}

public create_middle1()
{
	//***
	//Simple Algebra to calculate the location of the middle line(s).
	//***

	if(g_stop) return PLUGIN_HANDLED;	
	new Float:CTspawn_loc_F[3]
	new Float:Tspawn_loc_F[3]
	IVecFVec(CTspawn_loc,CTspawn_loc_F)
	IVecFVec(Tspawn_loc,Tspawn_loc_F)
	
	new Float:line1_slope = (CTspawn_loc_F[1] - Tspawn_loc_F[1]) / (CTspawn_loc_F[0] - Tspawn_loc_F[0])
	new Float:line2_slope = -1.0 * (1.0 / line1_slope)
	
	new Float:midpoint[3]
	midpoint[0] = (CTspawn_loc_F[0] + Tspawn_loc_F[0]) / 2
	midpoint[1] = (CTspawn_loc_F[1] + Tspawn_loc_F[1]) / 2
	midpoint[2] = (CTspawn_loc_F[2] + Tspawn_loc_F[2]) / 2
	
	if(floatabs(line2_slope)>1.0)
	{
		farthest_point1[1] = midpoint[1] + (tag_sprite_size_horizontal / 2)
		farthest_point2[1] = midpoint[1] - (tag_sprite_size_horizontal / 2)
		
		farthest_point1[0] = (farthest_point1[1] - midpoint[1] + (line2_slope * midpoint[0])) / line2_slope
		farthest_point2[0] = (farthest_point2[1] - midpoint[1] + (line2_slope * midpoint[0])) / line2_slope
	}
	
	if(floatabs(line2_slope)<=1.0)
	{
		farthest_point1[0] = midpoint[0] + (tag_sprite_size_horizontal / 2)
		farthest_point2[0] = midpoint[0] - (tag_sprite_size_horizontal / 2)
		
		farthest_point1[1] = line2_slope*(farthest_point1[0]-midpoint[0]) + midpoint[1]
		farthest_point2[1] = line2_slope*(farthest_point2[0]-midpoint[0]) + midpoint[1]
	}
	
	farthest_point1[2] = midpoint[2] - (tag_sprite_size_vertical / 2)
	
	set_task(get_pcvar_float(plugin_redrawtime),"create_middle2",1337,"",0,"b")
        return PLUGIN_HANDLED;
}

public create_middle2()
{
	if(!stopplugin && get_pcvar_num(plugin_fence) && get_pcvar_num(plugin_enabled) && !(alivenum<=MINNUM && get_pcvar_num(plugin_2ppl)))
	{
		set_task(0.1,"create_middle3",0,"",0,"a",(tag_sprite_size_vertical / tag_sprite_vertical_increments))
		multiplier=1
	}
	if(oldtime!=get_pcvar_float(plugin_redrawtime))
	{
		remove_task(1337)
		set_task(get_pcvar_float(plugin_redrawtime),"create_middle1",1337,"",0,"b")
		oldtime=get_pcvar_float(plugin_redrawtime)
	}
        return PLUGIN_HANDLED;
}

public create_middle3()
{
        if(g_stop) return PLUGIN_HANDLED;
	new zpoint = floatround(farthest_point1[2]) + (multiplier * tag_sprite_vertical_increments)
	multiplier++
	new color[32], red, green, blue
	get_pcvar_string(plugin_fencecolor,color,31)
	if(equali(color,"red"))
	{
		red=255
		green=0
		blue=0
	}
	else if(equali(color,"blue"))
	{
		red=0
		green=0
		blue=255
	}
	else if(equali(color,"white"))
	{
		red=255
		green=255
		blue=255
	}
	else if(equali(color,"random"))
	{
		red=random_num(0,255)
		green=random_num(0,255)
		blue=random_num(0,255)
	}
	else if(equali(color,"Yellow"))
	{
		red = 255
		green = 255
		blue = 0
	}
	else if(equali(color,"Orange"))
	{
		red = 255
		green = 128
		blue = 64
	}
	else if(equali(color,"Pink"))
	{
		red = 255
		green = 0
		blue = 128
	}
	else if(equali(color,"Indigo"))
	{
		red = 0
		green = 255
		blue = 255
	}
	else
	{
		red=0
		green=255
		blue=0
	}
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(0)      //TE_BEAMPOINTS
	write_coord(floatround(farthest_point1[0]))
	write_coord(floatround(farthest_point1[1]))
	write_coord(zpoint)
	write_coord(floatround(farthest_point2[0]))
	write_coord(floatround(farthest_point2[1]))
	write_coord(zpoint)
	write_short(beamsprite)
	write_byte(1)      // framestart
	write_byte(1)      // framerate
	write_byte(get_pcvar_num(plugin_redrawtime) * 10)// life in 0.1's
	write_byte(5)      // width
	write_byte(0)      // noise
	write_byte(red)      // red
	write_byte(green)   // green
	write_byte(blue)   // blue
	write_byte(get_pcvar_num(plugin_fencealpha))// brightness
	write_byte(0)      // speed
	message_end()
        return PLUGIN_HANDLED;
}
Sunt om cu tine, fii om cu mine !
Post Reply

Return to “Modificari pluginuri”

  • Information