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 = | public Plugin myinfo = | ||||||
| { | { | ||||||
| 	name = "FixPointViewcontrol", | 	name = "FixPointViewcontrol", | ||||||
| 	author = "xen + BotoX", | 	author = "xen", | ||||||
| 	description = "", | 	description = "A plugin to make disabling point_viewcontrol work properly", | ||||||
| 	version = "1.0", | 	version = "1.1", | ||||||
| 	url = "" | 	url = "" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Handle g_hAcceptInput; | Handle g_hAcceptInput; | ||||||
| int g_iAttachedViewControl[MAXPLAYERS + 1] = {INVALID_ENT_REFERENCE, ...}; |  | ||||||
| 
 |  | ||||||
| public void OnPluginStart() | public void OnPluginStart() | ||||||
| { | { | ||||||
| 	HookEvent("player_death", Event_PlayerDeath, EventHookMode_Post); |  | ||||||
| 
 |  | ||||||
| 	// Gamedata. | 	// Gamedata. | ||||||
| 	Handle hConfig = LoadGameConfigFile("sdktools.games"); | 	Handle hConfig = LoadGameConfigFile("sdktools.games"); | ||||||
| 	if (hConfig == INVALID_HANDLE) | 	if (hConfig == INVALID_HANDLE) | ||||||
| @ -42,35 +38,10 @@ public void OnPluginStart() | |||||||
| 	DHookAddParam(g_hAcceptInput, HookParamType_Int); | 	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) | public void OnEntityCreated(int entity, const char[] classname) | ||||||
| { | { | ||||||
| 	if (StrEqual(classname, "point_viewcontrol")) | 	if (StrEqual(classname, "point_viewcontrol")) | ||||||
| 	{ |  | ||||||
| 		DHookEntity(g_hAcceptInput, false, entity); | 		DHookEntity(g_hAcceptInput, false, entity); | ||||||
| 	} |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| public MRESReturn Hook_AcceptInput(int entity, Handle hReturn, Handle hParams) | 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) | 	if (iActivator < 1 || iActivator > MaxClients) | ||||||
| 		return MRES_Ignored; | 		return MRES_Ignored; | ||||||
| 
 | 
 | ||||||
| 	if (StrEqual(sCommand, "Enable", false)) |  | ||||||
| 	{ |  | ||||||
| 		g_iAttachedViewControl[iActivator] = EntIndexToEntRef(entity); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	else if (StrEqual(sCommand, "Disable", false)) | 	else if (StrEqual(sCommand, "Disable", false)) | ||||||
| 	{ |  | ||||||
| 		SetEntPropEnt(entity, Prop_Data, "m_hPlayer", iActivator); | 		SetEntPropEnt(entity, Prop_Data, "m_hPlayer", iActivator); | ||||||
| 		g_iAttachedViewControl[iActivator] = INVALID_ENT_REFERENCE; |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	return MRES_Ignored; | 	return MRES_Ignored; | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user