backtrace
#1

Recently on my server I discovered this:


PHP Code:
[18:31:24] [debugRun time error 4"Array index out of bounds"
[18:31:24] [debug]  Attempted to read/write array element at index 65535 in array of size 1000
[18:31:24] [debugAMX backtrace:
[
18:31:24] [debug#0 00063208 in main (playerid=0, params[]=@006e9c2c "2 0") at C:\Users\ert\OneDrive\Escritorio\sv\gamemodes\sv.pwn:3621 
and the command:


PHP Code:
CMD:sethealth(playeridparams[])
{
    new 
idFloat:healthstring[124];
    if(
sscanf(params"uf"idhealth)) return SendClientMessage(playerid, -1"/sethealth (id/name)");
    if(
PlayerInfo[playerid][Admin] < 2) return 0;
    if(
PlayerInfo[id][Logged] == 0) return SendClientMessage(playerid, -1"this player is not logged yet");
    
format(stringsizeof(string), "Admin %s has changed your health to %0.1f."GetName(playerid), health);
    
SendClientMessage(id0x1153EEFFstring);
    
SetPlayerHealth(idhealth);
    return 
1;

I've tried to change but it doesn't work. Thanks!
Reply
#2

PlayerInfo is MAX_PLAYERS aka 1000 and somebody typed the wrong name hence the error cause the name doesn't exists the U parameter returned 65535..

Do a IsPlayerConnected if statement before running the PlayerInfo checks.
Reply
#3

Quote:
Originally Posted by Ertouq
View Post
Recently on my server I discovered this:


PHP Code:
[18:31:24] [debugRun time error 4"Array index out of bounds"
[18:31:24] [debug]  Attempted to read/write array element at index 65535 in array of size 1000
[18:31:24] [debugAMX backtrace:
[
18:31:24] [debug#0 00063208 in main (playerid=0, params[]=@006e9c2c "2 0") at C:\Users\ert\OneDrive\Escritorio\sv\gamemodes\sv.pwn:3621 
and the command:


PHP Code:
CMD:sethealth(playeridparams[])
{
    new 
idFloat:healthstring[124];
    if(
sscanf(params"uf"idhealth)) return SendClientMessage(playerid, -1"/sethealth (id/name)");
    if(
PlayerInfo[playerid][Admin] < 2) return 0;
    if(
PlayerInfo[id][Logged] == 0) return SendClientMessage(playerid, -1"this player is not logged yet");
    
format(stringsizeof(string), "Admin %s has changed your health to %0.1f."GetName(playerid), health);
    
SendClientMessage(id0x1153EEFFstring);
    
SetPlayerHealth(idhealth);
    return 
1;

I've tried to change but it doesn't work. Thanks!
PHP Code:
CMD:sethealth(playeridparams[])
{
    if(
PlayerInfo[playerid][Admin] < 2) return 0;
    new 
idFloat:healthstring[124];
    if(
sscanf(params"uf"idhealth)) return SendClientMessage(playerid, -1"/sethealth (id/name) (health)");
    if(!
IsPlayerConnected(id)) return SendClientMessage(playerid, -1"this player is not connected yet");
    if(
PlayerInfo[id][Logged] == 0) return SendClientMessage(playerid, -1"this player is not logged yet");
    
format(stringsizeof(string), "Admin %s has changed your health to %0.1f."GetName(playerid), health);
    
SendClientMessage(id0x1153EEFFstring);
    
SetPlayerHealth(idhealth);
    return 
1;

Try this.
Reply
#4

That's literally what i've said...

Why don't you let people write their own code.
Reply
#5

Quote:
Originally Posted by Runn3R
View Post
That's literally what i've said...

Why don't you let people write their own code.
Don't worry, I did it myself when I read your answer as I understood. Thank you both very much.
Reply
#6

Quote:
Originally Posted by Runn3R
View Post
That's literally what i've said...

Why don't you let people write their own code.
Yeah that's something that annoys me too. People posting large piles of shitcode without any expanation or whatsoever...
The quality of posts on sa-mp forums have reduced drastically.

What this forum need is some proper ruling and a few dedicated mods that enforce em.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)