OnPlayerStateChange - Server logs problem.
#1

Hello, I've recently got my friend's server so laggy, When we tried to check the logs we found this problem everytime someone logs in, Script compiles successfully, But i'm always seeing that in the logs.

The error:

[06:47:30] [debug] Run time error 4: "Array index out of bounds"
[06:47:30] [debug] Accessing element at index 999 past array upper bound 500
[06:47:30] [debug] Backtrace (most recent call first):
[06:47:30] [debug] #0 00079e4c in OnPlayerStateChange () from mrp15d.amx


Full OnPlayerStateChange:

pawn Код:
[public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate != 2) NOPTrigger[playerid] = 0;
    if(IsPlayerNPC(playerid))
    {
        if(newstate == PLAYER_STATE_SPECTATING)
        {
            TogglePlayerSpectating(playerid, false);
        }
        return 1;
    }
    if(GettingSpectated[playerid] != 999)
    {
        new spectator = GettingSpectated[playerid];
        if(!IsPlayerConnected(spectator))
        {
            GettingSpectated[playerid] = 999;
            Spectate[spectator] = 999;
        }

        if(newstate == PLAYER_STATE_DRIVER && PlayerInfo[spectator][pAdmin] >= 2 || newstate == PLAYER_STATE_PASSENGER && PlayerInfo[spectator][pAdmin] >= 2)
        {
            TogglePlayerSpectating(spectator, true);
            new carid = GetPlayerVehicleID( playerid );
            PlayerSpectateVehicle( spectator, carid );
            SetPVarInt(spectator, "SpecState", newstate);
        }
        else if(newstate == PLAYER_STATE_ONFOOT && PlayerInfo[spectator][pAdmin] >= 2)
        {
            TogglePlayerSpectating(spectator, true);
            PlayerSpectatePlayer( spectator, playerid );
            SetPlayerInterior( spectator, GetPlayerInterior( playerid ) );
            SetPVarInt(spectator, "SpecState", newstate);
        }
    }
    if(newstate == PLAYER_STATE_ONFOOT)
    {
        if(stationidv[GetPlayerVehicleID(playerid)] != 0)
        {
            StopAudioStreamForPlayer(playerid);
            //stationidp[playerid] = 0;
        }


        new spectator = GettingSpectated[playerid];
        if(PlayerInfo[spectator][pAdmin] >= 2) {
            // Preventing possible buffer overflows with the arrays
            TogglePlayerSpectating(spectator, true);
            PlayerSpectatePlayer( spectator, playerid );
            SetPlayerInterior( spectator, GetPlayerInterior( playerid ) );
            SetPVarInt(spectator, "SpecState", newstate);
            SetPlayerInterior( spectator, GetPlayerInterior( playerid ) );
            SetPlayerVirtualWorld( spectator, GetPlayerVirtualWorld( playerid ) );
        }

        if(oldstate == PLAYER_STATE_DRIVER)
        {
            SetPlayerWeaponsEx(playerid);
        }
        else if(oldstate == PLAYER_STATE_PASSENGER) SetPlayerWeaponsEx(playerid);

        if(ConnectedToPC[playerid] == 1337)//mdc
        {
            SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "* You are now logged off the MDC.");
            ConnectedToPC[playerid] = 0;
        }
        if(TransportDuty[playerid] > 0)
        {
            if(TransportDuty[playerid] == 1)
            {
                TaxiDrivers -= 1;
            }
            else if(TransportDuty[playerid] == 2)
            {
                BusDrivers -= 1;
            }
            TransportDuty[playerid] = 0;
            new string[42];
            format(string, sizeof(string), "* You are now off duty and earned $%d.", TransportMoney[playerid]);
            SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string);
            GivePlayerCash(playerid, TransportMoney[playerid]);
            ConsumingMoney[playerid] = 1; TransportValue[playerid] = 0; TransportMoney[playerid] = 0;
            SetPlayerColor(playerid, TEAM_HIT_COLOR);
            TransportTime[playerid] = 0;
            TransportCost[playerid] = 0;
        }
        if(TransportDriver[playerid] < 999)
        {
            new string[128];
            TransportMoney[TransportDriver[playerid]] += TransportCost[playerid];
            format(string, sizeof(string), "~w~The ride cost~n~~r~$%d",TransportCost[playerid]);
            GameTextForPlayer(playerid, string, 5000, 3);
            format(string, sizeof(string), "~w~Passenger left the taxi.~n~~g~Earned $%d",TransportCost[playerid]);
            GameTextForPlayer(TransportDriver[playerid], string, 5000, 3);
            GivePlayerCash(playerid, -TransportCost[playerid]);

            new ip[32], ipex[32];
            GetPlayerIp(playerid, ip, sizeof(ip));
            GetPlayerIp(TransportDriver[playerid], ipex, sizeof(ipex));
            TaxiWarn[playerid][TransportDriver[playerid]] += TransportCost[playerid];
            if(TaxiWarn[playerid][TransportDriver[playerid]] >= 10000)
            {
                format(string, sizeof(string), "%s (IP:%s) has taxied %s (IP:%s) $%d in this session.", GetPlayerNameEx(playerid), ip, GetPlayerNameEx(TransportDriver[playerid]), ipex, TaxiWarn[playerid][TransportDriver[playerid]]);
                Log("logs/pay.log", string);
                ABroadCast(COLOR_YELLOW, string, 2);
            }
            TransportTime[TransportDriver[playerid]] = 0;
            TransportCost[TransportDriver[playerid]] = 0;
            TransportCost[playerid] = 0;
            TransportTime[playerid] = 0;
            TransportDriver[playerid] = 999;
        }
        TelePos[playerid][0] = 0.0;
        TelePos[playerid][1] = 0.0;
    }
    if(newstate == PLAYER_STATE_PASSENGER) // TAXI & BUSSES
    {
        if(stationidv[GetPlayerVehicleID(playerid)] != 0)
        {
            //new station[64];
            switch(stationidv[GetPlayerVehicleID(playerid)])
            {
                case 1: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1377200");
                case 2: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=947738");
                case 3: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=213419");
                case 4: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1283687");
                case 5: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=41879");
                case 6: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=150518");
                case 7: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=265165");
                case 8: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1281016");
                case 9: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=64088");
                case 10: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1504548");
                case 11: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=21585");
                case 12: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1275878");
                case 13: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcas.com/sbin/tunein-station.pls?id=2530541");
                case 14: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=127035");
                case 15: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=616366");
                case 16: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=79927");
                case 17: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=56349");
                case 18: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1280855");
                case 19: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1283896");
                case 20: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1283516");
                case 21: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=616366");
                case 22: PlayAudioStreamForPlayer(playerid, "http://3yp.shoutcast.com/sbin/tunein-station.pls?id=1593716");
                case 23: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=931441");
            }
            if(stationidv[GetPlayerVehicleID(playerid)] != 0)
            {
                StopAudioStreamForPlayer(playerid);
                //stationidp[playerid] = Audio_PlayStreamed(playerid, station, false, true, false);
            }
        }
        new vehicleid = GetPlayerVehicleID(playerid);
        if(vehicleid == NGVehicles[12] ||
        vehicleid == NGVehicles[13] ||
        vehicleid == NGVehicles[14] ||
        vehicleid == NGVehicles[15] ||
        vehicleid == NGVehicles[16] ||
        vehicleid == NGVehicles[17])
        {
            TogglePlayerSpectating(playerid, 1);
            PlayerSpectateVehicle(playerid, vehicleid);
            SetPVarInt(playerid, "NGPassenger", 1);
            SetPVarInt(playerid, "NGPassengerVeh", vehicleid);
            SetPVarInt(playerid, "NGPassengerSkin", GetPlayerSkin(playerid));
            new Float:health, Float:armour;
            GetPlayerHealth(playerid, health);
            GetPlayerArmour(playerid, armour);
            SetPVarFloat(playerid, "NGPassengerHP", health);
            SetPVarFloat(playerid, "NGPassengerArmor", armour);
        }

        /*new gun,tmp;
        GetPlayerWeaponData(playerid,4,gun,tmp);
        #pragma unused tmp
        if(gun)SetPlayerArmedWeapon(playerid,gun);
        else SetPlayerArmedWeapon(playerid,0);*/

        if(PlayerInfo[playerid][pGuns][4] > 0)  SetPlayerArmedWeapon(playerid,PlayerInfo[playerid][pGuns][4]);
        else SetPlayerArmedWeapon(playerid,0);

        if( GetPVarInt( playerid, "ToBeEjected" ) >= 1 )
        {
            SetPVarInt( playerid, "ToBeEjected", 0 );
            RemovePlayerFromVehicle( playerid );
            new Float:X, Float:Y, Float:Z;
            GetPlayerPos(playerid, X, Y, Z);
            SetPlayerPos(playerid, X, Y, Z+2);

            if(GetPVarInt(playerid, "Injured") == 1)
            {
                Streamer_UpdateEx(playerid, GetPVarFloat(playerid,"MedicX"), GetPVarFloat(playerid,"MedicY"), GetPVarFloat(playerid,"MedicZ"));
                SetPlayerPos(playerid, GetPVarFloat(playerid,"MedicX"), GetPVarFloat(playerid,"MedicY"), GetPVarFloat(playerid,"MedicZ"));
                SetPlayerVirtualWorld(playerid, GetPVarInt(playerid,"MedicVW"));
                SetPlayerInterior(playerid, GetPVarInt(playerid,"MedicInt"));
                ClearAnimations(playerid);
                ApplyAnimation(playerid, "KNIFE", "KILL_Knife_Ped_Die", 4.0, 0, 1, 1, 1, 0, 1);
            }
        }
        //SetPVarInt(playerid, "LastWeapon", GetPlayerWeapon(playerid));
        gLastCar[playerid] = vehicleid;
        foreach(Player, i)
        {
            if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == 2 && TransportDuty[i] > 0)
            {
                if(GetPlayerCash(playerid) < TransportValue[i])
                {
                    new string[28];
                    format(string, sizeof(string), "* You need $%d to enter.", TransportValue[i]);
                    SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string);
                    RemovePlayerFromVehicle(playerid);
                    new Float:X, Float:Y, Float:Z;
                    GetPlayerPos(playerid, X, Y, Z);
                    SetPlayerPos(playerid, X, Y, Z+2);
                    TogglePlayerControllable(playerid, 1);
                }
                else
                {
                    new string[38];
                    if(TransportDuty[i] == 1)
                    {
                        format(string, sizeof(string), "* You paid $%d to the taxi driver.", TransportValue[i]);
                        SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* Passenger %s has entered your taxi.", GetPlayerNameEx(playerid));
                        SendClientMessageEx(i, COLOR_LIGHTBLUE, string);
                        TransportTime[i] = 1;
                        TransportTime[playerid] = 1;
                        TransportCost[playerid] = TransportValue[i];
                        TransportCost[i] = TransportValue[i];
                        TransportDriver[playerid] = i;
                    }
                    else if(TransportDuty[i] == 2)
                    {
                        format(string, sizeof(string), "* You paid $%d to the Taxi Driver.", TransportValue[i]);
                        SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* Passenger %s has entered your Taxi.", GetPlayerNameEx(playerid));
                        SendClientMessageEx(i, COLOR_LIGHTBLUE, string);
                    }
                    GivePlayerCash(playerid, - TransportValue[i]);
                    TransportMoney[i] += TransportValue[i];
                }
            }
        }
    }
    if(newstate == PLAYER_STATE_WASTED)
    {
        if(GetPVarInt(playerid, "EventToken") == 0)
        {
            SetPVarInt(playerid, "MedicBill", 1);
        }
        if(ConnectedToPC[playerid] == 1337)//mdc
        {
            ConnectedToPC[playerid] = 0;
        }
        Seatbelt[playerid] = 0;
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
        if(stationidv[GetPlayerVehicleID(playerid)] != 0)
        {
            //new station[64];
            switch(stationidv[GetPlayerVehicleID(playerid)])
            {
                case 1: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1377200");
                case 2: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=947738");
                case 3: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=213419");
                case 4: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1283687");
                case 5: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=41879");
                case 6: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=150518");
                case 7: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=265165");
                case 8: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1281016");
                case 9: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=64088");
                case 10: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1504548");
                case 11: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=21585");
                case 12: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1275878");
                case 13: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcas.com/sbin/tunein-station.pls?id=2530541");
                case 14: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=127035");
                case 15: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=616366");
                case 16: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=79927");
                case 17: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=56349");
                case 18: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1280855");
                case 19: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1283896");
                case 20: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1283516");
                case 21: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=616366");
                case 22: PlayAudioStreamForPlayer(playerid, "http://3yp.shoutcast.com/sbin/tunein-station.pls?id=1593716");
                case 23: PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=931441");
            }
            if(stationidv[GetPlayerVehicleID(playerid)] != 0)
            {
                StopAudioStreamForPlayer(playerid);
                //stationidp[playerid] = Audio_PlayStreamed(playerid, station, false, true, false);
            }
        }

        SetPlayerArmedWeapon(playerid, 0);

        new
            newcar = GetPlayerVehicleID(playerid),
            engine, lights, alarm, doors, bonnet, boot, objective, v;

        gLastCar[playerid] = newcar;

        foreach(Player, i) {
            v = GetPlayerVehicle(i, newcar);
            if(v != -1) {
                if(i == playerid) {

                    new
                        string[96];

                    format(string, sizeof(string),"You are the owner of this %s.", GetVehicleName(newcar));
                    SendClientMessageEx(playerid, COLOR_GREY, string);
                    if(PlayerVehicleInfo[i][v][pvTicket] != 0)
                    {
                        format(string, sizeof(string),"A $%d parking ticket was left on your vehicle. You must pay the ticket at the SADOC in Dilimore.", PlayerVehicleInfo[i][v][pvTicket]);
                        SendClientMessageEx(playerid, COLOR_GREY, string);
                        SendClientMessageEx(playerid, COLOR_GREY, "Failure to pay this ticket as soon as possible will result in a fine, or even an arrest.");
                    }
                }
                else if(i == PlayerInfo[playerid][pVehicleKeysFrom]) {

                    new
                        string[64 + MAX_PLAYER_NAME];

                    format(string, sizeof(string),"You have the keys for this %s from owner %s.", GetVehicleName(newcar), GetPlayerNameEx(i));
                    SendClientMessageEx(playerid, COLOR_GREY, string);
                }
                else if(PlayerVehicleInfo[i][v][pvLocked] == 1 && PlayerVehicleInfo[i][v][pvLock] == 1) {
                    GetVehicleParamsEx(newcar,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(newcar,engine,lights,VEHICLE_PARAMS_ON,doors,bonnet,boot,objective);
                    SetTimerEx("DisableVehicleAlarm", 20000, 0, "d",  newcar);
                }
                else if(PlayerVehicleInfo[i][v][pvLocked] == 1 && PlayerVehicleInfo[i][v][pvLock] == 2) {

                    new
                        string[49 + MAX_PLAYER_NAME];

                    if(PlayerInfo[playerid][pAdmin] < 2)
                    {
                        format(string, sizeof(string), "* %s has been stunned by the electric anti-theft.",GetPlayerNameEx(playerid));
                        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                        new Float:X, Float:Y, Float:Z, Float:HP;
                        GetPlayerPos(playerid, X, Y, Z);
                        //SendAudioToRange(10300, 100, 0, X, Y, Z, 20.0);
                        SetPlayerPos(playerid, X + 1, Y, Z);
                        RemovePlayerFromVehicle(playerid);
                        SetPVarInt(playerid, "IsFrozen", 1);
                        TogglePlayerControllable(playerid,0);
                        SetTimerEx("ReleasePlayer", 10000, 0, "d", playerid);
                        GameTextForPlayer(playerid,"~r~STUNNED!",11000,3);
                        GetPlayerHealth(playerid,HP);
                        SetPlayerHealth(playerid,HP-15);
                    }
                    else
                    {
                        format(string, sizeof(string), "Warning: This %s is owned by %s.", GetVehicleName(newcar), GetPlayerNameEx(i));
                        SendClientMessageEx(playerid, COLOR_GREY, string);
                    }
                }
                return 1;
            }
        }

        for(new f = 0; f < MAX_FAMILY; f++) {
            v = GetGangVehicle(f, newcar);
            if(v != -1) {
                new string[49 + MAX_PLAYER_NAME];
                if(PlayerInfo[playerid][pFMember] == f)
                {
                    format(string, sizeof(string), "You are in the family that owns this %s.", GetVehicleName(newcar));
                    SendClientMessageEx(playerid, COLOR_GREY, string);
                }
                else if(FamilyVehicleInfo[f][v][fvLocked] == 1 && FamilyVehicleInfo[f][v][fvLock] == 1)
                {
                    GetVehicleParamsEx(newcar,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(newcar,engine,lights,VEHICLE_PARAMS_ON,doors,bonnet,boot,objective);
                    SetTimerEx("DisableVehicleAlarm", 20000, 0, "d",  newcar);
                }
                else if(FamilyVehicleInfo[f][v][fvLocked] == 1 && FamilyVehicleInfo[f][v][fvLock] == 2)
                {
                    format(string, sizeof(string), "* %s has been stunned by the electric anti-theft.",GetPlayerNameEx(playerid));
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    new Float:X, Float:Y, Float:Z, Float:HP;
                    GetPlayerPos(playerid, X, Y, Z);
                    //SendAudioToRange(10300, 100, 0, X, Y, Z, 20.0);
                    SetPlayerPos(playerid, X + 1, Y, Z);
                    RemovePlayerFromVehicle(playerid);
                    new Float:slx, Float:sly, Float:slz;
                    GetPlayerPos(playerid, slx, sly, slz);
                    SetPlayerPos(playerid, slx, sly, slz);
                    SetPVarInt(playerid, "IsFrozen", 1);
                    TogglePlayerControllable(playerid,0);
                    SetTimerEx("ReleasePlayer", 10000, 0, "d", playerid);
                    GameTextForPlayer(playerid,"~r~STUNNED!",11000,3);
                    GetPlayerHealth(playerid,HP);
                    SetPlayerHealth(playerid,HP-15);
                }
                return 1;
            }
        }
        new vehicleid = newcar;
        if(IsVIPcar(vehicleid))
        {
            if(PlayerInfo[playerid][pDonateRank] > 0)
            {
                SendClientMessageEx(playerid, COLOR_YELLOW, "VIP: This is a VIP vehicle from the VIP garage, therefore it has unlimited fuel.");
            }
            else
            {
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz+1.3);
                PlayerPlaySound(playerid, 1130, slx, sly, slz+1.3);
                RemovePlayerFromVehicle(playerid);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not a VIP, this is a vehicle from the VIP Garage!");
            }
        }
        else if(IsAnAmbulance(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 4||PlayerInfo[playerid][pLeader] == 4)
            {
                if(FDSAVehicles[13] == vehicleid && PlayerInfo[playerid][pRank] < 5)
                {
                    RemovePlayerFromVehicle(playerid);
                    new Float:slx, Float:sly, Float:slz;
                    GetPlayerPos(playerid, slx, sly, slz);
                    SetPlayerPos(playerid, slx, sly, slz);
                    NOPCheck(playerid);
                    SendClientMessageEx(playerid, COLOR_GRAD2, "Only ranks 5+ can drive this vehicle.");
                }
            }
            else
            {
                SendClientMessageEx(playerid,COLOR_GREY,"   You are not in the FDSA!");
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
            }
        }
        else if(IsACopCar(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the LSPD!");
            }
        }
        else if(IsAnSADOCCar(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the SADOC!");
            }
        }
        else if(IsAnEPCar(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pDivision] == 2 || PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pRank] >= 5)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the SADOC Executive Protection Division!");
            }
        }
        else if(IsAnSASDCar(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the SASD!");
            }
        }
        else if(IsACopCar(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the LSPD!");
            }
        }
        else if(IsAHouse275Car(vehicleid))
        {
            TogglePlayerControllable(playerid, false);
            ShowPlayerDialog(playerid, House275CAR, DIALOG_STYLE_INPUT, "KeyPad", "Password:", "ENTER", "ENTER");
        }
        else if(IsAFBICar(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the FBI!");
            }
        }
    /*  else if(IsAnNGARMCar(vehicleid))
        {
            if((PlayerInfo[playerid][pMember] == 11||PlayerInfo[playerid][pLeader] == 11) && (PlayerInfo[playerid][pDivision] == 2 || PlayerInfo[playerid][pDivision] == 3 || PlayerInfo[playerid][pDivision] == 6 || PlayerInfo[playerid][pDivision] == 7))
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the NG ARM Division!");
            }
        } */

        else if(vehicleid == FDSAVehicles[12] || vehicleid == FDSAVehicles[33] || vehicleid == FDSAVehicles[34] || vehicleid == FDSAVehicles[35])
        {
            if(PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 4 && PlayerInfo[playerid][pDivision] == 1)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the Fire Department Division!");
            }
        }
        else if(vehicleid == FDSAVehicles[37] || vehicleid == FDSAVehicles[36])
        {
            if(PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 4 && PlayerInfo[playerid][pDivision] == 2)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the Life Flight Division!");
            }
        }
        else if(IsAnNGAIRCar(vehicleid))
        {
            if((PlayerInfo[playerid][pMember] == 11||PlayerInfo[playerid][pLeader] == 11) && (PlayerInfo[playerid][pDivision] == 1 || PlayerInfo[playerid][pDivision] == 4))
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the NG AIR Division!");
            }
        }
        else if(IsAnNGCar(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 11||PlayerInfo[playerid][pLeader] == 11)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the Department of Defense!");
            }
        }
        else if(IsAnDOCCar(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 11||PlayerInfo[playerid][pLeader] == 11)
            {
            }
            else
            {
                NOPCheck(playerid);
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the Department of Defense!");
            }
        }
        else if(IsAnMPSCar(vehicleid))
        {
            if(IsACop(playerid))
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You aren't in a LEO Faction.");
            }
        }
        else if(IsACoastguardCar(vehicleid))
        {
            if( ( PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4 ) || ( PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pDivision] == 3 ))
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the Coastguard division!");
            }
        }
        else if(IsANewsCar(vehicleid))
        {
            if(PlayerInfo[playerid][pMember] == 9 ||PlayerInfo[playerid][pLeader] == 9)
            {
            }
            else
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_GRAD2, "You are not in the SANews!");
            }
        }
        else if(IsAPlane(vehicleid))
        {
            if(PlayerInfo[playerid][pFlyLic] != 1)
            {
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
                NOPCheck(playerid);
                SendClientMessageEx(playerid,COLOR_GREY,"You don't have a pilot license!");
            }
        }
        else if(IsAHelicopter(vehicleid))
        {
            PlayerInfo[playerid][pAGuns][GetWeaponSlot(46)] = 46;
            GivePlayerValidWeapon(playerid, 46, 60000);
        }
        else if(IsAnTaxi(vehicleid) || IsAnBus(vehicleid))
        {
            if(PlayerInfo[playerid][pJob] == 17 || PlayerInfo[playerid][pJob2] == 17 || PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pLeader] == 10 || PlayerInfo[playerid][pCitizenshipCard] == 1)
            {
            }
            else
            {
                SendClientMessageEx(playerid,COLOR_GREY,"   You are not a Taxi/Bus Driver!");
                RemovePlayerFromVehicle(playerid);
                new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz);
            }
        }
        if( GetPVarInt( playerid, "ToBeEjected" ) >= 1 )
        {
            SetPVarInt( playerid, "ToBeEjected", 0 );
            RemovePlayerFromVehicle( playerid );
            new Float:X, Float:Y, Float:Z;
            GetPlayerPos(playerid, X, Y, Z);
            SetPlayerPos(playerid, X, Y, Z+2);

            if(GetPVarInt(playerid, "Injured") == 1)
            {
                Streamer_UpdateEx(playerid, GetPVarFloat(playerid,"MedicX"), GetPVarFloat(playerid,"MedicY"), GetPVarFloat(playerid,"MedicZ"));
                SetPlayerPos(playerid, GetPVarFloat(playerid,"MedicX"), GetPVarFloat(playerid,"MedicY"), GetPVarFloat(playerid,"MedicZ"));
                SetPlayerVirtualWorld(playerid, GetPVarInt(playerid,"MedicVW"));
                SetPlayerInterior(playerid, GetPVarInt(playerid,"MedicInt"));
                ClearAnimations(playerid);
                ApplyAnimation(playerid, "KNIFE", "KILL_Knife_Ped_Die", 4.0, 0, 1, 1, 1, 0, 1);
            }
        }
        //if(lights == VEHICLE_PARAMS_UNSET) SetVehicleParamsEx(newcar,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
        TelePos[playerid][0] = 0.0;
        TelePos[playerid][1] = 0.0;
        //SetPVarInt(playerid, "LastWeapon", GetPlayerWeapon(playerid));
        if(IsARental(newcar) && gBike[playerid] == 0 && gBikeRenting[playerid] == 0)
        {
            TogglePlayerControllable(playerid,0);
            ShowPlayerDialog(playerid, RENTMENU, DIALOG_STYLE_LIST, "Bike Shed BMX Rentals","15 Minutes - 1000$\n30 Minutes - 2000$\n1 Hour - 4000$", "Rent", "Cancel");
        }
        if(GetCarDealershipVehicleId(newcar) != -1 && GetCarDealershipVehicleId(newcar) == GetPVarInt(playerid, "editingcdveh")) return 1;
        if(GetCarDealershipVehicleId(newcar) != -1)
        {
            new string[57 + 20 + 4];
            format(string, sizeof(string),"Would you like to buy this %s?\n\nThis vehicle costs $%d.", GetVehicleName(newcar), CarDealershipInfo[GetCarDealershipId(newcar)][cdVehicleCost][GetCarDealershipVehicleId(newcar)]);
            ShowPlayerDialog(playerid,DIALOG_CDBUY,DIALOG_STYLE_MSGBOX,"Warning:",string,"Buy","Cancel");
            TogglePlayerControllable(playerid, false);
            return 1;
        }
        GetVehicleParamsEx(newcar,engine,lights,alarm,doors,bonnet,boot,objective);
        if((engine == VEHICLE_PARAMS_UNSET || engine == VEHICLE_PARAMS_OFF) && GetVehicleModel(newcar) != 509 && GetVehicleModel(newcar) != 481 && GetVehicleModel(newcar) != 510) {
            SendClientMessageEx(playerid, COLOR_WHITE, "This vehicle's engine is not running - if you wish to start it, type /car engine.");
        }
        else
        {
            if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 481 && GetVehicleModel(GetPlayerVehicleID(playerid)) != 509 && GetVehicleModel(GetPlayerVehicleID(playerid)) != 510)
            {
                SetPVarInt(playerid, "fuelonoff", 1);
                FuelBar[playerid] = CreateProgressBar(548.00, 26.00, 57.50, 3.20, 866792447, 100.0);
                textdrawscount++;
                SetProgressBarValue(FuelBar[playerid], VehicleFuel[GetPlayerVehicleID(playerid)]);
                ShowProgressBarForPlayer(playerid, FuelBar[playerid]);
            }
        }
    }
    if((newstate == 2 || newstate == 3 || newstate == 7 || newstate == 9) && pTazer[playerid] == 1)
    {
        GivePlayerValidWeapon(playerid, pTazerReplace[playerid], 60000);
        pTazer[playerid] = 0;
    }
    if(newstate == PLAYER_STATE_SPAWNED)
    {
        if(ConnectedToPC[playerid] == 1337)//mdc
        {
            ConnectedToPC[playerid] = 0;
        }
        TelePos[playerid][0] = 0.0;
        TelePos[playerid][1] = 0.0;
        gPlayerSpawned[playerid] = 1;
        SafeTime[playerid] = 60;
    }
    if(newstate == PLAYER_STATE_PASSENGER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 519)
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        if(VehicleStatus{vehicleid} == 1) return SendClientMessageEx(playerid, COLOR_WHITE, "You are not allowed to enter this Shamal as it's been damaged!");
        new string[47 + MAX_PLAYER_NAME];
        format(string, sizeof(string), "* %s enters the Shamal airplane as a passenger.", GetPlayerNameEx(playerid));
        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        SetPlayerPos(playerid, 2.509036, 23.118730, 1199.593750);
        SetPlayerFacingAngle(playerid, 82.14);
        SetCameraBehindPlayer(playerid);
        PlayerInfo[playerid][pVW] = vehicleid;
        SetPlayerVirtualWorld(playerid, vehicleid);
        PlayerInfo[playerid][pInt] = 1;
        SetPlayerInterior(playerid, 1);
        InsideShamal[playerid] = vehicleid;
        SendClientMessageEx(playerid, COLOR_WHITE, "Type /exit near the door to exit the vehicle, or /window to look outside.");
    }
    IsPlayerSteppingInVehicle[playerid] = -1;
    return 1;
}
Would someone help me?
Reply
#2

AFAIK if you compile with debugging enabled (-d3?) the line numbers will be shown.
Reply
#3

Quote:
Originally Posted by MP2
Посмотреть сообщение
AFAIK if you compile with debugging enabled (-d3?) the line numbers will be shown.
How can i do it? :/
Reply
#4

Looking at the first part; it's probably this that's the problem:
pawn Код:
if(GettingSpectated[playerid] != 999)
    {
        new spectator = GettingSpectated[playerid];
        if(!IsPlayerConnected(spectator))
        {
            GettingSpectated[playerid] = 999;
            Spectate[spectator] = 999;
        }

        if(newstate == PLAYER_STATE_DRIVER && PlayerInfo[spectator][pAdmin] >= 2 || newstate == PLAYER_STATE_PASSENGER && PlayerInfo[spectator][pAdmin] >= 2)
        {
            TogglePlayerSpectating(spectator, true);
            new carid = GetPlayerVehicleID( playerid );
            PlayerSpectateVehicle( spectator, carid );
            SetPVarInt(spectator, "SpecState", newstate);
        }
        else if(newstate == PLAYER_STATE_ONFOOT && PlayerInfo[spectator][pAdmin] >= 2)
        {
            TogglePlayerSpectating(spectator, true);
            PlayerSpectatePlayer( spectator, playerid );
            SetPlayerInterior( spectator, GetPlayerInterior( playerid ) );
            SetPVarInt(spectator, "SpecState", newstate);
        }
    }
Because you check if the "spectator" is connected, if he is not it adjusts the value to "999"
pawn Код:
Accessing element at index 999 past array upper bound 500
but continues which probably goes over the MAX_PLAYERS define (500).

Try:
pawn Код:
if(GettingSpectated[playerid] != 999)
    {
        new spectator = GettingSpectated[playerid];
        if(!IsPlayerConnected(spectator))
        {
            GettingSpectated[playerid] = 999;
            Spectate[spectator] = 999;
        }
        else
        {
            if(newstate == PLAYER_STATE_DRIVER && PlayerInfo[spectator][pAdmin] >= 2 || newstate == PLAYER_STATE_PASSENGER && PlayerInfo[spectator][pAdmin] >= 2)
            {
                TogglePlayerSpectating(spectator, true);
                new carid = GetPlayerVehicleID( playerid );
                PlayerSpectateVehicle( spectator, carid );
                SetPVarInt(spectator, "SpecState", newstate);
            }
            else if(newstate == PLAYER_STATE_ONFOOT && PlayerInfo[spectator][pAdmin] >= 2)
            {
                TogglePlayerSpectating(spectator, true);
                PlayerSpectatePlayer( spectator, playerid );
                SetPlayerInterior( spectator, GetPlayerInterior( playerid ) );
                SetPVarInt(spectator, "SpecState", newstate);
            }
        }
    }
Check other areas for code like that too.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)