Modificare Plugin

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
ChristianEvo
Membru, skill +1
Membru, skill +1
Posts: 208
Joined: 13 Jul 2015, 14:57
Detinator Steam: Da
CS Status: BB Force
Detinator server CS: EVO.MANIACS.RO
SteamID: eVo_style
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 2 times
Contact:

30 Mar 2020, 00:16

Salut...Am tot cautat un plugin antirush...intr-un final am gasit unul.L-am testat..Functioneaza ok dar as vrea sa ii colorez mesajele din chat...
Am incercat si eu..insa nu am reusit..

Vreau ca acele mesaje din chat sa fie colorate...

Code: Select all

// Czas do wylaczenia raszu odliczany jest od momentu respawnu zatem przy jego definiowaniu (linijka 155)
// nalezy doliczyc czas potrzebny na freeztime. Jezeli freeztime wynosi 5 sekund oraz antyrasz ma sie konczyc
// po 60 sekundach pierwsza liczba w funkcji set_task ma wynosic 60.0 (liczba zmiennoprzecinkowa stad 60.0 a nie 60)
//
//
//
#include <amxmodx>
#include <engine>
#include <fun>
#include <cstrike>
#include <amxmisc>
#include <fakemeta>

new Float:TEST_TIME=0.1
new Float:WARN_TIME=1.0
new Float:FLASH_TIME=0.8

#define MAX_ZONES 8
new MIN_PLAYERS=3		/*Dobre do testowania w mniej osob
				  lub gdy chcesz by koniec rashu byl
				  przy wiekszej liczbbie osob*/
#define TASK_AREND 700743
#define TASK_ZONE 600743
#define TASK_LOOP 500743
#define TASK_VIEW 400743
#define TASK_INFO 300743
#define TASK_FLASH 200743

new mUsuwaniestrefy // Menu
new mcbUsuwaniestrefy // Menu Callback
new mZapisacstrefy // Menu
new mcbZapisacstrefy // Menu Callback
new mAntirushControlMenu // Menu
new mcbAntirushControlMenu // Menu Callback
				//Uzylem generatora i takie malo eleganckie wyszlo

new map_cors_edit[MAX_ZONES*6]
new zones_edit
new zone_editing=0
new map_editor
new map_cors_file_line=127
new zone_incresment=10
new zone_coords_num=0
new zone_coords[3][13] = { "Koordynat X", "Koordynat Y", "Koordynat Z"}
new editign=0
new edit_g_team[3]
new round_start=0
new lines

new gMsgScreenFade
new rasher[33]=0
new raszer[33]
new flashed[33]=0
new sounded[33]=0
new speed_limit[33]=0
new g_team[3]
new g_origin[3]
new map_cors_pre=2
new map_cors_origin[MAX_ZONES*6]
new slap
new warn_control = 0 // miczu
new zones = 0

new zone_color_aktiv[3] = { 0, 0, 255 }
new zone_color_red[3] = { 255, 0, 0 }
new zone_color_yellow[3] = { 255, 255, 0 }
new spr_dot

new actions[11][32] = { "barney/donthurtem.wav","nihilanth/nil_now_die.wav","hgrunt/c2a3_hg_laugh.wav","hgrunt/silence!.wav","hgrunt/silence!.wav","barney/whatsgoingon.wav","barney/rightway.wav","barney/nosir.wav","barney/openfire.wav","barney/stophere.wav","hgrunt/c2a2_hg_chat5a.wav"}
					
public plugin_init()
{	
	register_plugin("M_AntiRusher","2.8","Sheaker")
	log_amx(" <<Uruchomiono M_Antirusher 2.8>>")
		
	register_dictionary("M_antirusher.txt")
	register_dictionary("common.txt")
	
	register_clcmd("say /rules","info")
	register_clcmd("say /zasadymapy","info")
	register_clcmd("amx_antirusher_menu","amx_antirusher_menu")
		
	register_cvar("Antirusher Wiaderko.com", "2.8",FCVAR_SERVER)
	register_cvar("amx_antirusher","1")			
	register_cvar("amx_antirusher_sound","1")		
	register_cvar("amx_antirusher_sound_mode","0")
	register_cvar("amx_antirusher_warn","1")
	register_cvar("amx_antirusher_slap","3")		
	register_cvar("amx_antirusher_time","60.0")		
	register_cvar("amx_antirusher_freq","0.1")
	register_cvar("amx_antirusher_action","7")
	register_cvar("amx_antirusher_cash","50")		
	register_cvar("amx_antirusher_cash_end","2")		
	register_cvar("amx_antirusher_immunity","0")	
	register_cvar("amx_antirusher_zasady","1")
	register_cvar("amx_antirusher_people","3")
	
	register_event("HLTV","Event_StartRound","a","1=0","2=0")
	register_event("SendAudio", "bomb_planted", "a", "2&%!MRAD_BOMBPL")
	register_event("DeathMsg","DeathMsg","ade") 
	register_event("CurWeapon","CurWeapon","be") 
	
	gMsgScreenFade = get_user_msgid("ScreenFade") 
	map_cors_pre = map_cors_present(map_cors_origin,g_team)
	TEST_TIME=get_cvar_float("amx_antirusher_freq")
	
	register_menucmd(register_menuid("Antirush Menu"), 1023, "Antirush_menu")
	register_menucmd(register_menuid("Punishment Menu"), 1023, "Punishment_menu")
	register_menucmd(register_menuid("Antirush Zone Creator"), 1023, "Antirush_Zone_Creator")
	register_menucmd(register_menuid("Edit Zone"), 1023, "edit_zone2")
	
	mAntirushControlMenu = menu_create("Antirush Control Menu", "mh_AntirushControlMenu")
	mcbAntirushControlMenu = menu_makecallback("mcb_AntirushControlMenu")
	menu_additem(mAntirushControlMenu, "Antirush cvar control", "ma_AntirushControlMenu", ADMIN_CVAR, mcbAntirushControlMenu)
	menu_additem(mAntirushControlMenu, "Antirush Punishments", "ma_AntirushControlMenu", ADMIN_CVAR, mcbAntirushControlMenu)
	menu_additem(mAntirushControlMenu, "Antirush Zone Creator", "ma_AntirushControlMenu", ADMIN_RCON, mcbAntirushControlMenu)
	
	mZapisacstrefy = menu_create("Zapisac strefy", "mh_Zapisacstrefy")
	mcbZapisacstrefy = menu_makecallback("mcb_Zapisacstrefy")
	menu_additem(mZapisacstrefy, "TAK", "ma_Zapisacstrefy", ADMIN_ALL, mcbZapisacstrefy)
	menu_additem(mZapisacstrefy, "NIE", "ma_Zapisacstrefy", ADMIN_ALL, mcbZapisacstrefy)
	
	mUsuwaniestrefy = menu_create("Usuwanie strefy", "mh_Usuwaniestrefy")
	mcbUsuwaniestrefy = menu_makecallback("mcb_Usuwaniestrefy")
	menu_additem(mUsuwaniestrefy, "TAK", "ma_Usuwaniestrefy", ADMIN_ALL, mcbUsuwaniestrefy)
	menu_additem(mUsuwaniestrefy, "NIE", "ma_Usuwaniestrefy", ADMIN_ALL, mcbUsuwaniestrefy)
	
	server_cmd("exec addons/amxmodx/configs/antirusher/cvars.cfg")
}

public plugin_precache() {
	spr_dot = precache_model("sprites/dot.spr") // potrzebne do robienia lini
}

///////////////////////////////////////////////////////////////////////
/////////                M_Antirusher  Events                 /////////
////////////////////////////////////////////////////////////////////////
 
public client_connect(id){
	free_the_man(id)		//nie chcemy by ktos kto sie polaczy byl karany
}					//kiedy osoba co opuszczajac serwer miala kare
					//czyli gdy stary i nowy gracz beda mieli te same id

public client_disconnect(id) {
	free_the_man(id)		//tak na wszelki wypadek, ale mozna sobie odpuscic
	return PLUGIN_CONTINUE
}

public Event_StartRound(){
	round_start++				
	MIN_PLAYERS = get_cvar_num("amx_antirusher_people")	// zmiana people dziala na starcie rundy
	remove_task(TASK_LOOP)		//przerywa sprawdzanie rashu
	remove_task(TASK_VIEW)		//przerywa wyswietlanie granic dla userow	
	remove_task(TASK_AREND) 	// przerywa odliczanie czasu
	set_task(65.0,"free_the_world",TASK_AREND)
	set_task(0.5, "checkOrigin",TASK_LOOP)
	set_task(0.5, "rash_warn",TASK_VIEW)
}

public client_putinserver(id){ 		//tu informacja o rashu
	new arg[1] 			//Zoptymalizowane uzycie set_task
	arg[0]=id			//Deklaracja 1 kumurki pamieci zamiast 4 i bez zmian z str-> num i na odwrot
		
	if (map_cors_pre && get_cvar_num("amx_antirusher"))
		set_task(45.0,"informclient",TASK_INFO+id,arg,1) 
} 

public bomb_planted() {			//podlozono bombe
	remove_task(TASK_LOOP)		//przerywa sprawdzanie rashu
	remove_task(TASK_VIEW)		//przerywa wyswietlanie granic dla userow	
	remove_task(TASK_AREND) 	// przerywa odliczanie czasu
	free_the_world()		//mozna rashowac
}

					//

public DeathMsg(){
	new vid = read_data(2)		//id trupa
	free_the_man(vid)		//uwalnia trupa by zaczol runde z czystym kontem
}

//////////////////////////////////////////////////////////////////////
/////////                M_Antirusher Things                 /////////
//////////////////////////////////////////////////////////////////////

map_cors_present(maporigin[MAX_ZONES*6],team[3]) {
	
	new zonefile[256],zonefile2[256]
	
	get_configsdir(zonefile, 255)
	
	if(is_linux_server()){
		format(zonefile2, 255, "%s/antirusher", zonefile)
		if(!(dir_exists(zonefile2))) mkdir (zonefile2)
		format(zonefile2, 255, "%s/antirusher/rush.cor", zonefile)
	}
	else{
		format(zonefile2, 255, "%s\antirusher", zonefile)
		if(!(dir_exists(zonefile2))) mkdir (zonefile2)
		format(zonefile2, 255, "%s\antirusher\rush.cor", zonefile)
	}
	
	if (file_exists(zonefile2)){	
		
		new readdata[512]
		new currentmap[32]
		get_mapname(currentmap,31)
		new map[32], len 
		new x11[16],x12[16],y11[16],y12[16],z11[16],z12[16]
		new x21[16],x22[16],y21[16],y22[16],z21[16],z22[16]
		new x31[16],x32[16],y31[16],y32[16],z31[16],z32[16]
		new x41[16],x42[16],y41[16],y42[16],z41[16],z42[16]
		new x51[16],x52[16],y51[16],y52[16],z51[16],z52[16]
		new x61[16],x62[16],y61[16],y62[16],z61[16],z62[16]
		new x71[16],x72[16],y71[16],y72[16],z71[16],z72[16]
		new x81[16],x82[16],y81[16],y82[16],z81[16],z82[16]
		
		
		for(new i=0; i < 128 && read_file(zonefile2,i,readdata,511,len); i++) {
			x11="";x12="";y11="";y12="";z11="";z12=""
			x21="";x22="";y21="";y22="";z21="";z22=""
			x31="";x32="";y31="";y32="";z31="";z32=""
			x41="";x42="";y41="";y42="";z41="";z42=""
			x51="";x52="";y51="";y52="";z51="";z52=""
			x61="";x62="";y61="";y62="";z61="";z62=""
			parse(readdata,team,2,map,31,x11,15,x12,15,y11,15,y12,15,z11,15,z12,15,
				x21,15,x22,15,y21,15,y22,15,z21,15,z22,15,
				x31,15,x32,15,y31,15,y32,15,z31,15,z32,15,
				x41,15,x42,15,y41,15,y42,15,z41,15,z42,15,
				x51,15,x52,15,y51,15,y52,15,z51,15,z52,15,
				x61,15,x62,15,y61,15,y62,15,z61,15,z62,15,
				x71,15,x72,15,y71,15,y72,15,z71,15,z72,15,
				x81,15,x82,15,y81,15,y82,15,z81,15,z82,15)
			lines=i
			if(equal(map,currentmap)) {
				maporigin[0] = str_to_num(x11)
				maporigin[1] = str_to_num(x12)
				maporigin[2] = str_to_num(y11)
				maporigin[3] = str_to_num(y12)
				maporigin[4] = str_to_num(z11)
				maporigin[5] = str_to_num(z12)
				maporigin[6] = str_to_num(x21)
				maporigin[7] = str_to_num(x22)
				maporigin[8] = str_to_num(y21)
				maporigin[9] = str_to_num(y22)
				maporigin[10] = str_to_num(z21)
				maporigin[11] = str_to_num(z22)
				maporigin[12] = str_to_num(x31)
				maporigin[13] = str_to_num(x32)
				maporigin[14] = str_to_num(y31)
				maporigin[15] = str_to_num(y32)
				maporigin[16] = str_to_num(z31)
				maporigin[17] = str_to_num(z32)
				maporigin[18] = str_to_num(x41)
				maporigin[19] = str_to_num(x42)
				maporigin[20] = str_to_num(y41)
				maporigin[21] = str_to_num(y42)
				maporigin[22] = str_to_num(z41)
				maporigin[23] = str_to_num(z42)
				maporigin[24] = str_to_num(x51)
				maporigin[25] = str_to_num(x52)
				maporigin[26] = str_to_num(y51)
				maporigin[27] = str_to_num(y52)
				maporigin[28] = str_to_num(z51)
				maporigin[29] = str_to_num(z52)
				maporigin[30] = str_to_num(x61)
				maporigin[31] = str_to_num(x62)
				maporigin[32] = str_to_num(y61)
				maporigin[33] = str_to_num(y62)
				maporigin[34] = str_to_num(z61)
				maporigin[35] = str_to_num(z62)
				maporigin[36] = str_to_num(x71)
				maporigin[37] = str_to_num(x72)
				maporigin[38] = str_to_num(y71)
				maporigin[39] = str_to_num(y72)
				maporigin[40] = str_to_num(z71)
				maporigin[41] = str_to_num(z72)
				maporigin[42] = str_to_num(x81)
				maporigin[43] = str_to_num(x82)
				maporigin[44] = str_to_num(y81)
				maporigin[45] = str_to_num(y82)
				maporigin[46] = str_to_num(z81)
				maporigin[47] = str_to_num(z82)
				
				map_cors_file_line=i
				for(new j=0;j<MAX_ZONES;j++){
					i=j*6
					if(((maporigin[1+i]-maporigin[0+i])>0)&&((maporigin[3+i]-maporigin[2+i])>0)&&((maporigin[5+i]-maporigin[4+i])>0))
					zones++
				}
				
				return 1
			}
			if((len<15)  && (map_cors_file_line>i)) map_cors_file_line=i
		}
		log_amx("%L",LANG_SERVER,"AR_NO_ZONE")
		if(lines+2<map_cors_file_line) map_cors_file_line=lines+2	//zapobiega zapisywaniu na 127 pozycji gdy nie ma wolnych lini na koncu :)
		return 0
	}
	else log_amx("%L",LANG_SERVER,"AR_NO_FILE")
	g_team="XX"
	map_cors_file_line=0			//nie ma pluku rush,cor wiec niech zapisze w pierwszej lini
	return 0
}


public info(id){
	new anti_zasady = get_cvar_num("amx_antirusher_zasady")
	if(anti_zasady==1){
		new map[4]
		get_mapname(map,3)		// rozpoznawanie typu mapy na podstawie pierwszych 3 liter :p
		
		if (equal(map,"cs_")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_CS_MAP")
		else if (equal(map,"de_")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_DE_MAP")
		else if (equal(map,"fy_")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_FY_MAP")
		else if (equal(map,"aim")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_AIM_MAP")
		else if (equal(map,"awp")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_AWP_MAP")
		else if (equal(map,"kz_")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_KZ_MAP")
		else if (equal(map,"fun")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_FUN_MAP")
		else if (equal(map,"sur")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_SURF_MAP")
		else if (equal(map,"sj_")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_SJ_MAP")
		else if (equal(map,"ka_")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_KA_MAP")
		else if (equal(map,"he_")) client_print(id,print_chat, "%L",LANG_PLAYER,"AR_HE_MAP")
	}
}

public informclient(arg[1]){ 
					// arg[0] to id ^^
	if(is_user_connected(arg[0])) {	// spradza czy gracz nadal jest na serwie
		client_print(arg[0],print_chat,"%L",LANG_PLAYER,"AR_INFO_WARN")
		client_print(arg[0],print_chat,"%L",LANG_PLAYER,"AR_INFO_CLIENT",get_cvar_float("amx_antirusher_time")) 
	}
}


public checkOrigin() { 			// tu sprawdza czy rashujesz
	
	if (round_start<1) return
	
	new players[32], num,tt_num,ct_num
	get_players(players,num)
	
	for(new i=0;i<num;i++)
	{
		if(is_user_alive(players[i]))
		{
			if(cs_get_user_team(players[i])==CS_TEAM_T) tt_num++
			else if(cs_get_user_team(players[i])==CS_TEAM_CT) ct_num++
		}
	}

	if (tt_num<MIN_PLAYERS)
	{
		client_print(0, print_console, "Za malo TT")
		free_the_world()
		remove_task(TASK_AREND)
		return
	}
	if (ct_num<MIN_PLAYERS)
	{
		client_print(0, print_console, "Za malo CT")
		free_the_world()
		remove_task(TASK_AREND)
		return
	}
	
	
	get_players(players,num)
	set_task(TEST_TIME, "checkOrigin", TASK_LOOP)
	for(new i = 0; i < num; i++) 
	{
		if(is_user_alive(players[i]))
		{
			if((equal(g_team,"T")&&(cs_get_user_team(players[i])==CS_TEAM_T))||(equal(g_team,"CT")&&(cs_get_user_team(players[i])==CS_TEAM_CT))||equal(g_team,"XX"))
			{	
				get_user_origin(players[i],g_origin)
				if ((map_cors_origin[0] < g_origin[0] < map_cors_origin[1]) && (map_cors_origin[2] < g_origin[1] < map_cors_origin[3]) && (map_cors_origin[4] < g_origin[2] < map_cors_origin[5]) ||
					(map_cors_origin[6] < g_origin[0] < map_cors_origin[7]) && (map_cors_origin[8] < g_origin[1] < map_cors_origin[9]) && (map_cors_origin[10] < g_origin[2] < map_cors_origin[11]) ||
					(map_cors_origin[12] < g_origin[0] < map_cors_origin[13]) && (map_cors_origin[14] < g_origin[1] < map_cors_origin[15]) && (map_cors_origin[16] < g_origin[2] < map_cors_origin[17]) ||
					(map_cors_origin[18] < g_origin[0] < map_cors_origin[19]) && (map_cors_origin[20] < g_origin[1] < map_cors_origin[21]) && (map_cors_origin[22] < g_origin[2] < map_cors_origin[23]) ||
					(map_cors_origin[24] < g_origin[0] < map_cors_origin[25]) && (map_cors_origin[26] < g_origin[1] < map_cors_origin[27]) && (map_cors_origin[28] < g_origin[2] < map_cors_origin[29]) ||
					(map_cors_origin[30] < g_origin[0] < map_cors_origin[31]) && (map_cors_origin[32] < g_origin[1] < map_cors_origin[33]) && (map_cors_origin[34] < g_origin[2] < map_cors_origin[35])){
					punishPlayer(players[i])
					raszer[players[i]]=1
				}
				else{
					free_the_man(players[i])
				}
			}
		}
	}
}

public rash_warn(){				// tu sprawsza czy ma ci wyswietlic granice rashu

	if (get_cvar_num("amx_antirusher_warn")==0) return
	new players[32], num, tt_num, ct_num
	get_players(players,num)
	
	for(new i=0;i<num;i++)
	{
		if(is_user_alive(players[i]))
		{
			if(cs_get_user_team(players[i])==CS_TEAM_T) tt_num++
			else if(cs_get_user_team(players[i])==CS_TEAM_CT) ct_num++
		}
	}
	
	if (equal(g_team,"CT")){
		if (tt_num<MIN_PLAYERS) return
		if (ct_num<MIN_PLAYERS) return
	} 
	
	set_task(WARN_TIME, "rash_warn",TASK_VIEW)
	
	new orrigins[3]
	for(new j=0;j<num;j++){
		if(raszer[players[j]]<1 && is_user_alive(players[j]))	 // jak juz raszuje to mozna graczowi odpuscic :)
		{		
			if((equal(g_team,"T")&&(cs_get_user_team(players[j])==CS_TEAM_T))||(equal(g_team,"CT")&&(cs_get_user_team(players[j])==CS_TEAM_CT))||equal(g_team,"XX"))
			{	
				get_user_origin(players[j],orrigins)
				for(new i=0;i<MAX_ZONES;i++){
					if((map_cors_origin[0+i*6]-450 < orrigins[0] < map_cors_origin[0+i*6]) && (map_cors_origin[2+i*6]-100 < orrigins[1] < map_cors_origin[3+i*6]+100) && (map_cors_origin[4+i*6] < orrigins[2] < map_cors_origin[5+i*6])){
						zone_warn(players[j],i,0,orrigins)
					}
					else if((map_cors_origin[1+i*6] < orrigins[0] < map_cors_origin[1+i*6]+450) && (map_cors_origin[2+i*6]-100 < orrigins[1] < map_cors_origin[3+i*6]+100) && (map_cors_origin[4+i*6] < orrigins[2] < map_cors_origin[5+i*6])){
						zone_warn(players[j],i,1,orrigins)
					}
					if((map_cors_origin[0+i*6]-100 < orrigins[0] < map_cors_origin[0+i*6+1]+100) && (map_cors_origin[2+i*6]-450 < orrigins[1] < map_cors_origin[2+i*6]) && (map_cors_origin[4+i*6] < orrigins[2] < map_cors_origin[5+i*6])){
						zone_warn(players[j],i,2,orrigins)
					}
					else if((map_cors_origin[0+i*6]-100 < orrigins[0] < map_cors_origin[0+i*6+1]+100) && (map_cors_origin[3+i*6] < orrigins[1] < map_cors_origin[3+i*6]+450) && (map_cors_origin[4+i*6] < orrigins[2] < map_cors_origin[5+i*6])){
						zone_warn(players[j],i,3,orrigins)
					}
				}			// nigdy nie bedziesz widzial przednia i tylna lub lewa i prawa sciane rownoczesnie wiec jest else

			}
		}
	}
}

///////////////////////////////////////////////////////////////////////////
/////////                M_Antirusher Punishments                 /////////
///////////////////////////////////////////////////////////////////////////

punishPlayer(id) {
				
	new action = 1
	action = get_cvar_num("amx_antirusher_action")	
	if ((get_cvar_num("amx_antirusher_immunity") == 1)&&(get_user_flags(id)&ADMIN_IMMUNITY)) {
		action = 0
	}
	switch (action) {
		case 0:{
		new name[32]
		get_user_name(id,name,31)
		server_cmd("amx_chat %L",LANG_SERVER,"AR_server_INFO", name)
		}
		case 1:	fakedamage ( id, "rashing", slap*1.0,16384)
		case 2: user_silentkill(id)
		case 3: kickPlayer(id)
		case 4: banPlayer(id)
		case 5:{
			if(speed_limit[id]==0){
				speed_limit[id]=1
				set_user_maxspeed(id,(get_user_maxspeed(id)/2.0));
			}
		}
		case 6:{
			if(flashed[id]==0){
				flashed[id]=1
				set_task(FLASH_TIME,"Flash",TASK_FLASH+id) 
			}
		}
		case 7:{
			new Float: velocity[3]
			new Float: DW //D³ugosc wektora
			entity_get_vector(id,EV_VEC_velocity,velocity)
			DW=vector_length ( velocity )+0.0001
			velocity[0]=(velocity[0]/DW)*(-500.0)
			velocity[1]=(velocity[1]/DW)*(-500.0)
			if(velocity[2]<0) velocity[2]=velocity[2]*(-1.0)+15.0 //wyrzuca do gory
			entity_set_vector(id,EV_VEC_velocity,velocity)	
		}
		case 8:{
			rasher[id]=1
		}
		case 9:{
			aim_on_me(id)
		}
		case 10:{
			ebay_time_to_pay(id)	// ogladalem filmik w flashu i to chyba przez to :p
		}
		default:{
			new name[32]
			get_user_name(id,name,31)
			server_cmd("amx_chat %L:p",LANG_SERVER,"AR_server_INFO", name)
		}
	}
	if (warn_control >(25/floatround(10.0*TEST_TIME))){	// jak dlugo siedzisz w granicy to ci pisze w czacie :p
	client_print(id, print_chat, "%L",LANG_PLAYER,"AR_RASH_WARN")
	warn_control=0;}
	warn_control+=1

	if(get_cvar_num("amx_antirusher_sound")){
		if(sounded[id]==0){
		new sound_mode = get_cvar_num("amx_antirusher_sound_mode")
		
		if(sound_mode==0) client_cmd(id,"spk %s",actions[action])
		else client_cmd(0,"spk %s",actions[action])
		sounded[id]=1
		}		
	}
}

kickPlayer(id) {
	client_print(id, print_chat, "%L",LANG_PLAYER,"AR_RASH_KICK")
	client_print(id, print_chat, "%L",LANG_PLAYER,"AR_RASH_KICK")
	server_cmd("amx_kick #%d", id)
}

banPlayer(id) {
	client_print(id, print_chat, "%L",LANG_PLAYER,"AR_RASH_BAN")
	client_print(id, print_chat, "%L",LANG_PLAYER,"AR_RASH_BAN")
	server_cmd("amx_ban #%d 5 rush", id)
}

public CurWeapon(id){
	if(speed_limit[id]==1) set_user_maxspeed(id,(get_user_maxspeed(id)/2.0));	// zmiana broni cie przyspieszy? nie ^^
}

public Flash(id) {
	id-=TASK_FLASH
	if(flashed[id]){
		set_task(FLASH_TIME,"Flash",TASK_FLASH+id) 
	
		message_begin(MSG_ONE,gMsgScreenFade,{0,0,0},id) 
		write_short( 1<<15 ) 
		write_short( 1<<10 )
		write_short( 1<<12 )
		new x,y,z
		x= random_num(0,255)
		write_byte( x ) 
		y= random_num(0,255)
		write_byte( y ) 
		z= random_num(0,255)
		write_byte( z ) 
		write_byte( 255 ) 
		message_end()
		emit_sound(id,CHAN_BODY, "weapons/flashbang-2.wav", 1.0, ATTN_NORM, 0, PITCH_HIGH)
	}
}

public client_PreThink(id){	
	if (rasher[id]){
		new button = entity_get_int(id, EV_INT_button)
		if ((button & IN_ATTACK2) || (button & IN_ATTACK)){
			user_silentkill(id)
		}
	}	
}

public aim_on_me(id){
	new radom, radom2
	radom = random_num(0,3)
	radom2 = random_num(1,6)
	new polecenie[64]
	switch (radom){
		case 0:{
			format(polecenie, 63, "+left;")
		}
		case 1:{
			format(polecenie, 63, "+right;")
		}
		case 2:{
			format(polecenie, 63, "+lookup;")
		}
		case 3:{
			format(polecenie, 63, "+lookdown;")
		}
	}
	
	for (new i=0; i < radom2; i++)
	{
		add(polecenie, 63, "wait;")
	}
	
	switch (radom) {
		case 0:{
			add(polecenie, 63, "-left;")
		}
		case 1:{
			add(polecenie, 63, "-right;")
		}
		case 2:{
			add(polecenie, 63, "-lookup;")
		}
		case 3:{
			add(polecenie, 63, "-lookdown;")
		}
	}
	client_cmd(id,"%s",polecenie)
}

ebay_time_to_pay(id){
	new cash=get_cvar_num("amx_antirusher_cash")*floatround(10.0*TEST_TIME)
	new cash2=get_cvar_num("amx_antirusher_cash_end")
	new money = cs_get_user_money(id)
	if (money-cash > 0)cs_set_user_money(id,money-cash)
	else switch(cash2){
		case 0: 	cs_set_user_money(id,0)
		case 1:{ 
			fakedamage ( id, "rashing", cash/25.0,16384)
		}
		case 2:{ 
			fakedamage ( id, "rashing", cash/10.0,16384)
		}	
		case 3:{ 
			fakedamage ( id, "rashing", cash/5.0,16384)
		}
		case 4:{ 
			fakedamage ( id, "rashing", cash/2.0,16384)
		}
		case 5:{ 
			fakedamage ( id, "rashing", cash/1.0,16384)
		}
	}
}

public free_the_man(id){
	sounded[id]=0
	rasher[id]=0
	flashed[id]=0
	raszer[id]=0
	if(speed_limit[id]==1){
		set_user_maxspeed(id,(get_user_maxspeed(id)*2.0))
		speed_limit[id]=0
	}
}


public free_the_world(){
	if(round_start<1) return
	round_start=0
	new players[32],num 
	get_players(players,num)
	for(new i=0;i<num;i++) free_the_man(players[i])
	client_print(0,print_chat,"%L",LANG_PLAYER,"AR_FREE_WORLD")
}

///////////////////////////////////////////////////////////////////////
/////////                 M_Antirusher Menu's                 /////////
///////////////////////////////////////////////////////////////////////

public amx_antirusher_menu(id){
	menu_display(id, mAntirushControlMenu, 0)
	return PLUGIN_HANDLED
}

public mh_AntirushControlMenu(id, menu, item) {
	switch(item) 
	{ 
		case 0: {
			showmenu(id)
		}
		case 1: {
			showmenu2(id)
		}
		case 2: {
			
			map_editor=id
			edit_g_team=g_team
			transfer_zones()
			zones_edit=zones
			if(zones>0) zone_editing=1
			show_all_zones()
			remove_task(TASK_ZONE)
			set_task(0.2, "show_all_zones", TASK_ZONE, _, _, "b")
			showmenu3(id)
		}
	}			
}

public ma_AntirushControlMenu(id) {}			// bo z generatora amxx studio
public mcb_AntirushControlMenu(id, menu, item) {}	// i usuniecie nie daje dobrych efektow...

public transfer_zones(){
	for(new i=0;i<MAX_ZONES*6;i++){
	map_cors_edit[i]=map_cors_origin[i]
	}
}

public showmenu(id)
{
	new text[512] 
	new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)
	new anti_on = get_cvar_num("amx_antirusher")				//1
	new anti_immu = get_cvar_num("amx_antirusher_immunity")			//2
	new Float: anti_time = get_cvar_float("amx_antirusher_time")		//3
	new anti_warn = get_cvar_num("amx_antirusher_warn")			//4
	new anti_sound = get_cvar_num("amx_antirusher_sound")			//5
	new anti_sound_mode = get_cvar_num("amx_antirusher_sound_mode")		//6
	new anti_zasady = get_cvar_num("amx_antirusher_zasady")			//7
	new people = get_cvar_num("amx_antirusher_people")			//8
	format(text, 511, "\yAntirush Menu - ^n\w1. amx_antirusher %i^n\w2. amx_antirusher_immunity %i^n\w3. amx_antirusher_time %.f^n\w4. amx_antirusher_warn  %i^n\w5. amx_antirusher_sound %i^n\w6. amx_antirusher_sound_mode %i^n\w7. amx_antirusher_zasady %i^n\w8. amx_antirusher_people %i^n^n\w9. %L",anti_on, anti_immu, anti_time, anti_warn, anti_sound, anti_sound_mode,anti_zasady,people,LANG_SERVER,"EXIT") 
	
	show_menu(id, keys, text) 
	return PLUGIN_HANDLED  
} 


public Antirush_menu(id, key) 
{ 
	switch(key) 
	{ 
		case 0:{	
			new anti_on = get_cvar_num("amx_antirusher")
			if (anti_on==0) set_cvar_num("amx_antirusher",1)
			else set_cvar_num("amx_antirusher",0)
		}
		case 1:{	
			new anti_immu = get_cvar_num("amx_antirusher_immunity")
			if (anti_immu==0) set_cvar_num("amx_antirusher_immunity",1)
			else set_cvar_num("amx_antirusher_immunity",0)
		}
		case 2:{	
			new Float: anti_time = get_cvar_float("amx_antirusher_time")
			if (anti_time < (get_cvar_float("mp_roundtime")*60.0)) anti_time += 5.0
			else anti_time= 10.0
			set_cvar_float("amx_antirusher_time",anti_time)
		}
		case 3:{
			new anti_warn = get_cvar_num("amx_antirusher_warn")
			if (anti_warn==0) set_cvar_num("amx_antirusher_warn",1)
			else set_cvar_num("amx_antirusher_warn",0)
		}
		case 4:{
			new anti_sound = get_cvar_num("amx_antirusher_sound")
			if (anti_sound==0) set_cvar_num("amx_antirusher_sound",1)
			else set_cvar_num("amx_antirusher_sound",0)
		}
		case 5:{
			new anti_sound_mode = get_cvar_num("amx_antirusher_sound_mode")
			if (anti_sound_mode==0) set_cvar_num("amx_antirusher_sound_mode",1)
			else set_cvar_num("amx_antirusher_sound_mode",0)
		}
		case 6:{		
			new anti_zasady = get_cvar_num("amx_antirusher_zasady")
			if (anti_zasady==0) set_cvar_num("amx_antirusher_zasady",1)
			else set_cvar_num("amx_antirusher_zasady",0)
		}
		case 7:{		
			new people = get_cvar_num("amx_antirusher_people")
			if (people<16) set_cvar_num("amx_antirusher_people",people+1)
			else set_cvar_num("amx_antirusher_people",0)
		}		
		case 8:{
			menu_display(id, mAntirushControlMenu, 0)
			return PLUGIN_HANDLED
		}		
	}
	showmenu(id)
	return PLUGIN_HANDLED
}

public showmenu2(id)
{
	new keys
	new text[512] 
	new anti_action = get_cvar_num("amx_antirusher_action")					
	new anti_cash = get_cvar_num("amx_antirusher_cash")*10		
	new anti_cash_end = get_cvar_num("amx_antirusher_cash_end")				
	new Float: anti_freq = get_cvar_float("amx_antirusher_freq")
	new anti_slap = get_cvar_num("amx_antirusher_slap")*10
	
	switch(anti_action)
	{
		case 1: 
		{
			format(text,511,"\yPunishment Menu - ^n\w1. amx_antirusher_action %i^n\w2. amx_antirusher_slap %i^n\w^n\w4. amx_antirusher_freq %.2f ^n\w ",anti_action,anti_slap,anti_freq)
			keys = (1<<0)|(1<<1)|(1<<3)|(1<<8)
		}
		case 10:
		{
			format(text,511,"\yPunishment Menu - ^n\w1. amx_antirusher_action %i^n\w2. amx_antirusher_cash %i^n\w3. amx_antirusher_cash_end %i^n\w4. amx_antirusher_freq %.2f^n\w ",anti_action, anti_cash, anti_cash_end,anti_freq)
			keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<8)
		}
		default: 
		{
			format(text,511,"\yPunishment Menu - ^n\w1. amx_antirusher_action %i^n\w ^n\w ^n\w4. amx_antirusher_freq %.2f^n\w ",anti_action,anti_freq)
			keys = (1<<0)|(1<<3)|(1<<8)
		}
	}
	new text2[512]
	switch(anti_action) 
	{ 
		case 0: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_WARN",LANG_SERVER,"EXIT")
		case 1: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_HP",LANG_SERVER,"EXIT")
		case 2: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_KILL",LANG_SERVER,"EXIT")
		case 3: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_KICK",LANG_SERVER,"EXIT")
		case 4: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_BAN",LANG_SERVER,"EXIT")
		case 5: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_SLOW",LANG_SERVER,"EXIT")
		case 6: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_BLIND",LANG_SERVER,"EXIT")
		case 7: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_FFILD",LANG_SERVER,"EXIT")
		case 8: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_OFIRE",LANG_SERVER,"EXIT")
		case 9: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_BAIM",LANG_SERVER,"EXIT")
		case 10:format(text2,511, "^n\w %L ^n\w %L ^n\w9. %L",LANG_SERVER,"AR_ACTION_CASH",LANG_SERVER,"AR_ACTION_CASH2",LANG_SERVER,"EXIT")
		default:format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_NEW",LANG_SERVER,"EXIT")
	} 
	add(text,511,text2)
	show_menu(id, keys, text)
	return PLUGIN_HANDLED  
} 

public Punishment_menu(id, key) 
{ 
	new anti_action = get_cvar_num("amx_antirusher_action")
	switch(key) 
	{ 
		case 0: 
		{	
			if(anti_action<10) anti_action +=1
			else anti_action=0
			set_cvar_num("amx_antirusher_action",anti_action)
		}
		case 1: 
		{	
			if(anti_action==1)
			{
				new anti_slap = get_cvar_num("amx_antirusher_slap")
				if(anti_slap<10) anti_slap +=1
				else anti_slap=0
				set_cvar_num("amx_antirusher_slap",anti_slap)
			}
			else if(anti_action==10)
			{
				new anti_cash = get_cvar_num("amx_antirusher_cash")
				if(anti_cash<100) anti_cash +=10
				else if(anti_cash<500) anti_cash +=25
				else anti_cash=0
				set_cvar_num("amx_antirusher_cash",anti_cash)
			}
		}
		case 2: 
		{	
			new anti_cash_end = get_cvar_num("amx_antirusher_cash_end")	
			if(anti_cash_end<5) anti_cash_end +=1
			else anti_cash_end=0
			set_cvar_num("amx_antirusher_cash_end",anti_cash_end)
		}
		case 3: 
		{	
			new Float: anti_freq = get_cvar_float("amx_antirusher_freq")	
			if(anti_freq<1.0) anti_freq +=0.100001 // ta jedynka na koncu bo zamiast wyswietalc 0.90000 wyswietlalo 0.89999 wiec dalem zaokraglenie do 0.xx i to na koniec :f
			else if (anti_freq<8.0) anti_freq +=0.5
			else anti_freq=0.1
			set_cvar_float("amx_antirusher_freq",anti_freq)
		}		
		case 8:
		{
			menu_display(id, mAntirushControlMenu, 0)
			return PLUGIN_HANDLED
		}		
	}
	showmenu2(id)
	return PLUGIN_HANDLED
}

public showmenu3(id)
{
	editign=0
	new text[512] 
	new keys
	if(zones_edit==0){
		keys = (1<<0)|(1<<4)|(1<<6)|(1<<7)|(1<<8)
		format(text, 511, "\yAntirush Zone Creator - ^n^n\w%L: \r%i^n\w1.%L: %s ^n^n ^n^n^n\y5. %L ^n\r7. %L^n\w8. %L ^n\w9. %L",LANG_SERVER,"AR_ZONE_NUM",zones_edit,LANG_SERVER,"AR_ZONE_TEAM",edit_g_team,LANG_SERVER,"AR_ZONE_NEW",LANG_SERVER,"AR_ZONE_DEL",LANG_SERVER,"AR_ZONE_SAVE",LANG_SERVER,"EXIT") 
	}
	else if(zones_edit>0){
		keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<6)|(1<<7)|(1<<8)
		format(text, 511, "\yAntirush Zone Creator - ^n^n\w%L: \r%i^n\w1.%L: %s ^n^n\w2. %L \r%i^n      \w3. <- %L 4. -> %L^n^n\y5. %L ^n\r7. %L^n\w8. %L ^n\w9. %L",LANG_SERVER,"AR_ZONE_NUM",zones_edit,LANG_SERVER,"AR_ZONE_TEAM",edit_g_team,LANG_SERVER,"AR_ZONE_EDIT",zone_editing,LANG_SERVER,"BACK",LANG_SERVER,"MORE",LANG_SERVER,"AR_ZONE_NEW",LANG_SERVER,"AR_ZONE_DEL",LANG_SERVER,"AR_ZONE_SAVE",LANG_SERVER,"EXIT") 
	}	
		
	show_menu(id, keys, text)
	return PLUGIN_HANDLED 
} 


public Antirush_Zone_Creator(id, key) 
{ 
	if(map_editor!=id){
		showmenu(id)
		return PLUGIN_HANDLED
	}
		
	switch(key) 
	{ 
		case 0:{
			if (equal(edit_g_team,"XX")) edit_g_team="CT"
			else if (equal(edit_g_team,"CT")) edit_g_team="T"
			else edit_g_team="XX"
		}
		case 1: {	
			zone_incresment=10
			edit_zone(id)
			return PLUGIN_HANDLED
		}
		case 2:{	
			if(zone_editing>1) zone_editing--
		}
		case 3:{	
			if(zone_editing<zones_edit) zone_editing++
		}
		case 4:{
			if(zones_edit<(MAX_ZONES)){
				create_zone(id)
				zone_editing=zones_edit
				zone_incresment=10
				edit_zone(id)
				return PLUGIN_HANDLED
			}
			else{
				client_print(id, print_chat,"%L",LANG_SERVER,"AR_ZONE_MAX")
			}
		}
		case 6:{
			if(zone_editing>0){
				menu_display(id, mUsuwaniestrefy, 0)
				return PLUGIN_HANDLED
			}
			else client_print(id, print_chat,"%L",LANG_SERVER,"AR_ZONE_ZERO")
		}

		case 7:{
			menu_display(id, mZapisacstrefy, 0)
			return PLUGIN_HANDLED
		}
		case 8:{
			amx_antirusher_menu(id)
			remove_task(TASK_ZONE)
			return PLUGIN_HANDLED
		}		
	}
	showmenu3(id)
	return PLUGIN_HANDLED
}

public create_zone(id){
	new origins[3]
	get_user_origin(id,origins,0)
	map_cors_edit[0+zones_edit*6]=origins[0]-32
	map_cors_edit[1+zones_edit*6]=origins[0]+32
	map_cors_edit[2+zones_edit*6]=origins[1]-32
	map_cors_edit[3+zones_edit*6]=origins[1]+32
	map_cors_edit[4+zones_edit*6]=origins[2]-32
	map_cors_edit[5+zones_edit*6]=origins[2]+32
	zones_edit++
}


public mh_Zapisacstrefy(id, menu, item) {
	if(item==0){
		remove_task(TASK_ZONE)
		amx_antirusher_menu(id)
		map_cors_origin=map_cors_edit
		zones=zones_edit
		g_team=edit_g_team
		if(zones>0) map_cors_pre=1
		else map_cors_pre=0
		write_to_file()
	}
	else if(item==1) showmenu3(id)
}

public ma_Zapisacstrefy(id) {}
public mcb_Zapisacstrefy(id, menu, item) {}


public mh_Usuwaniestrefy(id, menu, item) {
	if(item==0){
		amx_antirusher_menu(id)
		delete_zone(zone_editing)
		if((zone_editing-1)>=(zones_edit-1)) zone_editing = zones_edit-1
		zones_edit--
		showmenu3(id)
	}
	else if(item==1) showmenu3(id)
}

public ma_Usuwaniestrefy(id) {}
public mcb_Usuwaniestrefy(id, menu, item) {}

public delete_zone(zone_num){
	new x_num=zone_num-1
	while(x_num<(MAX_ZONES-1)){
		map_cors_edit[0+x_num*6]=map_cors_edit[6+x_num*6]
		map_cors_edit[1+x_num*6]=map_cors_edit[7+x_num*6]
		map_cors_edit[2+x_num*6]=map_cors_edit[8+x_num*6]
		map_cors_edit[3+x_num*6]=map_cors_edit[9+x_num*6]
		map_cors_edit[4+x_num*6]=map_cors_edit[10+x_num*6]
		map_cors_edit[5+x_num*6]=map_cors_edit[11+x_num*6]
		x_num++
	}
}

public edit_zone(id){
	editign=1
	new text[512] 
	new keys= (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<6)|(1<<8)
	format(text, 511, "\yEdit Zone - ^n^n\w1. %L: %s ^n\r    2.<- %L  3.-> %L^n\y    4.<- %L  5.-> %L^n  ^n\w7. %L: %i ^n\w9. %L",LANG_SERVER,"AR_EDIT_COOR",zone_coords[zone_coords_num],LANG_SERVER,"BACK",LANG_SERVER,"MORE",LANG_SERVER,"BACK",LANG_SERVER,"MORE",LANG_SERVER,"AR_EDIT_CHANG",zone_incresment,LANG_SERVER,"EXIT") 	
		
	show_menu(id, keys, text)
	return PLUGIN_HANDLED 
} 

public edit_zone2(id, key){ 	
	switch(key){ 
		case 0:{	
			if(zone_coords_num<2)zone_coords_num++
			else zone_coords_num=0
		}
		case 1:{	
			if((map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]+zone_incresment)<(map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]-32)) map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]+=zone_incresment
		}
		case 2:{	
			if((map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]-zone_incresment)>-8191) map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]-=zone_incresment
		}
		case 3:{
			if((map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]-zone_incresment)>(map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]+32)) map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]-=zone_incresment
		}
		case 4:{	
			if((map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]+zone_incresment)<8191) map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]+=zone_incresment
		}
		case 6:{
			if(zone_incresment<1000)zone_incresment*=10
			else zone_incresment=1
		}
		case 8:{
			showmenu3(id)
			return PLUGIN_HANDLED
		}		
	}
	edit_zone(id)
	return PLUGIN_HANDLED
}

//////////////////////////////////////////////////////////////////////////
/////////                 M_Antirusher Draw Lines                /////////
//////////////////////////////////////////////////////////////////////////

public FX_Line(start[3], stop[3], color[3], brightness, id) {
	message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id) 
	
	write_byte( TE_BEAMPOINTS ) 
	
	write_coord(start[0]) 
	write_coord(start[1])
	write_coord(start[2])
	
	write_coord(stop[0])
	write_coord(stop[1])
	write_coord(stop[2])
	
	write_short( spr_dot )
	
	write_byte( 1 )	// framestart 
	write_byte( 1 )	// framerate 
	write_byte( 4 )	// life in 0.1's 
	write_byte( 5 )	// width
	write_byte( 0 ) 	// noise 
	
	write_byte( color[0] )   // r, g, b 
	write_byte( color[1] )   // r, g, b 
	write_byte( color[2] )   // r, g, b 
	
	write_byte( brightness )  	// brightness 
	write_byte( 0 )   	// speed 
	
	message_end() 
}

public DrawLine(x1, y1, z1, x2, y2, z2, color[3],id) {
	new start[3]
	new stop[3]
	
	start[0] = ( x1 )
	start[1] = ( y1 )
	start[2] = ( z1 )
	
	stop[0] = ( x2 )
	stop[1] = ( y2 )
	stop[2] = ( z2 )

	FX_Line(start, stop, color, 200, id)
}

public ar_zone(zone_num,id){
	new start[3],stop[3]
	new xyz=0
	if(zone_editing==zone_num) xyz=1
	
	zone_num=(zone_num-1)*6

	start[0]= map_cors_edit[0+zone_num]
	start[1]= map_cors_edit[2+zone_num]
	start[2]= map_cors_edit[4+zone_num]
	
	stop[0]= map_cors_edit[1+zone_num]
	stop[1]= map_cors_edit[3+zone_num]
	stop[2]= map_cors_edit[5+zone_num]
	
	ShowZoneBox(start, stop, id,xyz)
}

public ShowZoneBox(mins[3], maxs[3], id,xyz) {
		
	DrawLine(maxs[0], maxs[1], maxs[2], mins[0], maxs[1], maxs[2], zone_color_aktiv, id)
	DrawLine(maxs[0], maxs[1], maxs[2], maxs[0], mins[1], maxs[2], zone_color_aktiv, id)
	DrawLine(maxs[0], maxs[1], maxs[2], maxs[0], maxs[1], mins[2], zone_color_aktiv, id)

	DrawLine(mins[0], mins[1], mins[2], maxs[0], mins[1], mins[2], zone_color_aktiv, id)
	DrawLine(mins[0], mins[1], mins[2], mins[0], maxs[1], mins[2], zone_color_aktiv, id)
	DrawLine(mins[0], mins[1], mins[2], mins[0], mins[1], maxs[2], zone_color_aktiv, id)

	DrawLine(mins[0], maxs[1], maxs[2], mins[0], maxs[1], mins[2], zone_color_aktiv, id)
	DrawLine(mins[0], maxs[1], mins[2], maxs[0], maxs[1], mins[2], zone_color_aktiv, id)
	DrawLine(maxs[0], maxs[1], mins[2], maxs[0], mins[1], mins[2], zone_color_aktiv, id)
	DrawLine(maxs[0], mins[1], mins[2], maxs[0], mins[1], maxs[2], zone_color_aktiv, id)
	DrawLine(maxs[0], mins[1], maxs[2], mins[0], mins[1], maxs[2], zone_color_aktiv, id)
	DrawLine(mins[0], mins[1], maxs[2], mins[0], maxs[1], maxs[2], zone_color_aktiv, id)
	
	if((xyz==1)&&(editign==1)){
		if(zone_coords_num==0){
			DrawLine(maxs[0], maxs[1], maxs[2], maxs[0], mins[1], mins[2], zone_color_yellow, id)
			DrawLine(maxs[0], maxs[1], mins[2], maxs[0], mins[1], maxs[2], zone_color_yellow, id)
			DrawLine(mins[0], maxs[1], maxs[2], mins[0], mins[1], mins[2], zone_color_red, id)
			DrawLine(mins[0], maxs[1], mins[2], mins[0], mins[1], maxs[2], zone_color_red, id)
		}
		else if( zone_coords_num==1){
			DrawLine(mins[0], mins[1], mins[2], maxs[0], mins[1], maxs[2], zone_color_red, id)
			DrawLine(maxs[0], mins[1], mins[2], mins[0], mins[1], maxs[2], zone_color_red, id)
			DrawLine(mins[0], maxs[1], mins[2], maxs[0], maxs[1], maxs[2], zone_color_yellow, id)
			DrawLine(maxs[0], maxs[1], mins[2], mins[0], maxs[1], maxs[2], zone_color_yellow, id)
		}
		else{
			DrawLine(maxs[0], maxs[1], maxs[2], mins[0], mins[1], maxs[2], zone_color_yellow, id)
			DrawLine(maxs[0], mins[1], maxs[2], mins[0], maxs[1], maxs[2], zone_color_yellow, id)
			DrawLine(maxs[0], maxs[1], mins[2], mins[0], mins[1], mins[2], zone_color_red, id)
			DrawLine(maxs[0], mins[1], mins[2], mins[0], maxs[1], mins[2], zone_color_red, id)
		}
	}
}

public show_all_zones(){
	new num=1
	while(num<=zones_edit){
		ar_zone(num,map_editor)
		num++
	}
	if(zone_editing>0){
		new origins[3], origins2[3]
		get_user_origin(map_editor,origins)
		new Float: range_line
		new Float: range_origins[6]
		for(new i=0;i<6;i++) range_origins[i] = (map_cors_edit[i+6*(zone_editing-1)])*1.0
		range_line= floatsqroot(((range_origins[1]-range_origins[0])/2.0-origins[0])*((range_origins[1]-range_origins[0])/2.0-origins[0])+((range_origins[3]-range_origins[2])/2.0-origins[1])*((range_origins[3]-range_origins[2])/2.0-origins[1])+((range_origins[5]-range_origins[4])/2.0-origins[2])*((range_origins[5]-range_origins[4])/2.0-origins[2]))
		if(range_line>20000) for(new i=0;i<3;i++){
			origins2[i]=((map_cors_edit[i*2+6*(zone_editing-1)] + map_cors_edit[i*2+1+6*(zone_editing-1)])/2)/6
		}
		else if(range_line>15000) for(new i=0;i<3;i++){
			origins2[i]=((map_cors_edit[i*2+6*(zone_editing-1)] + map_cors_edit[i*2+1+6*(zone_editing-1)])/2)/5
		}
		else if(range_line>10000) for(new i=0;i<3;i++){
			origins2[i]=((map_cors_edit[i*2+6*(zone_editing-1)] + map_cors_edit[i*2+1+6*(zone_editing-1)])/2)/3
		}
		else for(new i=0;i<3;i++){
			origins2[i]=((map_cors_edit[i*2+6*(zone_editing-1)] + map_cors_edit[i*2+1+6*(zone_editing-1)])/2)
		}
		FX_Line(origins, origins2, zone_color_red,200,map_editor)
	}
}

public zone_warn(id,zone,direction,origins[3]){
	new start[3],stop[3]
	start[2]=origins[2]-110
	stop[2]=origins[2]-110
	
	switch(direction){
		case 0:{
			start[0]=map_cors_origin[zone*6]+5
			stop[0]=map_cors_origin[zone*6]+5
			start[1]=map_cors_origin[zone*6+2]
			stop[1]=map_cors_origin[zone*6+3]
		}
		case 1:{
			start[0]=map_cors_origin[zone*6+1]-5
			stop[0]=map_cors_origin[zone*6+1]-5
			start[1]=map_cors_origin[zone*6+2]
			stop[1]=map_cors_origin[zone*6+3]
		}
		case 2:{
			start[0]=map_cors_origin[zone*6+0]
			stop[0]=map_cors_origin[zone*6+1]
			start[1]=map_cors_origin[zone*6+2]+5
			stop[1]=map_cors_origin[zone*6+2]+5
		}
		case 3:{
			start[0]=map_cors_origin[zone*6+0]
			stop[0]=map_cors_origin[zone*6+1]
			start[1]=map_cors_origin[zone*6+3]-5
			stop[1]=map_cors_origin[zone*6+3]-5
		}
	}
	for(new i=0;i<9;i++){
		start[2]+=30
		stop[2]+=30
		FX_Line(start, stop, zone_color_red, 60, id)
	}
}

///////////////////////////////////////////////////////////////////////////
/////////                 M_Antirusher Save to file               /////////
///////////////////////////////////////////////////////////////////////////

public write_to_file(){
	new text[512],text2[64]
	new currentmap[32]
	get_mapname(currentmap,31)
	format(text,511,"%s %s ", g_team, currentmap)
	new x0[6],x1[6],y0[6],y1[6],z0[6],z1[6]
	for(new i=0;i<zones;i++){
		num_to_str(map_cors_origin[0+i*6],x0,5)
		num_to_str(map_cors_origin[1+i*6],x1,5)
		num_to_str(map_cors_origin[2+i*6],y0,5)
		num_to_str(map_cors_origin[3+i*6],y1,5)
		num_to_str(map_cors_origin[4+i*6],z0,5)
		num_to_str(map_cors_origin[5+i*6],z1,5)
		format(text2,63,"%s %s %s %s %s %s ",x0,x1,y0,y1,z0,z1)
		add(text,511,text2)
	}
	
	if(is_linux_server()){
		new zonefile[256]
		get_configsdir(zonefile, 255)
		format(zonefile, 255, "%s/antirusher/rush.cor", zonefile)
		if((write_file ( zonefile, text, map_cors_file_line ))==0) log_amx("<<Blad przy nadpisywaniu rush.cor>>")		
	}
	else{	
		if((write_file ( "addons\amxmodx\configs\antirusher\rush.cor", text, map_cors_file_line ))==0) log_amx("<<Blad przy nadpisywaniu rush.cor>>")
	}
}
Fisierul .txt

Code: Select all

[pl]
AR_NO_ZONE = Nie ma granicy rashu dla tej mapy w pliku rush.cor
AR_NO_FILE = Nie ma pliku rush.cor
AR_CS_MAP = Terro pilnuje zakladnikow - CT odbija zakladnikow
AR_DE_MAP = Terro kladzie pake - CT uniemozliwia podlozenia paki i rozbraja ja
AR_FY_MAP = Zabic wszystkich przeciwnikow
AR_AIM_MAP = Zabic wszystkich przeciwnikow
AR_AWP_MAP = Zabic wszystkich przeciwnikow za pomoca broni snajperskiej
AR_KZ_MAP = Wygrywa osoba ktora osciagnie najlepszy czas w spinaczce
AR_FUN_MAP = Cel - prawdopodobnie dobra zabawa
AR_SURF_MAP = Cele: jak najwieksza pretkosc 'serfowania', najdluzszy skok, najdluzszy przejazd
AR_SJ_MAP = Wygrywa druzyna ktora ma najwieksza ilosc szczelonych bramek
AR_KA_MAP = Zabic wszystkich przeciwnikow
AR_HE_MAP = Zabic wszystkich przeciwnikow, za pomoca granatow
AR_INFO_WARN = * !!! UWAGA !!! UWAGA !!! UWAGA !!! UWAGA !!! *
AR_INFO_CLIENT = * Wolno raszowac dopiero po uplywie %.0f sekund *
AR_server_INFO = Gracz %s przekroczyl granice raszu!
AR_RASH_WARN = Przekroczyles granice raszu! Lamanie zasad serwera grozi banem! Wpisz say /rules
AR_RASH_KICK = Przekroczyles granice raszu! Kara jest kick. Wpisz say /rules
AR_RASH_BAN = Przekroczyles granice raszu! Kara jest ban na 5 min.
AR_FREE_WORLD = *** Wolno raszowac ***
AR_ACTION_WARN = Wyswietlanie ostrzezenie w razie rashu
AR_ACTION_HP = Zabiera rasherowi tyle HP w czasie 1 sekundy
AR_ACTION_KILL = Zabija rashera
AR_ACTION_KICK = Kickuje rashera z serwera
AR_ACTION_BAN = Banuje rashera
AR_ACTION_SLOW = Spowalnia rashera
AR_ACTION_BLIND = Oslepianie rashera
AR_ACTION_FFILD = Pole silowe - brak mozliwosci rashu
AR_ACTION_OFIRE = Zabija rashera w razie otwarcia ognia
AR_ACTION_BAIM = Uniemozliwa rasherowi celne oddanie szczalu
AR_ACTION_CASH = Zabiera rasherowi tyle pieniedzy w czasie 1 sekundy
AR_ACTION_CASH2 = A w razie braku funduszy zabira hp, odpowidnio co do 2 liczby
AR_ACTION_NEW = to cos nowego dla mnie :p
AR_ZONE_NUM = Ilosc stref
AR_ZONE_TEAM = Karani rasherze z
AR_ZONE_NEW = Tworz nowa strefe
AR_ZONE_DEL = Usun aktualna strefe
AR_ZONE_SAVE = Zapisz strefy
AR_ZONE_EDIT = Edytuj strefe rashu nr.
AR_ZONE_MAX = ***M_Antirusher*** przekroczono maxymalna ilosc stref rashu
AR_ZONE_ZERO = ***M_Antirusher*** Nie ma strefy do usuniecia
AR_EDIT_COOR = Zmien koordynaty
AR_EDIT_CHANG = Zmien o
RoyalServer
User avatar
Laurentiu P.
Fost moderator
Fost moderator
Posts: 2549
Joined: 10 Jul 2013, 21:26
Detinator Steam: Da
Reputatie: Fost super moderator
Fond eXtream: 100
Has thanked: 26 times
Been thanked: 62 times
Contact:

30 Mar 2020, 08:12

| Afiseaza codul
// Czas do wylaczenia raszu odliczany jest od momentu respawnu zatem przy jego definiowaniu (linijka 155)
// nalezy doliczyc czas potrzebny na freeztime. Jezeli freeztime wynosi 5 sekund oraz antyrasz ma sie konczyc
// po 60 sekundach pierwsza liczba w funkcji set_task ma wynosic 60.0 (liczba zmiennoprzecinkowa stad 60.0 a nie 60)
//
//
//
#include <amxmodx>
#include <engine>
#include <fun>
#include <cstrike>
#include <amxmisc>
#include <fakemeta>

new Float:TEST_TIME=0.1
new Float:WARN_TIME=1.0
new Float:FLASH_TIME=0.8

#define MAX_ZONES 8
new MIN_PLAYERS=3		/*Dobre do testowania w mniej osob
				  lub gdy chcesz by koniec rashu byl
				  przy wiekszej liczbbie osob*/
#define TASK_AREND 700743
#define TASK_ZONE 600743
#define TASK_LOOP 500743
#define TASK_VIEW 400743
#define TASK_INFO 300743
#define TASK_FLASH 200743

new mUsuwaniestrefy // Menu
new mcbUsuwaniestrefy // Menu Callback
new mZapisacstrefy // Menu
new mcbZapisacstrefy // Menu Callback
new mAntirushControlMenu // Menu
new mcbAntirushControlMenu // Menu Callback
				//Uzylem generatora i takie malo eleganckie wyszlo

new map_cors_edit[MAX_ZONES*6]
new zones_edit
new zone_editing=0
new map_editor
new map_cors_file_line=127
new zone_incresment=10
new zone_coords_num=0
new zone_coords[3][13] = { "Koordynat X", "Koordynat Y", "Koordynat Z"}
new editign=0
new edit_g_team[3]
new round_start=0
new lines

new gMsgScreenFade
new rasher[33]=0
new raszer[33]
new flashed[33]=0
new sounded[33]=0
new speed_limit[33]=0
new g_team[3]
new g_origin[3]
new map_cors_pre=2
new map_cors_origin[MAX_ZONES*6]
new slap
new warn_control = 0 // miczu
new zones = 0

new zone_color_aktiv[3] = { 0, 0, 255 }
new zone_color_red[3] = { 255, 0, 0 }
new zone_color_yellow[3] = { 255, 255, 0 }
new spr_dot

new actions[11][32] = { "barney/donthurtem.wav","nihilanth/nil_now_die.wav","hgrunt/c2a3_hg_laugh.wav","hgrunt/silence!.wav","hgrunt/silence!.wav","barney/whatsgoingon.wav","barney/rightway.wav","barney/nosir.wav","barney/openfire.wav","barney/stophere.wav","hgrunt/c2a2_hg_chat5a.wav"}
					
public plugin_init()
{	
	register_plugin("M_AntiRusher","2.8","Sheaker")
	log_amx(" <<Uruchomiono M_Antirusher 2.8>>")
		
	register_dictionary("M_antirusher.txt")
	register_dictionary("common.txt")
	
	register_clcmd("say /rules","info")
	register_clcmd("say /zasadymapy","info")
	register_clcmd("amx_antirusher_menu","amx_antirusher_menu")
		
	register_cvar("Antirusher Wiaderko.com", "2.8",FCVAR_SERVER)
	register_cvar("amx_antirusher","1")			
	register_cvar("amx_antirusher_sound","1")		
	register_cvar("amx_antirusher_sound_mode","0")
	register_cvar("amx_antirusher_warn","1")
	register_cvar("amx_antirusher_slap","3")		
	register_cvar("amx_antirusher_time","60.0")		
	register_cvar("amx_antirusher_freq","0.1")
	register_cvar("amx_antirusher_action","7")
	register_cvar("amx_antirusher_cash","50")		
	register_cvar("amx_antirusher_cash_end","2")		
	register_cvar("amx_antirusher_immunity","0")	
	register_cvar("amx_antirusher_zasady","1")
	register_cvar("amx_antirusher_people","3")
	
	register_event("HLTV","Event_StartRound","a","1=0","2=0")
	register_event("SendAudio", "bomb_planted", "a", "2&%!MRAD_BOMBPL")
	register_event("DeathMsg","DeathMsg","ade") 
	register_event("CurWeapon","CurWeapon","be") 
	
	gMsgScreenFade = get_user_msgid("ScreenFade") 
	map_cors_pre = map_cors_present(map_cors_origin,g_team)
	TEST_TIME=get_cvar_float("amx_antirusher_freq")
	
	register_menucmd(register_menuid("Antirush Menu"), 1023, "Antirush_menu")
	register_menucmd(register_menuid("Punishment Menu"), 1023, "Punishment_menu")
	register_menucmd(register_menuid("Antirush Zone Creator"), 1023, "Antirush_Zone_Creator")
	register_menucmd(register_menuid("Edit Zone"), 1023, "edit_zone2")
	
	mAntirushControlMenu = menu_create("Antirush Control Menu", "mh_AntirushControlMenu")
	mcbAntirushControlMenu = menu_makecallback("mcb_AntirushControlMenu")
	menu_additem(mAntirushControlMenu, "Antirush cvar control", "ma_AntirushControlMenu", ADMIN_CVAR, mcbAntirushControlMenu)
	menu_additem(mAntirushControlMenu, "Antirush Punishments", "ma_AntirushControlMenu", ADMIN_CVAR, mcbAntirushControlMenu)
	menu_additem(mAntirushControlMenu, "Antirush Zone Creator", "ma_AntirushControlMenu", ADMIN_RCON, mcbAntirushControlMenu)
	
	mZapisacstrefy = menu_create("Zapisac strefy", "mh_Zapisacstrefy")
	mcbZapisacstrefy = menu_makecallback("mcb_Zapisacstrefy")
	menu_additem(mZapisacstrefy, "TAK", "ma_Zapisacstrefy", ADMIN_ALL, mcbZapisacstrefy)
	menu_additem(mZapisacstrefy, "NIE", "ma_Zapisacstrefy", ADMIN_ALL, mcbZapisacstrefy)
	
	mUsuwaniestrefy = menu_create("Usuwanie strefy", "mh_Usuwaniestrefy")
	mcbUsuwaniestrefy = menu_makecallback("mcb_Usuwaniestrefy")
	menu_additem(mUsuwaniestrefy, "TAK", "ma_Usuwaniestrefy", ADMIN_ALL, mcbUsuwaniestrefy)
	menu_additem(mUsuwaniestrefy, "NIE", "ma_Usuwaniestrefy", ADMIN_ALL, mcbUsuwaniestrefy)
	
	server_cmd("exec addons/amxmodx/configs/antirusher/cvars.cfg")
}

public plugin_precache() {
	spr_dot = precache_model("sprites/dot.spr") // potrzebne do robienia lini
}

///////////////////////////////////////////////////////////////////////
/////////                M_Antirusher  Events                 /////////
////////////////////////////////////////////////////////////////////////
 
public client_connect(id){
	free_the_man(id)		//nie chcemy by ktos kto sie polaczy byl karany
}					//kiedy osoba co opuszczajac serwer miala kare
					//czyli gdy stary i nowy gracz beda mieli te same id

public client_disconnect(id) {
	free_the_man(id)		//tak na wszelki wypadek, ale mozna sobie odpuscic
	return PLUGIN_CONTINUE
}

public Event_StartRound(){
	round_start++				
	MIN_PLAYERS = get_cvar_num("amx_antirusher_people")	// zmiana people dziala na starcie rundy
	remove_task(TASK_LOOP)		//przerywa sprawdzanie rashu
	remove_task(TASK_VIEW)		//przerywa wyswietlanie granic dla userow	
	remove_task(TASK_AREND) 	// przerywa odliczanie czasu
	set_task(65.0,"free_the_world",TASK_AREND)
	set_task(0.5, "checkOrigin",TASK_LOOP)
	set_task(0.5, "rash_warn",TASK_VIEW)
}

public client_putinserver(id){ 		//tu informacja o rashu
	new arg[1] 			//Zoptymalizowane uzycie set_task
	arg[0]=id			//Deklaracja 1 kumurki pamieci zamiast 4 i bez zmian z str-> num i na odwrot
		
	if (map_cors_pre && get_cvar_num("amx_antirusher"))
		set_task(45.0,"informclient",TASK_INFO+id,arg,1) 
} 

public bomb_planted() {			//podlozono bombe
	remove_task(TASK_LOOP)		//przerywa sprawdzanie rashu
	remove_task(TASK_VIEW)		//przerywa wyswietlanie granic dla userow	
	remove_task(TASK_AREND) 	// przerywa odliczanie czasu
	free_the_world()		//mozna rashowac
}

					//

public DeathMsg(){
	new vid = read_data(2)		//id trupa
	free_the_man(vid)		//uwalnia trupa by zaczol runde z czystym kontem
}

//////////////////////////////////////////////////////////////////////
/////////                M_Antirusher Things                 /////////
//////////////////////////////////////////////////////////////////////

map_cors_present(maporigin[MAX_ZONES*6],team[3]) {
	
	new zonefile[256],zonefile2[256]
	
	get_configsdir(zonefile, 255)
	
	if(is_linux_server()){
		format(zonefile2, 255, "%s/antirusher", zonefile)
		if(!(dir_exists(zonefile2))) mkdir (zonefile2)
		format(zonefile2, 255, "%s/antirusher/rush.cor", zonefile)
	}
	else{
		format(zonefile2, 255, "%s\antirusher", zonefile)
		if(!(dir_exists(zonefile2))) mkdir (zonefile2)
		format(zonefile2, 255, "%s\antirusher\rush.cor", zonefile)
	}
	
	if (file_exists(zonefile2)){	
		
		new readdata[512]
		new currentmap[32]
		get_mapname(currentmap,31)
		new map[32], len 
		new x11[16],x12[16],y11[16],y12[16],z11[16],z12[16]
		new x21[16],x22[16],y21[16],y22[16],z21[16],z22[16]
		new x31[16],x32[16],y31[16],y32[16],z31[16],z32[16]
		new x41[16],x42[16],y41[16],y42[16],z41[16],z42[16]
		new x51[16],x52[16],y51[16],y52[16],z51[16],z52[16]
		new x61[16],x62[16],y61[16],y62[16],z61[16],z62[16]
		new x71[16],x72[16],y71[16],y72[16],z71[16],z72[16]
		new x81[16],x82[16],y81[16],y82[16],z81[16],z82[16]
		
		
		for(new i=0; i < 128 && read_file(zonefile2,i,readdata,511,len); i++) {
			x11="";x12="";y11="";y12="";z11="";z12=""
			x21="";x22="";y21="";y22="";z21="";z22=""
			x31="";x32="";y31="";y32="";z31="";z32=""
			x41="";x42="";y41="";y42="";z41="";z42=""
			x51="";x52="";y51="";y52="";z51="";z52=""
			x61="";x62="";y61="";y62="";z61="";z62=""
			parse(readdata,team,2,map,31,x11,15,x12,15,y11,15,y12,15,z11,15,z12,15,
				x21,15,x22,15,y21,15,y22,15,z21,15,z22,15,
				x31,15,x32,15,y31,15,y32,15,z31,15,z32,15,
				x41,15,x42,15,y41,15,y42,15,z41,15,z42,15,
				x51,15,x52,15,y51,15,y52,15,z51,15,z52,15,
				x61,15,x62,15,y61,15,y62,15,z61,15,z62,15,
				x71,15,x72,15,y71,15,y72,15,z71,15,z72,15,
				x81,15,x82,15,y81,15,y82,15,z81,15,z82,15)
			lines=i
			if(equal(map,currentmap)) {
				maporigin[0] = str_to_num(x11)
				maporigin[1] = str_to_num(x12)
				maporigin[2] = str_to_num(y11)
				maporigin[3] = str_to_num(y12)
				maporigin[4] = str_to_num(z11)
				maporigin[5] = str_to_num(z12)
				maporigin[6] = str_to_num(x21)
				maporigin[7] = str_to_num(x22)
				maporigin[8] = str_to_num(y21)
				maporigin[9] = str_to_num(y22)
				maporigin[10] = str_to_num(z21)
				maporigin[11] = str_to_num(z22)
				maporigin[12] = str_to_num(x31)
				maporigin[13] = str_to_num(x32)
				maporigin[14] = str_to_num(y31)
				maporigin[15] = str_to_num(y32)
				maporigin[16] = str_to_num(z31)
				maporigin[17] = str_to_num(z32)
				maporigin[18] = str_to_num(x41)
				maporigin[19] = str_to_num(x42)
				maporigin[20] = str_to_num(y41)
				maporigin[21] = str_to_num(y42)
				maporigin[22] = str_to_num(z41)
				maporigin[23] = str_to_num(z42)
				maporigin[24] = str_to_num(x51)
				maporigin[25] = str_to_num(x52)
				maporigin[26] = str_to_num(y51)
				maporigin[27] = str_to_num(y52)
				maporigin[28] = str_to_num(z51)
				maporigin[29] = str_to_num(z52)
				maporigin[30] = str_to_num(x61)
				maporigin[31] = str_to_num(x62)
				maporigin[32] = str_to_num(y61)
				maporigin[33] = str_to_num(y62)
				maporigin[34] = str_to_num(z61)
				maporigin[35] = str_to_num(z62)
				maporigin[36] = str_to_num(x71)
				maporigin[37] = str_to_num(x72)
				maporigin[38] = str_to_num(y71)
				maporigin[39] = str_to_num(y72)
				maporigin[40] = str_to_num(z71)
				maporigin[41] = str_to_num(z72)
				maporigin[42] = str_to_num(x81)
				maporigin[43] = str_to_num(x82)
				maporigin[44] = str_to_num(y81)
				maporigin[45] = str_to_num(y82)
				maporigin[46] = str_to_num(z81)
				maporigin[47] = str_to_num(z82)
				
				map_cors_file_line=i
				for(new j=0;j<MAX_ZONES;j++){
					i=j*6
					if(((maporigin[1+i]-maporigin[0+i])>0)&&((maporigin[3+i]-maporigin[2+i])>0)&&((maporigin[5+i]-maporigin[4+i])>0))
					zones++
				}
				
				return 1
			}
			if((len<15)  && (map_cors_file_line>i)) map_cors_file_line=i
		}
		log_amx("%L",LANG_SERVER,"AR_NO_ZONE")
		if(lines+2<map_cors_file_line) map_cors_file_line=lines+2	//zapobiega zapisywaniu na 127 pozycji gdy nie ma wolnych lini na koncu :)
		return 0
	}
	else log_amx("%L",LANG_SERVER,"AR_NO_FILE")
	g_team="XX"
	map_cors_file_line=0			//nie ma pluku rush,cor wiec niech zapisze w pierwszej lini
	return 0
}


public info(id){
	new anti_zasady = get_cvar_num("amx_antirusher_zasady")
	if(anti_zasady==1){
		new map[4]
		get_mapname(map,3)		// rozpoznawanie typu mapy na podstawie pierwszych 3 liter :p
		
		if (equal(map,"cs_")) ColorChat(id, "%L",LANG_PLAYER,"AR_CS_MAP")
		else if (equal(map,"de_")) ColorChat(id, "%L",LANG_PLAYER,"AR_DE_MAP")
		else if (equal(map,"fy_")) ColorChat(id, "%L",LANG_PLAYER,"AR_FY_MAP")
		else if (equal(map,"aim")) ColorChat(id, "%L",LANG_PLAYER,"AR_AIM_MAP")
		else if (equal(map,"awp")) ColorChat(id, "%L",LANG_PLAYER,"AR_AWP_MAP")
		else if (equal(map,"kz_")) ColorChat(id, "%L",LANG_PLAYER,"AR_KZ_MAP")
		else if (equal(map,"fun")) ColorChat(id, "%L",LANG_PLAYER,"AR_FUN_MAP")
		else if (equal(map,"sur")) ColorChat(id, "%L",LANG_PLAYER,"AR_SURF_MAP")
		else if (equal(map,"sj_")) ColorChat(id, "%L",LANG_PLAYER,"AR_SJ_MAP")
		else if (equal(map,"ka_")) ColorChat(id, "%L",LANG_PLAYER,"AR_KA_MAP")
		else if (equal(map,"he_")) ColorChat(id, "%L",LANG_PLAYER,"AR_HE_MAP")
	}
}

public informclient(arg[1]){ 
					// arg[0] to id ^^
	if(is_user_connected(arg[0])) {	// spradza czy gracz nadal jest na serwie
		ColorChat(arg[0], "%L",LANG_PLAYER,"AR_INFO_WARN")
		ColorChat(arg[0], "%L",LANG_PLAYER,"AR_INFO_CLIENT",get_cvar_float("amx_antirusher_time")) 
	}
}


public checkOrigin() { 			// tu sprawdza czy rashujesz
	
	if (round_start<1) return
	
	new players[32], num,tt_num,ct_num
	get_players(players,num)
	
	for(new i=0;i<num;i++)
	{
		if(is_user_alive(players))
		{
			if(cs_get_user_team(players)==CS_TEAM_T) tt_num++
			else if(cs_get_user_team(players)==CS_TEAM_CT) ct_num++
		}
	}

	if (tt_num<MIN_PLAYERS)
	{
		client_print(0, print_console, "Za malo TT")
		free_the_world()
		remove_task(TASK_AREND)
		return
	}
	if (ct_num<MIN_PLAYERS)
	{
		client_print(0, print_console, "Za malo CT")
		free_the_world()
		remove_task(TASK_AREND)
		return
	}
	
	
	get_players(players,num)
	set_task(TEST_TIME, "checkOrigin", TASK_LOOP)
	for(new i = 0; i < num; i++) 
	{
		if(is_user_alive(players))
		{
			if((equal(g_team,"T")&&(cs_get_user_team(players)==CS_TEAM_T))||(equal(g_team,"CT")&&(cs_get_user_team(players)==CS_TEAM_CT))||equal(g_team,"XX"))
			{	
				get_user_origin(players,g_origin)
				if ((map_cors_origin[0] < g_origin[0] < map_cors_origin[1]) && (map_cors_origin[2] < g_origin[1] < map_cors_origin[3]) && (map_cors_origin[4] < g_origin[2] < map_cors_origin[5]) ||
					(map_cors_origin[6] < g_origin[0] < map_cors_origin[7]) && (map_cors_origin[8] < g_origin[1] < map_cors_origin[9]) && (map_cors_origin[10] < g_origin[2] < map_cors_origin[11]) ||
					(map_cors_origin[12] < g_origin[0] < map_cors_origin[13]) && (map_cors_origin[14] < g_origin[1] < map_cors_origin[15]) && (map_cors_origin[16] < g_origin[2] < map_cors_origin[17]) ||
					(map_cors_origin[18] < g_origin[0] < map_cors_origin[19]) && (map_cors_origin[20] < g_origin[1] < map_cors_origin[21]) && (map_cors_origin[22] < g_origin[2] < map_cors_origin[23]) ||
					(map_cors_origin[24] < g_origin[0] < map_cors_origin[25]) && (map_cors_origin[26] < g_origin[1] < map_cors_origin[27]) && (map_cors_origin[28] < g_origin[2] < map_cors_origin[29]) ||
					(map_cors_origin[30] < g_origin[0] < map_cors_origin[31]) && (map_cors_origin[32] < g_origin[1] < map_cors_origin[33]) && (map_cors_origin[34] < g_origin[2] < map_cors_origin[35])){
					punishPlayer(players)
					raszer[players]=1
				}
				else{
					free_the_man(players)
				}
			}
		}
	}
}

public rash_warn(){				// tu sprawsza czy ma ci wyswietlic granice rashu

	if (get_cvar_num("amx_antirusher_warn")==0) return
	new players[32], num, tt_num, ct_num
	get_players(players,num)
	
	for(new i=0;i<num;i++)
	{
		if(is_user_alive(players[i]))
		{
			if(cs_get_user_team(players[i])==CS_TEAM_T) tt_num++
			else if(cs_get_user_team(players[i])==CS_TEAM_CT) ct_num++
		}
	}
	
	if (equal(g_team,"CT")){
		if (tt_num<MIN_PLAYERS) return
		if (ct_num<MIN_PLAYERS) return
	} 
	
	set_task(WARN_TIME, "rash_warn",TASK_VIEW)
	
	new orrigins[3]
	for(new j=0;j<num;j++){
		if(raszer[players[j]]<1 && is_user_alive(players[j]))	 // jak juz raszuje to mozna graczowi odpuscic :)
		{		
			if((equal(g_team,"T")&&(cs_get_user_team(players[j])==CS_TEAM_T))||(equal(g_team,"CT")&&(cs_get_user_team(players[j])==CS_TEAM_CT))||equal(g_team,"XX"))
			{	
				get_user_origin(players[j],orrigins)
				for(new i=0;i<MAX_ZONES;i++){
					if((map_cors_origin[0+i*6]-450 < orrigins[0] < map_cors_origin[0+i*6]) && (map_cors_origin[2+i*6]-100 < orrigins[1] < map_cors_origin[3+i*6]+100) && (map_cors_origin[4+i*6] < orrigins[2] < map_cors_origin[5+i*6])){
						zone_warn(players[j],i,0,orrigins)
					}
					else if((map_cors_origin[1+i*6] < orrigins[0] < map_cors_origin[1+i*6]+450) && (map_cors_origin[2+i*6]-100 < orrigins[1] < map_cors_origin[3+i*6]+100) && (map_cors_origin[4+i*6] < orrigins[2] < map_cors_origin[5+i*6])){
						zone_warn(players[j],i,1,orrigins)
					}
					if((map_cors_origin[0+i*6]-100 < orrigins[0] < map_cors_origin[0+i*6+1]+100) && (map_cors_origin[2+i*6]-450 < orrigins[1] < map_cors_origin[2+i*6]) && (map_cors_origin[4+i*6] < orrigins[2] < map_cors_origin[5+i*6])){
						zone_warn(players[j],i,2,orrigins)
					}
					else if((map_cors_origin[0+i*6]-100 < orrigins[0] < map_cors_origin[0+i*6+1]+100) && (map_cors_origin[3+i*6] < orrigins[1] < map_cors_origin[3+i*6]+450) && (map_cors_origin[4+i*6] < orrigins[2] < map_cors_origin[5+i*6])){
						zone_warn(players[j],i,3,orrigins)
					}
				}			// nigdy nie bedziesz widzial przednia i tylna lub lewa i prawa sciane rownoczesnie wiec jest else

			}
		}
	}
}

///////////////////////////////////////////////////////////////////////////
/////////                M_Antirusher Punishments                 /////////
///////////////////////////////////////////////////////////////////////////

punishPlayer(id) {
				
	new action = 1
	action = get_cvar_num("amx_antirusher_action")	
	if ((get_cvar_num("amx_antirusher_immunity") == 1)&&(get_user_flags(id)&ADMIN_IMMUNITY)) {
		action = 0
	}
	switch (action) {
		case 0:{
		new name[32]
		get_user_name(id,name,31)
		server_cmd("amx_chat %L",LANG_SERVER,"AR_server_INFO", name)
		}
		case 1:	fakedamage ( id, "rashing", slap*1.0,16384)
		case 2: user_silentkill(id)
		case 3: kickPlayer(id)
		case 4: banPlayer(id)
		case 5:{
			if(speed_limit[id]==0){
				speed_limit[id]=1
				set_user_maxspeed(id,(get_user_maxspeed(id)/2.0));
			}
		}
		case 6:{
			if(flashed[id]==0){
				flashed[id]=1
				set_task(FLASH_TIME,"Flash",TASK_FLASH+id) 
			}
		}
		case 7:{
			new Float: velocity[3]
			new Float: DW //D³ugosc wektora
			entity_get_vector(id,EV_VEC_velocity,velocity)
			DW=vector_length ( velocity )+0.0001
			velocity[0]=(velocity[0]/DW)*(-500.0)
			velocity[1]=(velocity[1]/DW)*(-500.0)
			if(velocity[2]<0) velocity[2]=velocity[2]*(-1.0)+15.0 //wyrzuca do gory
			entity_set_vector(id,EV_VEC_velocity,velocity)	
		}
		case 8:{
			rasher[id]=1
		}
		case 9:{
			aim_on_me(id)
		}
		case 10:{
			ebay_time_to_pay(id)	// ogladalem filmik w flashu i to chyba przez to :p
		}
		default:{
			new name[32]
			get_user_name(id,name,31)
			server_cmd("amx_chat %L:p",LANG_SERVER,"AR_server_INFO", name)
		}
	}
	if (warn_control >(25/floatround(10.0*TEST_TIME))){	// jak dlugo siedzisz w granicy to ci pisze w czacie :p
	ColorChat(id, "%L",LANG_PLAYER,"AR_RASH_WARN")
	warn_control=0;}
	warn_control+=1

	if(get_cvar_num("amx_antirusher_sound")){
		if(sounded[id]==0){
		new sound_mode = get_cvar_num("amx_antirusher_sound_mode")
		
		if(sound_mode==0) client_cmd(id,"spk %s",actions[action])
		else client_cmd(0,"spk %s",actions[action])
		sounded[id]=1
		}		
	}
}

kickPlayer(id) {
	ColorChat(id, "%L",LANG_PLAYER,"AR_RASH_KICK")
	ColorChat(id, "%L",LANG_PLAYER,"AR_RASH_KICK")
	server_cmd("amx_kick #%d", id)
}

banPlayer(id) {
	ColorChat(id, "%L",LANG_PLAYER,"AR_RASH_BAN")
	ColorChat(id, "%L",LANG_PLAYER,"AR_RASH_BAN")
	server_cmd("amx_ban #%d 5 rush", id)
}

public CurWeapon(id){
	if(speed_limit[id]==1) set_user_maxspeed(id,(get_user_maxspeed(id)/2.0));	// zmiana broni cie przyspieszy? nie ^^
}

public Flash(id) {
	id-=TASK_FLASH
	if(flashed[id]){
		set_task(FLASH_TIME,"Flash",TASK_FLASH+id) 
	
		message_begin(MSG_ONE,gMsgScreenFade,{0,0,0},id) 
		write_short( 1<<15 ) 
		write_short( 1<<10 )
		write_short( 1<<12 )
		new x,y,z
		x= random_num(0,255)
		write_byte( x ) 
		y= random_num(0,255)
		write_byte( y ) 
		z= random_num(0,255)
		write_byte( z ) 
		write_byte( 255 ) 
		message_end()
		emit_sound(id,CHAN_BODY, "weapons/flashbang-2.wav", 1.0, ATTN_NORM, 0, PITCH_HIGH)
	}
}

public client_PreThink(id){	
	if (rasher[id]){
		new button = entity_get_int(id, EV_INT_button)
		if ((button & IN_ATTACK2) || (button & IN_ATTACK)){
			user_silentkill(id)
		}
	}	
}

public aim_on_me(id){
	new radom, radom2
	radom = random_num(0,3)
	radom2 = random_num(1,6)
	new polecenie[64]
	switch (radom){
		case 0:{
			format(polecenie, 63, "+left;")
		}
		case 1:{
			format(polecenie, 63, "+right;")
		}
		case 2:{
			format(polecenie, 63, "+lookup;")
		}
		case 3:{
			format(polecenie, 63, "+lookdown;")
		}
	}
	
	for (new i=0; i < radom2; i++)
	{
		add(polecenie, 63, "wait;")
	}
	
	switch (radom) {
		case 0:{
			add(polecenie, 63, "-left;")
		}
		case 1:{
			add(polecenie, 63, "-right;")
		}
		case 2:{
			add(polecenie, 63, "-lookup;")
		}
		case 3:{
			add(polecenie, 63, "-lookdown;")
		}
	}
	client_cmd(id,"%s",polecenie)
}

ebay_time_to_pay(id){
	new cash=get_cvar_num("amx_antirusher_cash")*floatround(10.0*TEST_TIME)
	new cash2=get_cvar_num("amx_antirusher_cash_end")
	new money = cs_get_user_money(id)
	if (money-cash > 0)cs_set_user_money(id,money-cash)
	else switch(cash2){
		case 0: 	cs_set_user_money(id,0)
		case 1:{ 
			fakedamage ( id, "rashing", cash/25.0,16384)
		}
		case 2:{ 
			fakedamage ( id, "rashing", cash/10.0,16384)
		}	
		case 3:{ 
			fakedamage ( id, "rashing", cash/5.0,16384)
		}
		case 4:{ 
			fakedamage ( id, "rashing", cash/2.0,16384)
		}
		case 5:{ 
			fakedamage ( id, "rashing", cash/1.0,16384)
		}
	}
}

public free_the_man(id){
	sounded[id]=0
	rasher[id]=0
	flashed[id]=0
	raszer[id]=0
	if(speed_limit[id]==1){
		set_user_maxspeed(id,(get_user_maxspeed(id)*2.0))
		speed_limit[id]=0
	}
}


public free_the_world(){
	if(round_start<1) return
	round_start=0
	new players[32],num 
	get_players(players,num)
	for(new i=0;i<num;i++) free_the_man(players[i])
	ColorChat(0, "%L",LANG_PLAYER,"AR_FREE_WORLD")
}

///////////////////////////////////////////////////////////////////////
/////////                 M_Antirusher Menu's                 /////////
///////////////////////////////////////////////////////////////////////

public amx_antirusher_menu(id){
	menu_display(id, mAntirushControlMenu, 0)
	return PLUGIN_HANDLED
}

public mh_AntirushControlMenu(id, menu, item) {
	switch(item) 
	{ 
		case 0: {
			showmenu(id)
		}
		case 1: {
			showmenu2(id)
		}
		case 2: {
			
			map_editor=id
			edit_g_team=g_team
			transfer_zones()
			zones_edit=zones
			if(zones>0) zone_editing=1
			show_all_zones()
			remove_task(TASK_ZONE)
			set_task(0.2, "show_all_zones", TASK_ZONE, _, _, "b")
			showmenu3(id)
		}
	}			
}

public ma_AntirushControlMenu(id) {}			// bo z generatora amxx studio
public mcb_AntirushControlMenu(id, menu, item) {}	// i usuniecie nie daje dobrych efektow...

public transfer_zones(){
	for(new i=0;i<MAX_ZONES*6;i++){
	map_cors_edit[i]=map_cors_origin[i]
	}
}

public showmenu(id)
{
	new text[512] 
	new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)
	new anti_on = get_cvar_num("amx_antirusher")				//1
	new anti_immu = get_cvar_num("amx_antirusher_immunity")			//2
	new Float: anti_time = get_cvar_float("amx_antirusher_time")		//3
	new anti_warn = get_cvar_num("amx_antirusher_warn")			//4
	new anti_sound = get_cvar_num("amx_antirusher_sound")			//5
	new anti_sound_mode = get_cvar_num("amx_antirusher_sound_mode")		//6
	new anti_zasady = get_cvar_num("amx_antirusher_zasady")			//7
	new people = get_cvar_num("amx_antirusher_people")			//8
	format(text, 511, "\yAntirush Menu - ^n\w1. amx_antirusher %i^n\w2. amx_antirusher_immunity %i^n\w3. amx_antirusher_time %.f^n\w4. amx_antirusher_warn  %i^n\w5. amx_antirusher_sound %i^n\w6. amx_antirusher_sound_mode %i^n\w7. amx_antirusher_zasady %i^n\w8. amx_antirusher_people %i^n^n\w9. %L",anti_on, anti_immu, anti_time, anti_warn, anti_sound, anti_sound_mode,anti_zasady,people,LANG_SERVER,"EXIT") 
	
	show_menu(id, keys, text) 
	return PLUGIN_HANDLED  
} 


public Antirush_menu(id, key) 
{ 
	switch(key) 
	{ 
		case 0:{	
			new anti_on = get_cvar_num("amx_antirusher")
			if (anti_on==0) set_cvar_num("amx_antirusher",1)
			else set_cvar_num("amx_antirusher",0)
		}
		case 1:{	
			new anti_immu = get_cvar_num("amx_antirusher_immunity")
			if (anti_immu==0) set_cvar_num("amx_antirusher_immunity",1)
			else set_cvar_num("amx_antirusher_immunity",0)
		}
		case 2:{	
			new Float: anti_time = get_cvar_float("amx_antirusher_time")
			if (anti_time < (get_cvar_float("mp_roundtime")*60.0)) anti_time += 5.0
			else anti_time= 10.0
			set_cvar_float("amx_antirusher_time",anti_time)
		}
		case 3:{
			new anti_warn = get_cvar_num("amx_antirusher_warn")
			if (anti_warn==0) set_cvar_num("amx_antirusher_warn",1)
			else set_cvar_num("amx_antirusher_warn",0)
		}
		case 4:{
			new anti_sound = get_cvar_num("amx_antirusher_sound")
			if (anti_sound==0) set_cvar_num("amx_antirusher_sound",1)
			else set_cvar_num("amx_antirusher_sound",0)
		}
		case 5:{
			new anti_sound_mode = get_cvar_num("amx_antirusher_sound_mode")
			if (anti_sound_mode==0) set_cvar_num("amx_antirusher_sound_mode",1)
			else set_cvar_num("amx_antirusher_sound_mode",0)
		}
		case 6:{		
			new anti_zasady = get_cvar_num("amx_antirusher_zasady")
			if (anti_zasady==0) set_cvar_num("amx_antirusher_zasady",1)
			else set_cvar_num("amx_antirusher_zasady",0)
		}
		case 7:{		
			new people = get_cvar_num("amx_antirusher_people")
			if (people<16) set_cvar_num("amx_antirusher_people",people+1)
			else set_cvar_num("amx_antirusher_people",0)
		}		
		case 8:{
			menu_display(id, mAntirushControlMenu, 0)
			return PLUGIN_HANDLED
		}		
	}
	showmenu(id)
	return PLUGIN_HANDLED
}

public showmenu2(id)
{
	new keys
	new text[512] 
	new anti_action = get_cvar_num("amx_antirusher_action")					
	new anti_cash = get_cvar_num("amx_antirusher_cash")*10		
	new anti_cash_end = get_cvar_num("amx_antirusher_cash_end")				
	new Float: anti_freq = get_cvar_float("amx_antirusher_freq")
	new anti_slap = get_cvar_num("amx_antirusher_slap")*10
	
	switch(anti_action)
	{
		case 1: 
		{
			format(text,511,"\yPunishment Menu - ^n\w1. amx_antirusher_action %i^n\w2. amx_antirusher_slap %i^n\w^n\w4. amx_antirusher_freq %.2f ^n\w ",anti_action,anti_slap,anti_freq)
			keys = (1<<0)|(1<<1)|(1<<3)|(1<<8)
		}
		case 10:
		{
			format(text,511,"\yPunishment Menu - ^n\w1. amx_antirusher_action %i^n\w2. amx_antirusher_cash %i^n\w3. amx_antirusher_cash_end %i^n\w4. amx_antirusher_freq %.2f^n\w ",anti_action, anti_cash, anti_cash_end,anti_freq)
			keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<8)
		}
		default: 
		{
			format(text,511,"\yPunishment Menu - ^n\w1. amx_antirusher_action %i^n\w ^n\w ^n\w4. amx_antirusher_freq %.2f^n\w ",anti_action,anti_freq)
			keys = (1<<0)|(1<<3)|(1<<8)
		}
	}
	new text2[512]
	switch(anti_action) 
	{ 
		case 0: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_WARN",LANG_SERVER,"EXIT")
		case 1: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_HP",LANG_SERVER,"EXIT")
		case 2: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_KILL",LANG_SERVER,"EXIT")
		case 3: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_KICK",LANG_SERVER,"EXIT")
		case 4: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_BAN",LANG_SERVER,"EXIT")
		case 5: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_SLOW",LANG_SERVER,"EXIT")
		case 6: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_BLIND",LANG_SERVER,"EXIT")
		case 7: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_FFILD",LANG_SERVER,"EXIT")
		case 8: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_OFIRE",LANG_SERVER,"EXIT")
		case 9: format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_BAIM",LANG_SERVER,"EXIT")
		case 10:format(text2,511, "^n\w %L ^n\w %L ^n\w9. %L",LANG_SERVER,"AR_ACTION_CASH",LANG_SERVER,"AR_ACTION_CASH2",LANG_SERVER,"EXIT")
		default:format(text2,511, "^n\w %L ^n\w ^n\w9. %L",LANG_SERVER,"AR_ACTION_NEW",LANG_SERVER,"EXIT")
	} 
	add(text,511,text2)
	show_menu(id, keys, text)
	return PLUGIN_HANDLED  
} 

public Punishment_menu(id, key) 
{ 
	new anti_action = get_cvar_num("amx_antirusher_action")
	switch(key) 
	{ 
		case 0: 
		{	
			if(anti_action<10) anti_action +=1
			else anti_action=0
			set_cvar_num("amx_antirusher_action",anti_action)
		}
		case 1: 
		{	
			if(anti_action==1)
			{
				new anti_slap = get_cvar_num("amx_antirusher_slap")
				if(anti_slap<10) anti_slap +=1
				else anti_slap=0
				set_cvar_num("amx_antirusher_slap",anti_slap)
			}
			else if(anti_action==10)
			{
				new anti_cash = get_cvar_num("amx_antirusher_cash")
				if(anti_cash<100) anti_cash +=10
				else if(anti_cash<500) anti_cash +=25
				else anti_cash=0
				set_cvar_num("amx_antirusher_cash",anti_cash)
			}
		}
		case 2: 
		{	
			new anti_cash_end = get_cvar_num("amx_antirusher_cash_end")	
			if(anti_cash_end<5) anti_cash_end +=1
			else anti_cash_end=0
			set_cvar_num("amx_antirusher_cash_end",anti_cash_end)
		}
		case 3: 
		{	
			new Float: anti_freq = get_cvar_float("amx_antirusher_freq")	
			if(anti_freq<1.0) anti_freq +=0.100001 // ta jedynka na koncu bo zamiast wyswietalc 0.90000 wyswietlalo 0.89999 wiec dalem zaokraglenie do 0.xx i to na koniec :f
			else if (anti_freq<8.0) anti_freq +=0.5
			else anti_freq=0.1
			set_cvar_float("amx_antirusher_freq",anti_freq)
		}		
		case 8:
		{
			menu_display(id, mAntirushControlMenu, 0)
			return PLUGIN_HANDLED
		}		
	}
	showmenu2(id)
	return PLUGIN_HANDLED
}

public showmenu3(id)
{
	editign=0
	new text[512] 
	new keys
	if(zones_edit==0){
		keys = (1<<0)|(1<<4)|(1<<6)|(1<<7)|(1<<8)
		format(text, 511, "\yAntirush Zone Creator - ^n^n\w%L: \r%i^n\w1.%L: %s ^n^n ^n^n^n\y5. %L ^n\r7. %L^n\w8. %L ^n\w9. %L",LANG_SERVER,"AR_ZONE_NUM",zones_edit,LANG_SERVER,"AR_ZONE_TEAM",edit_g_team,LANG_SERVER,"AR_ZONE_NEW",LANG_SERVER,"AR_ZONE_DEL",LANG_SERVER,"AR_ZONE_SAVE",LANG_SERVER,"EXIT") 
	}
	else if(zones_edit>0){
		keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<6)|(1<<7)|(1<<8)
		format(text, 511, "\yAntirush Zone Creator - ^n^n\w%L: \r%i^n\w1.%L: %s ^n^n\w2. %L \r%i^n      \w3. <- %L 4. -> %L^n^n\y5. %L ^n\r7. %L^n\w8. %L ^n\w9. %L",LANG_SERVER,"AR_ZONE_NUM",zones_edit,LANG_SERVER,"AR_ZONE_TEAM",edit_g_team,LANG_SERVER,"AR_ZONE_EDIT",zone_editing,LANG_SERVER,"BACK",LANG_SERVER,"MORE",LANG_SERVER,"AR_ZONE_NEW",LANG_SERVER,"AR_ZONE_DEL",LANG_SERVER,"AR_ZONE_SAVE",LANG_SERVER,"EXIT") 
	}	
		
	show_menu(id, keys, text)
	return PLUGIN_HANDLED 
} 


public Antirush_Zone_Creator(id, key) 
{ 
	if(map_editor!=id){
		showmenu(id)
		return PLUGIN_HANDLED
	}
		
	switch(key) 
	{ 
		case 0:{
			if (equal(edit_g_team,"XX")) edit_g_team="CT"
			else if (equal(edit_g_team,"CT")) edit_g_team="T"
			else edit_g_team="XX"
		}
		case 1: {	
			zone_incresment=10
			edit_zone(id)
			return PLUGIN_HANDLED
		}
		case 2:{	
			if(zone_editing>1) zone_editing--
		}
		case 3:{	
			if(zone_editing<zones_edit) zone_editing++
		}
		case 4:{
			if(zones_edit<(MAX_ZONES)){
				create_zone(id)
				zone_editing=zones_edit
				zone_incresment=10
				edit_zone(id)
				return PLUGIN_HANDLED
			}
			else{
				ColorChat(id, "%L",LANG_SERVER,"AR_ZONE_MAX")
			}
		}
		case 6:{
			if(zone_editing>0){
				menu_display(id, mUsuwaniestrefy, 0)
				return PLUGIN_HANDLED
			}
			else ColorChat(id, "%L",LANG_SERVER,"AR_ZONE_ZERO")
		}

		case 7:{
			menu_display(id, mZapisacstrefy, 0)
			return PLUGIN_HANDLED
		}
		case 8:{
			amx_antirusher_menu(id)
			remove_task(TASK_ZONE)
			return PLUGIN_HANDLED
		}		
	}
	showmenu3(id)
	return PLUGIN_HANDLED
}

public create_zone(id){
	new origins[3]
	get_user_origin(id,origins,0)
	map_cors_edit[0+zones_edit*6]=origins[0]-32
	map_cors_edit[1+zones_edit*6]=origins[0]+32
	map_cors_edit[2+zones_edit*6]=origins[1]-32
	map_cors_edit[3+zones_edit*6]=origins[1]+32
	map_cors_edit[4+zones_edit*6]=origins[2]-32
	map_cors_edit[5+zones_edit*6]=origins[2]+32
	zones_edit++
}


public mh_Zapisacstrefy(id, menu, item) {
	if(item==0){
		remove_task(TASK_ZONE)
		amx_antirusher_menu(id)
		map_cors_origin=map_cors_edit
		zones=zones_edit
		g_team=edit_g_team
		if(zones>0) map_cors_pre=1
		else map_cors_pre=0
		write_to_file()
	}
	else if(item==1) showmenu3(id)
}

public ma_Zapisacstrefy(id) {}
public mcb_Zapisacstrefy(id, menu, item) {}


public mh_Usuwaniestrefy(id, menu, item) {
	if(item==0){
		amx_antirusher_menu(id)
		delete_zone(zone_editing)
		if((zone_editing-1)>=(zones_edit-1)) zone_editing = zones_edit-1
		zones_edit--
		showmenu3(id)
	}
	else if(item==1) showmenu3(id)
}

public ma_Usuwaniestrefy(id) {}
public mcb_Usuwaniestrefy(id, menu, item) {}

public delete_zone(zone_num){
	new x_num=zone_num-1
	while(x_num<(MAX_ZONES-1)){
		map_cors_edit[0+x_num*6]=map_cors_edit[6+x_num*6]
		map_cors_edit[1+x_num*6]=map_cors_edit[7+x_num*6]
		map_cors_edit[2+x_num*6]=map_cors_edit[8+x_num*6]
		map_cors_edit[3+x_num*6]=map_cors_edit[9+x_num*6]
		map_cors_edit[4+x_num*6]=map_cors_edit[10+x_num*6]
		map_cors_edit[5+x_num*6]=map_cors_edit[11+x_num*6]
		x_num++
	}
}

public edit_zone(id){
	editign=1
	new text[512] 
	new keys= (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<6)|(1<<8)
	format(text, 511, "\yEdit Zone - ^n^n\w1. %L: %s ^n\r    2.<- %L  3.-> %L^n\y    4.<- %L  5.-> %L^n  ^n\w7. %L: %i ^n\w9. %L",LANG_SERVER,"AR_EDIT_COOR",zone_coords[zone_coords_num],LANG_SERVER,"BACK",LANG_SERVER,"MORE",LANG_SERVER,"BACK",LANG_SERVER,"MORE",LANG_SERVER,"AR_EDIT_CHANG",zone_incresment,LANG_SERVER,"EXIT") 	
		
	show_menu(id, keys, text)
	return PLUGIN_HANDLED 
} 

public edit_zone2(id, key){ 	
	switch(key){ 
		case 0:{	
			if(zone_coords_num<2)zone_coords_num++
			else zone_coords_num=0
		}
		case 1:{	
			if((map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]+zone_incresment)<(map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]-32)) map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]+=zone_incresment
		}
		case 2:{	
			if((map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]-zone_incresment)>-8191) map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]-=zone_incresment
		}
		case 3:{
			if((map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]-zone_incresment)>(map_cors_edit[zone_coords_num*2+(zone_editing-1)*6]+32)) map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]-=zone_incresment
		}
		case 4:{	
			if((map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]+zone_incresment)<8191) map_cors_edit[zone_coords_num*2+(zone_editing-1)*6+1]+=zone_incresment
		}
		case 6:{
			if(zone_incresment<1000)zone_incresment*=10
			else zone_incresment=1
		}
		case 8:{
			showmenu3(id)
			return PLUGIN_HANDLED
		}		
	}
	edit_zone(id)
	return PLUGIN_HANDLED
}

//////////////////////////////////////////////////////////////////////////
/////////                 M_Antirusher Draw Lines                /////////
//////////////////////////////////////////////////////////////////////////

public FX_Line(start[3], stop[3], color[3], brightness, id) {
	message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id) 
	
	write_byte( TE_BEAMPOINTS ) 
	
	write_coord(start[0]) 
	write_coord(start[1])
	write_coord(start[2])
	
	write_coord(stop[0])
	write_coord(stop[1])
	write_coord(stop[2])
	
	write_short( spr_dot )
	
	write_byte( 1 )	// framestart 
	write_byte( 1 )	// framerate 
	write_byte( 4 )	// life in 0.1's 
	write_byte( 5 )	// width
	write_byte( 0 ) 	// noise 
	
	write_byte( color[0] )   // r, g, b 
	write_byte( color[1] )   // r, g, b 
	write_byte( color[2] )   // r, g, b 
	
	write_byte( brightness )  	// brightness 
	write_byte( 0 )   	// speed 
	
	message_end() 
}

public DrawLine(x1, y1, z1, x2, y2, z2, color[3],id) {
	new start[3]
	new stop[3]
	
	start[0] = ( x1 )
	start[1] = ( y1 )
	start[2] = ( z1 )
	
	stop[0] = ( x2 )
	stop[1] = ( y2 )
	stop[2] = ( z2 )

	FX_Line(start, stop, color, 200, id)
}

public ar_zone(zone_num,id){
	new start[3],stop[3]
	new xyz=0
	if(zone_editing==zone_num) xyz=1
	
	zone_num=(zone_num-1)*6

	start[0]= map_cors_edit[0+zone_num]
	start[1]= map_cors_edit[2+zone_num]
	start[2]= map_cors_edit[4+zone_num]
	
	stop[0]= map_cors_edit[1+zone_num]
	stop[1]= map_cors_edit[3+zone_num]
	stop[2]= map_cors_edit[5+zone_num]
	
	ShowZoneBox(start, stop, id,xyz)
}

public ShowZoneBox(mins[3], maxs[3], id,xyz) {
		
	DrawLine(maxs[0], maxs[1], maxs[2], mins[0], maxs[1], maxs[2], zone_color_aktiv, id)
	DrawLine(maxs[0], maxs[1], maxs[2], maxs[0], mins[1], maxs[2], zone_color_aktiv, id)
	DrawLine(maxs[0], maxs[1], maxs[2], maxs[0], maxs[1], mins[2], zone_color_aktiv, id)

	DrawLine(mins[0], mins[1], mins[2], maxs[0], mins[1], mins[2], zone_color_aktiv, id)
	DrawLine(mins[0], mins[1], mins[2], mins[0], maxs[1], mins[2], zone_color_aktiv, id)
	DrawLine(mins[0], mins[1], mins[2], mins[0], mins[1], maxs[2], zone_color_aktiv, id)

	DrawLine(mins[0], maxs[1], maxs[2], mins[0], maxs[1], mins[2], zone_color_aktiv, id)
	DrawLine(mins[0], maxs[1], mins[2], maxs[0], maxs[1], mins[2], zone_color_aktiv, id)
	DrawLine(maxs[0], maxs[1], mins[2], maxs[0], mins[1], mins[2], zone_color_aktiv, id)
	DrawLine(maxs[0], mins[1], mins[2], maxs[0], mins[1], maxs[2], zone_color_aktiv, id)
	DrawLine(maxs[0], mins[1], maxs[2], mins[0], mins[1], maxs[2], zone_color_aktiv, id)
	DrawLine(mins[0], mins[1], maxs[2], mins[0], maxs[1], maxs[2], zone_color_aktiv, id)
	
	if((xyz==1)&&(editign==1)){
		if(zone_coords_num==0){
			DrawLine(maxs[0], maxs[1], maxs[2], maxs[0], mins[1], mins[2], zone_color_yellow, id)
			DrawLine(maxs[0], maxs[1], mins[2], maxs[0], mins[1], maxs[2], zone_color_yellow, id)
			DrawLine(mins[0], maxs[1], maxs[2], mins[0], mins[1], mins[2], zone_color_red, id)
			DrawLine(mins[0], maxs[1], mins[2], mins[0], mins[1], maxs[2], zone_color_red, id)
		}
		else if( zone_coords_num==1){
			DrawLine(mins[0], mins[1], mins[2], maxs[0], mins[1], maxs[2], zone_color_red, id)
			DrawLine(maxs[0], mins[1], mins[2], mins[0], mins[1], maxs[2], zone_color_red, id)
			DrawLine(mins[0], maxs[1], mins[2], maxs[0], maxs[1], maxs[2], zone_color_yellow, id)
			DrawLine(maxs[0], maxs[1], mins[2], mins[0], maxs[1], maxs[2], zone_color_yellow, id)
		}
		else{
			DrawLine(maxs[0], maxs[1], maxs[2], mins[0], mins[1], maxs[2], zone_color_yellow, id)
			DrawLine(maxs[0], mins[1], maxs[2], mins[0], maxs[1], maxs[2], zone_color_yellow, id)
			DrawLine(maxs[0], maxs[1], mins[2], mins[0], mins[1], mins[2], zone_color_red, id)
			DrawLine(maxs[0], mins[1], mins[2], mins[0], maxs[1], mins[2], zone_color_red, id)
		}
	}
}

public show_all_zones(){
	new num=1
	while(num<=zones_edit){
		ar_zone(num,map_editor)
		num++
	}
	if(zone_editing>0){
		new origins[3], origins2[3]
		get_user_origin(map_editor,origins)
		new Float: range_line
		new Float: range_origins[6]
		for(new i=0;i<6;i++) range_origins[i] = (map_cors_edit[i+6*(zone_editing-1)])*1.0
		range_line= floatsqroot(((range_origins[1]-range_origins[0])/2.0-origins[0])*((range_origins[1]-range_origins[0])/2.0-origins[0])+((range_origins[3]-range_origins[2])/2.0-origins[1])*((range_origins[3]-range_origins[2])/2.0-origins[1])+((range_origins[5]-range_origins[4])/2.0-origins[2])*((range_origins[5]-range_origins[4])/2.0-origins[2]))
		if(range_line>20000) for(new i=0;i<3;i++){
			origins2[i]=((map_cors_edit[i*2+6*(zone_editing-1)] + map_cors_edit[i*2+1+6*(zone_editing-1)])/2)/6
		}
		else if(range_line>15000) for(new i=0;i<3;i++){
			origins2[i]=((map_cors_edit[i*2+6*(zone_editing-1)] + map_cors_edit[i*2+1+6*(zone_editing-1)])/2)/5
		}
		else if(range_line>10000) for(new i=0;i<3;i++){
			origins2[i]=((map_cors_edit[i*2+6*(zone_editing-1)] + map_cors_edit[i*2+1+6*(zone_editing-1)])/2)/3
		}
		else for(new i=0;i<3;i++){
			origins2[i]=((map_cors_edit[i*2+6*(zone_editing-1)] + map_cors_edit[i*2+1+6*(zone_editing-1)])/2)
		}
		FX_Line(origins, origins2, zone_color_red,200,map_editor)
	}
}

public zone_warn(id,zone,direction,origins[3]){
	new start[3],stop[3]
	start[2]=origins[2]-110
	stop[2]=origins[2]-110
	
	switch(direction){
		case 0:{
			start[0]=map_cors_origin[zone*6]+5
			stop[0]=map_cors_origin[zone*6]+5
			start[1]=map_cors_origin[zone*6+2]
			stop[1]=map_cors_origin[zone*6+3]
		}
		case 1:{
			start[0]=map_cors_origin[zone*6+1]-5
			stop[0]=map_cors_origin[zone*6+1]-5
			start[1]=map_cors_origin[zone*6+2]
			stop[1]=map_cors_origin[zone*6+3]
		}
		case 2:{
			start[0]=map_cors_origin[zone*6+0]
			stop[0]=map_cors_origin[zone*6+1]
			start[1]=map_cors_origin[zone*6+2]+5
			stop[1]=map_cors_origin[zone*6+2]+5
		}
		case 3:{
			start[0]=map_cors_origin[zone*6+0]
			stop[0]=map_cors_origin[zone*6+1]
			start[1]=map_cors_origin[zone*6+3]-5
			stop[1]=map_cors_origin[zone*6+3]-5
		}
	}
	for(new i=0;i<9;i++){
		start[2]+=30
		stop[2]+=30
		FX_Line(start, stop, zone_color_red, 60, id)
	}
}

///////////////////////////////////////////////////////////////////////////
/////////                 M_Antirusher Save to file               /////////
///////////////////////////////////////////////////////////////////////////

public write_to_file(){
	new text[512],text2[64]
	new currentmap[32]
	get_mapname(currentmap,31)
	format(text,511,"%s %s ", g_team, currentmap)
	new x0[6],x1[6],y0[6],y1[6],z0[6],z1[6]
	for(new i=0;i<zones;i++){
		num_to_str(map_cors_origin[0+i*6],x0,5)
		num_to_str(map_cors_origin[1+i*6],x1,5)
		num_to_str(map_cors_origin[2+i*6],y0,5)
		num_to_str(map_cors_origin[3+i*6],y1,5)
		num_to_str(map_cors_origin[4+i*6],z0,5)
		num_to_str(map_cors_origin[5+i*6],z1,5)
		format(text2,63,"%s %s %s %s %s %s ",x0,x1,y0,y1,z0,z1)
		add(text,511,text2)
	}
	
	if(is_linux_server()){
		new zonefile[256]
		get_configsdir(zonefile, 255)
		format(zonefile, 255, "%s/antirusher/rush.cor", zonefile)
		if((write_file ( zonefile, text, map_cors_file_line ))==0) log_amx("<<Blad przy nadpisywaniu rush.cor>>")		
	}
	else{	
		if((write_file ( "addons\amxmodx\configs\antirusher\rush.cor", text, map_cors_file_line ))==0) log_amx("<<Blad przy nadpisywaniu rush.cor>>")
	}
}

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, "!y", "^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();
			}
		}
	} 
}
| Afiseaza codul
[pl]
AR_NO_ZONE = !gNie ma granicy rashu dla tej mapy w pliku rush.cor
AR_NO_FILE = !gNie ma pliku rush.cor
AR_CS_MAP = !gTerro pilnuje zakladnikow - CT odbija zakladnikow
AR_DE_MAP = !gTerro kladzie pake - CT uniemozliwia podlozenia paki i rozbraja ja
AR_FY_MAP = !gZabic wszystkich przeciwnikow
AR_AIM_MAP = !gZabic wszystkich przeciwnikow
AR_AWP_MAP = !gZabic wszystkich przeciwnikow za pomoca broni snajperskiej
AR_KZ_MAP =!gWygrywa osoba ktora osciagnie najlepszy czas w spinaczce
AR_FUN_MAP = !gCel - prawdopodobnie dobra zabawa
AR_SURF_MAP = !gCele: jak najwieksza pretkosc 'serfowania', najdluzszy skok, najdluzszy przejazd
AR_SJ_MAP = !gWygrywa druzyna ktora ma najwieksza ilosc szczelonych bramek
AR_KA_MAP = !gZabic wszystkich przeciwnikow
AR_HE_MAP = !gZabic wszystkich przeciwnikow, za pomoca granatow
AR_INFO_WARN = !g* !!! UWAGA !!! UWAGA !!! UWAGA !!! UWAGA !!! *
AR_INFO_CLIENT = !g* Wolno raszowac dopiero po uplywie %.0f sekund *
AR_server_INFO = !gGracz %s przekroczyl granice raszu!
AR_RASH_WARN = !gPrzekroczyles granice raszu! Lamanie zasad serwera grozi banem! Wpisz say /rules
AR_RASH_KICK = !gPrzekroczyles granice raszu! Kara jest kick. Wpisz say /rules
AR_RASH_BAN = !gPrzekroczyles granice raszu! Kara jest ban na 5 min.
AR_FREE_WORLD = !g*** Wolno raszowac ***
AR_ACTION_WARN = Wyswietlanie ostrzezenie w razie rashu
AR_ACTION_HP = Zabiera rasherowi tyle HP w czasie 1 sekundy
AR_ACTION_KILL = Zabija rashera
AR_ACTION_KICK = Kickuje rashera z serwera
AR_ACTION_BAN = Banuje rashera
AR_ACTION_SLOW = Spowalnia rashera
AR_ACTION_BLIND = Oslepianie rashera
AR_ACTION_FFILD = Pole silowe - brak mozliwosci rashu
AR_ACTION_OFIRE = Zabija rashera w razie otwarcia ognia
AR_ACTION_BAIM = Uniemozliwa rasherowi celne oddanie szczalu
AR_ACTION_CASH = Zabiera rasherowi tyle pieniedzy w czasie 1 sekundy
AR_ACTION_CASH2 = A w razie braku funduszy zabira hp, odpowidnio co do 2 liczby
AR_ACTION_NEW = to cos nowego dla mnie :p
AR_ZONE_NUM = Ilosc stref
AR_ZONE_TEAM = Karani rasherze z
AR_ZONE_NEW = Tworz nowa strefe
AR_ZONE_DEL = Usun aktualna strefe
AR_ZONE_SAVE = Zapisz strefy
AR_ZONE_EDIT = Edytuj strefe rashu nr.
AR_ZONE_MAX = !g***M_Antirusher*** przekroczono maxymalna ilosc stref rashu
AR_ZONE_ZERO = !g***M_Antirusher*** Nie ma strefy do usuniecia
AR_EDIT_COOR = Zmien koordynaty
AR_EDIT_CHANG = Zmien o

Culori:
!g - green
!y - yellow
!t - team ( red - tero / blue - ct )
Adaugi culorile in txt de mai sus
no...
User avatar
ChristianEvo
Membru, skill +1
Membru, skill +1
Posts: 208
Joined: 13 Jul 2015, 14:57
Detinator Steam: Da
CS Status: BB Force
Detinator server CS: EVO.MANIACS.RO
SteamID: eVo_style
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 2 times
Contact:

30 Mar 2020, 23:15

Da eroare la compilare

Code: Select all

include\fakemeta_const.inc(551) : warning 201: redefinition of constant/macro (symbol "TraceResult")
antirush.sma(345) : error 035: argument type mismatch (argument 1)
antirush.sma(347) : error 035: argument type mismatch (argument 1)
antirush.sma(348) : error 035: argument type mismatch (argument 1)
antirush.sma(372) : error 035: argument type mismatch (argument 1)
antirush.sma(374) : error 035: argument type mismatch (argument 1)
antirush.sma(376) : error 035: argument type mismatch (argument 1)
antirush.sma(383) : error 035: argument type mismatch (argument 1)
antirush.sma(384) : error 033: array must be indexed (variable "players")
antirush.sma(387) : error 035: argument type mismatch (argument 1)
antirush.sma(1265) : error 035: argument type mismatch (argument 1)
antirush.sma(1266) : error 035: argument type mismatch (argument 4)
antirush.sma(1267) : error 035: argument type mismatch (argument 1)

12 Errors.
Could not locate output file antirush.amx (compile failed).
X-D3$[T]Ro!
Membru, skill 0
Membru, skill 0
Posts: 89
Joined: 13 Aug 2018, 20:19
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: NU
Fond eXtream: 0
Has thanked: 5 times
Been thanked: 1 time
Contact:

28 May 2020, 20:51

Foloseste

///////////////////STOCK-uri////////////////////////
stock ChatColor(const id,const input[], any:...)
{
new msg[191], players[32], count = 1;
vformat(msg,190,input,3);
replace_all(msg,190,"!g","^4");// green
replace_all(msg,190,"!y","^1");// normal
replace_all(msg,190,"!team","^3");// team

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();
}
}
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 9 guests