Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*----------------------------------------------------------------------------*\
- =======================================
- HAChange
- =======================================
- Versão 1.0
- Descricao:
- Adiciona Callbacks OnPlayerHealthChange e OnPlayerArmourChange, também pode fixar GetPlayerHealth e GetPlayerArmour
- Creditos:
- Dayvison - Criação da include.
- PT - Dica sobre OnPllayerTakeDamage
- Callbacks:
- OnPlayerHealthChange(playerid, newhealth, oldhealth);
- OnPlayerArmourChange(playerid, newarmour, oldarmour);
- Configurações
- definindo FixGetPlayerArmour será possivel obter mais que 255 na função GetPlayerArmour
- definindo FixGetPlayerHealth será possivel obter mais que 255 na função GetPlayerHealth
- \*----------------------------------------------------------------------------*/
- #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 função SetPlayerHealth
- #if defined _ALS_SetPlayerHealth
- #undef SetPlayerHealth
- #else
- #define _ALS_SetPlayerHealth
- #endif
- #define SetPlayerHealth HAChange_SetPlayerHealth
- // Hook função GetPlayerHealth
- #if defined _ALS_GetPlayerHealth
- #undef GetPlayerHealth
- #else
- #define _ALS_GetPlayerHealth
- #endif
- #define GetPlayerHealth HAChange_GetPlayerHealth
- // Hook função SetPlayerArmour
- #if defined _ALS_SetPlayerArmour
- #undef SetPlayerArmour
- #else
- #define _ALS_SetPlayerArmour
- #endif
- #define SetPlayerArmour HAChange_SetPlayerArmour
- // Hook função 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
Advertisement