[Ajuda] Include weapon-config
#1

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://sampforum.blast.hk/showthread.php?tid=563387
Reply
#2

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;

Reply
#3

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...
Reply
#4

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
Reply
#5

Tenho o mesmo problema, porйm, nгo entendi o exemplo, pode me ajudar?
Reply
#6

Quote:
Originally Posted by ReturnZero
View Post
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;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)