[Ajuda] Run time error 4: "Array index out of bounds"
#1

Dei uma pesquisada pelo Search e algumas explicaзхes para o erro nгo faziam sentido para meu caso:
Erro:
Код:
Run time error 4: "Array index out of bounds"
Cod.:
PHP код:
Vendedor[0] = CreateActor(168,1578.9000244141,-1863.0999755859,13.5,131.500122);//Spawn
    
Carrinho[0] = CreateDynamicObject(1340,1578.1000000,-1863.9000000,13.7000000,0.0000000,0.0000000,220.0000000); //CarrinhoSpawn
    
    
Vendedor[1] = CreateActor(168,1754.9,-1898.9,14.1,272.001);//Rodoviaria
    
Carrinho[1] = AddStaticVehicleEx(588,1754.5000000,-1898.5000000,13.4000000,0.0000000,245,245,15); //VanRodoviaria[trancada]
    
foreach(Playeri){ SetVehicleParamsForPlayer(Carrinho[1], i01); }
    
    for(new 
i=0i<=10i++)
    {
        new 
Text3D:txt Create3DTextLabel("{FFFF80}Vai um lanchinho ae?\n{80FF80}Custa sу {008000}3,00 {80FF80}real.", -130.040.050.040.00);
        
Attach3DTextLabelToPlayer(txtVendedor[i], 0.00.01.5);
    } 
Como corrijo e porque esta dando este erro?
Obs: as arrays utilizadas foram declaradas no topo da gm da seguinte forma:
PHP код:
new Vendedor[10], Carrinho[10]; 
O tamanho destas arrays sгo 10 pq pretendo colocar 10 actors vendedores de lanche.
Reply
#2

no caso vc tem que criar os 10 Vendedor e os 10 Carrinhos pra dar certo nao? pq iam sobrar 8 Vendedor e 8 Carrinhos vc so crio 2 vezes

PHP код:
Vendedor[0] = CreateActor(168,1578.9000244141,-1863.0999755859,13.5,131.500122);//Spawn 
Carrinho[0] = CreateDynamicObject(1340,1578.1000000,-1863.9000000,13.7000000,0.0000000,0.0000000,220.0000000); //CarrinhoSpawn 
     
Vendedor[1] = CreateActor(168,1754.9,-1898.9,14.1,272.001);//Rodoviaria 
Carrinho[1] = AddStaticVehicleEx(588,1754.5000000,-1898.5000000,13.4000000,0.0000000,245,245,15); //VanRodoviaria[trancada] 
E a array ta definida como 10 sendo que ta usando so 2. Deve ser isso :/ To meio confuso com essa parte q vc mandou -'

Eu sei que esse erro da quando vc define a array como valor de 2 e vc cria 3 por exemplo. Ai da esse erro, agora nгo sei se da esse erro quando sobra. tenta definir as arrays para 2 e vк se deu.
Reply
#3

Quote:
Originally Posted by AutoMatic2
Посмотреть сообщение
no caso vc tem que criar os 10 Vendedor e os 10 Carrinhos pra dar certo nao? pq iam sobrar 8 Vendedor e 8 Carrinhos vc so crio 2 vezes

PHP код:
Vendedor[0] = CreateActor(168,1578.9000244141,-1863.0999755859,13.5,131.500122);//Spawn 
Carrinho[0] = CreateDynamicObject(1340,1578.1000000,-1863.9000000,13.7000000,0.0000000,0.0000000,220.0000000); //CarrinhoSpawn 
     
Vendedor[1] = CreateActor(168,1754.9,-1898.9,14.1,272.001);//Rodoviaria 
Carrinho[1] = AddStaticVehicleEx(588,1754.5000000,-1898.5000000,13.4000000,0.0000000,245,245,15); //VanRodoviaria[trancada] 
E a array ta definida como 10 sendo que ta usando so 2. Deve ser isso :/ To meio confuso com essa parte q vc mandou -'

Eu sei que esse erro da quando vc define a array como valor de 2 e vc cria 3 por exemplo. Ai da esse erro, agora nгo sei se da esse erro quando sobra. tenta definir as arrays para 2 e vк se deu.
Mandei o codigo meio confuso mesmo, agora ele esta mais caertinho:
PHP код:
Vendedor[0] = CreateActor(168,1578.9000244141,-1863.0999755859,13.5,131.500122);//Spawn
    
Vendedor[1] = CreateActor(168,1754.9,-1898.9,14.1,272.001);//Rodoviaria 
No Topo do GM:
PHP код:
new Vendedor[2]; 
e continua o mesmo erro:
Код:
Run time error 4: "Array index out of bounds"
[debug]  Attempted to read/write array element at index 2 in array of size 2
Reply
#4

Vocк esta tentando acessar um нndice invбlido da array Vendedor, os нndices vгo de 0 a 9 (jб que tem 10 cйlulas).

PHP код:
//assim irб rodar de 0 a 10 e quando chegar no 11 irб parar jб que 11 nгo й menor e nem igual a 10
for(new i=0i<=10i++)
//assim irб rodar de 0 a 9 e quando chegar em 10 irб parar jб que 10 nгo й menor que 9
for(new i=0i<10i++) 
Use sizeof para pegar o tamanho da array e use a condiзгo i < sizeof(Vendedor)
PHP код:
for(new 0sizeof(Vendedor); i++) 
Para saber mais sobre loops:
https://sampforum.blast.hk/showthread.php?tid=290735
Sobre arrays:
https://sampforum.blast.hk/showthread.php?tid=458432
Reply
#5

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
Vocк esta tentando acessar um нndice invбlido da array Vendedor, os нndices vгo de 0 a 9 (jб que tem 10 cйlulas).

PHP код:
//assim irб rodar de 0 a 10 e quando chegar no 11 irб parar jб que 11 nгo й menor e nem igual a 10
for(new i=0i<=10i++)
//assim irб rodar de 0 a 9 e quando chegar em 10 irб parar jб que 10 nгo й menor que 9
for(new i=0i<10i++) 
Use sizeof para pegar o tamanho da array e use a condiзгo i < sizeof(Vendedor)
PHP код:
for(new 0sizeof(Vendedor); i++) 
Para saber mais sobre loops:
https://sampforum.blast.hk/showthread.php?tid=290735
Sobre arrays:
https://sampforum.blast.hk/showthread.php?tid=458432
eu sei usar loops, o problema nгo esta nessa parte atй porque se eu deixar em comentario esse loop o mesmo erro aparece.
Esqueci de flaar, esse erro nгo esta aparecendo no compilador, ta compilando normal e o erro aparece no console quando estou abrindo o servidor, e por causa disso ele nгo esta carregando o resto do OnGameModeInit.
Reply
#6

Quote:
Originally Posted by MtPlayerZ
Посмотреть сообщение
eu sei usar loops, o problema nгo esta nessa parte atй porque se eu deixar em comentario esse loop o mesmo erro aparece.
Esqueci de flaar, esse erro nгo esta aparecendo no compilador, ta compilando normal e o erro aparece no console quando estou abrindo o servidor, e por causa disso ele nгo esta carregando o resto do OnGameModeInit.
Й um erro na hora da execuзгo como eu disse vocк estava acessando um нndice invбlido da array Vendedor quando aquele cуdigo й executado.

Se vocк diminuiu o tamanho da array para 2 cйlulas e nгo alterou o loop o erro vai continuar.

PHP код:
new array[5];
main(){
    for(new 
i500i++){
        array[
i] = 1;
    }

No cуdigo acima criei uma array com 5 cйlulas, o нndice por padrгo comeзa com 0 e vai atй o tamanho dela menos um, no caso aqui vai de 0 a 4.

Esse cуdigo vai gerar um erro na hora da execuзгo e nгo no compilador, jб que ele tentar acessar vбrios нndices que nгo existem, que no caso vai ser de 5 atй 499.

Se tu tentar acessar o нndice -1 irб dar um erro jб que nгo existe.

Tu jб sabe o que fazer, veja tu esta tentando acessar нndice invбlido dessa array em outras partes tambйm.

Recomendo o uso do plugin crashdetect, ele ajuda a dar mais detalhes em erros na execuзгo.
Reply
#7

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
Й um erro na hora da execuзгo como eu disse vocк estava acessando um нndice invбlido da array Vendedor quando aquele cуdigo й executado.

Se vocк diminuiu o tamanho da array para 2 cйlulas e nгo alterou o loop o erro vai continuar.

PHP код:
new array[5];
main(){
    for(new 
i500i++){
        array[
i] = 1;
    }

No cуdigo acima criei uma array com 5 cйlulas, o нndice por padrгo comeзa com 0 e vai atй o tamanho dela menos um, no caso aqui vai de 0 a 4.

Esse cуdigo vai gerar um erro na hora da execuзгo e nгo no compilador, jб que ele tentar acessar vбrios нndices que nгo existem, que no caso vai ser de 5 atй 499.

Se tu tentar acessar o нndice -1 irб dar um erro jб que nгo existe.

Tu jб sabe o que fazer, veja tu esta tentando acessar нndice invбlido dessa array em outras partes tambйm.

Recomendo o uso do plugin crashdetect, ele ajuda a dar mais detalhes em erros na execuзгo.
Etendi o que vc quiz dizer, ja estou usando o crashdetect, tanto que postei ali em cima o debug.
o problema era quase esse que vc disse mesmo, esse lopp ai era pra ser outra coisa, й que eu copiei e colei e esqueci de tirar o Vendedor[i] ja que esse loop estava certo la em baixo antes de fechar OnGameModeInit.
Valeu pela ajuda galeris, +rep ae pros parceiro!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)