[AYUDA]crash del servidor - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (
https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [AYUDA]crash del servidor (
/showthread.php?tid=302654)
[AYUDA]crash del servidor -
Fluid016 - 10.12.2011
Hola Forum samp, Bueno mi problema es que mi sv crashea despuйs de 20 mil lineas que hise (algunas del ladmin) y cuando instale el crashdetect en el log me puso esto
[21:39:45]: Script[filterscripts\LuxAdmin.amx]: During execution of PingKick():
[21:39:45]: Script[filterscripts\LuxAdmin.amx]: Run time error 4: "Array index out of bounds"
[21:39:45]: Additional information:
[21:39:45]: Array max index is 3 but accessing an element at 4
[21:39:45]: Call stack (most recent call first):
[21:39:45]: public PingKick()
el public pingkick es del ladmin pero no se como arreglarlo
espero que me ayuden
Gracias de ante mano.
EDIT: Me habнa olvidado como pregunte en pawno scriting y nadie respondiу pensй de preguntar acб
Respuesta: [AYUDA]crash del servidor -
TheChaoz - 10.12.2011
Es un overflow del buffer. Darnos el codigo del "PingKick()" para que podamos decirte donde esta el problema.
Respuesta: [AYUDA]crash del servidor -
Fluid016 - 10.12.2011
Acб esta el codigo
pawn Код:
public PingKick()
{
if(ServerInfo[MaxPing] != 0)
{
PingPos++; if(PingPos > PING_MAX_EXCEEDS) PingPos = 0;
for(new i=0; i<MAX_PLAYERS; i++)
{
AccInfo[i][pPing][PingPos] = GetPlayerPing(i);
if(GetPlayerPing(i) > ServerInfo[MaxPing])
{
if(AccInfo[i][PingCount] == 0) AccInfo[i][PingTime] = TimeStamp();
AccInfo[i][PingCount]++;
if(TimeStamp() - AccInfo[i][PingTime] > PING_TIMELIMIT)
{
AccInfo[i][PingTime] = TimeStamp();
AccInfo[i][PingCount] = 1;
}
else if(AccInfo[i][PingCount] >= PING_MAX_EXCEEDS)
{
new Sum, Average, x, string[128];
while (x < PING_MAX_EXCEEDS) {
Sum += AccInfo[i][pPing][x];
x++;
}
Average = (Sum / PING_MAX_EXCEEDS);
format(string,sizeof(string),"**Jugador %s (ID:%d) ha sido Automaticamente Kickeado. | Razon: Ping Alto - %d (Promedio - %d | Max Permitido - %d)", PlayerName2(i),i, GetPlayerPing(i), Average, ServerInfo[MaxPing]);
SendClientMessageToAll(COLOR_GRIS,string);
SaveIn("KickLog",string);
Kick(i);
}
}
else if(GetPlayerPing(i) < 1 && ServerInfo[AntiBot] == 1)
{
AccInfo[i][BotPing]++;
if(AccInfo[i][BotPing] >= 3) BotCheck(i);
}
else
{
AccInfo[i][BotPing] = 0;
}
}
}
}