Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*----------------------------------------------------------------------------*\
- =======================================
- HAChange
- =======================================
- Version 1.0 En
- Description:
- Adds Callbacks OnPlayerHealthChange and OnPlayerArmourChange.
- Also fix GetPlayerHealth and GetPlayerArmour, to get most to 255.
- Credits:
- Dayvison - Creation of the include
- PT - Tip on OnPllayerTakeDamage
- Callbacks:
- OnPlayerHealthChange(playerid, newhealth, oldhealth);
- OnPlayerArmourChange(playerid, newarmour, oldarmour);
- Configurations
- #define FixGetPlayerArmour to enable fix in GetPlayerArmour, to get most to 255.
- #define FixGetPlayerHealth to enable fix in GetPlayerHealth, to get most to 255.
- \*----------------------------------------------------------------------------*/
- #tryinclude <a_samp>
- new Float:PlayerHealth[MAX_PLAYERS];
- new Float:PlayerArmour[MAX_PLAYERS];
- #define FixGetPlayerArmour
- #define FixGetPlayerHealth
- public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
- {
- if(PlayerArmour[playerid])
- {
- #if defined FixGetPlayerArmour
- new Float:NewArmour = PlayerArmour[playerid] - amount;
- CallLocalFunction("OnPlayerArmourChange", "dff", playerid,NewArmour,PlayerArmour[playerid]);
- PlayerArmour[playerid] = NewArmour;
- #else
- new Float:NewArmour;
- GetPlayerArmour(playerid,NewArmour);
- CallLocalFunction("OnPlayerArmourChange", "dff", playerid,NewArmour,PlayerArmour[playerid]);
- PlayerArmour[playerid] = NewArmour;
- #endif
- }
- else
- {
- #if defined FixGetPlayerHealth
- new Float:NewHealth = PlayerHealth[playerid] - amount;
- CallLocalFunction("OnPlayerHealthChange", "dff", playerid,NewHealth,PlayerHealth[playerid]);
- PlayerHealth[playerid] = NewHealth;
- #else
- new Float:NewHealth;
- GetPlayerHealth(playerid,NewHealth);
- CallLocalFunction("OnPlayerHealthChange", "dff", playerid,NewHealth,PlayerHealth[playerid]);
- PlayerHealth[playerid] = NewHealth;
- #endif
- }
- #if defined HAChange_OnPlayerTakeDamage
- return HAChange_OnPlayerTakeDamage(playerid, issuerid, amount, weaponid, bodypart);
- #else
- return true;
- #endif
- }
- forward OnPlayerArmourChange(playerid, newarmour, oldarmour);
- forward OnPlayerArmourChange(playerid, newarmour, oldarmour);
- stock HAChange_SetPlayerHealth(playerid,Float:health)
- {
- CallLocalFunction("OnPlayerHealthChange", "dff", playerid,health,PlayerHealth);
- PlayerHealth[playerid] = health;
- return SetPlayerHealth(playerid,health);
- }
- stock HAChange_GetPlayerHealth(playerid,&Float:health)
- {
- if(playerid == INVALID_PLAYER_ID || !IsPlayerConnected(playerid)) return false;
- #if defined FixGetPlayerHealth
- new Float:NewHealth;
- GetPlayerHealth(playerid,NewHealth);
- health = (NewHealth != PlayerHealth[playerid]) ? PlayerHealth[playerid] : NewHealth;
- #else
- GetPlayerHealth(playerid,health);
- #endif
- return true;
- }
- stock HAChange_SetPlayerArmour(playerid,Float:armour)
- {
- CallLocalFunction("OnPlayerArmourChange", "dff", playerid,armour,PlayerArmour);
- PlayerArmour[playerid] = armour;
- return SetPlayerArmour(playerid,armour);
- }
- stock HAChange_GetPlayerArmour(playerid,&Float:armour)
- {
- if(playerid == INVALID_PLAYER_ID || !IsPlayerConnected(playerid)) return false;
- #if defined FixGetPlayerArmour
- new Float:NewArmour;
- GetPlayerArmour(playerid,NewArmour);
- armour = (NewArmour != PlayerArmour[playerid]) ? PlayerArmour[playerid] : NewArmour;
- #else
- GetPlayerHealth(playerid,armour);
- #endif
- return true;
- }
- // Hook callback OnPlayerTakeDamage
- #if defined _ALS_OnPlayerTakeDamage
- #undef OnPlayerTakeDamage
- #else
- #define _ALS_OnPlayerTakeDamage
- #endif
- #define OnPlayerTakeDamage HAChange_OnPlayerTakeDamage
- #if defined HAChange_OnPlayerTakeDamage
- forward HAChange_OnPlayerTakeDamage(playerid,issuerid,Float:amount,weaponid,bodypart);
- #endif
- // Hook functions SetPlayerHealth
- #if defined _ALS_SetPlayerHealth
- #undef SetPlayerHealth
- #else
- #define _ALS_SetPlayerHealth
- #endif
- #define SetPlayerHealth HAChange_SetPlayerHealth
- // Hook functions GetPlayerHealth
- #if defined _ALS_GetPlayerHealth
- #undef GetPlayerHealth
- #else
- #define _ALS_GetPlayerHealth
- #endif
- #define GetPlayerHealth HAChange_GetPlayerHealth
- // Hook functions SetPlayerArmour
- #if defined _ALS_SetPlayerArmour
- #undef SetPlayerArmour
- #else
- #define _ALS_SetPlayerArmour
- #endif
- #define SetPlayerArmour HAChange_SetPlayerArmour
- // Hook functions GetPlayerArmour
- #if defined _ALS_GetPlayerArmour
- #undef GetPlayerArmour
- #else
- #define _ALS_GetPlayerArmour
- #endif
- #define GetPlayerArmour HAChange_GetPlayerArmour
Advertisement
Add Comment
Please, Sign In to add comment