09.07.2018, 14:13
Код:
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
if(Player[damagedid][OnGunmenu] && Player[damagedid][Playing])
return 1;
if(Player[damagedid][IsAFK])
{
return 1;
}
if(ToggleTargetInfo == true)
{
ShowTargetInfo(playerid, damagedid);
}
// slit throat with a knife
if(amount > 1800 && weaponid == 4 && GetPlayerAnimationIndex(playerid) == 747) {
Player[damagedid][HitBy] = playerid;
Player[damagedid][HitWith] = weaponid;
if(!ServerAntiLag) {
CallLocalFunction("OnPlayerTakeDamage", "ddfdd", damagedid, playerid, amount, weaponid, bodypart);
}
SetHP(damagedid, 0);
if(!ServerAntiLag) return 1;
}
if(ServerAntiLag == false) {
if(Player[damagedid][AntiLag] == false) return 1;
if(playerid != INVALID_PLAYER_ID && Player[playerid][AntiLag] == false) return 1;
} else {
if(Player[playerid][Playing] == true || Player[damagedid][Playing] == true) {
if(Player[damagedid][Team] == Player[playerid][Team]) return 1;
if(Player[playerid][Playing] == true && Player[damagedid][Playing] == false) return 1;
if(Player[damagedid][Team] == REFEREE) return 1;
}
}
if(Player[damagedid][PauseCount] > 2) return 1;
new Float:Health[2], Float:Damage;
GetHP(damagedid, Health[0]);
GetAP(damagedid, Health[1]);
if(Health[0] > 0) {
if(amount > Health[0]) {
Damage = amount - Health[0];
amount = amount - Damage;
}
}
Player[damagedid][HitBy] = playerid;
Player[damagedid][HitWith] = weaponid;
new Float:health, Float:armor;
armor = Health[1];
health = Health[0];
new bool:setArmor = false;
if( armor > 0.0) {
armor = armor - amount;
setArmor = true;
}
if( amount > health && !setArmor ) {
health = 0.0;
} else if( !setArmor ) {
health = health - amount;
} else if( armor < 0.0 ) {
health = health + armor;
armor = 0.0;
}
SetAP(damagedid, armor);
SetHP(damagedid, health);
OnPlayerTakeDamage(damagedid, playerid, amount, -1, bodypart );
return 1;
}

