FixPointViewcontrol: Don't disable point_viewcontrol upon player death or disconnect
There was no need to!
This commit is contained in:
		
							parent
							
								
									e99e69dfff
								
							
						
					
					
						commit
						d4b13021b2
					
				| @ -9,19 +9,15 @@ | ||||
| public Plugin myinfo = | ||||
| { | ||||
| 	name = "FixPointViewcontrol", | ||||
| 	author = "xen + BotoX", | ||||
| 	description = "", | ||||
| 	version = "1.0", | ||||
| 	author = "xen", | ||||
| 	description = "A plugin to make disabling point_viewcontrol work properly", | ||||
| 	version = "1.1", | ||||
| 	url = "" | ||||
| } | ||||
| 
 | ||||
| Handle g_hAcceptInput; | ||||
| int g_iAttachedViewControl[MAXPLAYERS + 1] = {INVALID_ENT_REFERENCE, ...}; | ||||
| 
 | ||||
| public void OnPluginStart() | ||||
| { | ||||
| 	HookEvent("player_death", Event_PlayerDeath, EventHookMode_Post); | ||||
| 
 | ||||
| 	// Gamedata. | ||||
| 	Handle hConfig = LoadGameConfigFile("sdktools.games"); | ||||
| 	if (hConfig == INVALID_HANDLE) | ||||
| @ -42,35 +38,10 @@ public void OnPluginStart() | ||||
| 	DHookAddParam(g_hAcceptInput, HookParamType_Int); | ||||
| } | ||||
| 
 | ||||
| public Action Event_PlayerDeath(Handle hEvent, const char[] szName, bool bDontBroadcast) | ||||
| { | ||||
| 	int client = GetClientOfUserId(GetEventInt(hEvent, "userid")); | ||||
| 	DisableViewControl(client); | ||||
| } | ||||
| 
 | ||||
| public void OnClientDisconnect(int client) | ||||
| { | ||||
| 	DisableViewControl(client); | ||||
| } | ||||
| 
 | ||||
| void DisableViewControl(int client) | ||||
| { | ||||
| 	if (g_iAttachedViewControl[client] == INVALID_ENT_REFERENCE) | ||||
| 		return; | ||||
| 
 | ||||
| 	int entity = EntRefToEntIndex(g_iAttachedViewControl[client]); | ||||
| 	if (entity == INVALID_ENT_REFERENCE) | ||||
| 		return; | ||||
| 
 | ||||
| 	AcceptEntityInput(entity, "Disable", client, entity); | ||||
| } | ||||
| 
 | ||||
| public void OnEntityCreated(int entity, const char[] classname) | ||||
| { | ||||
| 	if (StrEqual(classname, "point_viewcontrol")) | ||||
| 	{ | ||||
| 		DHookEntity(g_hAcceptInput, false, entity); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| public MRESReturn Hook_AcceptInput(int entity, Handle hReturn, Handle hParams) | ||||
| @ -85,16 +56,8 @@ public MRESReturn Hook_AcceptInput(int entity, Handle hReturn, Handle hParams) | ||||
| 	if (iActivator < 1 || iActivator > MaxClients) | ||||
| 		return MRES_Ignored; | ||||
| 
 | ||||
| 	if (StrEqual(sCommand, "Enable", false)) | ||||
| 	{ | ||||
| 		g_iAttachedViewControl[iActivator] = EntIndexToEntRef(entity); | ||||
| 	} | ||||
| 
 | ||||
| 	else if (StrEqual(sCommand, "Disable", false)) | ||||
| 	{ | ||||
| 		SetEntPropEnt(entity, Prop_Data, "m_hPlayer", iActivator); | ||||
| 		g_iAttachedViewControl[iActivator] = INVALID_ENT_REFERENCE; | ||||
| 	} | ||||
| 
 | ||||
| 	return MRES_Ignored; | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user