Day_Mito

HAChange 1.0 EN Version

Apr 19th, 2015
395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.33 KB | None | 0 0
  1. /*----------------------------------------------------------------------------*\
  2. =======================================
  3. HAChange
  4. =======================================
  5. Version 1.0 En
  6. Description:
  7. Adds Callbacks OnPlayerHealthChange and OnPlayerArmourChange.
  8. Also fix GetPlayerHealth and GetPlayerArmour, to get most to 255.
  9.  
  10. Credits:
  11. Dayvison - Creation of the include
  12. PT - Tip on OnPllayerTakeDamage
  13.  
  14. Callbacks:
  15. OnPlayerHealthChange(playerid, newhealth, oldhealth);
  16. OnPlayerArmourChange(playerid, newarmour, oldarmour);
  17.  
  18. Configurations
  19. #define FixGetPlayerArmour to enable fix in GetPlayerArmour, to get most to 255.
  20. #define FixGetPlayerHealth to enable fix in GetPlayerHealth, to get most to 255.
  21.  
  22. \*----------------------------------------------------------------------------*/
  23. #tryinclude <a_samp>
  24.  
  25. new Float:PlayerHealth[MAX_PLAYERS];
  26. new Float:PlayerArmour[MAX_PLAYERS];
  27.  
  28. #define FixGetPlayerArmour
  29. #define FixGetPlayerHealth
  30.  
  31. public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
  32. {
  33. if(PlayerArmour[playerid])
  34. {
  35. #if defined FixGetPlayerArmour
  36. new Float:NewArmour = PlayerArmour[playerid] - amount;
  37. CallLocalFunction("OnPlayerArmourChange", "dff", playerid,NewArmour,PlayerArmour[playerid]);
  38. PlayerArmour[playerid] = NewArmour;
  39. #else
  40. new Float:NewArmour;
  41. GetPlayerArmour(playerid,NewArmour);
  42. CallLocalFunction("OnPlayerArmourChange", "dff", playerid,NewArmour,PlayerArmour[playerid]);
  43. PlayerArmour[playerid] = NewArmour;
  44. #endif
  45. }
  46. else
  47. {
  48. #if defined FixGetPlayerHealth
  49. new Float:NewHealth = PlayerHealth[playerid] - amount;
  50. CallLocalFunction("OnPlayerHealthChange", "dff", playerid,NewHealth,PlayerHealth[playerid]);
  51. PlayerHealth[playerid] = NewHealth;
  52. #else
  53. new Float:NewHealth;
  54. GetPlayerHealth(playerid,NewHealth);
  55. CallLocalFunction("OnPlayerHealthChange", "dff", playerid,NewHealth,PlayerHealth[playerid]);
  56. PlayerHealth[playerid] = NewHealth;
  57. #endif
  58. }
  59.  
  60. #if defined HAChange_OnPlayerTakeDamage
  61. return HAChange_OnPlayerTakeDamage(playerid, issuerid, amount, weaponid, bodypart);
  62. #else
  63. return true;
  64. #endif
  65. }
  66.  
  67.  
  68. forward OnPlayerArmourChange(playerid, newarmour, oldarmour);
  69. forward OnPlayerArmourChange(playerid, newarmour, oldarmour);
  70.  
  71.  
  72. stock HAChange_SetPlayerHealth(playerid,Float:health)
  73. {
  74. CallLocalFunction("OnPlayerHealthChange", "dff", playerid,health,PlayerHealth);
  75. PlayerHealth[playerid] = health;
  76. return SetPlayerHealth(playerid,health);
  77. }
  78. stock HAChange_GetPlayerHealth(playerid,&Float:health)
  79. {
  80. if(playerid == INVALID_PLAYER_ID || !IsPlayerConnected(playerid)) return false;
  81. #if defined FixGetPlayerHealth
  82. new Float:NewHealth;
  83. GetPlayerHealth(playerid,NewHealth);
  84. health = (NewHealth != PlayerHealth[playerid]) ? PlayerHealth[playerid] : NewHealth;
  85. #else
  86. GetPlayerHealth(playerid,health);
  87. #endif
  88. return true;
  89. }
  90. stock HAChange_SetPlayerArmour(playerid,Float:armour)
  91. {
  92. CallLocalFunction("OnPlayerArmourChange", "dff", playerid,armour,PlayerArmour);
  93. PlayerArmour[playerid] = armour;
  94. return SetPlayerArmour(playerid,armour);
  95. }
  96. stock HAChange_GetPlayerArmour(playerid,&Float:armour)
  97. {
  98. if(playerid == INVALID_PLAYER_ID || !IsPlayerConnected(playerid)) return false;
  99. #if defined FixGetPlayerArmour
  100. new Float:NewArmour;
  101. GetPlayerArmour(playerid,NewArmour);
  102. armour = (NewArmour != PlayerArmour[playerid]) ? PlayerArmour[playerid] : NewArmour;
  103. #else
  104. GetPlayerHealth(playerid,armour);
  105. #endif
  106. return true;
  107. }
  108.  
  109. // Hook callback OnPlayerTakeDamage
  110. #if defined _ALS_OnPlayerTakeDamage
  111. #undef OnPlayerTakeDamage
  112. #else
  113. #define _ALS_OnPlayerTakeDamage
  114. #endif
  115. #define OnPlayerTakeDamage HAChange_OnPlayerTakeDamage
  116. #if defined HAChange_OnPlayerTakeDamage
  117. forward HAChange_OnPlayerTakeDamage(playerid,issuerid,Float:amount,weaponid,bodypart);
  118. #endif
  119.  
  120. // Hook functions SetPlayerHealth
  121. #if defined _ALS_SetPlayerHealth
  122. #undef SetPlayerHealth
  123. #else
  124. #define _ALS_SetPlayerHealth
  125. #endif
  126. #define SetPlayerHealth HAChange_SetPlayerHealth
  127.  
  128. // Hook functions GetPlayerHealth
  129. #if defined _ALS_GetPlayerHealth
  130. #undef GetPlayerHealth
  131. #else
  132. #define _ALS_GetPlayerHealth
  133. #endif
  134. #define GetPlayerHealth HAChange_GetPlayerHealth
  135.  
  136. // Hook functions SetPlayerArmour
  137. #if defined _ALS_SetPlayerArmour
  138. #undef SetPlayerArmour
  139. #else
  140. #define _ALS_SetPlayerArmour
  141. #endif
  142. #define SetPlayerArmour HAChange_SetPlayerArmour
  143.  
  144. // Hook functions GetPlayerArmour
  145. #if defined _ALS_GetPlayerArmour
  146. #undef GetPlayerArmour
  147. #else
  148. #define _ALS_GetPlayerArmour
  149. #endif
  150. #define GetPlayerArmour HAChange_GetPlayerArmour
Advertisement
Add Comment
Please, Sign In to add comment