Advertisement
Day_Mito

HAChange

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