SA-MP Forums Archive
[Ayuda] Bug en 'OnPlayerDeath'. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Ayuda] Bug en 'OnPlayerDeath'. (/showthread.php?tid=475775)



[Ayuda] Bug en 'OnPlayerDeath'. - Swedky - 14.11.2013

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.


Respuesta: [Ayuda] Bug en 'OnPlayerDeath'. - Adoniiz - 14.11.2013

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н


Respuesta: [Ayuda] Bug en 'OnPlayerDeath'. - Parka - 14.11.2013

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

porque no lo hiciste similar al de abajo?



Respuesta: [Ayuda] Bug en 'OnPlayerDeath'. - OTACON - 14.11.2013

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..


Respuesta: [Ayuda] Bug en 'OnPlayerDeath'. - Swedky - 15.11.2013

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.