Trail deathrun

Discutii legate de instalarea, configurarea si modificarea unui server de Counter-Strike.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
Kidzor CLL
Membru, skill +1
Membru, skill +1
Posts: 204
Joined: 05 Feb 2013, 16:17
Detinator Steam: Da
Has thanked: 22 times
Been thanked: 3 times

10 Apr 2013, 12:23

Am urmatorul plugin pus pe server + tradus in Limba Romana (ex: trail 9 verde... trail 10 rosu...)
Si jucatorilor le merge sa puna trail, iar adminilor nu(nici mie fiind detinator). Stiti cumva care ar putea fi problema?

Code: Select all

plugin_trail 1.3.1 Bahrmanouplugin_trail.am running 
Image
RoyalServer
User avatar
satasa
Membru, skill +1
Membru, skill +1
Posts: 371
Joined: 12 Nov 2012, 10:43
Detinator Steam: Nu
CS Status: Ocupat
Reputatie: Membru Club eXtreamCS (2 iun - 2 iul, Acces in Club)
Has thanked: 55 times
Been thanked: 10 times
Contact:

10 Apr 2013, 14:18

posteaza sma
Kidzor CLL
Membru, skill +1
Membru, skill +1
Posts: 204
Joined: 05 Feb 2013, 16:17
Detinator Steam: Da
Has thanked: 22 times
Been thanked: 3 times

10 Apr 2013, 15:40

Din pacate nu mai am .sma , pluginul il am din iunie 2012.
Image
Kidzor CLL
Membru, skill +1
Membru, skill +1
Posts: 204
Joined: 05 Feb 2013, 16:17
Detinator Steam: Da
Has thanked: 22 times
Been thanked: 3 times

11 Apr 2013, 09:58

UP ?
Image
User avatar
FireFox
Membru, skill +3
Membru, skill +3
Posts: 1207
Joined: 23 Jul 2009, 18:03
Detinator Steam: Nu
Detinator server CS: Surf2.MnX.Ro
Reputatie: Membru Club eXtreamCS: 2 luni
Nume anterior: CaTaL!N
Fost Moderator ajutator
Has thanked: 67 times
Been thanked: 104 times

11 Apr 2013, 21:29

| Afiseaza codul
/*****************************************************************************************
 *
 *	plugin_trail.sma
 *
 *	By Bahrmanou ([email protected])
 *
 *****************************************************************************************/
/*****************************************************************************************
 If some map cause problem (crash the server) because of too much precaches, create a file
 in your AmxModx configs folder named 'sensiblemaps.cfg' and add the map name (WITHOUT the
 extension '.bsp') in that file.
 So if the map is in the list, the plugin prevents trail sprites to be precached (i.e. the
 Trails sunt dezactivate pe aceasta harta.
 *****************************************************************************************/
#include <amxmodx>
#include <amxmisc>
#include <engine>

#define PLUGNAME		"plugin_trail"
#define VERSION			"1.3.1"
#define AUTHOR			"Bahrmanou"

#define ACCESS_LEVEL		ADMIN_LEVEL_A
#define ACCESS_ADMIN		ADMIN_ADMIN

#define MAX_TEXT_LENGTH		200
#define MAX_NAME_LENGTH		40
#define MAX_PLAYERS		32
#define MAX_DISTANCE		300

#define CFG_FILE		"colors.cfg"
#define MAX_COLORS		200

#define DEF_TRAIL_LIFE		2

#define TASKID			1337	// change if it interfere with another plugin!
#define TICK			0.1

#define NUM_SPRITES		12

new bool:gl_parsed
new bool:gl_trail
new bool:gl_not_this_map

new gl_trail_life
new gl_trail_size[MAX_PLAYERS]
new gl_trail_brightness[MAX_PLAYERS]
new gl_trail_type[MAX_PLAYERS]

new gl_sprite_name[NUM_SPRITES][] = {
	"sprites/laserbeam.spr",
	"sprites/blueflare1.spr",
	"sprites/dot.spr",
	"sprites/flare5.spr",
	"sprites/flare6.spr",
	"sprites/plasma.spr",
	"sprites/smoke.spr",
	"sprites/xbeam5.spr",
	"sprites/xenobeam.spr",
	"sprites/xssmke1.spr",
	"sprites/zbeam3.spr",
	"sprites/zbeam2.spr"
}
new gl_sprite[NUM_SPRITES]
new gl_def_sprite_size[NUM_SPRITES] = {
	5, 12, 4, 16, 16, 6, 9, 4, 15, 14, 15, 20
}
new gl_def_sprite_brightness[NUM_SPRITES] = {
	160, 255, 200, 255, 255, 230, 150, 150, 240, 220, 200, 200
}
	
new gl_players[MAX_PLAYERS]

new gl_player_position[MAX_PLAYERS][3]
new gl_timer_count[MAX_PLAYERS]
new gl_timer_limit

new gl_player_colors[MAX_PLAYERS][3]
new gl_color_names[MAX_COLORS][MAX_NAME_LENGTH]
new gl_colors[MAX_COLORS][3]
new gl_num_colors

public plugin_init() {
	register_plugin(PLUGNAME, VERSION, AUTHOR)
	register_concmd("amx_trail","cmdTrail", ACCESS_LEVEL,  "- ['on'|'off'|'1'|'0'] : enable/disable trails.")
	register_concmd("amx_trail_user","cmdUserTrail", ACCESS_LEVEL,  "- <name or #userid> <colorname | 'random' | 'off'> : set user trail.")
	register_concmd("amx_trail_type", "cmdTrailType", ACCESS_LEVEL, "- <type> : set trail type for all players.")
	register_concmd("amx_trail_life","cmdTrailLife", ACCESS_LEVEL,  "- [duration] : get/set trail duration, in seconds.")
	register_concmd("amx_trail_size","cmdTrailSize", ACCESS_LEVEL,  "- [size] : get/set trail size.")
	register_concmd("amx_trail_brightness","cmdTrailBrightness", ACCESS_LEVEL,  "- [brightness] : get/set trail brightness.")
	register_concmd("amx_trail_reload", "cmdReload", ACCESS_LEVEL, ": reload colors configuration file.")
	register_clcmd("say", "SayCmd", 0, "")
	
	gl_parsed = gl_trail = parse_file()
	if (!gl_sprite[0]) gl_trail = false

	gl_trail_life = DEF_TRAIL_LIFE
	gl_timer_limit = floatround(float(gl_trail_life)/TICK)
}

public plugin_modules() {
	require_module("engine")
}

public plugin_precache() {
	if (check_map()) {
		gl_not_this_map = true
		return
	}

	for (new i=0; i<NUM_SPRITES; i++) {
		gl_sprite = precache_model(gl_sprite_name)
	}
}

public client_putinserver(id) {
	gl_trail_type[id] = gl_sprite[0]
	gl_trail_size[id] = gl_def_sprite_size[0]
	gl_trail_brightness[id] = gl_def_sprite_brightness[0]
}

public client_disconnect(id) {
	if (task_exists(TASKID+id)) remove_task(TASKID+id)
	gl_player_colors[id][0] = gl_player_colors[id][1] = gl_player_colors[id][2] = 0
}

/*****************************************************************************************
 *
 *	cmdTrail ['on'|'off'|'1'|'0'] : enable/disable trails.
 *
 *****************************************************************************************/
public cmdTrail(id, level, cid) {
	if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
	
	if (!gl_parsed) {
		console_print(id, "Trails sunt OFF deoarece nu am putut citi configul '%s'!", CFG_FILE)
		return PLUGIN_HANDLED
	}
	if (gl_not_this_map) {
		console_print(id, "Trails sunt dezactivate pe aceasta harta!")
		return PLUGIN_HANDLED
	}

	new str[5]
	read_argv(1, str, 4)
	if (equali(str, "on") || equali(str, "1")) {
		if (gl_trail) {
			console_print(id, "Trails sunt deja activate.")
		} else {
			gl_trail = true
			console_print(id, "Trails sunt acum ACTIVATE.")
		}
	} else if (equali(str, "off") || equali(str, "0")) {
		if (!gl_trail) {
			console_print(id, "Trails sunt deja dezactivate.")
		}else {
			gl_trail = false
			new playercount
			get_players(gl_players, playercount)
			for (new i=0; i<playercount; i++) {
				kill_trail_task(gl_players)
			}
			say_to_all("Trailul tau a fost scos.", id)
			console_print(id, "Trails sunt acum  DEZACTIVATE.")
		}
	} else {
		if (gl_trail) {
			console_print(id, "Trails sunt  ACTIVATE.")
		} else {
			console_print(id, "Trails sunt  DEZACTIVATE.")
		}
	}
	
	return PLUGIN_HANDLED
}

/*****************************************************************************************
 *
 *	cmdUserTrail <name or #userid> <colorname | 'random' | 'off'> : set user trail.
 *
 *****************************************************************************************/
public cmdUserTrail(id, level, cid) {
	if (!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED

	if (!gl_parsed) {
		console_print(id, "Trails sunt OFF deoarece nu am putut citi configul '%s'!", CFG_FILE)
		return PLUGIN_HANDLED
	}
	if (gl_not_this_map) {
		console_print(id, "Trails sunt dezactivate pe aceasta harta!")
		return PLUGIN_HANDLED
	}

	new user[MAX_NAME_LENGTH+1], colorname[MAX_NAME_LENGTH]
	new plName[MAX_NAME_LENGTH+1]

	read_argv(1, user, MAX_NAME_LENGTH)
	read_argv(2, colorname, MAX_NAME_LENGTH-1)

	new player = cmd_target(id, user, 6)
	if (!player) {
		console_print(id, "Jucator necunoscut %s", user)
		return PLUGIN_HANDLED
	}
	get_user_name(player, plName, MAX_NAME_LENGTH)
	if (access(player, ADMIN_IMMUNITY) && id!=player) {
		console_print(id, "You cannot do that to %s, you silly bear!", plName)
		return PLUGIN_HANDLED
	}
	if (!is_user_alive(player)) {
		console_print(id, "Doar jucatorii in viata,va rog!")
		return PLUGIN_HANDLED
	}

	if (equali(colorname, "off")) {
		if (!gl_player_colors[player][0] && !gl_player_colors[player][1] && !gl_player_colors[player][2]) {
			console_print(id, "Trailul lui %s este deja scos!", plName)
			return PLUGIN_HANDLED
		}
		kill_trail_task(player)
		console_print(id, "Trailul lui %s a fost scos.", plName)
		client_print(player, print_chat, "Trailul tau a fost scos.")
	} else if (equali(colorname, "random")) {
		do_trail(player, "", "")
		console_print(id, "%s are aum un trail aleatoriu.", plName)
	} else {
		do_trail(player, colorname, "")
		console_print(id, "%s are acum un trail %s.", plName, colorname)
	}

	return PLUGIN_HANDLED
}

/*****************************************************************************************
 *
 *	cmdTrailType <type> : set trail type (sprite) for all players
 *
 *****************************************************************************************/
public cmdTrailType(id, level, cid) {
	if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED
	
	if (!gl_parsed) {
		console_print(id, "Trails sunt OFF deoarece nu am putut citi configul '%s'!", CFG_FILE)
		return PLUGIN_HANDLED
	}
	if (gl_not_this_map) {
		console_print(id, "Trails sunt dezactivate pe aceasta harta!")
		return PLUGIN_HANDLED
	}

	new str[5], type
	read_argv(1, str, 4)
	type = str_to_num(str)
	if (type<1 || type>NUM_SPRITES) {
		console_print(id, "Tipul trebuie sa fie intr-o ordine [1%d]!", NUM_SPRITES)
		return PLUGIN_HANDLED
	}
	for (new i=0; i<MAX_PLAYERS; i++) {
		gl_trail_type = gl_sprite[type-1]
		gl_trail_size = gl_def_sprite_size[type-1]
		gl_trail_brightness = gl_def_sprite_brightness[type-1]
	}
	restart_player_trail(id)
	return PLUGIN_HANDLED
}

/*****************************************************************************************
 *
 *	cmdTrailLife [duration] : get/set trail duration, in seconds.
 *
 *****************************************************************************************/
public cmdTrailLife(id, level, cid) {
	if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED

	if (!gl_parsed) {
		console_print(id, "Trails sunt OFF deoarece nu am putut citi configul '%s'!", CFG_FILE)
		return PLUGIN_HANDLED
	}
	if (gl_not_this_map) {
		console_print(id, "Trails sunt dezactivate pe aceasta harta!")
		return PLUGIN_HANDLED
	}

	new Str[3], life
	
	read_argv(1, Str, 2)
	if (!Str[0]) {
		console_print(id, "Durata trailului este acum de %d secunde.", gl_trail_life)
		return PLUGIN_HANDLED
	}
	life = str_to_num(Str)
	if (life<1 || life>30) {
		console_print(id, "Viata trailului trebuie sa fie intr-o ordine [1,30]!")
		return PLUGIN_HANDLED
	}
	gl_trail_life = life
	gl_timer_limit = floatround(float(life)/TICK)
	restart_players_trails()
	
	return PLUGIN_HANDLED
}

/*****************************************************************************************
 *
 *	cmdTrailSize [size] : get/set trail size.
 *
 *****************************************************************************************/
public cmdTrailSize(id, level, cid) {
	if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED

	if (!gl_parsed) {
		console_print(id, "Trails sunt OFF deoarece nu am putut citi configul '%s'!", CFG_FILE)
		return PLUGIN_HANDLED
	}
	if (gl_not_this_map) {
		console_print(id, "Trails sunt dezactivate pe aceasta harta!")
		return PLUGIN_HANDLED
	}

	new Str[3], size
	
	read_argv(1, Str, 2)
	if (!Str[0]) {
		console_print(id, "Marimea trailului tau actual este de %d.", gl_trail_size[id])
		return PLUGIN_HANDLED
	}
	size = str_to_num(Str)
	if (size<1) {
		console_print(id, "Marimea trailului trebuie sa fie pozitiva!")
		return PLUGIN_HANDLED
	}
	gl_trail_size[id] = size
	restart_player_trail(id)

	return PLUGIN_HANDLED
}

/*****************************************************************************************
 *
 *	cmdTrailBrightness [brightness] : get/set trail brightness.
 *
 *****************************************************************************************/
public cmdTrailBrightness(id, level, cid) {
	if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED

	if (!gl_parsed) {
		console_print(id, "Trails sunt OFF deoarece nu am putut citi configul '%s'!", CFG_FILE)
		return PLUGIN_HANDLED
	}
	if (gl_not_this_map) {
		console_print(id, "Trails sunt dezactivate pe aceasta harta!")
		return PLUGIN_HANDLED
	}

	new Str[3], bright
	
	read_argv(1, Str, 3)
	if (!Str[0]) {
		console_print(id, "Luminozitatea trailului este momentan %d.", gl_trail_brightness[id])
		return PLUGIN_HANDLED
	}
	bright = str_to_num(Str)
	if (bright<1 || bright>255) {
		console_print(id, "Luminozitate trebuie sa fie intr-o ordine de la [1,255] !")
		return PLUGIN_HANDLED
	}
	gl_trail_brightness[id] = bright
	restart_player_trail(id)

	return PLUGIN_HANDLED
}

/*****************************************************************************************
 *
 *	cmdReload : reload configuration file.
 *
 *****************************************************************************************/
public cmdReload(id, level, cid) {
	if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED

	if (gl_not_this_map) {
		console_print(id, "Trails sunt dezactivate pe aceasta harta!")
		return PLUGIN_HANDLED
	}

	gl_parsed = parse_file()
	
	if (gl_parsed) {
		console_print(id, "Ok, configuratia a fost relodata cu succes.")
	} else {
		console_print(id, "Uh Oh...A aparut o problema! Verificati logul amx pentru a afla ce cauzeaza asta.")
	}
	return PLUGIN_HANDLED
}

/*****************************************************************************************
 *
 *	sayCmd : say trail <[['light'|'dark'] colorname] | ['random'] | ['off'] | ['help']>
 *
 *****************************************************************************************/
public SayCmd(id, level, cid) {
	new args[128], msg[200], plName[MAX_NAME_LENGTH], colname[MAX_NAME_LENGTH], arg2[MAX_NAME_LENGTH], arg3[MAX_NAME_LENGTH], typenum
	
	read_args(args, 128)
	remove_quotes(args)

	if (equali(args, "trail", 5)) {
		if (!gl_trail) {
			client_print(id, print_chat, "Trails au fost DEZACTIVATE.")
			return PLUGIN_HANDLED
		}
		if (gl_not_this_map) {
			client_print(id, print_chat, "Trails au fost DEZACTIVATE for this map.")
			return PLUGIN_HANDLED
		}

		get_user_name(id, plName, MAX_NAME_LENGTH)
		if (!get_user_team(id) && !access(id, ADMIN_ADMIN)) {
			client_print(id, print_chat, "Trebuie sa joci!")
			return PLUGIN_HANDLED
		}
		
		if (!args[5]) {
			do_trail(id, "", "")
			return PLUGIN_HANDLED
		} else {
			parse(args[6], colname, MAX_NAME_LENGTH, arg2, MAX_NAME_LENGTH, arg3, MAX_NAME_LENGTH)
//			console_print(id, "restline = '%s'", restline)
			typenum = str_to_num(colname)
		}
		
		if (equali(colname, "off")) {
			if (!gl_player_colors[id][0] && !gl_player_colors[id][1] && !gl_player_colors[id][2]) {
				client_print(id, print_chat, "Trailul tau a fost deja scos!")
				return PLUGIN_HANDLED
			}
			kill_trail_task(id)
			client_print(id, print_chat, "Trailul tau a fost scos.")
			format(msg, 199, "%s si-a scos trailul.", plName)
			say_to_all(msg, id)
			return PLUGIN_HANDLED
		} else if (equali(colname, "random")) {
			do_trail(id, "", "")
			return PLUGIN_HANDLED
		} else if (equali(colname, "help")) {
			trail_help(id)
			return PLUGIN_HANDLED
		}
		
		if (typenum) {
			if (typenum<1 || typenum>NUM_SPRITES) {
				client_print(id, print_chat, "Tipul trebuie sa fie intr-o ordine de [1,%d].", NUM_SPRITES)
				return PLUGIN_HANDLED
			}
			typenum--
			gl_trail_type[id] = gl_sprite[typenum]
			gl_trail_size[id] = gl_def_sprite_size[typenum]
			gl_trail_brightness[id] = gl_def_sprite_brightness[typenum]
			if (arg2[0]) {
				colname = arg2
				arg2 = arg3
			} else {
				if (!gl_player_colors[id][0] && !gl_player_colors[id][1] && !gl_player_colors[id][2]) {
					do_trail(id, "", "")
					return PLUGIN_HANDLED
				}
				new r = gl_player_colors[id][0]
				new g = gl_player_colors[id][1]
				new b = gl_player_colors[id][2]
				kill_trail_task(id)
				gl_player_colors[id][0] = r
				gl_player_colors[id][1] = g
				gl_player_colors[id][2] = b
				get_user_origin(id, gl_player_position[id])
				set_task(TICK, "check_position", TASKID+id, "", 0, "b")
				trail_msg(id)
				client_print(id, print_chat, "Ai un trail de tip %d.", typenum+1)
				format(msg, 199, "%s are un trail de tip %d.", plName, typenum+1)
				say_to_all(msg, id)
				return PLUGIN_HANDLED
			}
		}
		
		if (equali(colname, "dark")) {
			copy(colname, MAX_NAME_LENGTH-1, arg2)
			if (!colname[0]) {
				client_print(id, print_chat, "Specifica numele culorii!")
				return PLUGIN_HANDLED
			}
			do_trail(id, colname, "dark")
		} else if (equali(colname, "light")) {
			copy(colname, MAX_NAME_LENGTH-1, arg2)
			if (!colname[0]) {
				client_print(id, print_chat, "Specifica numele culorii!")
				return PLUGIN_HANDLED
			}
			do_trail(id, colname, "light")
		} 
		else {
			do_trail(id, colname, "")
		}
	}
	return PLUGIN_CONTINUE
}

/*****************************************************************************************
 *****************************************************************************************/
do_trail(id, colname[], intensity[]) {
	new i, msg[200]
	new name[33]
	
	get_user_name(id, name, 32)
	if (!colname[0]) {
		kill_trail_task(id)
		gl_player_colors[id][0] = random(256)
		gl_player_colors[id][1] = random(256)
		gl_player_colors[id][2] = random(256)
		get_user_origin(id, gl_player_position[id])
		set_task(TICK, "check_position", TASKID+id, "", 0, "b")
		trail_msg(id)
		client_print(id, print_chat, "Ai un trail aleatoriu.")
		format(msg, 199, "%s are un trail aleatoriu.", name)
		say_to_all(msg, id)
		return
	}
	for (i=0; i<gl_num_colors; i++) {
		if (equali(colname, gl_color_names)) {
			new Float:intens, r, g, b
			if (equali(intensity, "dark")) {
				intens = 0.5
			} else if (equali(intensity, "light")) {
				intens = 2.0
			} else {
				copy(intensity, 1, "")
				intens = 1.0
			}
			kill_trail_task(id)
			r = floatround(float(gl_colors[0]) * intens)
			g = floatround(float(gl_colors[1]) * intens)
			b = floatround(float(gl_colors[2]) * intens)
			gl_player_colors[id][0] = min(r, 255)
			gl_player_colors[id][1] = min(g, 255)
			gl_player_colors[id][2] = min(b, 255)
			get_user_origin(id, gl_player_position[id])
			set_task(TICK, "check_position", TASKID+id, "", 0, "b")
			trail_msg(id)
			if (intensity[0]) {
				client_print(id, print_chat, "Tu ai un %s %s.", intensity, colname)
				format(msg, 199, "%s has now a %s %s trail.", name, intensity, colname)
			} else {
				client_print(id, print_chat, "AI un trail %s.", colname)
				format(msg, 199, "%s are acum un trail %s.", name, colname)
			}
			say_to_all(msg, id)
			return
		}
	}
	client_print(id, print_chat, "Scuze, %s, dar nu pot recunoastea culoarea '%s'!", name, colname)
	return
}

/*****************************************************************************************
 *****************************************************************************************/
public check_position(taskid) {
	new origin[3], id = taskid-TASKID
		
	if (!get_user_team(id)) {
		kill_trail_msg(id)
		return
	}

	get_user_origin(id, origin)
	if (origin[0]!=gl_player_position[id][0] || origin[1]!=gl_player_position[id][1] || origin[2]!=gl_player_position[id][2]) {
		if (get_distance(origin, gl_player_position[id])>MAX_DISTANCE || gl_timer_count[id] >= gl_timer_limit/2) {
			kill_trail_msg(id)
			trail_msg(id)
		}
		gl_player_position[id][0] = origin[0]
		gl_player_position[id][1] = origin[1]
		gl_player_position[id][2] = origin[2]
		gl_timer_count[id] = 0
	} else {
		if (gl_timer_count[id] < gl_timer_limit) gl_timer_count[id]++
	}
}

/*****************************************************************************************
 *****************************************************************************************/
kill_trail_task(id) {
	if (task_exists(TASKID+id)) remove_task(TASKID+id)
	kill_trail_msg(id)
	gl_player_colors[id][0] = gl_player_colors[id][1] = gl_player_colors[id][2] = 0
}

/*****************************************************************************************
 *****************************************************************************************/
kill_trail_msg(id) {
	gl_timer_count[id] = 0

	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(99)	// TE_KILLBEAM
	write_short(id)
	message_end()
}

/*****************************************************************************************
 *****************************************************************************************/
trail_msg(id) {
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(22)	// TE_BEAMFOLLOW
	write_short(id)
	write_short(gl_trail_type[id])
	write_byte(gl_trail_life*10)
	write_byte(gl_trail_size[id])
	write_byte(gl_player_colors[id][0])
	write_byte(gl_player_colors[id][1])
	write_byte(gl_player_colors[id][2])
	write_byte(gl_trail_brightness[id])
	message_end()

}

/*****************************************************************************************
 *****************************************************************************************/
restart_player_trail(id) {
	if (task_exists(TASKID+id)) {
		remove_task(TASKID+id)
		kill_trail_msg(id)
		get_user_origin(id, gl_player_position[id])
		set_task(TICK, "check_position", TASKID+id, "", 0, "b")
		trail_msg(id)
	}
}

/*****************************************************************************************
 *****************************************************************************************/
restart_players_trails() {
	new playercount
	
	get_players(gl_players, playercount)
	for (new i=0; i<playercount; i++) {
		restart_player_trail(gl_players[i])
	}
}

/*****************************************************************************************
 *****************************************************************************************/
say_to_all(msg[], id) {
	new playercount
	
	get_players(gl_players, playercount)
	for (new i=0; i<playercount; i++) {
		if (gl_players[i]!=id) client_print(gl_players[i], print_chat, msg)
	}
}

/*****************************************************************************************
 *****************************************************************************************/
trail_help(id) {
	new msg[200], clen=0
			
	console_print(id, "^nTrail Colors List:^n")
	for (new i=0; i<gl_num_colors; i++) {
		clen += format(msg[clen], 199-clen, "%s ", gl_color_names[i])
		if (clen > 80) {
			console_print(id, msg)
			copy(msg, 1, "")
			clen = 0
		}
	}
	console_print(id, "^nNOTA: Toate culorile existente sunt prefixate de cuvintele 'light' or 'dark'.^n")
	console_print(id, "^nSay 'trail <culoare>' pentru a avea un trail colorat.^nSay 'trail off' pentru a opri trailul.")
	console_print(id, "Say 'trail <numar> [culoare]' pentru a aschimba culoarea trailului tau.^n")
	console_print(id, "^nExamples:")
	console_print(id, "    trail")
	console_print(id, "    trail off")
	console_print(id, "    trail tomato")
	console_print(id, "    trail 6 gold")
	console_print(id, "    trail 11 light blue")
	client_print(id, print_chat, "Lista culorilor a fost afisata in consola.")
}

/*****************************************************************************************
 *****************************************************************************************/
bool:parse_file() {
	new got_line, line_num=0,  len=0, parsed
	new r[3][4], g[3][4], b[3][4]
	new full_line[MAX_TEXT_LENGTH], rest_line[MAX_TEXT_LENGTH], cfgdir[MAX_TEXT_LENGTH], cfgpath[MAX_TEXT_LENGTH]
	
	gl_num_colors = 0
	get_configsdir(cfgdir, MAX_TEXT_LENGTH)
	format(cfgpath, MAX_TEXT_LENGTH, "%s/%s", cfgdir, CFG_FILE)
	if (!file_exists(cfgpath)) {
		log_amx("ERROR: Cannot find configuration file '%s'!", cfgpath)
		return false
	}
	got_line = read_file(cfgpath, line_num, full_line, MAX_TEXT_LENGTH, len)
	if (got_line <=0) {
		log_amx("ERROR: Cannot read configuration file '%s'!", cfgpath)
		return false
	}
	while (got_line>0) {
		if (!equal(full_line, "//", 2) && len) {
			strtok(full_line, gl_color_names[gl_num_colors], MAX_NAME_LENGTH, rest_line, MAX_TEXT_LENGTH, ' ', 1)
			copy(full_line, MAX_TEXT_LENGTH, rest_line)

			parsed = parse(full_line,r[0],3,g[0],3,b[0],3)
			if (parsed<3) {
				log_amx("ERROR: Not enough colors, line %d in configuration file '%s'!", 1+line_num, CFG_FILE)
				return false
			}
			gl_colors[gl_num_colors][0] = str_to_num(r[0])
			gl_colors[gl_num_colors][1] = str_to_num(g[0])
			gl_colors[gl_num_colors][2] = str_to_num(b[0])

			gl_num_colors++
			if (gl_num_colors>=MAX_COLORS) {
				log_amx("WARNING: Max colors reached in file '%s'!", CFG_FILE)
				return true
			}
		}
		line_num++
		got_line = read_file(cfgpath, line_num, full_line, MAX_TEXT_LENGTH, len)
	}
	return true
}

check_map() {
	new got_line, line_num, len
	new cfgdir[MAX_TEXT_LENGTH]
	new cfgpath[MAX_TEXT_LENGTH]
	new mapname[MAX_NAME_LENGTH]
	new txt[MAX_TEXT_LENGTH]

	get_configsdir(cfgdir, MAX_TEXT_LENGTH-1)
	get_mapname(mapname, MAX_NAME_LENGTH-1)

	format(cfgpath, MAX_TEXT_LENGTH, "%s/sensiblemaps.cfg", cfgdir)
	
	if (file_exists(cfgpath)) {
		got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
		while (got_line>0) {
			if (equali(txt, mapname)) return 1
			line_num++
			got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
		}
	}
	return 0
}
REGULI GENERALE : Afișează regulile forumului
1. Utilizati corect limba romana (folositi cuvinte intregi, virgula, punctul si cratima). NU FOLOSITI limbaj de chat!
2. Raspundeti concret! Fara offtopic, fara mesaje scurte, inutile sau deja postate!
* offtopic = reprezinta devierea de la subiectul care se discuta
3. Folosirea cuvintelor sau inregistrarea cu nume obscene/jignitoare duce la restrictionarea accesului, stergerea contului, etc.
4. Este interzis orice atac la persoana. Discutati ideea, nu persoana !
5. Restrictii reclame :
a) Reclama este permisa in subiecte atat timp cat ele au legatura cu idea care se discuta.
b) In semnatura este permisa o singura reclama SIMPLA de tip TEXT cu dimensiunea fontului setat pe NORMAL
c) Reclama nu este permisa in campurile personale gen: Locatie, CS Status.
d) Nu aveti voie sa deschideti topicuri cu referire exacta la un site in scopul obtinerii de vizite, se considera reclama !
6. Nu folositi imagini in semnatura mai mari decat 500x120. Puteti folosi mai multe imagini care, toate sa nu depaseasca marimea impusa !
7. Folositi CAUTAREA si apoi intrebati pentru ceva daca nu exista pe forum! Numele topicurilor create trebuie sa reflecte continutul subiectului pe care se discuta. Nu vor fi permise topicuri de genul: help, ajutor pls, cum fac, etc
8. Este permisa continuarea unei discutii vechi de pe forum, chiar daca aceasta a fost deschisa cu cativa ani in urma. NU se permite insa dublu-post, triplu-post sau UP-uri.
* dublu-post / triplu - post = adaugarea unor mesaje unul dupa altul intr-o discutie a forumului de catre aceeasi persoana
* UP = adaugarea unor mesaje unul dupa altul cu scopul de a scoate in evidenta discutia respectiva
9. Orice fel de continut cu caracter erotic va fi sters, iar daca este necesar se vor aplica avertismente.
10. Nu este permisa promovarea firmelor de hosting in afara de http://www.eXtreamHost.com , fie ca este vorba de o reclama directa sau indirecta.
11. Nu este permisa postarea de continut ilegal: warez, carding (bine cunoscutele "metode" de furat domenii etc.) si alte practici "neortodoxe", se vor aplica avertismente sau ban, dupa caz si antecedente.

SANCTIONAM DRASTIC INCALCAREA ACESTOR REGULI SI ORICE ABUZ !


WARNINGS/Avertismente
3 Avertismente = BAN pe forum pentru o anumita perioada de timp, in functie de gravitatea regulilor incalcate!
1 Avertisment = 15 de zile

Mesaje private
Abuzul in orice fel de folosirea mesajelor private va duce la sanctionare. In concluzie, vi se va lua dreptul de a mai trimite mesaje.
Reclamatiile cat si penalizarile se regasesc aici: discutii-forum/reclamatii-mesaje-private-t335539.html

Suplimentar
1. In semnatura nu sunt permise linkuri catre jocuri (site-uri) gen bitefight, monstergame, etc.
2. La profilul Detinator server CS se permite reclama catre un server de Counter-Strike.
3. Orice insulta adusa asupra unui administrator se penalizeaza cu ban permanent. Orice insulta adusa asupra unui moderator se penalizeaza (in functie de gravitatea situatiei) de la avertisment pana la ban permanent.
4. Nu se permite ridicarea subiectelor cu mesaje gen "UP!" unul dupa altul, indiferent de timpul dintre raspunsuri.


Atentionari
1. Nu se permite schimbarea numelui pe forum
2. Nu aveti voie cu mai mult de 1 cont / persoana (vi se sterg toate mesajele si contul de utilizator de pe forum drept penalizare) - cei care abuzeaza si isi fac mai multe conturi, risca sa primeasca ban permanent

 

Model postare servere :Afiseaza modelul
Va rugam respectati urmatorul model de postare al serverului, completand campurile cu datele corecte:

Titlul va contine: NUMELE / ADRESA IP a serverului si in paranteze patrate Non.Steam / Steam / Steam & Non.Steam
Adresa poate fi de tip: NUME / IP
Port: portul acestuia
Jucatori: 18 / 22 / 24 (sau cat aveti setat)
Tipul poate fi: Non.Stop (merge 24/24 ore) sau PartTime (functioneaza doar ziua sau intre anumite ore ale zilei/noptii)
Modul poate fi: Normal / ZombieMod / SourceMod / Metamod:Source

Anticheat: Protejat / Neprotejat
Tara: RO / US / DE (sau orice alte INITIALE ale tarii respective)

EXEMPLU:
Titlu (sau numele topicului): ExTrEaM [Steam & Non.Steam]
Continut:
    Adresa: extream.idle.ro (acesta este doar un exemplu!)
    Port: 27015
    Jucatori: 18
    Tip: Non.Stop
    Mod: Normal
    Anticheat: Neprotejat
    Tara: RO

----------- Sfarsit exemplu ---------------------

* Nu va lasati adresa la SITE / FORUM in model pentru ca se considera reclama si primiti avertisment sau topicul dvs. ajunge la cos!
* Titlurile vor fi colorate cu rosu ca in exemplul de deasupra !
* Cine NU respecta modelul prezentat i se va STERGE topicul !!
* NU aveti voie sa adaugati comentarii de genul: serverul meu este cel mai tare..etc. pentru ca iarasi vi se va sterge topicul ! Insa puteti lasa alte informatii diverse (un ID Yahoo, un mail, etc.)
Model postare addonsuri : Afiseaza modelul
Acesta este un tip standard pentru postarea unui addons

A. Continut

- Nu mai stergeti folderul scripting din amxmodx pe motiv ca nu avem nevoie sau ca face lag !
- Nu includeti in addons mai multe pluginuri care fac acelasi lucru, gen hpk.
- Nu includeti in addons pluginul show_ip la care orice jucator are acces la comanda amx_ipban.
- Nu includeti in addons pluginuri care nu stiti ce fac.
- Nu personalizati addons-ul cu reclame catre alte site-uri/forum-uri,etc...
- Postati intotdeauna .sma-ul pluginurilor incluse.

B. Postare

Titlul: Va contine tipul addons-ului ( amxmodx/amxmod/adminmod/war3ft/superhero/csdm/etc..)
- Va rog nu folositi in numele topic-ului caractere ! Gen : "-->> addons by me <--"
- Deoarece am observat cateva confuzii, cand postati un addons, nu scrieti in interiorul postului "titlu : addons,blablabla"


Descriere:

Ce contine addons-ul. Adica ce mod, ce versiune, ce alte facilitati are in plus (booster,hlguard,webmod,statsme,etc.)
* Puteti folosi urmatorii termeni :

* Normal - addons standard.
* Normal+ - addons standard dar cu cateva lucruri modificate.
* War3ft - addons cu puteri war3ft.
* UWC3 - addons cu puteri war3ft diverse.
* Respawn/CSDM - addons care te reinvie imediat dupa ce mori.
* Soccerjam - addons cu fifa/cs instalat.
* Zombie - addons in care jucatorii trebuie 'infectati' de un zombie.
* DeathRun - addons in care jucatorii trebuie sa treaca de obstacole
* Hide N'Seek - addons in
* Divers - addons Neinclus in aceste tipuri (daca credeti ca mai trebuie adaugat un alt tip trimiteti-mi mesaj pe privat !)

Autor: Cine a facut addonsul respectiv
Versiune: 1.x 2.x
Descarcare:

Code:
[url=Linkul_catre_addons]Link![/url]


Pluginuri: aici veti scrie ce pluginuri are addons-ul postat (fara cele de baza) si ce fac acestea !
plugin1.amxx - ce face pluginul respectiv
plugin2.amxx - ce face pluginul respectiv
plugin3.amxx - ce face pluginul respectiv

ATENTIE !
- Daca vreti sa postati un addons care nu este facut de dvs.,folositi intai cautarea pentru a va asigura ca addons-ul respectiv nu este deja postat de altcineva !
- De asemenea,daca incercati sa ne pacaliti cu un addons copiat si punandu-va pe dvs ca si autor,topicul va fi mutat la Cos si riscati sa primiti warn !
- NU postati tot link-ul catre addons ! Ci folositi ]URL :
Code:
[url=linkul_catre_addons]cuvant[/url]


C. Raspuns/Reply
1.Cei care posteaza addons-ul !
Daca vi se zice "gj,misto addons" nu raspundeti cu "merci,alte pareri",etc...

2.Cei care raspund !
Nu faceti reply-uri de gen-ul "gj","bravo","misto addons","gg tare",etc...

3.Copiere !
Daca vi se pare ca un addons postat este copiat, nu faceti replay cu "copiat,praf","addons-ul este copiat","nu tu l-ai facut".etc.. ci veniti cu o dovada daca vreti sa fiti bagati in seama! Daca aduceti acuzatii false riscati sa primiti warn ! De asemenea, nu aduceti cuvinte vulgare la adresa autorului, veti primi fara nici o ezitare warn sau chiar ban !
[regulia][/regulia]
Post Reply

Return to “Probleme la servere dedicate de Counter-Strike”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 96 guests