pred@1958: #include pred@1958: #include pred@1958: pred@1958: public Plugin:myinfo = pred@1958: { pred@1958: name = "Entity Output Hook Testing", pred@1958: author = "AlliedModders LLC", pred@1958: description = "Test suite for Entity Output Hooks", pred@1958: version = "1.0.0.0", pred@1958: url = "http://www.sourcemod.net/" pred@1958: }; pred@1958: pred@1958: public OnPluginStart() pred@1958: { pred@1958: HookEntityOutput("point_spotlight", "OnLightOn", OutputHook); pred@1958: pred@1958: HookEntityOutput("func_door", "OnOpen", OutputHook); pred@1958: HookEntityOutput("func_door_rotating", "OnOpen", OutputHook); pred@1958: HookEntityOutput("func_door", "OnClose", OutputHook); pred@1958: HookEntityOutput("func_door_rotating", "OnClose", OutputHook); pred@1958: } pred@1958: pred@1958: public OutputHook(const String:name[], caller, activator, Float:delay) pred@1958: { pred@1958: LogMessage("[ENTOUTPUT] %s", name); pred@1958: } pred@1958: pred@1958: public OnMapStart() pred@1958: { pred@1958: new ent = FindEntityByClassname(-1, "point_spotlight"); pred@1958: pred@1958: if (ent == -1) pred@1958: { pred@1958: LogError("Could not find a point_spotlight"); pred@1958: ent = CreateEntityByName("point_spotlight"); pred@1958: DispatchSpawn(ent); pred@1958: } pred@1958: pred@1958: HookSingleEntityOutput(ent, "OnLightOn", OutputHook, true); pred@1958: HookSingleEntityOutput(ent, "OnLightOff", OutputHook, true); pred@1958: pred@1958: AcceptEntityInput(ent, "LightOff", ent, ent); pred@1958: AcceptEntityInput(ent, "LightOn", ent, ent); pred@1958: pred@1958: AcceptEntityInput(ent, "LightOff", ent, ent); pred@1958: AcceptEntityInput(ent, "LightOn", ent, ent); pred@1958: pred@1958: HookSingleEntityOutput(ent, "OnLightOn", OutputHook, false); pred@1958: HookSingleEntityOutput(ent, "OnLightOff", OutputHook, false); pred@1958: pred@1958: AcceptEntityInput(ent, "LightOff", ent, ent); pred@1958: AcceptEntityInput(ent, "LightOn", ent, ent); pred@1958: AcceptEntityInput(ent, "LightOff", ent, ent); pred@1958: AcceptEntityInput(ent, "LightOn", ent, ent); pred@1958: pred@1958: //Comment these out (and reload the plugin heaps) to test for leaks on plugin unload pred@1960: UnhookSingleEntityOutput(ent, "OnLightOn", OutputHook); pred@1960: UnhookSingleEntityOutput(ent, "OnLightOff", OutputHook); pred@1958: }