[PROBLEMA] Al morir
#1

Bueno, el problema que tengo con este script consiste en que por ejemplo (NO SIEMPRE), moris.. y spawneas donde habias logueado en vez de ser enviado al Hospital (ACLARACIУN: Si sos matado por armas SI apareces en el hospital, si te moris por el mundo o algo por el estilo apareces en donde logueaste)

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    new string[128];
    new name[MAX_PLAYER_NAME];
    new name2[MAX_PLAYER_NAME];
    new deathreason[20];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(killerid, name2, sizeof(name2));
    if(killerid != INVALID_PLAYER_ID)
    {
        if(reason == 0) { deathreason = "Melee"; }
        else if(reason == 36 || reason == 35 || reason == 40 || reason == 16) { deathreason = "Explosion"; }
        else if(reason == 18 || reason == 37) { deathreason = "Fire"; }
        else if(reason == 51) { deathreason = "Explosion"; }
        else if(reason == 50) { deathreason = "Heli-Kill"; }
        else { GetWeaponName(reason, deathreason, sizeof(deathreason)); }
        format(string, sizeof(string),"[INFO]: %s (%d) ha sido asesinado por %s (%d) - %s", name,playerid,name2,killerid,deathreason);
        SendAdminMessage(COLOR_GREEN, string);
    }
    else
    {
        new text[30];
        if(reason == 51) { text = "Explosion"; }
        else if(reason == 53) { text = "Drowned"; }
        else if(reason == 54) { text = "Collision"; }
        else { text = "Death"; }
        format(string, sizeof(string),"[INFO]: %s (%d) ha sido asesinado por el Servidor. (%s)",name,playerid, text);
        SendAdminMessage(COLOR_GREEN, string);
    }
    new playercash;
    new victimteam = gTeam[playerid];
    new Float:px,Float:py,Float:pz;
    new killerteam = gTeam[killerid];
    ScriptMoneyUpdated[playerid] = 1;
    TextDrawHideForPlayer(playerid, Textdraw39[playerid]);
    TextDrawHideForPlayer(playerid, Textdraw40[playerid]);
    gPlayerSpawned[playerid] = 0;
    if(PlayerInfo[playerid][pAdminDuty] >= 1) { PlayerInfo[playerid][pAdminDuty] = 0; }
    GetPlayerPos(playerid, px, py, pz);

    if (PlayerInfo[killerid][pAchievement9] == 0 && PlayerInfo[killerid][pKills] == 1)
    {
        ShowPlayerDialog(killerid,509,DIALOG_STYLE_MSGBOX,"Logro: Asesino Novato (9)","Felicidades haz desbloqueado el logro 'Asesino Novato' \n Haz Ganado 100$","Okay","Cancelar");
        SafeGivePlayerMoney(killerid,100);
        PlayerInfo[killerid][pAchievement9] = 1;
    }
    if (PlayerInfo[killerid][pAchievement10] == 0 && PlayerInfo[killerid][pKills] == 75)
    {
        ShowPlayerDialog(killerid,510,DIALOG_STYLE_MSGBOX,"Logro: Asesino Serial (10)","Felicidades haz desbloqueado el logro 'Asesino Serial' \n Haz ganado 250$","Okay","Cancelar");
        SafeGivePlayerMoney(killerid,250);
        PlayerInfo[killerid][pAchievement10] = 1;
    }
    if (PlayerInfo[killerid][pAchievement11] == 0 && PlayerInfo[killerid][pKills] == 150)
    {
        ShowPlayerDialog(killerid,511,DIALOG_STYLE_MSGBOX,"Logro: Asesino (11)","Felicidades haz desbloqueado el logro 'Asesino' \n Haz ganado 500$","Okay","Cancelar");
        SafeGivePlayerMoney(killerid,500);
        PlayerInfo[killerid][pAchievement11] = 1;
    }
    if(gPlayerUsingLoopingAnim[playerid])
    {
        gPlayerUsingLoopingAnim[playerid] = 0;
        TextDrawHideForPlayer(playerid,txtAnimHelper);
    }
    if(WantedPoints[playerid] > 0)
    {
        new dstring[128];
        new wanted = WantedPoints[playerid];
        new diecash = 0;
        while(WantedPoints[playerid] > 0)
        {
            diecash += 500;
            WantedPoints[playerid] --;
        }
        format(dstring, sizeof(dstring), "Haz perdido $%d por morir con %d Puntos de busqueda.", diecash, wanted);
        SendClientMessage(playerid, COLOR_YELLOW, dstring);
        SafeGivePlayerMoney(playerid, - diecash);
        PlayerInfo[playerid][pWantedDeaths] += 1;
    }
    if(PlayerOnMission[playerid] > 0)
    {
        GameTextForPlayer(playerid, "~r~Mision fallida.", 5000, 3);
        PlayerOnMission[playerid] = 0;
        PlayerInfo[playerid][pMissionNr] = 0;
    }
    WantedPoints[playerid] = 0;
    WantedLevel[playerid] = 0;
    if(PlayerInfo[playerid][pRegularRank] > 0) { SetPlayerHealth(playerid, 100.0); }
    else { SetPlayerHealth(playerid, 50.0+PlayerInfo[playerid][pSHealth]); }
    MedicBill[playerid] = 1;
    gPlayerSpawned[playerid] = 1;
    SafeTime[playerid] = 60;
    Checked[playerid] = 1;
    PlayerGotSpottedRecently[playerid] = 1;
    SetTimerEx("ResetAcWarn",20000,false, "i", playerid);
    if(killerid != 255)
    {
        if(GetPlayerState(killerid) == 2)
        {
            if(ProxDetectorS(20, killerid, playerid))
            {
                if(!IsPlayerInAnyVehicle(playerid))
                {
                    if(PlayerInfo[killerid][pMember] == 1||PlayerInfo[killerid][pLeader] == 1||PlayerInfo[killerid][pMember] == 2||PlayerInfo[killerid][pLeader] ==2)
                    {
                        SendClientMessage(killerid, COLOR_YELLOW, "Ese fue un drive-by. No abuse de el.");
                        return 1;
                    }
                    SetPlayerCriminal(killerid,255,"Manslaughter");
                    return 1;
                }
            }
        }
    }
    if (reason == 22)
    {
        if (PlayerInfo[killerid][pPistSkill] >= 0 && PlayerInfo[killerid][pPistSkill] <= 1000)
        {
            PlayerInfo[killerid][pPistSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }
    if (reason == 23)
    {
        if (PlayerInfo[killerid][pSilenSkill] >= 0 && PlayerInfo[killerid][pSilenSkill] <= 1000)
        {
            PlayerInfo[killerid][pSilenSkill] += 2;
            SetPlayerSkills(killerid);
        }
        if (PlayerInfo[killerid][pAchievement0] == 0)
        {
            ShowPlayerDialog(killerid,500,DIALOG_STYLE_MSGBOX,"Logro: Asesino Silencioso (0)","Felicitaciones, usted ha alcanzado la Insignia de 'Asesino Silencioso!' \n Usted ganу $ 200 y 50 + de habilidad!","Okay","Cancelar");
            PlayerInfo[killerid][pSilenSkill] += 50;
            SafeGivePlayerMoney(killerid,200);
            PlayerInfo[playerid][pAchievement0] = 0;
        }
    }
    if (reason == 24)
    {
        if (PlayerInfo[killerid][pDesertSkill] >= 0 && PlayerInfo[killerid][pDesertSkill] <= 1000)
        {
            PlayerInfo[killerid][pDesertSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 25)
    {
        if (PlayerInfo[killerid][pShotgSkill] >= 0 && PlayerInfo[killerid][pShotgSkill] <= 1000)
        {
            PlayerInfo[killerid][pShotgSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }
    if (reason == 26)
    {
        if (PlayerInfo[killerid][pSawnSkill] >= 0 && PlayerInfo[killerid][pSawnSkill] <= 800)
        {
            PlayerInfo[killerid][pSawnSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }
    if (reason == 27)
    {
        if (PlayerInfo[killerid][pCombSkill] >= 0 && PlayerInfo[killerid][pCombSkill] <= 1000)
        {
            PlayerInfo[killerid][pCombSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 28 || reason == 32)
    {
        if (PlayerInfo[killerid][pUziSkill] >= 0 && PlayerInfo[killerid][pUziSkill] <= 800)
        {
            PlayerInfo[killerid][pUziSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 29)
    {
        if (PlayerInfo[killerid][pSmgSkill] >= 0 && PlayerInfo[killerid][pSmgSkill] <= 1000)
        {
            PlayerInfo[killerid][pSmgSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 30)
    {
        if (PlayerInfo[killerid][pAkSkill] >= 0 && PlayerInfo[killerid][pAkSkill] <= 1000)
        {
            PlayerInfo[killerid][pAkSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 31)
    {
        if (PlayerInfo[killerid][pM4Skill] >= 0 && PlayerInfo[killerid][pM4Skill] <= 1000)
        {
            PlayerInfo[killerid][pM4Skill] += 2;
            SetPlayerSkills(killerid);
        }
    }


    if (gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
    {
        DisablePlayerCheckpoint(playerid);
        gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
    }
    new caller = Mobile[playerid];
    if(caller != 255)
    {
        if(caller < 255)
        {
            SendClientMessage(caller,  COLOR_GRAD2, "** La lнnea se cortу solo....");
            CellTime[caller] = 0;
            CellTime[playerid] = 0;
            Mobile[caller] = 255;
        }
        Mobile[playerid] = 255;
        CellTime[playerid] = 0;
    }
    ClearCrime(playerid);
    if(GettingCK[playerid] < 999)
    {
        if(IsPlayerConnected(killerid))
        {
            if(OnCK[killerid] < 999)
            {
                new killer[MAX_PLAYER_NAME];
                new dier[MAX_PLAYER_NAME];
                GetPlayerName(playerid, dier, sizeof(dier));
                GetPlayerName(killerid, killer, sizeof(killer));
                format(string, sizeof(string), "* %s ha realizado un CK en usted, tu no podras jugar mas con este Character nunca mas.",killer);
                SendClientMessage(playerid, COLOR_LIGHTRED, string);
                format(string, sizeof(string), "** %s ha realizado un Character Kill en %s **",killer,dier);
                CKLog(string);
                BroadCast(COLOR_LIGHTRED, string);
                PlayerInfo[playerid][pCK] = 1;
                if(GettingCK[playerid] < 999) { GettingCK[playerid] = 999; }
                else if(OnCK[playerid] < 999) { OnCK[playerid] = 999; }
                if(GettingCK[killerid] < 999) { GettingCK[killerid] = 999; }
                else if(OnCK[killerid] < 999) { OnCK[killerid] = 999; }
                KickPlayer[playerid] = 1;
            }
        }
    }
    if(PlayerInfo[playerid][pHeadValue] > 0)
    {
        if(IsPlayerConnected(killerid))
        {
            if(gTeam[killerid] == 10 || PlayerInfo[killerid][pLeader] == 8)
            {
                if(GoChase[killerid] == playerid)
                {
                    //ConsumingMoney[killerid] = 1;
                    new killer[MAX_PLAYER_NAME];
                    GetPlayerName(killerid, killer, sizeof(killer));
                    SafeGivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]);
                    format(string,128,"<< Hitman %s ha cumplido con el contrato de %s y recogio $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]);
                    SendFamilyMessage(8, COLOR_YELLOW, string);
                    PlayerInfo[playerid][pHeadValue] = 0;
                    GotHit[playerid] = 0;
                    GetChased[playerid] = 999;
                    GoChase[killerid] = 999;
                }
            }
        }
    }
    if(victimteam >= 4)
    {
        if(IsPlayerConnected(killerid))
        {
            //new killer[MAX_PLAYER_NAME];
            //GetPlayerName(killerid, killer, sizeof(killer));
            new slice = 100; //$100
            playercash = GetPlayerMoney(playerid);
            if(gTeam[killerid] != 2) { WantedPoints[killerid] += 2; } //+ 2 wanted points
            if(SafeTime[playerid] <= 0)
            {
                if(gTeam[killerid] != gTeam[playerid])
                {
                    if(GetPlayerState(killerid) == 1)
                    {
                        PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 2;
                    }
                    else
                    {
                        PlayerInfo[killerid][pKills]++;
                    }
                    PlayerInfo[playerid][pKills]--;
                }
            }
            /*if (strlen(deathreason) > 0)// patch
            {
                if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || gTeam[killerid] == gTeam[playerid])//med kill criminal
                {
                    format(string, sizeof(string), ".: %s murdered %s. (%s) :.", killer, name, deathreason);
                }
                else
                {
                    format(string, sizeof(string), ".: %s murdered %s. (%s) for $%d :.", killer, name, deathreason, slice);
                }

            }
            else
            {
                if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill || gTeam[killerid] == gTeam[playerid]))
                {
                    format(string, sizeof(string), ".: %s murdered %s :.", killer, name);
                }
                else
                {
                    format(string, sizeof(string), ".: %s murdered %s for $%d :.", killer, name, slice);
                }
            }*/

            if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || (gTeam[killerid] == gTeam[playerid] && gTeam[playerid] != 4))
            {
                slice = 0;
            }
            if (((gTeam[killerid]) != 4) && ((gTeam[killerid]) == gTeam[playerid]))//no team kill
            {
                slice = 0;
            }
            if (playercash > 0)
            {
                SafeGivePlayerMoney(playerid, -slice);
            }
            else
            {
                slice = slice+500;
            }
            //SafeGivePlayerMoney(killerid, slice);
            //GameTextForPlayer(playerid, dmessage, 5000, 2);
            PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0);
            if (((gTeam[killerid]) == 3) && reason != 49)
            {
                SetPlayerCriminal(killerid,255, "First Degree Murder");
            }
            else if (((gTeam[killerid]) == 3) && reason == 49)
            {
                SetPlayerCriminal(killerid,255, "Hit And Run");
            }
        }
    }
    else if (victimteam == 2)
    {
        if(IsPlayerConnected(killerid))
        {
            //new killer[MAX_PLAYER_NAME];
            //GetPlayerName(killerid, killer, sizeof(killer));
            // Cop kill
            PlayerInfo[playerid][pKills]--;
            if (gTeam[killerid] == 2)//cops kill cop
            {
                //format(string,128,".: Oficial %s murdered Oficial %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
                SafeGivePlayerMoney(killerid, -suecost);
                SafeGivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
            }
            else
            {
                //format(string,128,".: %s murdered Oficial %s (%s) :.",killer,name,deathreason);
            }
            if (gTeam[killerid] >= 3)
            {
                WantedPoints[killerid] += 2; //+ 2 wanted points
                if(reason != 49)
                {
                    SetPlayerCriminal(killerid,255, "Asesinato en Primer Grado");
                }
                else if (reason == 49)
                {
                    SetPlayerCriminal(killerid,255, "Golpe y Corre");
                }
            }
            if(gTeam[killerid] >= 5 && SafeTime[playerid] <= 0)
            {
                if(GetPlayerState(killerid) == 1)
                {
                    PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills]+2;
                }
                else
                {
                    PlayerInfo[killerid][pKills]++;
                }
                WantedPoints[killerid]+=2;
            }
            //BroadCast(COLOR_RED, string);
        }
    }
    else if (victimteam == 3)
    {
        if(IsPlayerConnected(killerid))
        {
            //new killer[MAX_PLAYER_NAME];
            //GetPlayerName(killerid, killer, sizeof(killer));
            // Civ kill
            if ((gTeam[killerid]) == 2)//cops kill civ
            {
                if(WantedLevel[playerid] < 1)
                {
                    //format(string,128,".: Oficial %s murdered %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
                    PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
                    SafeGivePlayerMoney(killerid, -suecost);
                    SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill
                }
            }
            else
            {
                //format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
                WantedPoints[killerid] += 2;
            }
            if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason != 49)
            {
                SetPlayerCriminal(killerid,255, "Asesinato en Primer Grado");
            }
            else if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason == 49)
            {
                SetPlayerCriminal(killerid,255, "Golpear y Correr");
            }
            //BroadCast(COLOR_RED, string);
        }
    }
    else if (victimteam == 1)
    {
        if(IsPlayerConnected(killerid))
        {
            //new killer[MAX_PLAYER_NAME];
            //GetPlayerName(killerid, killer, sizeof(killer));
            // Civ kill
            if ((gTeam[killerid]) == 2)//cops kill civ
            {
                //format(string,128,".: Oficial %s murdered Paramedic %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
                SafeGivePlayerMoney(killerid, -suecost);
                SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill
            }
            else if ((gTeam[killerid]) == 1)//med kill civ
            {
                //format(string,128,".: Paramedic %s murdered %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
                SafeGivePlayerMoney(killerid, -suecost);
                SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill
            }
            else
            {
                //format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
            }
            if (((gTeam[killerid]) == 4) && reason != 49)
            {
                SetPlayerCriminal(killerid,255, "Asesinato en Primer Grado");
            }
            else if (((gTeam[killerid]) == 3) && reason == 49)
            {
                SetPlayerCriminal(killerid,255, "Golpe y Corre");
            }
            //BroadCast(COLOR_RED, string);
        }
    }
    if (victimteam >= 3 && WantedPoints[playerid] > 0 && killerteam == 2)
    {
        SetPlayerFree(playerid,killerid, "fue asesinado");
    }
    if (BusrouteEast[playerid][0] != 0 || BusrouteWest[playerid][0] != 0)
    {
        if (BusrouteEast[playerid][0] != 0) BusrouteEnd(playerid, BusrouteEast[playerid][1]);
        else if (BusrouteWest[playerid][0] != 0) BusrouteEnd(playerid, BusrouteWest[playerid][1]);
        else BusrouteEnd(playerid, 0);
    }
    if(FarmerVar[playerid] != 0)
    {
        FarmerVar[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    if(DrugFarmerVar[playerid] != 0)
    {
        DrugFarmerVar[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    if(SmugglerWork[playerid] != 0)
    {
        SmugglerWork[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    killerid = INVALID_PLAYER_ID;
    SetRealMoney(playerid, ScriptMoney[playerid]);
    SetPlayerColor(playerid,0xBBBBBB00);
    SafeResetPlayerWeapons(playerid);
    return 1;
}
Y esto es lo que supuestamente seria el spawn del hospital (animacion de crack, timer y todo)
pawn Код:
if(MedicBill[playerid] == 1 && PlayerInfo[playerid][pJailed] == 0)
            {
                if(PlayerInfo[playerid][pAdminDuty] == 1) return 1;
                if(FirstSpawn[playerid] != 1)
                {
                    SetRealMoney(playerid, ScriptMoney[playerid]);
                    PlayerInfo[playerid][pDeaths] += 1;
                    SetPlayerHealth(playerid, 50.0);
                    SafeSetPlayerInterior(playerid, 3);
                    rand = random(sizeof(gMedicSpawns));
                    SafeSetPlayerPos(playerid, gMedicSpawns[rand][0], gMedicSpawns[rand][1], gMedicSpawns[rand][2]); // Warp the player
                    SetPlayerFacingAngle(playerid, 0);
                    TogglePlayerControllable(playerid, 0);
                    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~Usted necesita descansar ...", 5000, 3);
                    ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
                    if(PlayerInfo[playerid][pRegularRank] == 1)
                    {
                        SetTimerEx("ReleaseFromHospital", 20000, 0, "i", playerid);
                    }
                    else if(PlayerInfo[playerid][pRegularRank] == 2)
                    {
                        SetTimerEx("ReleaseFromHospital", 17500, 0, "i", playerid);
                    }
                    else if(PlayerInfo[playerid][pRegularRank] == 3)
                    {
                        SetTimerEx("ReleaseFromHospital", 15000, 0, "i", playerid);
                    }
                    else if(PlayerInfo[playerid][pAdmin] >= 1)
                    {
                        SetTimerEx("ReleaseFromHospital", 12500, 0, "i", playerid);
                    }
                    else if(PlayerInfo[playerid][pAdmin] >= 4)
                    {
                        SetTimerEx("ReleaseFromHospital", 10000, 0, "i", playerid);
                    }
                    else
                    {
                        SetTimerEx("ReleaseFromHospital", 25000, 0, "i", playerid);
                    }
                    PlayerPlaySound(playerid, 1062, 0.0, 0.0, 0.0);
                    return 1;
                }
            }
            if(JustDied[playerid] == 1)
            {
                if(GetPlayerVirtualWorld(playerid) != 0 || PlayerInfo[playerid][pVirWorld] != 0)
                {
                    SetPlayerVirtualWorld(playerid, 0);
                    PlayerInfo[playerid][pVirWorld] = 0;
                }
                SafeSetPlayerPos(playerid, 1182.5638,-1323.5256,13.5790);
                SetPlayerFacingAngle(playerid, 270.0);
                SafeSetPlayerInterior(playerid,0);
                TogglePlayerControllable(playerid, 1);
                return 1;
            }
La verdad prefiero pedir ayuda para esto, ya que es algo dificil para mi porque no entiendo mucho sobre estas funciones (Callbacks de coordenadas mediante script a script, etc) Gracias de ante mano
Reply
#2

Revivo, preciso ayuda con esto todavia, Saludos!
Reply
#3

Mi razуn es que estas haciendo lo siguiente, si muere por causa de algun user lo que hace es efectuar lo que mencionas, llevarte al hospital y todo eso, pero si mueres por alguna causa propia por lo que seria suicidio, saltar de algo muy alto, o todo que sea causado por uno mismo, no hay ejecuciуn para eso, a lo cual te llevara al spawn normal..

lo que deberнas hacer es lo siguiente, definir asн
de esta forma estas comprobado que si muere por culpa de un user o por suicidio, te mande al hospital


PHP код:
if(killerid != INVALID_PLAYER_ID || killerid == INVALID_PLAYER_ID

tu solo tienes definido que detecte si es matado por alguien, no si es que muere solo por suicidio


Detalles

if(killerid != INVALID_PLAYER_ID (detecta si es que muere asesinado por alguien mбs)
if(killerid == INVALID_PLAYER_ID (detecta si muere por algo relaciando con el suicidio)
Reply
#4

Estuve comprobando y si tenes razуn, pero tu codigo
pawn Код:
if(killerid != INVALID_PLAYER_ID || killerid == INVALID_PLAYER_ID)
No funciona, tira la misma acciуn

Solucionado, despues de ver detenidamente me faltaba:
pawn Код:
MedicBill[playerid] = 1; e else if(killerid == INVALID_PLAYER_ID)
en:
pawn Код:
if(killerid != INVALID_PLAYER_ID)
    {
        if(reason == 0) { deathreason = "Melee"; }
        else if(reason == 36 || reason == 35 || reason == 40 || reason == 16) { deathreason = "Explosion"; }
        else if(reason == 18 || reason == 37) { deathreason = "Fire"; }
        else if(reason == 51) { deathreason = "Explosion"; }
        else if(reason == 50) { deathreason = "Heli-Kill"; }
        else { GetWeaponName(reason, deathreason, sizeof(deathreason)); }
        format(string, sizeof(string),"[INFO]: %s (%d) ha sido asesinado por %s (%d) - %s", name,playerid,name2,killerid,deathreason);
        SendAdminMessage(COLOR_GREEN, string);
    }
    else if(killerid == INVALID_PLAYER_ID)
    {
        new text[30];
        if(reason == 51) { text = "Explosion"; }
        else if(reason == 53) { text = "Drowned"; }
        else if(reason == 54) { text = "Collision"; }
        else { text = "Death"; }
        format(string, sizeof(string),"[INFO]: %s (%d) ha sido asesinado por el Servidor. (%s)",name,playerid, text);
        MedicBill[playerid] = 1;
        SendAdminMessage(COLOR_GREEN, string);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)