SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Português/Portuguese (https://forum.sa-mp.com/forumdisplay.php?f=34)
-   -   [Ajuda] Include weapon-config (https://forum.sa-mp.com/showthread.php?t=675993)

caiolelis1 26/05/2020 03:23 PM

Include weapon-config
 
Olá pessoa, alguem ai utiliza a include weapon-config? Quando eu utilizo ela, está bloqueando o dano de afogar , fogo e queda, e quando acontece o dano, da uma debug.

Code:

[debug] Run time error 4: "Array index out of bounds"
[debug]  Accessing element at index 65535 past array upper bound 102
[debug] AMX backtrace:
[debug] #0 00274730 in public WC_OnPlayerDamage (&playerid=@00dcb81c 3, &Float:amount=@00dcb820 165.00000, &issuerid=@00dcb824 65535, &weapon=@00dcb828 54, &bodypart=@00dcb82c 3) at C:\servidor\gamemodes\city.pwn:41918
[debug] #1 0007ec4c in public OnPlayerDamage (&playerid=@00dcb81c 3, &Float:amount=@00dcb820 165.00000, &issuerid=@00dcb824 65535, &weapon=@00dcb828 54, &bodypart=@00dcb82c 3) at C:\servidor\pawno\include\weapon-config.inc:5479
[debug] #2 0007756c in InflictDamage (playerid=3, Float:amount=165.00000, issuerid=65535, weaponid=54, bodypart=3, bool:ignore_armour=false) at C:\servidor\pawno\include\weapon-config.inc:4619
[debug] #3 0006e6fc in public OnPlayerTakeDamage (playerid=3, issuerid=65535, Float:amount=165.00000, weaponid=54, bodypart=3) at C:\servidor\pawno\include\weapon-config.inc:3406

include: https://forum.sa-mp.com/showthread.php?t=563387

RodrigoMSR 26/05/2020 04:57 PM

Re: Include weapon-config
 
Você está passando um issuerid inválido como índice de alguma array na callback OnPlayerDamage.

Ex:
PHP Code:

new Test[MAX_PLAYERS];

Test[issuerid] = 1

Uso correto:
PHP Code:

new Test[MAX_PLAYERS];

if(
issuerid != INVALID_PLAYER_ID)
{
    
Test[issuerid] = 1;



caiolelis1 26/05/2020 06:54 PM

Re: Include weapon-config
 
Mais tipo, "issuerid" é o causador do dano... Porém, o dano é de queda, fogo e afogamento que está dando o debug... Os danos causado por armas e tal, com um player definido como issuerid, não tem erro...

RodrigoMSR 27/05/2020 03:27 AM

Re: Include weapon-config
 
Quando o dano é de queda e etc., o issuerid vem com valor 65535 (INVALID_PLAYER_ID), por isso causa esse erro e o sistema trava. Você tem que checar se o issuerid é válido antes de usá-lo em arrays (igual no meu exemplo acima).

Code:

[debug]  Accessing element at index 65535 past array upper bound 102
Code:

[debug] #1 0007ec4c in public OnPlayerDamage (&playerid=@00dcb81c 3, &Float:amount=@00dcb820 165.00000, &issuerid=@00dcb824 65535, &weapon=@00dcb828 54, &bodypart=@00dcb82c 3) at C:\servidor\pawno\include\weapon-config.inc:5479

ReturnZero 28/05/2020 05:16 AM

Re: Include weapon-config
 
Tenho o mesmo problema, porém, não entendi o exemplo, pode me ajudar?

MateGPlay 28/05/2020 11:53 PM

Re: Include weapon-config
 
Quote:

Originally Posted by ReturnZero (Post 4148397)
Tenho o mesmo problema, porém, não entendi o exemplo, pode me ajudar?

Você precisa fazer uma checagem para ver se o issuerid é valido, como no codigo acima:

PHP Code:

public OnPlayerTakeDamage(playeridissueridFloat:amountweaponidbodypart)
{
    if(
issuerid != INVALID_PLAYER_ID// If not self-inflicted
    
{
        
//seu codigo aqui
    
}
    return 
1;




All times are GMT. The time now is 03:42 PM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.