Run time error 4: "Array index out of bounds - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Run time error 4: "Array index out of bounds (
/showthread.php?tid=616901)
Run time error 4: "Array index out of bounds -
CarRamper - 12.09.2016
error
Код:
[01:51:37] [debug] Run time error 4: "Array index out of bounds"
[01:51:37] [debug] Accessing element at index 4 past array upper bound 3
[01:51:37] [debug] AMX backtrace:
[01:51:37] [debug] #0 00118d74 in public PingKick () from codww.amx
[01:52:03] [connection] 117.243.182.73:26861 requests connection cookie.
[01:52:05] [connection] incoming connection: 117.243.182.73:26861 id: 0
[01:52:09] Invalid client connecting from 117.243.182.73
[01:52:30] [debug] Run time error 4: "Array index out of bounds"
[01:52:30] [debug] Accessing element at index 4 past array upper bound 3
[01:52:30] [debug] AMX backtrace:
[01:52:30] [debug] #0 00118d74 in public PingKick () from codww.amx
[01:52:35] Kicking 117.243.182.73 because they didn't logon to the game.
Code
Код:
forward PingKick();
public PingKick()
{
if(ServerInfo[MaxPing] != 0)
{
PingPos++; if(PingPos > PING_MAX_EXCEEDS) PingPos = 0;
for(new i=0; i<MAX_PLAYERS; i++)
{
PlayerInfo[i][pPing][PingPos] = GetPlayerPing(i);
if(GetPlayerPing(i) > ServerInfo[MaxPing])
{
if(PlayerInfo[i][PingCount] == 0) PlayerInfo[i][PingTime] = TimeStamp();
PlayerInfo[i][PingCount]++;
if(TimeStamp() - PlayerInfo[i][PingTime] > PING_TIMELIMIT)
{
PlayerInfo[i][PingTime] = TimeStamp();
PlayerInfo[i][PingCount] = 1;
}
else if(PlayerInfo[i][PingCount] >= PING_MAX_EXCEEDS)
{
new Sum, x, string[128];
while (x < PING_MAX_EXCEEDS) {
Sum += PlayerInfo[i][pPing][x];
x++;
}
format(string,sizeof(string),"%s has been kicked from the server. [Reason: High Ping %d/%d]", PlayerName2(i), GetPlayerPing(i), ServerInfo[MaxPing] );
SendClientMessageToAll(red,string);
SaveToFile("KickLog",string);
Kick(i);
}
}
else if(GetPlayerPing(i) < 1 && ServerInfo[AntiBot] == 1)
{
PlayerInfo[i][BotPing]++;
if(PlayerInfo[i][BotPing] >= 3) BotCheck(i);
}
else
{
PlayerInfo[i][BotPing] = 0;
}
}
}
Re: Run time error 4: "Array index out of bounds -
DarkSkull - 12.09.2016
Try using debug level 3, so it shows you the exact lines that produce the crash.
If you don't know how to do that, here's how:
You should create a file called pawn.cfg in your pawno folder, inside this file write:
Save the file and recompile your script and run it with crashdetect again.
Re: Run time error 4: "Array index out of bounds -
CarRamper - 12.09.2016
Ok let i
Re: Run time error 4: "Array index out of bounds -
CarRamper - 12.09.2016
It Gives Me This In Server Log
Код:
[11:47:26] [debug] Run time error 4: "Array index out of bounds"
[11:47:26] [debug] Accessing element at index 4 past array upper bound 3
[11:47:26] [debug] AMX backtrace:
[11:47:26] [debug] #0 00161820 in public PingKick () at C:\Users\Anurag\Desktop\Call of Duty black Ops 2 Script\gamemodes\codww.pwn:17435
Line
Код:
PlayerInfo[i][pPing][PingPos] = GetPlayerPing(i);
Full Code With Line Highlighted
Код:
forward PingKick();
public PingKick()
{
if(ServerInfo[MaxPing] != 0)
{
PingPos++; if(PingPos > PING_MAX_EXCEEDS) PingPos = 0;
for(new i=0; i<MAX_PLAYERS; i++)
{
PlayerInfo[i][pPing][PingPos] = GetPlayerPing(i);
if(GetPlayerPing(i) > ServerInfo[MaxPing])
{
if(PlayerInfo[i][PingCount] == 0) PlayerInfo[i][PingTime] = TimeStamp();
PlayerInfo[i][PingCount]++;
if(TimeStamp() - PlayerInfo[i][PingTime] > PING_TIMELIMIT)
{
PlayerInfo[i][PingTime] = TimeStamp();
PlayerInfo[i][PingCount] = 1;
}
else if(PlayerInfo[i][PingCount] >= PING_MAX_EXCEEDS)
{
new Sum, x, string[128];
while (x < PING_MAX_EXCEEDS) {
Sum += PlayerInfo[i][pPing][x];
x++;
}
format(string,sizeof(string),"%s has been kicked from the server. [Reason: High Ping %d/%d]", PlayerName2(i), GetPlayerPing(i), ServerInfo[MaxPing] );
SendClientMessageToAll(red,string);
SaveToFile("KickLog",string);
Kick(i);
}
}
else if(GetPlayerPing(i) < 1 && ServerInfo[AntiBot] == 1)
{
PlayerInfo[i][BotPing]++;
if(PlayerInfo[i][BotPing] >= 3) BotCheck(i);
}
else
{
PlayerInfo[i][BotPing] = 0;
}
}
}
Re: Run time error 4: "Array index out of bounds -
DarkSkull - 12.09.2016
Try to checking IsPlayerConnected() before everything in the for loop.
Re: Run time error 4: "Array index out of bounds -
Konstantinos - 12.09.2016
http://forum.sa-mp.com/showpost.php?...9&postcount=11
or
http://forum.sa-mp.com/showpost.php?...69&postcount=2