[Ayuda] Bug en 'OnPlayerDeath'.
#1

Bien, estaba re-comenzando a hacer mi GM ya que perdн todo lo otro en la anterior PC.

Bueno, estaba testeando '
OnPlayerDeath', pero es como que no es llamado.
Digo esto ya que tiene que aparecer un mensaje diciendo:
*** El Humano %s [%d] ha sido Infectado. Pero dicho mensaje no aparece.

Esto es lo que tengo en la callback:



pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    SendDeathMessage(killerid, playerid, GetPlayerWeapon(killerid));
   
// Esta 'if' es la que no funciona, todo lo otro de la callback sн.
    if(Team[playerid] == HUMANO)
    {
        new string[108];
        SetPlayerColor(playerid, ROJO);
        SetPlayerTeam(playerid, ZOMBIE);
        format(string, sizeof(string), "{FF0000}*** {FFFFFF}El Humano {00FF00}%s [%d] {FFFFFF}ha sido {00FF00}Infectado{FFFFFF}.", GetPlayerNameEx(playerid), playerid);
        SendClientMessageToAll(-1, string);
        Team[playerid] = ZOMBIE;
    }
    if(Team[killerid] == HUMANO && Team[playerid] == ZOMBIE)
    {
        GameTextForPlayer(killerid, "~w~+ 5 score.~n~~r~+ $7500.", 5000, 3);
        SetPlayerScore(killerid, GetPlayerScore(killerid) + 5);
        GivePlayerMoney(killerid, 7500);
    }
    return 1;
}

Saludos.
Reply
#2

verifica bien las variables, no estarбs seteando la variable "Team" a ZOMBIES antes de que se llame dicha callback y por eso la restricciуn no es llamada y verdadera?

no veo nada de malo allн
Reply
#3

if(Team[killerid] == ZOMBIE && Team[playerid] == HUMANO)

porque no lo hiciste similar al de abajo?
Reply
#4

Quote:
Originally Posted by Parka
Посмотреть сообщение
if(Team[killerid] == ZOMBIE && Team[playerid] == HUMANO)

porque no lo hiciste similar al de abajo?
creoke no lo hizo por ke por ke... uno es para HUMANO nada mas y el otro es para ambos (general..
Reply
#5

Adoniiz: Si, estб todo en orden. Ademбs de que si es humano y mata un Zombie llama la if de la callback.

Parka: Y si es humano y muere por caer muy alto, o le explota algo?.


P/D: Lo solucionй; tenнa la callback asн:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    SendDeathMessage(killerid, playerid, GetPlayerWeapon(killerid));
    Team[playerid] = ZOMBIE; // Daba el Equipo Zombie antes de la if, y era por eso que no detectaba que era Humano.

    if(Team[playerid] == HUMANO)
    {
        new string[108];
        SetPlayerColor(playerid, ROJO);
        SetPlayerTeam(playerid, ZOMBIE);
        format(string, sizeof(string), "{FF0000}*** {FFFFFF}El Humano {00FF00}%s [%d] {FFFFFF}ha sido {00FF00}Infectado{FFFFFF}.", GetPlayerNameEx(playerid), playerid);
        SendClientMessageToAll(-1, string);
        Team[playerid] = ZOMBIE;
    }
    if(Team[killerid] == HUMANO && Team[playerid] == ZOMBIE)
    {
        GameTextForPlayer(killerid, "~w~+ 5 score.~n~~r~+ $7500.", 5000, 3);
        SetPlayerScore(killerid, GetPlayerScore(killerid) + 5);
        GivePlayerMoney(killerid, 7500);
    }
    return 1;
}
Arreglй eso, y pensй que habнa reiniciado la consola para que haga efecto :/.

Gracias a todos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)