DeathChaos25

[L4D2] m_nSequence DHooks Test

Sep 2nd, 2015
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.38 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <dhooks>
  3.  
  4. new Handle:hSequenceSet;
  5.  
  6. public Plugin:myinfo =
  7. {
  8.     name = "L4D2 DHook Test",
  9.     author = "DeathChaos25",
  10.     description = "",
  11.     version = "",
  12.     url = ""
  13. }
  14.  
  15. public OnPluginStart()
  16. {
  17.     new Handle:temp = LoadGameConfigFile("l4d2_direct");
  18.    
  19.     if (temp == INVALID_HANDLE)
  20.     {
  21.         SetFailState("Error: Gamedata not found");
  22.     }
  23.    
  24.     new offset;
  25.     offset = GameConfGetOffset(temp, "CTerrorPlayer::SelectWeightedSequence");
  26.     if (offset == -1)
  27.     {
  28.         CloseHandle(temp);
  29.         LogError("Unable to get offset for CTerrorPlayer::SelectWeightedSequence");
  30.         return;
  31.     }
  32.     hSequenceSet = DHookCreate(offset, HookType_Entity, ReturnType_Void, ThisPointer_CBaseEntity, OnSequenceSet);
  33.     DHookAddParam(hSequenceSet, HookParamType_Int);
  34. }
  35.  
  36. public MRESReturn:OnSequenceSet(client, Handle:hParams)
  37. {
  38.     if (IsSurvivor(client))
  39.     {
  40.         PrintToChat(client, "Current Sequence: #%i", DHookGetParam(hParams, 1));
  41.     }
  42.     return MRES_Ignored;
  43. }
  44.  
  45. bool:IsSurvivor(client)
  46. {
  47.     return (client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2);
  48. }
  49.  
  50. public OnClientPutInServer(client)
  51. {
  52.     if (!IsFakeClient(client))DHookEntity(hSequenceSet, false, client);
  53. }
  54.  
  55. public OnAllPluginsLoaded()
  56. {
  57.     for (new client = 1; client <= MaxClients; client++)
  58.     {
  59.         if (!IsFakeClient(client) && IsSurvivor(client))DHookEntity(hSequenceSet, false, client);
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment