[Error] Array index out of bounds - Ryzen_ -  30/04/2024
 
 
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; } 
 
  
 
 
 
RE: [Error] Array index out of bounds - xbruno1000x -  01/05/2024
 
 
Cara, impossível saber qual array está com problemas.  
 
São 16 arrays: 
-     KyoseiCar
 
 
-     MedellinCar
 
 
-     YamaguchiCar
 
 
-     SinaloaCar
 
 
-     ZetasCar
 
 
-     BOPECar
 
 
-     PMCar
 
 
-     ExercitoCar
 
 
-     CaminhoneiroCar
 
 
-     ConceID
 
 
-     PlayerInfo
 
 
-     AcInfo
 
 
-     TimerGasolina
 
 
-     TimerOutTrabalho
 
 
-     TimerCar
 
 
-     VelocimetroPlayer
 
 
 
Pode ser qualquer um desses.  
 
Esse problema ocorre quando você tenta acessar um índice inválido, esse pode ser um ínicio para você procurar. Tente verificar as entradas e saídas de dados com printf.
 
 
 
RE: [Error] Array index out of bounds - Ryzen_ -  01/05/2024
 
 
 (01/05/2024 01:32)xbruno1000x Escreveu:  Cara, impossível saber qual array está com problemas.  
 
São 16 arrays: 
-     KyoseiCar
 
 
-     MedellinCar
 
 
-     YamaguchiCar
 
 
-     SinaloaCar
 
 
-     ZetasCar
 
 
-     BOPECar
 
 
-     PMCar
 
 
-     ExercitoCar
 
 
-     CaminhoneiroCar
 
 
-     ConceID
 
 
-     PlayerInfo
 
 
-     AcInfo
 
 
-     TimerGasolina
 
 
-     TimerOutTrabalho
 
 
-     TimerCar
 
 
-     VelocimetroPlayer
 
 
 
Pode ser qualquer um desses.  
 
Esse problema ocorre quando você tenta acessar um índice inválido, esse pode ser um ínicio para você procurar. Tente verificar as entradas e saídas de dados com printf.  
Obrigado, consegui corrigir. O erro está no velocímetro que era setado para o player.
 
 
 
RE: [Error] Array index out of bounds - pushline -  02/05/2024
 
 
 (01/05/2024 21:42)Ryzen_ Escreveu:   (01/05/2024 01:32)xbruno1000x Escreveu:  Cara, impossível saber qual array está com problemas.  
 
São 16 arrays: 
-     KyoseiCar
 
 
-     MedellinCar
 
 
-     YamaguchiCar
 
 
-     SinaloaCar
 
 
-     ZetasCar
 
 
-     BOPECar
 
 
-     PMCar
 
 
-     ExercitoCar
 
 
-     CaminhoneiroCar
 
 
-     ConceID
 
 
-     PlayerInfo
 
 
-     AcInfo
 
 
-     TimerGasolina
 
 
-     TimerOutTrabalho
 
 
-     TimerCar
 
 
-     VelocimetroPlayer
 
 
 
Pode ser qualquer um desses.  
 
Esse problema ocorre quando você tenta acessar um índice inválido, esse pode ser um ínicio para você procurar. Tente verificar as entradas e saídas de dados com printf.  
Obrigado, consegui corrigir. O erro está no velocímetro que era setado para o player.  
Se quiseres saber a linha exata da proxima vez, use crashdetect e compile com a flag -d3 no compilador.
 
 
 
RE: [Error] Array index out of bounds - Maycon_Felipe -  02/05/2024
 
 
Se fosse para chutar, eu diria que está na variável ConceID[vehicleid]. 
Mostra como você está criando ela.. 
 
E faça o que os demais falaram acima, sem debug não da para saber a linha..
 
 
 
RE: [Error] Array index out of bounds - Carlos Victor -  02/05/2024
 
 
Ele já corrigiu: 
 
 (01/05/2024 21:42)Ryzen_ Escreveu:  Obrigado, consegui corrigir. O erro está no velocímetro que era setado para o player. 
 
 
 
RE: [Error] Array index out of bounds - Ryzen_ -  02/05/2024
 
 
 (02/05/2024 10:27)pushline Escreveu:   (01/05/2024 21:42)Ryzen_ Escreveu:   (01/05/2024 01:32)xbruno1000x Escreveu:  Cara, impossível saber qual array está com problemas.  
 
São 16 arrays: 
-     KyoseiCar
 
 
-     MedellinCar
 
 
-     YamaguchiCar
 
 
-     SinaloaCar
 
 
-     ZetasCar
 
 
-     BOPECar
 
 
-     PMCar
 
 
-     ExercitoCar
 
 
-     CaminhoneiroCar
 
 
-     ConceID
 
 
-     PlayerInfo
 
 
-     AcInfo
 
 
-     TimerGasolina
 
 
-     TimerOutTrabalho
 
 
-     TimerCar
 
 
-     VelocimetroPlayer
 
 
 
Pode ser qualquer um desses.  
 
Esse problema ocorre quando você tenta acessar um índice inválido, esse pode ser um ínicio para você procurar. Tente verificar as entradas e saídas de dados com printf.  
Obrigado, consegui corrigir. O erro está no velocímetro que era setado para o player.  
Se quiseres saber a linha exata da proxima vez, use crashdetect e compile com a flag -d3 no compilador.  
Poderia me explicar um pouco melhor sobre isso?
 
 
 
RE: [Error] Array index out of bounds - BitSain -  02/05/2024
 
 
 (02/05/2024 18:42)Ryzen_ Escreveu:   (02/05/2024 10:27)pushline Escreveu:   (01/05/2024 21:42)Ryzen_ Escreveu:   (01/05/2024 01:32)xbruno1000x Escreveu:  Cara, impossível saber qual array está com problemas.  
 
São 16 arrays: 
-     KyoseiCar
 
 
-     MedellinCar
 
 
-     YamaguchiCar
 
 
-     SinaloaCar
 
 
-     ZetasCar
 
 
-     BOPECar
 
 
-     PMCar
 
 
-     ExercitoCar
 
 
-     CaminhoneiroCar
 
 
-     ConceID
 
 
-     PlayerInfo
 
 
-     AcInfo
 
 
-     TimerGasolina
 
 
-     TimerOutTrabalho
 
 
-     TimerCar
 
 
-     VelocimetroPlayer
 
 
 
Pode ser qualquer um desses.  
 
Esse problema ocorre quando você tenta acessar um índice inválido, esse pode ser um ínicio para você procurar. Tente verificar as entradas e saídas de dados com printf.  
Obrigado, consegui corrigir. O erro está no velocímetro que era setado para o player.  
Se quiseres saber a linha exata da proxima vez, use crashdetect e compile com a flag -d3 no compilador.  
Poderia me explicar um pouco melhor sobre isso? O que o pushline quis dizer em minhas palavras: 
 
Usando o Plugin CrashDetect em seu servidor, e compilar com a flag -d3, além de você ver os erros na execução do codigo (mesmo sem a Flag), você pode ver com mais detalhes: Diretório do arquivo onde está dando erro/problema + a linha (com a Flag). 
 
A Flag ( -d3 ) é o nível de DEBUG máximo que pode ser configurado no compilador, essa Flag não é obrigatória para compilação, mas para ter os detalhes 'precisos' no CrashDetect, você precisa compilar o seu Código com essa Flag.
 
 
 
RE: [Error] Array index out of bounds - pushline -  04/05/2024
 
 
Complementando com o que o bitsain falou, o -d3 (Se compila via pawno.exe) é só adicionar no pawn.cfg, caso use o vscode, só adicionar "'-d3'" (com ambas as aspas) nos args. 
Segue o meu tasks.json: 
 
Código PHP: {     "version": "2.0.0",     "tasks":     [       {         "label": "build",         "type": "shell",         "command": "${workspaceRoot}\\pawno\\pawncc.exe",         "args": ["'${file}'", "'-D${fileDirname}'", "'-;+'", "'-(+'", "'-d3'"],             "group":         {           "kind": "build",           "isDefault": true         },             "isBackground": false,             "presentation":         {           "reveal": "always",           "panel": "dedicated"         },                  "problemMatcher": {           "base": "$pawncc",           "fileLocation": ["autoDetect", "${workspaceFolder}\\gamemodes"]         }       }     ] } 
 
  
 
 
 
 |