17.02.2016, 18:48
Hi guys, i have a problem with crash, it does not crash every time but when players DM they get a crash, here is crash log:
and here is my OnPlayerDeath Command:
Код:
SA-MP 0.3.7 Exception At Address: 0x3FB33333 Base: 0x03000000 Registers: EAX: 0x000BC1E8 EBX: 0x00000000 ECX: 0x08D134D8 EDX: 0x00859988 ESI: 0x00B61C38 EDI: 0x00000000 EBP: 0x75F080E0 ESP: 0x0022FD7C EFLAGS: 0x00210206 Stack: +0000: 0x004E376A 0xFFFFFFFA 0x00B6BC90 0x00000000 +0010: 0x0050788F 0x0000001A 0x864D1F93 0x0053E990 +0020: 0x00000001 0x008241AF 0x004D9486 0x0053ECC2 +0030: 0x00000001 0x00619B71 0x0000001A 0x00000001 +0040: 0x00000001 0x0000000A 0x00748DA0 0x0000001A +0050: 0x00000001 0x7774D8F3 0x00000000 0x0022FF88 +0060: 0x7FFDD000 0x01350000 0x4F064D08 0x00351130 +0070: 0x00000008 0x00000100 0x00000008 0x00000102 +0080: 0x44200000 0x44000000 0x00000000 0x00000000 +0090: 0x00000500 0x00000400 0x00000000 0x00000001 +00A0: 0x00310260 0x00000113 0x00000001 0x00000000 +00B0: 0x020FCE87 0x00000283 0x00000200 0x0000002C +00C0: 0x0022FE2C 0x00825EA4 0x7774D8F3 0x00000000 +00D0: 0x7FFDD000 0xFFFFFFFF 0x00821D17 0x00000065 +00E0: 0x00000065 0x0022FF88 0x008246F1 0x00400000 +00F0: 0x00000000 0x018D2005 0x0000000A 0x00000094 +0100: 0x00000006 0x00000001 0x00001DB1 0x00000002 +0110: 0x76726553 0x20656369 0x6B636150 0x00003120 +0120: 0x00000000 0x00000000 0x00000000 0x00000000 +0130: 0x00000000 0x00000000 0x00000000 0x00000000 +0140: 0x00000000 0x00000000 0x00000000 0x00000000 +0150: 0x00000000 0x00000000 0x00000000 0x00000000 +0160: 0x00000000 0x00000000 0x00000000 0x00000000 +0170: 0x00000000 0x00000000 0x00000000 0x00000000 +0180: 0x00000000 0x00000000 0x00000000 0x00824588 +0190: 0x00000000 0x00000000 0x7FFDD000 0xC0000005 +01A0: 0x75EC2BB4 0x018D2005 0x00000044 0x01906098 +01B0: 0x01904FB0 0x01903888 0x00000000 0x00000000 +01C0: 0x00000000 0x00000000 0x00000000 0x00000000 +01D0: 0x00000000 0x00000000 0x00000000 0x00000000 +01E0: 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0x00000000 +01F0: 0x00000000 0x0022FE78 0x0022F988 0x0022FFC4 +0200: 0x00825EA4 0x00888078 0x00000000 0x0022FF94 +0210: 0x7774ED6C 0x7FFDD000 0x0022FFD4 0x77BB377B +0220: 0x7FFDD000 0x75EB3AF5 0x00000000 0x00000000 +0230: 0x7FFDD000 0x00000000 0x00000000 0x00000000 +0240: 0x0022FFA0 0x00000000 0xFFFFFFFF 0x77B6E115 +0250: 0x0273D729 0x00000000 0x0022FFEC 0x77BB374E +0260: 0x00824570 0x7FFDD000 0x00000000 0x00000000 +0270: 0x00000000 0x00000000 0x00824570 0x7FFDD000 SCM Op: 0x6BD, lDbg: 0 LastRendObj: 638 Game Version: US 1.0 State Information: Ped Context: 0 P0 (0,0) P1 (0,0) P2 (0,0) P3 (17,0) P4 (0,0) P5 (17,0) P6 (0,0) P7 (0,0) P9 (0,0) P10 (19,174) P11 (18,174)
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
RemovePlayerAttachedObject(playerid, 6);
RemovePlayerAttachedObject(playerid, 9);
RemovePlayerAttachedObject(playerid, 8);
RemovePlayerAttachedObject(playerid, 7);
TogglePlayerControllable(playerid, 1);
RemovePlayerAttachedObject(playerid, 9);
RemovePlayerAttachedObject(playerid, 8);
RemovePlayerAttachedObject(playerid, 7);
SetPlayerSpecialAction(playerid, 0);
printf("CRASH DEBBUG-1 | %s",GetName(playerid));
//-------------ANTICHEAT---------------------------
if(AntiCheatInfo[playerid][acKicked]) return 0;
if(AntiCheatInfo[playerid][acACAllow][28] && (AntiCheatInfo[playerid][acDead] || !AntiCheatInfo[playerid][acDeathRes] && reason != 255 && (reason != 54 || killerid != 65535))) return ac_KickWithCode(playerid, "", 0, 28);
AntiCheatInfo[playerid][acDeathRes] = false;
AntiCheatInfo[playerid][acSet][0] = -1;
AntiCheatInfo[playerid][acDead] = true;
AntiCheatInfo[playerid][acSpawnRes] = 1;
AntiCheatInfo[playerid][acSpawnTime] = GetTickCount();
printf("CRASH DEBBUG");
//---------------POSAO STOP-----------------------
StopPosao(playerid);
printf("CRASH DEBBUG2 | %s",GetName(playerid));
//----------------------------------------------
if(brodpola[playerid] == 1) {
PlayerInfo[playerid][pPolaganje] = 0;
hPolaganjeb[playerid] = 0;
brodpola[playerid] = 0;
h_DisablePlayerCheckpoint(playerid);
}
if(brodpola[playerid] == 2) {
hPolaganjea[playerid] = 0;
brodpola[playerid] = 0;
DisablePlayerRaceCheckpoint(playerid);
}
printf("CRASH DEBBUG3 | %s",GetName(playerid));
//-------------------------------------------
StopAudioStreamForPlayer(playerid);
TextDrawShowForPlayer(playerid, addole1);
TextDrawShowForPlayer(playerid, addole2);
TextDrawShowForPlayer(playerid, addole0);
//PlayerTextDrawShow(playerid, SnegOffTD[playerid]);
TextDrawShowForPlayer(playerid, Textdraw7);
TextDrawShowForPlayer(playerid, Textdraw9);
TextDrawShowForPlayer(playerid, LSRPLogo0);
TextDrawShowForPlayer(playerid, LSRPLogo1);
TextDrawShowForPlayer(playerid, LSRPLogo2);
TextDrawShowForPlayer(playerid, LSRPLogo3);
TextDrawShowForPlayer(playerid, LSRPLogo4);
PlayerTextDrawShow(playerid, Zlato[playerid]);
PlayerTextDrawShow(playerid, Banka[playerid]);
PlayerTextDrawHide(playerid, klecanjetd[playerid]);
if(kamenklese[playerid] == 3 || klesevrijeme[playerid] > 0)
{
TogglePlayerControllable(playerid, 1);
}
KillTimer(klesetimer[playerid]);
UpoUAlarm[playerid] = 0;
naftalvl[playerid] = 0;
mozeminig[playerid] = 0;
if(posaov[playerid] != 0) {
posaow[posaov[playerid]] = 0;
}
matslvl[playerid] = 0;
hSecenje[playerid] = 0;
kamenklese[playerid] = 0;
klesevrijeme[playerid] = 0;
DrvosecaDuznost[playerid] = 0;
PizzaDuznost[playerid] = 0;
IdDrveta[playerid] = 0;
DrvosecaDuznost[playerid] = 0;
hSecenje[playerid] = 0;
SpremanDaSece[playerid] = 0;
drvoistovar[playerid] = 0;
PizzaDuznost[playerid] = 0;
pizzalvl[playerid] = 0;
ostalopizza[playerid] = 0;
randompizza[playerid] = 0;
ribalvl[playerid] = 0;
uhvatioriba[playerid] = 0;
pareriba[playerid] = 0;
ribav[playerid] = 0;
mduty[playerid] = 0;
gradnja[playerid] = 0;
KamenDuznost[playerid] = 0;
arhlvl[playerid] = 0;
StopAudioStreamForPlayer(playerid);
DestroyDynamicObject(dobjekt[playerid]);
DestroyDynamicObject(dobjekt2[playerid]);
DestroyDynamicObject(kamobjekat[playerid]);
DestroyDynamicObject(Drvo[playerid]);
DeletePlayer3DTextLabel(playerid, DrvoLabel[playerid]);
//SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
h_DisablePlayerCheckpoint(playerid);
ResetPlayerWeaponsEx(playerid);
kokicarlvl[playerid] = 0;
sladoledlvl[playerid] = 0;
DestroyDynamicObject(kokobj1[playerid]);
DestroyDynamicObject(kokobj2[playerid]);
DestroyDynamicObject(kokobj3[playerid]);
DestroyDynamicObject(kokobj4[playerid]);
DestroyDynamicObject(kokobj5[playerid]);
DestroyDynamicObject(kokobj6[playerid]);
DestroyDynamicObject(arhobj1[playerid]);
DestroyDynamicObject(arhobj2[playerid]);
DestroyDynamicObject(arhobj3[playerid]);
printf("CRASH DEBBUG4 | %s",GetName(playerid));
if(kokveh[playerid] != -1)
{
SetVehicleToRespawn_H(kokveh[playerid]);
}
new vv = GetPlayerVehicleID(playerid);
if(vv >= pizza[0] && vv <= pizza[5])
{
//if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
//{
SetVehicleToRespawn_H(vv);
SetVehicleHealth_H(vv, 999.99);
// }
}
if(vv >= Drvoseca[1] && vv <= Drvoseca[6])
{
// if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
// {
SetVehicleToRespawn_H(vv);
SetVehicleHealth_H(vv, 999.99);
}
// }
if(vv >= kamenorezac[0] && vv <= kamenorezac[8])
{
// if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
// {
SetVehicleToRespawn_H(vv);
SetVehicleHealth_H(vv, 999.99);
}
// }
if(vv >= gradi[0] && vv <= gradi[7])
{
// if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
// {
SetVehicleToRespawn_H(vv);
SetVehicleHealth_H(vv, 999.99);
}
// }
//
printf("CRASH DEBBUG5 | %s",GetName(playerid));
mre[playerid] = 1;
pint[playerid] = 0;
KillTimer(govornicatimer[playerid]);
kokicarlvl[playerid] = 0;
////////////////ADMIN DUTY///////////////////
if(aduty[playerid] >= 1) {
aduty[playerid] = 0;
SetPlayerColor(playerid,COLOR_GRAD2);
}
///////////////////KAMENOREZACX//////////////
kamenklese[playerid] = 0;
klesevrijeme[playerid] = 0;
KamenDuznost[playerid] = 0;
h_DisablePlayerCheckpoint(playerid);
PlayerTextDrawHide(playerid, klecanjetd[playerid]);
//////////////////ANTI FAKEKILL///////////
//////////////NESTO/////////////////////
printf("CRASH DEBBUG6 | %s",GetName(playerid));
mre[playerid] = 1;
pint[playerid] = 0;
SetPlayerVirtualWorld(playerid, 0);
///////////////IMANJE////////////////////
cpimanje[playerid] = 0;
///////////////////////ARHI///////////////
if(arhlvl[playerid] > 0)
{
arhlvl[playerid] = 0;
arhpare[playerid] = 0;
arhcar[playerid] = 0;
}
///////////////////DDUTY MIRICIJA////////
if(PlayerInfo[playerid][pDuty] == 1)
{
PlayerInfo[playerid][pDuty] = 0;
SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
RemovePlayerAttachedObject(playerid, 7);
SetPlayerColor(playerid,COLOR_GRAD2);
SetPlayerArmour_H(playerid, 0);
}
//////////////RIBAR////////////////////////
uhvatioriba[playerid] = 0;
pareriba[playerid] = 0;
ribalvl[playerid] = 0;
ribav[playerid] = -1;
printf("CRASH DEBBUG7 | %s",GetName(playerid));
////////////////////KUGLE/////////////////////
if(drzikuglu[playerid] != -1)
{
new string[126];
new kugla = drzikuglu[playerid];
GetPlayerPos(playerid, X,Y,Z);
ZK[kugla][kX] = X;
ZK[kugla][kY] = Y;
ZK[kugla][kZ] = Z-0.5;
ZK[kugla][kP] = 1;
KugleObj1[kugla] = CreateDynamicObject(19574, ZK[kugla][kX],ZK[kugla][kY],ZK[kugla][kZ]-0.3, 0.00000, 0.00000, 0.00000);
SetDynamicObjectMaterial(KugleObj1[kugla], 0, 18031, "cj_exp", "mp_cloth_wall", 0xFFCC9F23);
format(string,sizeof(string),"{F0F000}Zivkova Kugla #%d",kugla);
kugletxt[kugla] = CreateDynamic3DTextLabel(string ,0x33CCFFAA,ZK[kugla][kX], ZK[kugla][kY], ZK[kugla][kZ]-0.3,5);
//SacuvajKuglu(kugla);
drzikuglu[playerid] = -1;
}
////////////////////GRADNJA///////////////////
gradnja[playerid] = 0;
//////////////////////ZONA////////////////////////////
if(zonatime[playerid] > 0)
{
new id = zonaid[playerid];
GangZoneStopFlashForAll(ZonaID[id]);
PlayerTextDrawHide(playerid, klecanjetd[playerid]);
zonaid[playerid] = -1;
zonatime[playerid] = -1;
zzauzima[playerid] = 0;
KillTimer(zonatimer[playerid]);
SCM(playerid,GRAD2,"Niste uspeli da zauzmete teritoriju, spreceni ste!");
}
printf("CRASH DEBBUG8 | %s",GetName(playerid));
////////////////////ORUZJE DROP//////////////////////
if(PlayerInfo[playerid][pAdmin] < 1) {
if(PlayerInfo[playerid][pDuty] == 0 || DmIgrac[playerid] == 0) {
for(new slot = 0; slot != 12; slot++) {
new wep, ammo;
GetPlayerWeaponData(playerid, slot, wep, ammo);
if(wep != 9 && DrvosecaDuznost[playerid] != 1) {
if(wep != 0 && ammo != 0) {
if(!IsACop(playerid)) {
GetPlayerPos(playerid, X, Y, Z);
DropGun(playerid, wep,ammo,X,Y,Z,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
}
}
}
}
}
}
////////////////////ISTA ORGA KILL///////////////////
if(killerid != INVALID_PLAYER_ID)
{
new stringc[126];
new gunname[32];
GetWeaponName(reason,gunname,sizeof(gunname));
format(stringc,sizeof(stringc), "[ADMIN] Igrac %s ubio je igraca %s, oruzje: %s. /spec /checkweapons", GetName(killerid),GetName(playerid),gunname);
AdminPoruka(CRVENA, stringc);
}
printf("CRASH DEBBUG9 | %s",GetName(playerid));
if(killerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[killerid][pClan] > 0)
{
if(PlayerInfo[killerid][pClan] == PlayerInfo[playerid][pClan])
{
format(CmdString, 128, "{36A5BC}[ORGANIZACIJA] Clan organizacije %s je ubio clana organizacije %s.", GetName(killerid), GetName(playerid));
SendFamilyMessage(PlayerInfo[playerid][pClan],COLOR_LIGHTBLUE,CmdString);
}
}
}
//////////////////////SDUTY SKIINi///////////////
if(sduty[playerid] == 1)
{
sduty[playerid] = 0;
}
printf("CRASH DEBBUG10 | %s",GetName(playerid));
///////////////////////////////////////////////
KillTimer(DragTimer[playerid]);
SetPlayerVirtualWorld(playerid, 0);
if(DrvosecaDuznost[playerid] > 0)
{
hSecenje[playerid] = 0;
DrvosecaDuznost[playerid] = 0;
}
/////////BANKA KILL//////////////////////
if(RobBank[playerid] == 1)
{
RobBank[playerid] = 0;
PlayerTextDrawHide(playerid, robtd[playerid]);
KillTimer(RobTimer[playerid]);
RobPare[playerid] =0;
}
if(RobZlatara[playerid] == 1)
{
KillTimer(RobTimer[playerid]);
PlayerTextDrawHide(playerid, klecanjetd[playerid]);
RobZlatara[playerid] = 0;
}
///////////DED MSG///////////////////////
if(killerid != INVALID_PLAYER_ID)
{
if(IsACop(killerid))
{
if(WantedLevel[playerid] > 0)
{
foreach(new i : Player)
{
if(IsACop(i))
{
new strall[126];
format(strall, sizeof(strall), "HQ: Svim jedinicama, policajac %s je obavio zadatak",GetName(killerid));
SCM(i,PLAVA,strall);
format(strall, sizeof(strall), "HQ: %s je sredjen, Ubijen",GetName(playerid));
SCM(i,PLAVA,strall);
}
}
}
else
{
foreach(new i : Player)
{
if(IsACop(i))
{
new orgp[126];
format(orgp, sizeof(orgp), "{36A5BC}[ORGANIZACIJA] Policajac %s je ubio civila %s! Wanted level igraca: 0", GetName(killerid), GetName(playerid));
SCM(i,PLAVA,orgp);
}
}
}
}
}
if(hZavezan[playerid] == 1)
{
PlayerTextDrawHide(playerid,TieCrno[playerid]);
hZavezan[playerid] = 0;
}
if(Prisustvuje[playerid] == true)
{
WantedLevel[playerid] = 0;
UpdatePlayerWL(playerid);
}
if(eecp[playerid] == -1)
{
eecp[playerid] = 0;
AntiCheatInfo[playerid][acACAllow][52] = true;
WantedLevel[playerid] = 0;
UpdatePlayerWL(playerid);
}
printf("CRASH DEBBUG11 | %s",GetName(playerid));
///////////////////////////WL//////////////////
if(WantedLevel[playerid] >= 1)
{
ResetPlayerWeaponsEx(playerid);
new novac = WantedLevel[playerid] * 200;
GivePlayerMoneyEx(playerid, -novac);
format(CmdString, 120, "Poginuli ste sa %d wanted levela, gubite $%d.",WantedLevel[playerid] ,novac);
SCM(playerid,TAMNOCRVENA,CmdString);
WantedLevel[playerid] = 0;
}
//////////////////////////////////////////////
if(killerid != INVALID_PLAYER_ID)
{
if(eecp[playerid] == -1)
{
BolnicaSpawn[playerid] = 1;
}
}
SpawnPlayer(playerid);
SetPlayerSpawn(playerid);
////////////////////EVENT/////////////////
PlayerInfo[playerid][pPridruzeneventu] = 0;
DisablePlayerRaceCheckpoint(playerid);
Prisustvuje[playerid] = false;
ecp[playerid] = 0;
eecp[playerid] = 0;
AntiCheatInfo[playerid][acACAllow][52] = true;
DmIgrac[playerid] = 0;
printf("CRASH DEBBUG12 | %s",GetName(playerid));
///////////////////////////
GetPlayerPos(playerid, X,Y,Z);
SetPVarInt(playerid, "NoAB", 1);
SetPVarFloat(playerid, "OldPosX", X);
SetPVarFloat(playerid, "OldPosY", Y);
SetPVarFloat(playerid, "OldPosZ", Z);
//////////////////////////
HealthSynced[playerid] = 0;
PlayerInfo[playerid][pWC] = 0;
PlayerInfo[playerid][pGlad] = 0;
IgracSpawnan[playerid] = 1;
if(DmIgrac[playerid] == 1)
{
DmIgraci --;
DmIgrac[playerid] = 0;
Prisustvuje[playerid] = false;
return 1;
}
if(GetPlayerState(killerid) == 1 || GetPlayerState(killerid) == PLAYER_STATE_PASSENGER)
{
if(IsACop(killerid) || DmIgrac[killerid] > 0)
{ }
else
{
PlayerInfo[killerid][pUbistva]++;
PlayerInfo[playerid][pSmrti]++;
PlayerInfo[killerid][pZlocin]++;
WantedLevel[killerid] += 6;
SetPlayerCriminal(killerid,255, "Ubistvo");
UpdatePlayerWL(killerid);
UpdatePlayerWL(playerid);
}
}
TazerAcceso[playerid] = 0;
if(killerid != INVALID_PLAYER_ID)
{
if(DrvosecaDuznost[killerid] == 1)
{
if(GetPlayerWeapon(killerid) == 9)
{
new djura = random(sizeof(gZatvorSpawn));
SetPlayerPos_H(killerid, gZatvorSpawn[djura][0], gZatvorSpawn[djura][1], gZatvorSpawn[djura][2]);
SetPlayerVirtualWorld(killerid, 1);
PlayerInfo[killerid][pAlcatraz] = 3600;
PlayerInfo[killerid][pSpawn] = 4;
WantedLevel[killerid] = 0;
UpdatePlayerWL(killerid);
format(CmdString, 128, "{FFFFFF}Zatvoreni ste od strane Auto-Admina zbog ubistva igraca motornom testerom. Vreme: 60 Minuta");
SCM(killerid,-1,CmdString);
format(CmdString, 128, "{FF0000}[CENTRALNI ZATVOR] {FFFFFF}Igrac %s je zatvoren od strane Auto-Admina. {FF0000}[Vreme: 60 minuta]",GetName(killerid));
SendClientMessageToAll(-1,CmdString);
GivePlayerMoneyEx(killerid, -1000);
SCM(killerid,NARANDZASTA,"Oduzeto vam je $1000 jer ste zatvoreni od strane Auto-Administratora");
ResetPlayerWeaponsEx(killerid);
SetPlayerSkin(killerid, PlayerInfo[killerid][pSkin]);
}
}
}
if(otok[playerid] > 0)
{
SetPlayerCheckpoint(playerid, 463.2690,-1936.9260,7.2221,4.0);
}
if(stigaoo[playerid] == 1)
{
otok[playerid] = 0;
stigaoo[playerid] = 0;
vozisebrodom[playerid] = 0;
}
vozisebrodom[playerid] = 0;
DisablePlayerCheckpoint(playerid);
printf("CRASH DEBBUG13 | %s",GetName(playerid));
return 1;
}


