Shane Spies 6 rokov pred
rodič
commit
d6d0b82986
1 zmenil súbory, kde vykonal 372 pridanie a 0 odobranie
  1. 372 0
      MecklenburgV_Final.sma

+ 372 - 0
MecklenburgV_Final.sma

@@ -0,0 +1,372 @@
+#include <amxmodx>
+#include <amxmisc>
+#include <engine>
+
+#define PLUGIN "MeckV Addon"
+#define VERSION "1.1"
+#define AUTHOR "Fjmaps AKA Funjob"
+
+new currentfog = 1		//Current Fog is set to 1 to make it so "Day" mode is defult.
+new outdoorlightstate = 0 	//Sets the current state of the outdoor lights. "1" is on.
+//new rainboxstate  = 0		//Sets state of the door that breaks the rain.
+//new rainboxlip = 0
+new lightstate[0]  = 'f'
+new initalconfig = 0
+new currenttime
+new daytime = 1
+
+public client_spawn(id)
+{
+	client_print(id,print_console,"[MeckVmod] Fog is now set to %s!",currentfog)
+	client_cmd(id,"gl_fog %s",currentfog)
+	client_cmd(id,"r_detailtextures 1")
+}
+
+public client_putinserver(id)	//Refreshes fog on all clients upon a client joinin
+{
+	//client_print(0,print_console,"[MeckVmod] Fog is now set to %s!",currentfog)
+	gl_refresh()
+	
+	if (initalconfig == 0 )	//Had some entities that needed to be used and no id.
+	{
+		force_use(id,find_ent_by_tname(-1,"indoorlights"))
+		outdoorlightstate = 0
+		
+		currentfog = 1
+		
+		//remove_entity( find_ent_by_tname(-1,"armory_2_1") )
+		//remove_entity( find_ent_by_class(-1,"ts_groundweapon") )
+		//remove_entity( find_ent_by_tname(-1,"armory_3_1") )
+		//remove_entity( find_ent_by_tname(-1,"wawaclerk") )
+		if(get_cvar_num("amx_removefgt") == 1 ) remove_entity( find_ent_by_tname(-1,"wawaclerk") )
+		
+		for(new i = 0; i < entity_count() ; i++)
+		{
+			if(!is_valid_ent(i)) continue
+			new text[32]
+			entity_get_string(i,EV_SZ_targetname,text,31)
+			if( equali(text,"indoorsprites" ) )
+			{
+				force_use(id, i)
+			}
+			initalconfig =1	//Make sure this doesn't get used again.
+		}
+		
+		if(get_cvar_num("amx_timetype") > 0)	//Used for servers that want to have this automatic
+		{
+			get_cvar_string("amx_startingtime",lightstate,1)
+			new timelength = get_cvar_float("amx_timetype")
+			set_task(timelength,"timetick",0,"",0,"b")
+			server_print("[MeckVmod] Map timer set to %f s increments!",timelength)
+			server_print("[MeckVmod] Automatic timer mode engaged!")
+		}
+		else
+		{
+			set_task(30.0,"gl_refresh",0,"",0,"b")		//Refreshes the clients skybox/detail
+			//server_print("[MeckVmod] Automatic timer mode disabled!")
+		}	
+	}
+	return PLUGIN_HANDLED
+}
+
+public plugin_init() {
+	register_plugin(PLUGIN, VERSION, AUTHOR)
+	
+	register_clcmd("amx_setlights","setlights",ADMIN_IMMUNITY,"<a-z> - Sets the brightness of the outdoor lights, Z - Brightest");
+	register_clcmd("amx_togglefog","togglefog",ADMIN_IMMUNITY,"Toggles gl_fog 1/0 on clients, used for night time effect.")
+	register_clcmd("amx_toggleoutdoorlights","toggleoutdoorlights",ADMIN_IMMUNITY,"Toggles the outdoor lights on/off")
+	register_clcmd("amx_toggleday","toggleday",ADMIN_BAN,"<0-24> - Sets the time of the map")
+	register_clcmd("amx_togglerain","togglerain",ADMIN_BAN,"<0-100> - Sets the ammount of the rain")
+	register_clcmd("amx_toggleindoorlights", "toggleindoorlights", ADMIN_IMMUNITY,"Toggles the indoor lights on/off")
+	//register_clcmd("gl_fog","refreshfog")
+	//register_clcmd("amx_addnpc", "addnpc, ADMIN_IMMUNITY,"<1-3 ModelID>,<x>,<y>,<z>")
+	//register_clcmd("amx_togglenpcs", "togglenpc", ADMIN_IMMUNITY,"Tuns on and off the NPCs in the map")
+	
+	register_cvar("amx_timetype","0.0")
+	register_cvar("amx_removefgt", "0")
+	register_cvar("amx_startingtime","f")
+	
+	
+	new currentmap[12]
+	get_mapname(currentmap,12)
+	
+
+	if( !equali("MecklenburgV",currentmap) )
+	{
+		//server_print("Mapname is: %s",currentmap)
+		server_print("[MeckVmod] Fatal Error: The Server is not running any MecklenburgV Version!^n")
+		server_print("[MeckVmod] Be sure the map is named 'MecklenburgV before trying to run this plugin!^n")
+		//server_print("[MeckVmod] It's case sensitive by the way.^n")
+		pause("d","MecklenburgV_Final.amxx")
+	}
+	if( equali("MecklenburgV_Final",currentmap) )
+	{
+		//server_print("Mapname is: %s",currentmap)
+		server_print("[MeckVMod] Loaded Correctly!^n")
+		server_print("Mecklenburg V Final plugin and map made by ^nShane 'Fjmaps' Spies, AKA Shaun 'Funjob' Virgilio")
+		server_print("Valid commands for the plugin can be found in the documentation bundled with the download^n====================")
+		server_print("http://Fjmaps.com^n=================")
+		server_print("MecklenburgV_Final Mode V1.0")
+		server_cmd("exec maps/MecklenburgV_Final.cfg")
+	}
+	else
+	{
+		//server_print("Mapname is: %s",currentmap)
+		server_print("[MeckVMod] Loaded Correctly!^n")
+		server_print("Mecklenburg V Final plugin and map made by ^nShane 'Fjmaps' Spies, AKA Shaun 'Funjob' Virgilio")
+		server_print("Valid commands for the plugin can be found in the documentation bundled with the download^n====================")
+		server_print("http://Fjmaps.com^n=================")
+		server_cmd("exec maps/MecklenburgV.cfg")
+	}
+	
+	return PLUGIN_HANDLED
+}
+
+public timetick()
+{
+	//new templightstate = str_to_num("lightstate")
+	
+	if (daytime == 1) 
+	{
+		lightstate[0]++
+		if (equal(lightstate,"m",1))
+		{
+			daytime = 0
+		}
+		//server_print("[MeckVmod] Current daytime is %d",daytime)
+	}
+	else if (daytime == 0) 
+	{
+		lightstate[0]--
+		if (equal(lightstate,"a",1)) 
+		{
+			daytime = 2
+		}
+		//server_print("[MeckVmod] Current daytime is %d",daytime)
+	}
+	else if(daytime >= 2 && daytime < 8)
+	{
+		daytime++
+	}
+	else if(daytime >=8)
+	{
+		daytime = 1
+	}
+	
+	if (equal(lightstate,"c",1)) 
+	{
+		server_cmd("amx_togglefog")
+	}
+	
+	if (equal(lightstate,"f",1))
+	{
+		server_cmd("amx_toggleoutdoorlights")
+	}
+	
+	server_cmd("amx_setlights %s", lightstate[0])
+	server_print("[MeckVmod] Current time is now %s",lightstate[0])
+	gl_refresh()
+		
+}
+
+//Refreshes the fog and detail textures clientside.
+public gl_refresh()
+{
+	client_cmd(0,"gl_fog %d",currentfog)
+	client_cmd(0,"r_detailtextures 1")
+	
+	//Some debugging lines
+	//server_print("[MeckVMod] Graphical refresh has been executed on all clients")
+}
+
+public refreshfog(id)
+{
+	client_cmd(id,"gl_fog %d",currentfog)
+	return PLUGIN_HANDLED
+}
+
+//Toggles the indoor lights on and off. (The ones not connected to switches anyways.)
+public toggleindoorlights(id,level,cid)
+{
+	if(!cmd_access(id,level,cid,1)) 
+	{
+	return PLUGIN_HANDLED
+	}
+	
+	force_use(id,find_ent_by_tname(id,"toggle_indoor_lights"))
+	client_print(id,print_console,"[MeckVmod] The indoor lights have been toggled on/off.")
+	return PLUGIN_HANDLED
+}
+
+//Turns the streetlights on and off.
+public toggleoutdoorlights(id,level,cid)
+{
+	if(!cmd_access(id,level,cid,1)) 
+	{
+	return PLUGIN_HANDLED
+	}
+	
+	force_use(id,find_ent_by_tname(-1,"toggle_outdoor_lights"))
+	
+	if (outdoorlightstate == 1)	//toggles the state of the lights.
+	{
+		outdoorlightstate = 0
+		client_print(id,print_console,"[MeckVmod] The street lights have been turned off.")
+	}
+	else
+	{
+		outdoorlightstate = 1
+		client_print(id,print_console,"[MeckVmod] The street lights have been turned on.")
+	}
+	
+	return PLUGIN_HANDLED
+}
+
+//Toggles the door "control_rain" to stop the rain, and toggles the rain sound.
+public togglerain(id,level,cid)
+{
+	if(!cmd_access(id,level,cid,1)) 
+	{
+	return PLUGIN_HANDLED
+	}
+
+	force_use(id,find_ent_by_tname(-1,"control_rain"))	//Set lip of rain Max of 100
+	force_use(id,find_ent_by_tname(-1, "rain_snd"))	
+	
+	client_print(id, print_console,"[MeckVmod] The rain has been toggled off/on.")
+	
+	return PLUGIN_HANDLED
+}
+
+//Sets the unnamed lights in the map a certain brightness, A-Darkest
+public setlights(id,level,cid)
+{
+	if(!cmd_access(id,level,cid,1)) 
+	{
+	return PLUGIN_HANDLED
+	}
+	
+	new arg[1]
+	read_argv(1,arg,1)
+
+	set_lights(arg)
+	
+	lightstate[0] = arg[0]
+	
+	client_print(id,print_console,"[MeckVmod] Lights are now set to %s",arg[0])
+
+	
+	return PLUGIN_HANDLED
+  }
+ 
+ //Toggles the gl_fog 1/0.
+public togglefog(id,level,cid)
+{
+	if(!cmd_access(id,level,cid,1)) 
+	{
+	return PLUGIN_HANDLED
+	}
+	
+	if ( currentfog == 0 ) 
+	{
+		client_cmd(0,"gl_fog 1")
+		currentfog = 1
+	}
+	else  
+	{
+		client_cmd(0,"gl_fog 0")
+		currentfog = 0
+	}
+
+	client_print(id,print_console,"[MeckVmod] Fog is now set to %i!",currentfog)
+	return PLUGIN_HANDLED
+}
+
+//Sets the Fog, streetlights, and unnamed lights to simulate day or night.
+public toggleday(id,level,cid)
+{
+	if(!cmd_access(id,level,cid,1)) 
+	{
+	return PLUGIN_HANDLED
+	}
+	
+	if (currenttime == 0)
+	{
+		currenttime = 1
+		
+		//Sets the fog
+		currentfog = 0
+		client_cmd(0,"gl_fog 0")
+		client_print(id,print_console,"[MeckVmod] Fog is now set to 0.")
+		
+		//Sets the lights to A(off)
+		set_lights("a")
+		lightstate[0] = 'a'
+		client_print(id,print_console,"[MeckVmod] Lights are now set to A.")
+		
+		//Sets the outdoor lights.
+		if(outdoorlightstate == 0)
+		{
+			force_use(id,find_ent_by_tname(-1,"toggle_outdoor_lights"))
+			
+			outdoorlightstate = 1
+		}
+		client_print(id,print_console,"[MeckVmod] MecklenburgV has switched to 'Nightmode'.")
+	}
+	else
+	{
+		currenttime = 0
+		
+		//Sets the fog
+		currentfog = 1
+		client_cmd(0,"gl_fog 1")
+		client_print(id,print_console,"[MeckVmod] Fog is now set to 1.")
+		
+		//Sets the lights to Z
+		set_lights("m")
+		lightstate[0] = 'm'
+		client_print(id,print_console,"[MeckVmod] Lights are now set to M.")
+		
+		//Sets the outdoor lights.
+		if(outdoorlightstate == 1)
+		{
+			force_use(id,find_ent_by_tname(-1,"toggle_outdoor_lights"))
+		}
+		client_print(id,print_console,"[MeckVmod] MecklenburgV has switched to 'Daymode'.")
+	}
+	return PLUGIN_HANDLED
+}
+
+	
+	/*
+	<23:59:43> "Kilroy Higgins"
+: Steven's Storage -305 -1157 -411
+<23:59:49> "Kilroy Higgins"
+: Term's -131 -1652 -411
+<23:59:58> "Kilroy Higgins"
+: McDonalds -202 -1569 -215
+<00:00:09> "Kilroy Higgins"
+: MCMD1 1387 -1183 -379
+<00:00:17> "Kilroy Higgins"
+: MCMD2 1300 -1183 -379
+<00:00:36> "Kilroy Higgins"
+: Bar -28 -544 -411
+<00:00:55> "Kilroy Higgins"
+: bank right 583 888 -347
+<00:01:01> "Kilroy Higgins"
+: bank middle 484 888 -347
+<00:01:08> "Kilroy Higgins"
+: bank left 393 888 -344
+<00:01:15> "Kilroy Higgins"
+: vlado's -79 495 -379
+<00:01:23> "Kilroy Higgins"
+: Cinro's -2360 1029 -403
+<00:01:34> "Kilroy Higgins"
+: Gunshop -2473 647 -507
+<00:01:47> "Kilroy Higgins"
+: hotel -832 -672 -395
+<00:01:59> "Kilroy Higgins"
+: wagnaria -2368 -1218 -411
+<00:02:08> "Kilroy Higgins"
+: Harbu sign -1053 626 507
+*/