16.01.2013, 05:22
Hey guy, i have problems with me server, it is randomly crashing me gamemode
this code when use crashdetect
Help me 
code in pawno
this code when use crashdetect
Quote:
|
[21:32:30] [debug] #0 00000008 in public OnPlayerUpdate () from vnpla.amx [21:32:30] [debug] Run time error 8: "Heap underflow" [21:32:30] [debug] Heap pointer (HEA) is 0x11, heap bottom (HLW) is 0x118BE50 [21:32:30] [debug] AMX backtrace: [21:32:30] [debug] #0 00000008 in public OnPlayerClickPlayer () from vnpla.amx [21:32:30] [debug] Run time error 8: "Heap underflow" [21:32:30] [debug] Heap pointer (HEA) is 0x11, heap bottom (HLW) is 0x118BE50 |

code in pawno
Код:
public OnPlayerUpdate(playerid)
{
// Do not put heavy cpu checks in here. Use the 1 second timer.
if(playerTabbed[playerid] >= 1)
{
playerTabbed[playerid] = 0;
}
playerSeconds[playerid] = gettime();
new pCurWeap = GetPlayerWeapon(playerid);
if(pCurWeap != pCurrentWeapon{playerid})
{
OnPlayerChangeWeapon(playerid, pCurWeap);
pCurrentWeapon{playerid} = pCurWeap;
}
if(acstruct[playerid][checkmaptp] == 1) //blah
{
new Float:dis = GetPlayerDistanceFromPoint(playerid, acstruct[playerid][maptp][0], acstruct[playerid][maptp][1], acstruct[playerid][maptp][2]);
if(dis < 5.0)
{
new Float:disd = GetPlayerDistanceFromPoint(playerid, acstruct[playerid][LastOnFootPosition][0], acstruct[playerid][LastOnFootPosition][1], acstruct[playerid][LastOnFootPosition][2]);
if(disd > 25.0)
{
new srelay[256], Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
format(srelay, sizeof(srelay), "[mapteleport] %s %d (%0.2f, %0.2f, %0.2f -> %0.2f, %0.2f, %0.2f [%0.2f, %0.2f, %0.2f]) (%f, %f) (%d) (%d)", GetPlayerNameExt(playerid), playerid, \
acstruct[playerid][LastOnFootPosition][0], acstruct[playerid][LastOnFootPosition][1], acstruct[playerid][LastOnFootPosition][2], \
X, Y, Z, acstruct[playerid][maptp][0], acstruct[playerid][maptp][1], acstruct[playerid][maptp][2], \
disd, dis, GetPlayerState(playerid), (GetTickCount()-acstruct[playerid][maptplastclick]));
Log("logs/hack.log", srelay);
format( srelay, sizeof( srelay ), "{AA3333}He thong{FFFF00}: %s da bi banned, ly do: Hack dich chuyen", GetPlayerNameExt(playerid));
ABroadCast( COLOR_LIGHTRED, srelay, 2 );
SendClientMessage(playerid, COLOR_LIGHTRED, srelay );
PlayerInfo[playerid][pBanned] = 3;
new playerip[32];
GetPlayerIp(playerid, playerip, sizeof(playerip));
format( srelay, sizeof( srelay ), "%s (IP:%s) da bi banned, ly do: Hack dich chuyen", GetPlayerNameExt(playerid), playerip);
PlayerInfo[playerid][pBanned] = 3;
Log("logs/ban.log", srelay);
AddBan(playerip);
Kick(playerid);
//MySQLBan(GetPlayerSQLId(playerid),playerip,"Hack dich chuyen",-1);
TotalAutoBan++;
}
}
acstruct[playerid][checkmaptp] = 0;
}
GetPlayerPos(playerid, acstruct[playerid][LastOnFootPosition][0], acstruct[playerid][LastOnFootPosition][1], acstruct[playerid][LastOnFootPosition][2]);
if(control[playerid] == 1)
{
new Keys,ud,lr;
GetPlayerKeys(playerid,Keys,ud,lr);
if(ud > 0)
{
if(canmove == 1) return 1;
else canmove = 1;
new distance = controldistance[playerid];
new speed = controlspeed[playerid];
new Float:XA[17], Float:YA[17], Float:ZA[17];
new Float:XB[14], Float:YB[14], Float:ZB[14];
new Float:XC[3], Float:YC[3], Float:ZC[3];
for(new x;x<sizeof(Carrier);x++)
{
GetDynamicObjectPos(Carrier[x], XA[x], YA[x], ZA[x]);
}
for(new x;x<sizeof(CarrierS);x++)
{
GetDynamicObjectPos(CarrierS[x], XB[x], YB[x], ZB[x]);
}
GetDynamicObjectPos(sidelift, XC[0], YC[0], ZC[0]);
GetDynamicObjectPos(backhatch, XC[1], YC[1], ZC[1]);
GetDynamicObjectPos(backlift, XC[2], YC[2], ZC[2]);
for(new x;x<sizeof(Carrier);x++)
{
MoveDynamicObject(Carrier[x], XA[x]-distance, YA[x], ZA[x], speed);
}
for(new x;x<sizeof(CarrierS);x++)
{
MoveDynamicObject(CarrierS[x], XB[x]-distance, YB[x], ZB[x], speed);
}
MoveDynamicObject(sidelift, XC[0]-distance, YC[0], ZC[0], speed);
MoveDynamicObject(backhatch, XC[1]-distance, YC[1], ZC[1], speed);
MoveDynamicObject(backlift, XC[2]-distance, YC[2], ZC[2], speed);
}
else if(ud < 0)
{
if(canmove == 1) return 1;
else canmove = 1;
new distance = controldistance[playerid];
new speed = controlspeed[playerid];
new Float:XA[17], Float:YA[17], Float:ZA[17];
new Float:XB[14], Float:YB[14], Float:ZB[14];
new Float:XC[3], Float:YC[3], Float:ZC[3];
for(new x;x<sizeof(Carrier);x++)
{
GetDynamicObjectPos(Carrier[x], XA[x], YA[x], ZA[x]);
}
for(new x;x<sizeof(CarrierS);x++)
{
GetDynamicObjectPos(CarrierS[x], XB[x], YB[x], ZB[x]);
}
GetDynamicObjectPos(sidelift, XC[0], YC[0], ZC[0]);
GetDynamicObjectPos(backhatch, XC[1], YC[1], ZC[1]);
GetDynamicObjectPos(backlift, XC[2], YC[2], ZC[2]);
for(new x;x<sizeof(Carrier);x++)
{
MoveDynamicObject(Carrier[x], XA[x]+distance, YA[x], ZA[x], speed);
}
for(new x;x<sizeof(CarrierS);x++)
{
MoveDynamicObject(CarrierS[x], XB[x]+distance, YB[x], ZB[x], speed);
}
MoveDynamicObject(sidelift, XC[0]+distance, YC[0], ZC[0], speed);
MoveDynamicObject(backhatch, XC[1]+distance, YC[1], ZC[1], speed);
MoveDynamicObject(backlift, XC[2]+distance, YC[2], ZC[2], speed);
}
if(lr > 0)
{
if(canmove == 1) return 1;
else canmove = 1;
new distance = controldistance[playerid];
new speed = controlspeed[playerid];
new Float:XA[17], Float:YA[17], Float:ZA[17];
new Float:XB[14], Float:YB[14], Float:ZB[14];
new Float:XC[3], Float:YC[3], Float:ZC[3];
for(new x;x<sizeof(Carrier);x++)
{
GetDynamicObjectPos(Carrier[x], XA[x], YA[x], ZA[x]);
}
for(new x;x<sizeof(CarrierS);x++)
{
GetDynamicObjectPos(CarrierS[x], XB[x], YB[x], ZB[x]);
}
GetDynamicObjectPos(sidelift, XC[0], YC[0], ZC[0]);
GetDynamicObjectPos(backhatch, XC[1], YC[1], ZC[1]);
GetDynamicObjectPos(backlift, XC[2], YC[2], ZC[2]);
for(new x;x<sizeof(Carrier);x++)
{
MoveDynamicObject(Carrier[x], XA[x], YA[x]-distance, ZA[x], speed);
}
for(new x;x<sizeof(CarrierS);x++)
{
MoveDynamicObject(CarrierS[x], XB[x], YB[x]-distance, ZB[x], speed);
}
MoveDynamicObject(sidelift, XC[0], YC[0]-distance, ZC[0], speed);
MoveDynamicObject(backhatch, XC[1], YC[1]-distance, ZC[1], speed);
MoveDynamicObject(backlift, XC[2], YC[2]-distance, ZC[2], speed);
}
else if(lr < 0)
{
if(canmove == 1) return 1;
else canmove = 1;
new distance = controldistance[playerid];
new speed = controlspeed[playerid];
new Float:XA[17], Float:YA[17], Float:ZA[17];
new Float:XB[14], Float:YB[14], Float:ZB[14];
new Float:XC[3], Float:YC[3], Float:ZC[3];
for(new x;x<sizeof(Carrier);x++)
{
GetDynamicObjectPos(Carrier[x], XA[x], YA[x], ZA[x]);
}
for(new x;x<sizeof(CarrierS);x++)
{
GetDynamicObjectPos(CarrierS[x], XB[x], YB[x], ZB[x]);
}
GetDynamicObjectPos(sidelift, XC[0], YC[0], ZC[0]);
GetDynamicObjectPos(backhatch, XC[1], YC[1], ZC[1]);
GetDynamicObjectPos(backlift, XC[2], YC[2], ZC[2]);
for(new x;x<sizeof(Carrier);x++)
{
MoveDynamicObject(Carrier[x], XA[x], YA[x]+distance, ZA[x], speed);
}
for(new x;x<sizeof(CarrierS);x++)
{
MoveDynamicObject(CarrierS[x], XB[x], YB[x]+distance, ZB[x], speed);
}
MoveDynamicObject(sidelift, XC[0], YC[0]+distance, ZC[0], speed);
MoveDynamicObject(backhatch, XC[1], YC[1]+distance, ZC[1], speed);
MoveDynamicObject(backlift, XC[2], YC[2]+distance, ZC[2], speed);
}
}
return 1;
}

