Como resolver isso?? - LeleziiN - 02/06/2021
Bom galera eu estou usando o plugin CrashDetect no servidor e quando eu abror o samp.server.exe aparece isso
Código: [debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at negative index -1
[debug] AMX backtrace:
[debug] #0 0033ea9c in public Taxi () from GM.amx
a Callback
Código PHP: public Taxi() { for(new I = 0; I < MAX_PLAYERS; I ++) { if(Taximetro[I][0] == 1) { if(GetPlayerMoneyEx(I) > PrecoCorrida[I] + 3) { new string[128]; PrecoCorrida[I] = PrecoCorrida[I] + 3; format(string, sizeof(string), "~ O taxímetro mostra: $%d", PrecoCorrida[I]); SendClientMessage(I, verde, string); SendClientMessage(Taximetro[I][1], verde, string); } if(GetPlayerMoneyEx(I) < PrecoCorrida[I] + 3) { SendClientMessage(I, COR_MARA2, "| INFO | Você não tem mais dinheiro para o taxi!"); SendClientMessage(Taximetro[I][1], COR_MARA2, "| INFO | Seu passageiro ficou sem dinheiro!"); GivePlayerMoneyEx(I, 0 - PrecoCorrida[I]); GivePlayerMoneyEx(Taximetro[I][1], PrecoCorrida[I]); RemovePlayerFromVehicle(I); PrecoCorrida[I] = 0; Taximetro[I][1] = 0; Taximetro[I][0] = 0; } } if(NoTelefone[I] != -1) { if(!PlayerToPoint(Radio, I, Coordenadas[GetHouseOwner(I)][0], Coordenadas[GetHouseOwner(I)][1], Coordenadas[GetHouseOwner(I)][2])) { SendClientMessage(I, COR_ORKUT, "| INFO | A chamada foi perdida porque você foi muito longe do ícone de sua casa!"); CmdDesligar(I); } } } return 1; }
RE: Como resolver isso?? - xbruno1000x - 02/06/2021
Código: for(new I = 0; I < MAX_PLAYERS; I ++)
Creio que seja esse looping o problema. Por que você não utiliza a foreach?
Código: foreach(new I : Player)
RE: Como resolver isso?? - ProKillerPa - 02/06/2021
Mande como voce declarou 'PrecoCorrida' e 'Taximetro'
RE: Como resolver isso?? - LeleziiN - 02/06/2021
(02/06/2021 11:22)xbruno1000x Escreveu: Código: for(new I = 0; I < MAX_PLAYERS; I ++)
Creio que seja esse looping o problema. Por que você não utiliza a foreach?
Código: foreach(new I : Player)
Vlw mano funcionou aqui
RE: Como resolver isso?? - uyk - 02/06/2021
Acabei pegando essa callback para fazer um sistema aqui, gostei bastante, porém tento adicionar o "foreach(new I : Player)" como o Bruno recomendou, no entanto dá dois erros:
Código PHP: error 017: undefined symbol "foreach" error 017: undefined symbol "I"
RE: Como resolver isso?? - xbruno1000x - 02/06/2021
(02/06/2021 17:18)uyk Escreveu: Acabei pegando essa callback para fazer um sistema aqui, gostei bastante, porém tento adicionar o "foreach(new I : Player)" como o Bruno recomendou, no entanto dá dois erros:
Código PHP: error 017: undefined symbol "foreach" error 017: undefined symbol "I"
Isso se deve a necessidade da include foreach ou y_foreach.
RE: Como resolver isso?? - uyk - 02/06/2021
(02/06/2021 18:05)xbruno1000x Escreveu: (02/06/2021 17:18)uyk Escreveu: Acabei pegando essa callback para fazer um sistema aqui, gostei bastante, porém tento adicionar o "foreach(new I : Player)" como o Bruno recomendou, no entanto dá dois erros:
Código PHP: error 017: undefined symbol "foreach" error 017: undefined symbol "I"
Isso se deve a necessidade da include foreach ou y_foreach. Mas a include já está definida e deu este erro
RE: Como resolver isso?? - LeleziiN - 02/06/2021
Agora apareceu isso
Código: [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
[debug] Stack pointer (STK) is 0x133102C, heap pointer (HEA) is 0x1330FF0
[debug] AMX backtrace:
[debug] #0 003ef8bc in public TempoSalvarDados () from GM.amx
[debug] #1 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #2 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #3 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #4 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #5 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #6 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #7 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #8 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #9 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #10 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #11 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #12 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #13 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #14 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #15 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #16 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #17 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #18 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #19 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #20 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #21 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #22 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #23 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #24 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #25 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #26 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #27 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #28 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #29 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #30 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #31 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #32 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #33 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #34 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #35 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #36 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #37 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #38 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #39 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #40 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #41 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #42 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #43 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #44 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #45 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #46 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #47 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #48 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #49 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #50 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #51 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #52 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #53 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #54 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #55 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #56 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #57 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #58 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #59 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #60 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #61 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #62 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #63 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #64 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #65 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #66 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #67 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #68 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #69 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #70 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #71 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #72 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #73 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #74 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #75 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #76 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #77 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #78 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #79 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #80 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #81 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #82 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #83 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #84 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #85 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #86 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #87 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #88 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #89 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #90 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #91 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #92 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #93 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #94 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #95 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #96 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #97 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #98 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #99 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #100 003efb98 in public TempoSalvarDados () from GM.amx
Callback
Código PHP: public TempoSalvarDados() { new SalvoP = (random(150 - 1) + 1); if(IsPlayerConnected(SalvoP) && Logado[SalvoP] == 1) { if(JogadorSalvo[SalvoP] == 0) { SalvarDados(SalvoP, 1); JogadorSalvo[SalvoP] = 1; for(new I = 0; I < MAX_PLAYERS; I++) { if(strcmp(PlayerName(I), "Cancer", true) == 0) { new S[128]; format(S, sizeof(S), "| LOG | Olá, o jogador %s(%d), teve os dados salvos!", PlayerName(SalvoP), SalvoP); SendClientMessage(I, COR_MARA1, S); break; } } } } else { TempoSalvarDados(); } return 1; }
RE: Como resolver isso?? - k2bi_YT - 02/06/2021
Fiz algumas alterações no code. Espero que essa callback esteja sendo usada de tempos em tempos, pois é o que eu recomendo.
Recomendado também o uso de Foreach, pois isso deixa bem mais legível.
Vê se funciona 
Código PHP: public TempoSalvarDados() { for(new i = 0; < MAX_PLAYERS; ++i) { if(IsPlayerConnected(i) && Logado[i] == 1) { if(JogadorSalvo[i] == 0) { SalvarDados(i, 1); JogadorSalvo[i] = 1; if(!strcmp(PlayerName(i), "Cancer", true)) //Isso é assim mesmo? Se o player tiver o nick como 'Cancer'?? { new S[128]; format(S, sizeof(S), "| LOG | Olá, o jogador %s(%d), teve os dados salvos!", PlayerName(SalvoP), SalvoP); SendClientMessage(i, COR_MARA1, S); break; } } else { //if(JogadorSalvo[i] == 1){} } } } return 1; }
RE: Como resolver isso?? - xbruno1000x - 03/06/2021
(02/06/2021 19:35)LeleziiN Escreveu: Agora apareceu isso
Código: [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
[debug] Stack pointer (STK) is 0x133102C, heap pointer (HEA) is 0x1330FF0
[debug] AMX backtrace:
[debug] #0 003ef8bc in public TempoSalvarDados () from GM.amx
[debug] #1 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #2 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #3 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #4 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #5 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #6 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #7 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #8 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #9 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #10 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #11 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #12 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #13 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #14 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #15 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #16 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #17 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #18 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #19 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #20 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #21 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #22 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #23 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #24 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #25 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #26 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #27 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #28 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #29 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #30 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #31 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #32 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #33 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #34 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #35 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #36 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #37 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #38 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #39 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #40 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #41 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #42 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #43 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #44 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #45 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #46 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #47 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #48 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #49 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #50 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #51 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #52 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #53 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #54 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #55 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #56 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #57 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #58 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #59 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #60 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #61 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #62 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #63 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #64 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #65 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #66 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #67 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #68 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #69 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #70 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #71 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #72 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #73 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #74 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #75 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #76 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #77 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #78 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #79 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #80 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #81 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #82 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #83 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #84 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #85 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #86 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #87 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #88 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #89 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #90 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #91 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #92 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #93 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #94 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #95 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #96 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #97 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #98 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #99 003efb98 in public TempoSalvarDados () from GM.amx
[debug] #100 003efb98 in public TempoSalvarDados () from GM.amx
Callback
Código PHP: public TempoSalvarDados() { new SalvoP = (random(150 - 1) + 1); if(IsPlayerConnected(SalvoP) && Logado[SalvoP] == 1) { if(JogadorSalvo[SalvoP] == 0) { SalvarDados(SalvoP, 1); JogadorSalvo[SalvoP] = 1; for(new I = 0; I < MAX_PLAYERS; I++) { if(strcmp(PlayerName(I), "Cancer", true) == 0) { new S[128]; format(S, sizeof(S), "| LOG | Olá, o jogador %s(%d), teve os dados salvos!", PlayerName(SalvoP), SalvoP); SendClientMessage(I, COR_MARA1, S); break; } } } } else { TempoSalvarDados(); } return 1; }
Provavelmente é o mesmo problema, visto que você usou o mesmo loop aí.
Código: for(new I = 0; I < MAX_PLAYERS; I++)
Use a foreach novamente
Código: foreach(new I : Player)
(02/06/2021 20:24)k2bi_YT Escreveu: Fiz algumas alterações no code. Espero que essa callback esteja sendo usada de tempos em tempos, pois é o que eu recomendo.
Recomendado também o uso de Foreach, pois isso deixa bem mais legível.
Vê se funciona 
Código PHP: public TempoSalvarDados() { for(new i = 0; < MAX_PLAYERS; ++i) { if(IsPlayerConnected(i) && Logado[i] == 1) { if(JogadorSalvo[i] == 0) { SalvarDados(i, 1); JogadorSalvo[i] = 1; if(!strcmp(PlayerName(i), "Cancer", true)) //Isso é assim mesmo? Se o player tiver o nick como 'Cancer'?? { new S[128]; format(S, sizeof(S), "| LOG | Olá, o jogador %s(%d), teve os dados salvos!", PlayerName(SalvoP), SalvoP); SendClientMessage(i, COR_MARA1, S); break; } } else { //if(JogadorSalvo[i] == 1){} } } } return 1; }
Acho que a intenção do código não era salvar todos os players, e sim salvar um único player aleatório. Por isso foi usado o SalvoP como Random.
|