[Ajuda] OnPlayerSpawn parando de funcionar
#1

Bom pessoal, estou com esse problema a um tempo jб, eu tentei resolver por si sу e nгo deu resultado, por isso venho pedir a suas devidas ajuda.

Eu instalei o plugin crashdetect para ver a mensagem que ele mandaria quando ocorresse o erro. e quando o erro ocorreu recebi a seguinte mensagem:

PHP код:

15
:24:24] [debugRun time error 4"Array index out of bounds"
[15:24:24] [debug]  Attempted to read/write array element at negative index -1
[15:24:24] [debugAMX backtrace:
[
15:24:24] [debug#0 0012fa30 in public Streamer_OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Servidor\Desktop\GM Servidor\gamemodes\GM.pwn:18929
[15:24:24] [debug#1 00015efc in public Itter_OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Servidor\Desktop\Pawno\include\streamer.inc:297
[15:24:24] [debug#2 native CallLocalFunction () from samp-server.exe
[15:24:24] [debug#3 0000d850 in public Ips_OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Servidor\Desktop\Pawno\include\foreach.inc:735
[15:24:24] [debug#4 0000c81c in public SSCANF_OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Servidor\Desktop\Pawno\include\iLoops.inc:93
[15:24:24] [debug#5 00005968 in public OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Servidor\Desktop\Pawno\include\sscanf2.inc:229 
Passei a usar o plugin a pouco tempo e nгo sei do que se trata esse erro enviado, alguйm poderia ajudar?
Reply
#2

Mande a sua OnPlayerDisconnect e OnPlayerSpawn
Reply
#3

Mande essa linha.

C:\Users\Servidor\Desktop\GM Servidor\gamemodes\GM.pwn:18929
Reply
#4

OnPlayerDisconnect: https://pastebin.com/6g0EadTT

OnPlayerSpawn: https://pastebin.com/JKXxaVyx
Reply
#5

Quote:
Originally Posted by Marllun
Посмотреть сообщение
Mande essa linha.

C:\Users\Servidor\Desktop\GM Servidor\gamemodes\GM.pwn:18929
PHP код:
 Player[VBPlayer[playerid][Agressor]][pMatou]++; 
A mesma estб na OnPlayerDisconnect
Reply
#6

Ainda nгo resolvido, alguйm pode ajudar?
Reply
#7

Faзa debug em seu cуdigo,coloque em cada linha e veja onde a execuзгo para.Possivelmente o erro serб nessa linha.Pelo seu cуdigo ser bem extenso,й complicado de cara olhar e falar o erro.
Reply
#8

Compile com flag -d3 para saber a linha do erro.
Reply
#9

Й serio isso? Serб que nenhum dos que responderam conseguiram identificar o problema? Basta saber o bбsico de inglкs...

Array index out of bounds = Нndice da matriz fora dos limites

Ou seja, estб acessando o нndice de uma matriz que estб fora do tamanho dela. Esse valor pode ser tanto negativo quanto maior que o tamanho definido.

O que estб acontecendo no seu cуdigo й que a variбvel Agressor estб com um valor maior ou menor do limite declarado pela matriz Player.

Vocк precisa primeiro certificar se a sua matriz Player estб com o seu tamanho definido como MAX_PLAYERS.
Por segundo, precisa revisar seu cуdigo para ter certeza se a variбvel Agressor estб setando um valor acessнvel.
Verifique onde ela й resetada e qual valor й dado a este reset. Pode ser que esteja sendo resetada com -1 ou INVALID_PLAYER_ID, o mais comum. Mas o certo й, jamais acesse o нndice de uma matriz sem antes confirmar que este нndice й um valor de acesso vбlido.

Isso aqui, eu sу faria de uma maneira:

PHP код:
new aggressor VBPlayer[playerid][Agressor];
if(
aggressor != VALOR_DE_RESET && IsPlayerConnected(aggressor))
{
    if(
GetDistanceBetweenPlayers(playeridaggressor) <= 20 && health <= 30 )
    {
        if(
Entrou4Fun[playerid] == 0)
        {
            
Player[aggressor][pMatou]++;
            
Player[playerid][pMorreu]++;
        }
    }

Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)