Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

GHW_No_Rush proźba


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 ArtisT

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:12
  • Lokalizacja:Konin
Offline

Napisano 19.08.2009 11:02

Więc do rzeczy chodzi mi o przerobienie pluginu "GHW_No_Rush" tak aby wyłączał się po 30 sekundach.

Link do tematu:GHW_No_Rush

SMA:
#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()
}

Oczywiście za pomoc leci pomógł.

Z góry dzięki.
  • +
  • -
  • 0

#2 DK

    Wszechobecny

  • Użytkownik

Reputacja: 49
Pomocny

  • Postów:411
  • GG:
  • Steam:steam
  • Lokalizacja:KrK / Wadowice
Offline

Napisano 19.08.2009 11:45

a nie lepiej zebys sobie wgral M_Antirusher_2.5
  • +
  • -
  • 0

#3 ArtisT

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:12
  • Lokalizacja:Konin
Offline

Napisano 19.08.2009 12:20

Właśnie zapomniałem dopowiedzieć ze chodzi mi o mapy typu aim, awp. A ten plugin bardziej się nadaje.
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych