#include #include //Заполнять самому #define Trigger_Name "trigger_multiple"//класс триггера которая стоят на воротах #define Class_Name "prop_dynamic"//класс мяча #define Target_Name "ball"//имя/таргетнейм мяча public OnPluginStart() { HookEvent("round_start", round_start, EventHookMode_PostNoCopy); } public OnEntityCreated(activator, const String:classname[]) { if (StrEqual(classname, Class_Name)) { decl String:sBuffer[50]; GetEntPropString(activator, Prop_Data, "m_iName", sBuffer, sizeof(sBuffer)); if (StrEqual(sBuffer, Target_Name)) { PrintToChatAll("class name => %s targetname %s", classname, sBuffer); SDKHook(activator, SDKHook_StartTouch, SDKHook_TouchBall); } } } public SDKHook_TouchBall(activator, other) { if (1<= other <= MaxClients && IsClientInGame(other) && IsValidEntity(activator)) { SetEntPropEnt(activator, Prop_Send, "m_hOwnerEntity", other); } } public round_start(Handle:event, const String:name[], bool:dontBroadcast) { new ent = -1; while((ent = FindEntityByClassname(ent, Trigger_Name)) != -1) { HookSingleEntityOutput(ent, "OnTrigger", callback, false); } } public callback(const String:output[], caller, activator, Float:delay) { if(activator > MaxClients && IsValidEntity(activator)) { decl String:sBuffer[50]; GetEntPropString(activator, Prop_Data, "m_iName", sBuffer, sizeof(sBuffer)); if(StrEqual(sBuffer, Target_Name)) { PrintToChatAll("targetname %s", classname); SDKUnhook(activator, SDKHook_StartTouch, SDKHook_TouchBall); new client = GetEntPropEnt(activator, Prop_Send, "m_hOwnerEntity"); PrintToChatAll("client => %d", client); PrintToChatAll("client => %N", client); } } }