as vezes quando morre o jogador nгo executa a funзгo onplayerdeath, mas so acontece quando morre pra algum jogador, o problema acho que estб nesse codigo.
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
Код:
// /DM
DMSystem[playerid][damagedid]=true;
format(string, sizeof(string), "ID=%d", playerid);
SetPVarInt(damagedid, string, gettime()+600);
SetPVarInt(damagedid, "VarDano", gettime()+180);
//------------- Retirar Vida/Colete ------------------
PlayerPlaySound(damagedid, 17804, 0.0, 0.0, 0.0);
PlayerPlaySound(playerid, 17802, 0.0, 0.0, 0.0);
new
Float:Life,
Float:Coleete,
Float:Dano
;
GetPlayerArmour(damagedid, Coleete);
GetPlayerHealth(damagedid, Life);
if(Coleete > 0)
{
if(amount > Coleete)
{
Dano = amount - Coleete;
Life = Life - Dano;
if(Life <= 0)
{
static Float:X, Float:Y, Float:Z, Float:R, str[180];
GetPlayerPos(damagedid, X, Y, Z);
GetPlayerFacingAngle(damagedid, R);
switch(bodypart)
{
case 3:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro no Peito", PlayerName(damagedid), PlayerName(playerid));
case 4:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro na Virilha", PlayerName(damagedid), PlayerName(playerid));
case 5:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro no Braзo esquerdo", PlayerName(damagedid), PlayerName(playerid));
case 6:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro no Braзo direito", PlayerName(damagedid), PlayerName(playerid));
case 7:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro na Perna esquerda", PlayerName(damagedid), PlayerName(playerid));
case 8:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro na Perna direita", PlayerName(damagedid), PlayerName(playerid));
case 9:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro na Cabeзa", PlayerName(damagedid), PlayerName(playerid));
}
CriarCadaver(X, Y, Z, R, str, GetPlayerSkin(damagedid), GetPlayerVirtualWorld(damagedid), GetPlayerInterior(damagedid));
OnPlayerDeath(damagedid, playerid, weaponid);
pmorto[damagedid] = true;
}
SetPlayerArmour(damagedid, 0.0);
SetPlayerHealth(damagedid, Life);
}
else
{
Coleete = Coleete - amount;
SetPlayerArmour(damagedid, Coleete);
}
}
else if(Coleete < 1)
{
Life = Life - amount;
if(Life <= 0)
{
static Float:X, Float:Y, Float:Z, Float:R, str[180];
GetPlayerPos(damagedid, X, Y, Z);
GetPlayerFacingAngle(damagedid, R);
switch(bodypart)
{
case 3:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro no Peito", PlayerName(damagedid), PlayerName(playerid));
case 4:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro na Virilha", PlayerName(damagedid), PlayerName(playerid));
case 5:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro no Braзo esquerdo", PlayerName(damagedid), PlayerName(playerid));
case 6:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro no Braзo direito", PlayerName(damagedid), PlayerName(playerid));
case 7:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro na Perna esquerda", PlayerName(damagedid), PlayerName(playerid));
case 8:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro na Perna direita", PlayerName(damagedid), PlayerName(playerid));
case 9:
format(str, sizeof(str), "Corpo de %s\nAssasino: %s\nCausa da morte foi: Tiro na Cabeзa", PlayerName(damagedid), PlayerName(playerid));
}
OnPlayerDeath(damagedid, playerid, weaponid);
pmorto[damagedid] = true;
CriarCadaver(X, Y, Z, R, str, GetPlayerSkin(damagedid), GetPlayerVirtualWorld(damagedid), GetPlayerInterior(damagedid));
}
SetPlayerHealth(damagedid, Life);
}
Vocк poderia remover o OnPlayerGiveDamage e OnPlayerTakeDamage para OnPlayerDamage,