OnPlayerDeath Array?
#1

Im getting

[01:25:20] [debug] Run time error 4: "Array index out of bounds"
[01:25:20] [debug] Accessing element at index 65535 past array upper bound 999


pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    TextDrawHideForPlayer(playerid, AnimHelpTD);
    PlayerInfo[playerid][pDeaths] ++, PlayerInfo[killerid][pKills] ++;
    if(killerid != INVALID_PLAYER_ID)
    {
        if(IsBlooding[playerid] != 1)
        {
            if(PlayerInfo[killerid][pMember] == 1 && PlayerInfo[playerid][pWanted] != 0)
            {
                new string[456];
                GameTextForPlayer(killerid, "~R~Fugar prins", 5000, 3);
                new minutes;
                if(PlayerInfo[playerid][pWanted] == 1) { minutes = 5; }
                if(PlayerInfo[playerid][pWanted] == 2) { minutes = 10; }
                if(PlayerInfo[playerid][pWanted] == 3) { minutes = 15; }
                if(PlayerInfo[playerid][pWanted] == 4) { minutes = 20; }
                if(PlayerInfo[playerid][pWanted] == 5) { minutes = 25; }
                if(PlayerInfo[playerid][pWanted] == 6) { minutes = 30; }
                PlayerInfo[playerid][pJailed] = 1;
                PlayerInfo[playerid][pJailTime] = minutes;
                new cash = 900 * PlayerInfo[playerid][pWanted] + random(3000);
                PlayerInfo[playerid][pWanted] = 0;
                SetPlayerWantedLevel(playerid, 0);
                SafeGivePlayerMoney(killerid, 5000);
                SafeGivePlayerMoney(playerid, - 5000);
                GameTextForPlayer(killerid, "~R~Runner killed~N~Bonus ~G~5000$", 2000, 3);
                PlayerTextDrawHide(playerid, DecreaseWanted[playerid]);
                SafeGivePlayerMoney(killerid, cash);
                format(string,sizeof(string),"* Ai fost bгgat la inchisoare din pгcate pentru %d minute", minutes);
                SendClientMessage(playerid, COLOR_LIGHTRED, string);
                new Random = random(sizeof(RandomSpawnsJail));
                SetPlayerPos(playerid, RandomSpawnsJail[Random][0], RandomSpawnsJail[Random][1], RandomSpawnsJail[Random][2]);
                SetPlayerInterior(playerid,6);
                Cuffed[playerid] = 0;
                SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
                PlayerInfo[killerid][fActivity] ++;
                ResetGuns(playerid);
                SetPlayerVirtualWorld(playerid, 0);
                TogglePlayerControllable(playerid, 1);
            }
        }
    }
    if(Ladder1Timer[playerid])
    {
        KillTimer(Ladder1Timer[playerid]);
        KillTimer(Ladder1Timer2[playerid]);
        Laddering[playerid] = 0;
    }
    if(IsWorking[playerid] == 1)
    {
        OpresteMunca(playerid);
    }
    if(dVehicleUsing[playerid] == 1)
    {
        SetPlayerWeatherEx(playerid, worldtimeid);
        SetPlayerTimeEx(playerid,hourtimeid,0);
        KillTimer(dVehTimer[playerid]);
        dVehicleTunned[playerid] = 0;
        dVehicleUsing[playerid] = 0;

        CancelSelectTextDraw(playerid);
        ClockShow(playerid);
        TextDrawHideForPlayer(playerid, DealershipHUD0);
        TextDrawHideForPlayer(playerid, DealershipHUD1);
        TextDrawHideForPlayer(playerid, DealershipHUD2);
        TextDrawHideForPlayer(playerid, DealershipHUD3);
        TextDrawHideForPlayer(playerid, DealershipHUD4);
        TextDrawHideForPlayer(playerid, DealershipHUD5);
        TextDrawHideForPlayer(playerid, DealershipHUD6);
        TextDrawHideForPlayer(playerid, DealershipHUD7);
        TextDrawHideForPlayer(playerid, DealershipHUD8);
        TextDrawHideForPlayer(playerid, DealershipHUD9);
        TextDrawHideForPlayer(playerid, DealershipHUD10);
        TextDrawHideForPlayer(playerid, DealershipHUD11);
        TextDrawHideForPlayer(playerid, DealershipHUD12);
        TextDrawHideForPlayer(playerid, DealershipHUD13);

        PlayerTextDrawHide(playerid, DealershipPD0[playerid]);
        PlayerTextDrawHide(playerid, DealershipPD2[playerid]);
        SetPlayerVirtualWorld(playerid , 0 );
        DestroyVehicle(VehiculDS[playerid]);
    }
    if(IsBlooding[playerid] && IsBlooding[killerid] == 1)
    {
        BloodScore[killerid] ++;
    }

    if(IsHavingBlowjob[playerid] == 1)
    {
        if(IsHavingBlowjobFrom[playerid] == 2)
        {
            SetCameraBehindPlayer(playerid);
            ClearAnimations(playerid);
            ClearActorAnimations(whorenpc2);
            DestroyActor(whorenpc2);
            whorenpc2 = CreateActor(245, 1928.7070,-2111.6855,13.6953,357.9971 );
            whorenpc2busy = 0;
            TogglePlayerControllable(playerid, 1);
            IsHavingBlowjob[playerid] = 0;
            KillTimer(whorenpctimer[playerid]);
            IsHavingBlowjobFrom[playerid] = 0;
        }
        if(IsHavingBlowjobFrom[playerid] == 1)
        {
            SetCameraBehindPlayer(playerid);
            ClearActorAnimations(whorenpc1);
            DestroyActor(whorenpc1);
            whorenpc1 = CreateActor(152, 480.6221,-26.3759,1003.1094,344.5060);
            whorenpc1busy = 0;
            IsHavingBlowjob[playerid] = 0;
            IsHavingBlowjobFrom[playerid] = 0;
            KillTimer(whorenpctimer[playerid]);

        }
        if(IsHavingBlowjobFrom[playerid] == 3)
        {
            SetCameraBehindPlayer(playerid);
            ClearAnimations(playerid);
            ClearActorAnimations(whorenpc3);
            DestroyActor(whorenpc3);
            whorenpc2 = CreateActor(64,107.1006,-1521.7814,7.3448,145.3264);
            whorenpc3busy = 0;
            TogglePlayerControllable(playerid, 1);
            IsHavingBlowjob[playerid] = 0;
            IsHavingBlowjobFrom[playerid] = 0;
            KillTimer(whorenpctimer[playerid]);
        }

    }

    if(IsBuyingSkin[playerid] == 1)
    {
        ClockShow(playerid);
        HideSkinTextdraws(playerid);
        SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
        SetCameraBehindPlayer(playerid);
        SetPlayerVirtualWorld(playerid, 0);
        CancelSelectTextDraw(playerid);
        IsBuyingSkin[playerid] = 0;
    }
    if(IsUsingAmmo[playerid] == 1)
    {
        ClockShow(playerid);
        IsUsingAmmo[playerid] = 0;
        CancelSelectTextDraw(playerid);
        HideGunAmmoTextdraws(playerid);
        SetCameraBehindPlayer(playerid);
        TogglePlayerControllable(playerid, 1);
        DestroyPlayerObject(playerid, arma1[playerid]);
        DestroyPlayerObject(playerid, arma2[playerid]);
        DestroyPlayerObject(playerid, arma3[playerid]);
        DestroyPlayerObject(playerid, arma4[playerid]);
        DestroyPlayerObject(playerid, arma5[playerid]);
        DestroyPlayerObject(playerid, arma6[playerid]);
        DestroyPlayerObject(playerid, arma7[playerid]);
        DestroyPlayerObject(playerid, arma8[playerid]);
        DestroyPlayerObject(playerid, arma9[playerid]);
        DestroyPlayerObject(playerid, arma10[playerid]);
        DestroyPlayerObject(playerid, arma11[playerid]);
        DestroyPlayerObject(playerid, arma12[playerid]);
        DestroyPlayerObject(playerid, arma13[playerid]);
    }


    new caller = Mobile[playerid];
    if(caller != -1)
    {
        SendClientMessage(caller,  COLOR_GRAD2, "   The line just went dead....");
        CellTime[caller] = 0;
        CellTime[playerid] = 0;
        Mobile[caller] = -1;
        Mobile[playerid] = -1;
        CellTime[playerid] = 0;
    }
    killerid = INVALID_PLAYER_ID;
    return 1;
}
Reply
#2

You should do it like this:
PHP код:
public OnPlayerDeath(playeridkilleridreason)
{
    
TextDrawHideForPlayer(playeridAnimHelpTD);
    
PlayerInfo[playerid][pDeaths] ++;
    if(
killerid != INVALID_PLAYER_ID)
    {
        
PlayerInfo[killerid][pKills] ++;
        if(
IsBlooding[playerid] != 1)
        {
            if(
PlayerInfo[killerid][pMember] == && PlayerInfo[playerid][pWanted] != 0)
            {
                new 
string[456];
                
GameTextForPlayer(killerid"~R~Fugar prins"50003);
                new 
minutes;
                if(
PlayerInfo[playerid][pWanted] == 1) { minutes 5; }
                if(
PlayerInfo[playerid][pWanted] == 2) { minutes 10; }
                if(
PlayerInfo[playerid][pWanted] == 3) { minutes 15; }
                if(
PlayerInfo[playerid][pWanted] == 4) { minutes 20; }
                if(
PlayerInfo[playerid][pWanted] == 5) { minutes 25; }
                if(
PlayerInfo[playerid][pWanted] == 6) { minutes 30; }
                
PlayerInfo[playerid][pJailed] = 1;
                
PlayerInfo[playerid][pJailTime] = minutes;
                new 
cash 900 PlayerInfo[playerid][pWanted] + random(3000);
                
PlayerInfo[playerid][pWanted] = 0;
                
SetPlayerWantedLevel(playerid0);
                
SafeGivePlayerMoney(killerid5000);
                
SafeGivePlayerMoney(playerid, - 5000);
                
GameTextForPlayer(killerid"~R~Runner killed~N~Bonus ~G~5000$"20003);
                
PlayerTextDrawHide(playeridDecreaseWanted[playerid]);
                
SafeGivePlayerMoney(killeridcash);
                
format(string,sizeof(string),"* Ai fost bгgat la inchisoare din pгcate pentru %d minute"minutes);
                
SendClientMessage(playeridCOLOR_LIGHTREDstring);
                new 
Random random(sizeof(RandomSpawnsJail));
                
SetPlayerPos(playeridRandomSpawnsJail[Random][0], RandomSpawnsJail[Random][1], RandomSpawnsJail[Random][2]);
                
SetPlayerInterior(playerid,6);
                
Cuffed[playerid] = 0;
                
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
                
PlayerInfo[killerid][fActivity] ++;
                
ResetGuns(playerid);
                
SetPlayerVirtualWorld(playerid0);
                
TogglePlayerControllable(playerid1);
            }
        }
        if(
IsBlooding[playerid] && IsBlooding[killerid] == 1)
        {
            
BloodScore[killerid] ++;
        }
    }
    if(
Ladder1Timer[playerid])
    {
        
KillTimer(Ladder1Timer[playerid]);
        
KillTimer(Ladder1Timer2[playerid]);
        
Laddering[playerid] = 0;
    }
    if(
IsWorking[playerid] == 1)
    {
        
OpresteMunca(playerid);
    }
    if(
dVehicleUsing[playerid] == 1)
    {
        
SetPlayerWeatherEx(playeridworldtimeid);
        
SetPlayerTimeEx(playerid,hourtimeid,0);
        
KillTimer(dVehTimer[playerid]);
        
dVehicleTunned[playerid] = 0;
        
dVehicleUsing[playerid] = 0;
        
CancelSelectTextDraw(playerid);
        
ClockShow(playerid);
        
TextDrawHideForPlayer(playeridDealershipHUD0);
        
TextDrawHideForPlayer(playeridDealershipHUD1);
        
TextDrawHideForPlayer(playeridDealershipHUD2);
        
TextDrawHideForPlayer(playeridDealershipHUD3);
        
TextDrawHideForPlayer(playeridDealershipHUD4);
        
TextDrawHideForPlayer(playeridDealershipHUD5);
        
TextDrawHideForPlayer(playeridDealershipHUD6);
        
TextDrawHideForPlayer(playeridDealershipHUD7);
        
TextDrawHideForPlayer(playeridDealershipHUD8);
        
TextDrawHideForPlayer(playeridDealershipHUD9);
        
TextDrawHideForPlayer(playeridDealershipHUD10);
        
TextDrawHideForPlayer(playeridDealershipHUD11);
        
TextDrawHideForPlayer(playeridDealershipHUD12);
        
TextDrawHideForPlayer(playeridDealershipHUD13);
        
PlayerTextDrawHide(playeridDealershipPD0[playerid]);
        
PlayerTextDrawHide(playeridDealershipPD2[playerid]);
        
SetPlayerVirtualWorld(playerid );
        
DestroyVehicle(VehiculDS[playerid]);
    }
    
    if(
IsHavingBlowjob[playerid] == 1)
    {
        if(
IsHavingBlowjobFrom[playerid] == 2)
        {
            
SetCameraBehindPlayer(playerid);
            
ClearAnimations(playerid);
            
ClearActorAnimations(whorenpc2);
            
DestroyActor(whorenpc2);
            
whorenpc2 CreateActor(2451928.7070,-2111.6855,13.6953,357.9971 );
               
whorenpc2busy 0;
               
TogglePlayerControllable(playerid1);
               
IsHavingBlowjob[playerid] = 0;
               
KillTimer(whorenpctimer[playerid]);
               
IsHavingBlowjobFrom[playerid] = 0;
        }
        if(
IsHavingBlowjobFrom[playerid] == 1)
        {
            
SetCameraBehindPlayer(playerid);
            
ClearActorAnimations(whorenpc1);
            
DestroyActor(whorenpc1);
            
whorenpc1 CreateActor(152480.6221,-26.3759,1003.1094,344.5060);
               
whorenpc1busy 0;
               
IsHavingBlowjob[playerid] = 0;
               
IsHavingBlowjobFrom[playerid] = 0;
               
KillTimer(whorenpctimer[playerid]);
        }
        if(
IsHavingBlowjobFrom[playerid] == 3)
        {
            
SetCameraBehindPlayer(playerid);
            
ClearAnimations(playerid);
            
ClearActorAnimations(whorenpc3);
            
DestroyActor(whorenpc3);
            
whorenpc2 CreateActor(64,107.1006,-1521.7814,7.3448,145.3264);
               
whorenpc3busy 0;
               
TogglePlayerControllable(playerid1);
               
IsHavingBlowjob[playerid] = 0;
               
IsHavingBlowjobFrom[playerid] = 0;
               
KillTimer(whorenpctimer[playerid]);
        }
    }
    if(
IsBuyingSkin[playerid] == 1)
    {
        
ClockShow(playerid);
        
HideSkinTextdraws(playerid);
        
SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
        
SetCameraBehindPlayer(playerid);
        
SetPlayerVirtualWorld(playerid0);
        
CancelSelectTextDraw(playerid);
        
IsBuyingSkin[playerid] = 0;
    }
    if(
IsUsingAmmo[playerid] == 1)
    {
        
ClockShow(playerid);
        
IsUsingAmmo[playerid] = 0;
        
CancelSelectTextDraw(playerid);
        
HideGunAmmoTextdraws(playerid);
        
SetCameraBehindPlayer(playerid);
        
TogglePlayerControllable(playerid1);
        
DestroyPlayerObject(playeridarma1[playerid]);
        
DestroyPlayerObject(playeridarma2[playerid]);
        
DestroyPlayerObject(playeridarma3[playerid]);
        
DestroyPlayerObject(playeridarma4[playerid]);
        
DestroyPlayerObject(playeridarma5[playerid]);
        
DestroyPlayerObject(playeridarma6[playerid]);
        
DestroyPlayerObject(playeridarma7[playerid]);
        
DestroyPlayerObject(playeridarma8[playerid]);
        
DestroyPlayerObject(playeridarma9[playerid]);
        
DestroyPlayerObject(playeridarma10[playerid]);
        
DestroyPlayerObject(playeridarma11[playerid]);
        
DestroyPlayerObject(playeridarma12[playerid]);
        
DestroyPlayerObject(playeridarma13[playerid]);
    }
    new 
caller Mobile[playerid];
    if(
caller != -1)
    {
        
SendClientMessage(caller,  COLOR_GRAD2"    The line just went dead....");
        
CellTime[caller] = 0;
        
CellTime[playerid] = 0;
        
Mobile[caller] = -1;
        
Mobile[playerid] = -1;
        
CellTime[playerid] = 0;
    }
    return 
1;

Reply
#3

The following has nothing to do with the problem, but it just triggers my "awful code" sensor;
PHP код:
new minutes;
                if(
PlayerInfo[playerid][pWanted] == 1) { minutes 5; }
                if(
PlayerInfo[playerid][pWanted] == 2) { minutes 10; }
                if(
PlayerInfo[playerid][pWanted] == 3) { minutes 15; }
                if(
PlayerInfo[playerid][pWanted] == 4) { minutes 20; }
                if(
PlayerInfo[playerid][pWanted] == 5) { minutes 25; }
                if(
PlayerInfo[playerid][pWanted] == 6) { minutes 30; } 
Have you considered simply doing this?
PHP код:
 new minutes PlayerInfo[playerid][pWanted] * 5
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)