Lanser651
Дебютант
Доброго времени суток. У меня такая проблема. Вообщем бронь дается все хорошо, но получает дамаг она в себя странно, то есть она получает все хорошо, но после того как ее сбили, через секунду она опять востанавливается, вот код. Пол ночи лазил, так и не понял, что за проблема. + дам, кто поможет)
PHP:
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart) {
if(InAntiDmZone{playerid}) {
AnimClear[playerid] = 4;
ApplyAnimation(playerid, "FAT","IDLE_tired", 4.1, 1, 1, 1, 1, 0);
if(Rac::IsPlayerControllable(playerid)) {
SetTimerEx(""#Rac::"TogglePlayerControllable", 7000, false, "ii", playerid, 1);
}
} else {
static olddamage[MAX_PLAYERS];
new currdamage = GetTickCount();
if((currdamage - olddamage[playerid]) >= 900) {
olddamage[playerid] = currdamage;
switch(weaponid) {
case 33, 34 : {
if(bodypart == BODY_PART_HEAD) {
SetPlayerDamage(playerid, damagedid, Float:INFINITY, weaponid);
}
}
default : {
SetPlayerDamage(playerid, damagedid, amount, weaponid);
}
}
}
}
}
stock SetPlayerDamage(playerid, damagedid, Float:damage, reason) {
new Float:health, Float:armour;
GetPlayerHealth(damagedid, health);
GetPlayerArmour(damagedid, armour);
if(armour > 0) {
armour -= damage;
if(armour < 0) {
health -= -armour;
if(health < 1) {
SyncInfo[damagedid][sKillerID] = playerid;
SyncInfo[damagedid][sReasonID] = reason;
}
}
Rac::SetPlayerArmour(damagedid, armour);
Rac::SetPlayerHealth(damagedid, health);
}
else if(health > 0) {
health -= damage;
if(health < 1) {
SyncInfo[damagedid][sKillerID] = playerid;
SyncInfo[damagedid][sReasonID] = reason;
}
Rac::SetPlayerArmour(damagedid, armour);
Rac::SetPlayerHealth(damagedid, health);
}
return 1;
}
