plugins/testsuite/outputtest.sp
author Asher Baker <asherkin@gmail.com>
Thu Apr 26 16:58:18 2012 +0100 (2012-04-26)
changeset 3488 bee90c8ef6c3
parent 1960 ced75e700d7e
permissions -rw-r--r--
Fixed client serials not being unique on Windows (bug 5285, r=psychonic).
     1 #include <sourcemod>
     2 #include <sdktools>
     3 
     4 public Plugin:myinfo = 
     5 {
     6 	name = "Entity Output Hook Testing",
     7 	author = "AlliedModders LLC",
     8 	description = "Test suite for Entity Output Hooks",
     9 	version = "1.0.0.0",
    10 	url = "http://www.sourcemod.net/"
    11 };
    12 
    13 public OnPluginStart()
    14 {
    15 	HookEntityOutput("point_spotlight", "OnLightOn", OutputHook);
    16 	
    17 	HookEntityOutput("func_door", "OnOpen", OutputHook);
    18 	HookEntityOutput("func_door_rotating", "OnOpen", OutputHook);
    19 	HookEntityOutput("func_door", "OnClose", OutputHook);
    20 	HookEntityOutput("func_door_rotating", "OnClose", OutputHook);
    21 }
    22 
    23 public OutputHook(const String:name[], caller, activator, Float:delay)
    24 {
    25 	LogMessage("[ENTOUTPUT] %s", name);
    26 }
    27 
    28 public OnMapStart()
    29 {
    30 	new ent = FindEntityByClassname(-1, "point_spotlight");
    31 	
    32 	if (ent == -1)
    33 	{
    34 		LogError("Could not find a point_spotlight");
    35 		ent = CreateEntityByName("point_spotlight");
    36 		DispatchSpawn(ent);
    37 	}
    38 
    39 	HookSingleEntityOutput(ent, "OnLightOn", OutputHook, true);
    40 	HookSingleEntityOutput(ent, "OnLightOff", OutputHook, true);
    41 	
    42 	AcceptEntityInput(ent, "LightOff", ent, ent);
    43 	AcceptEntityInput(ent, "LightOn", ent, ent);
    44 	
    45 	AcceptEntityInput(ent, "LightOff", ent, ent);
    46 	AcceptEntityInput(ent, "LightOn", ent, ent);
    47 	
    48 	HookSingleEntityOutput(ent, "OnLightOn", OutputHook, false);
    49 	HookSingleEntityOutput(ent, "OnLightOff", OutputHook, false);
    50 	
    51 	AcceptEntityInput(ent, "LightOff", ent, ent);
    52 	AcceptEntityInput(ent, "LightOn", ent, ent);
    53 	AcceptEntityInput(ent, "LightOff", ent, ent);
    54 	AcceptEntityInput(ent, "LightOn", ent, ent);
    55 	
    56 	//Comment these out (and reload the plugin heaps) to test for leaks on plugin unload
    57 	UnhookSingleEntityOutput(ent, "OnLightOn", OutputHook);
    58 	UnhookSingleEntityOutput(ent, "OnLightOff", OutputHook);
    59 }