22.03.2018, 22:09
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)
alguem pode me ajudar?
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); }