Olá, boa noite a todos. Notei que sempre ao adentrar em algum veículo, seja entrando em um que já está criado pelo mapa, ou então usando algum criado pelo próprio jogador (/cv, /veh), aparece a seguinte mensagem no terminal: [Error] Array index out of bounds. Até o momento não consegui encontrar o que esteja causando o erro em destaque. Deixarei abaixo o código responsável por verificar se o player entrou em algum veículo, onde para isso estou usando o OnPlayerStateChange, e não o OnPlayerEnterVehicle. Desde já, agradeço a todos os que contribuírem com suas respostas, muito obrigado!
	
	
	
	
Código PHP:
public OnPlayerStateChange(playerid, PLAYER_STATE:newstate, PLAYER_STATE:oldstate) {
    static vehicleid;
    
    vehicleid = GetPlayerVehicleID(playerid);
    // modelid = GetVehicleModel(vehicleid);
    
    new vvid = ConceID[vehicleid];
    format(File, sizeof(File), PASTA_CONCE, vvid);
    if(newstate == PLAYER_STATE_DRIVER) {
        TimerGasolina[playerid] = SetTimerEx("GastarGasolina", 60000, true, "i", playerid);
    }
    if(newstate == PLAYER_STATE_DRIVER && IsABike(vehicleid) && !PlayerInfo[playerid][CNHA] && !AcInfo[playerid][ANaAuto]) {
         GivePlayerWanted(playerid, 1);
         SendClientMessage(playerid, Laranja, "| INFO | Você não tem habilitação para dirigir este veículo, portanto está sendo %s pela polícia", PlayerInfo[playerid][pSexo] ? "procurado" : "procurada");
    }
    else if(newstate == PLAYER_STATE_DRIVER && IsACar(vehicleid) && !PlayerInfo[playerid][CNHB] && !AcInfo[playerid][ANaAuto]) {
         GivePlayerWanted(playerid, 1);
         SendClientMessage(playerid, Laranja, "| INFO | Você não tem habilitação para dirigir este veículo, portanto está sendo %s pela polícia", PlayerInfo[playerid][pSexo] ? "procurado" : "procurada");
    }
    else if(newstate == PLAYER_STATE_DRIVER && IsATruck(vehicleid) && !PlayerInfo[playerid][CNHC] && !AcInfo[playerid][ANaAuto]) {
         GivePlayerWanted(playerid, 1);
         SendClientMessage(playerid, Laranja, "| INFO | Você não tem habilitação para dirigir este veículo, portanto está sendo %s pela polícia", PlayerInfo[playerid][pSexo] ? "procurado" : "procurada");
    }
    if(newstate == PLAYER_STATE_ONFOOT) {
        if (GetPVarInt(playerid, "InVehicleTrabalho")) {
            SendClientMessage(playerid, Vermelho, "Você tem 1 minuto para retornar ao seu veículo de trabalho, ou sua tarefa será cancelada!");
            TimerOutTrabalho[playerid] = SetTimerEx("OutTrabalho", 60000, false, "i", playerid);
            DeletePVar(playerid, "InVehicleTrabalho");
        }
        if(GetPVarInt(playerid, "criouv")) {
            DeletePVar(playerid, "criouv");
            DestroyVehicle(GetPVarInt(playerid, "cvehid"));
            DeletePVar(playerid, "cvehid");
        }
        KillTimer(TimerCar[playerid]);
        KillTimer(TimerGasolina[playerid]);
        HidePlayerVelocimetro(playerid);
    }
    if (newstate == PLAYER_STATE_DRIVER) {
        if (vehicleid >= KyoseiCar[0] && vehicleid <= KyoseiCar[7] && GetPlayerClan(playerid) != 0) {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, KYOSEI_COR, "Você não faz parte do clan Kyosei-Kai!");
            return 1;
        }
        else if (vehicleid >= MedellinCar[0] && vehicleid <= MedellinCar[7] && GetPlayerClan(playerid) != 1) {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, MEDELLIN_COR, "Você não faz parte do clan Cartel Medellín!");
            return 1;
        }
        else if (vehicleid >= YamaguchiCar[0] && vehicleid <= YamaguchiCar[7] && GetPlayerClan(playerid) != 2) {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, YAMAGUCHI_COR, "Você não faz parte do clan Yamaguchi Gumi!");
            return 1;
        }
        else if (vehicleid >= SinaloaCar[0] && vehicleid <= SinaloaCar[7] && GetPlayerClan(playerid) != 3) {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, SINALOA_COR, "Você não faz parte do clan Cartel de Sinaloa!");
            return 1;
        }
        else if (vehicleid >= ZetasCar[0] && vehicleid <= ZetasCar[7] && GetPlayerClan(playerid) != 4) {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, ZETAS_COR, "Você não faz parte do clan Los Zetas!");
            return 1;
        }
        else if (vehicleid >= BOPECar[0] && vehicleid <= BOPECar[9] && GetPlayerClan(playerid) != 5) {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, BOPE_COR, "Você não faz parte do clan BOPE!");
            return 1;
        }
        else if (vehicleid >= PMCar[0] && vehicleid <= PMCar[9] && GetPlayerClan(playerid) != 6) {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, PM_COR, "Você não faz parte do clan Polícia Militar!");
            return 1;
        }
        else if (vehicleid >= ExercitoCar[0] && vehicleid <= ExercitoCar[9] && GetPlayerClan(playerid) != 7) {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, EXERCITO_COR, "Você não faz parte do clan Exército!");
            return 1;
        }
        // else if (GetVehicleModel(vehicleid) == 510 && GetPVarInt(playerid, "JornalEntregando")) {
        //     SetPVarInt(playerid, "InVehicleTrabalho", 1);
        //     SendClientMessage(playerid, Verde, "Você voltou para o seu veículo de trabalho. Continua seu trajeto!");
        //     KillTimer(TimerOutTrabalho[playerid]);
        //     return 1;
        // }
        for (new i = 0; i < sizeof(CaminhoneiroCar); i++) {
            if (vehicleid == CaminhoneiroCar[i] && GetPlayerJob(playerid) != PROF_CAMINHONEIRO) {
                RemovePlayerFromVehicle(playerid);
                SendClientMessage(playerid, Vermelho, "Você não é um caminhoneiro(a)!");
                return 1;
            }
            else if (vehicleid == CaminhoneiroCar[i] && CaminhoneiroEntregando[playerid]) {
                SetPVarInt(playerid, "InVehicleTrabalho", 1);
                SendClientMessage(playerid, Verde, "Você voltou para o seu veículo de trabalho. Continue seu trajeto!");
                KillTimer(TimerOutTrabalho[playerid]);
                return 1;
            }
        }
    }
    if(newstate == PLAYER_STATE_DRIVER && DOF2_GetBool(File, "Trancado") && strcmp(GetPlayerNameEx(playerid), DOF2_GetString(File, "Dono"))) {
        RemovePlayerFromVehicle(playerid);
        GameTextForPlayer(playerid, "~r~VEICULO TRANCADO!", 2000, 3);
        SendClientMessage(playerid, Vermelho, "| ERRO | Veículo trancado");
        new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        SetPlayerPos(playerid, X - 2.0, Y, Z);
    }
    if(newstate == PLAYER_STATE_DRIVER && !GetPVarInt(playerid, "criouv")) {
        SendClientMessage(playerid, Verde, "| INFO | Digite /motor ou aperte 'Y' para ligar/desligar o veículo");
    }
    if(newstate == PLAYER_STATE_DRIVER) {
        TimerCar[playerid] = SetTimerEx("UpdateCar", 300, true, "i", playerid);
        ShowPlayerVelocimetro(playerid);
        PutPlayerInVehicle(playerid, vehicleid, 0);
    }
    if(newstate == PLAYER_STATE_DRIVER) {
        new id = ConceID[GetPlayerVehicleID(playerid)];
        format(File, sizeof(File), PASTA_CONCE, id);
        if(DOF2_FileExists(File) && !GetPVarInt(playerid, "criouv")) {
            format(STRX, sizeof(STRX), "GASOLINA: ~w~%dl", DOF2_GetInt(File, "Gasolina"));
            PlayerTextDrawSetString(playerid, VelocimetroPlayer[playerid][41], STRX);
        } else {
            format(STRX, sizeof(STRX), "GASOLINA: ~w~N/A");
            PlayerTextDrawSetString(playerid, VelocimetroPlayer[playerid][41], STRX);
        }
    }
    if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER && AcInfo[playerid][ANaAuto]) {
        SendClientMessage(playerid, Vermelho, "| INFO | Você saiu do seu veículo, portanto o teste foi cancelado");
        EndAC(playerid);
    }
    // CallLocalFunction("OnPlayerHopOnVehicle", "iiiii", playerid, vehicleid, modelid, newstate, oldstate);
    return 1;
} 
