Eupie
Ученик
Такое дело. Всё было нормально, но начал вырубаться после редактирования объектов в игре.
Редактирование и создание идёт через команду /mapmenu
Вот весь код:
Паблик OnDialogResponse:
Паблики OnPlayerSelectDynamicObject и OnPlayerEditDynamicObject
У меня есть crashdetect и он сделал лог (crashinfo):
Вот он:
Редактирование и создание идёт через команду /mapmenu
Вот весь код:
PHP:
CMD:mapmenu(playerid)
{
if(PlayerInfo[playerid][pAdminLevel] < 5) return 1;
if(!IsPlayerAdminLogged(playerid)) return cmd_alogin(playerid);
ShowPlayerMapMenu(playerid);
return 1;
}
stock ShowPlayerMapMenu(playerid)
{
SPD(playerid,24,DSL,"{FF4040}[Меню редактирования карты]{FFFFFF}","\
Создать объект\n\
Редактировать/удалить объект\
","Выбрать","Отмена");
return 1;
}
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
case 24:
{
if(response)
{
switch(listitem)
{
case 0: SPD(playerid, 25, DSI,"{FF4040}[MapMenu]:{FFFFFF} Создание объекта", "Введите ID модели объекта:", "Создать", "Назад");
case 1: SelectObject(playerid);
}
}
}
case 25:
{
if(response)
{
if(!strlen(inputtext)) return SPD(playerid, 25, DSI,"{FF4040}[MapMenu]:{FFFFFF} Создание объекта", "Введите ID модели объекта:", "Создать", "Назад");
if(strval(inputtext) < 615 || strval(inputtext) > 19999) return SPD(playerid, 25, DSI,"{FF4040}[MapMenu]:{FFFFFF} Создание объекта", "Введите ID модели объекта:", "Создать", "Назад");
new Float: pX, Float: pY, Float: pZ;
GetPlayerPos(playerid, pX, pY, pZ);
new objectid = CreateDynamicObject(strval(inputtext), pX, pY+20, pZ, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), -1, 200.0, 200.0);
SelectedObjectID[playerid] = objectid;
EditDynamicObject(playerid, objectid);
new string[1024];
f("%s создал(а) объект. ID: %d | MODEL: %d",GN(playerid), SelectedObjectID[playerid], GetDynamicObjectModel(objectid));
SendAdminsLog(string);
mysql_f("INSERT INTO `"TABLE_OBJECTS"` \
(`ID`,`Model`,`VirtualWorld`,`Interior`,`fX`,`fY`,`fZ`,`fRotX`,`fRotY`,`fRotZ`) \
VALUES \
('%d','%d','%d','%d','%f','%f','%f','%f','%f','%f')"
,
objectid,
GetDynamicObjectModel(objectid),
GetPlayerVirtualWorld(playerid),
GetPlayerInterior(playerid),
pX,
pY+20,
pZ,
0.0,
0.0,
0.0
);
mysql_query(MySQL_Connect,string,false);
ObjectInfo[objectid][oModel] = GetDynamicObjectModel(objectid);
ObjectInfo[objectid][oVirtualWorld] = GetPlayerVirtualWorld(playerid);
ObjectInfo[objectid][oInterior] = GetPlayerInterior(playerid);
ObjectInfo[objectid][oPosX] = pX;
ObjectInfo[objectid][oPosY] = pY+20;
ObjectInfo[objectid][oPosZ] = pZ;
ObjectInfo[objectid][oRotX] = 0.0;
ObjectInfo[objectid][oRotY] = 0.0;
ObjectInfo[objectid][oRotZ] = 0.0;
ObjectInfo[objectid][oPrivacy] = false;
}
else ShowPlayerMapMenu(playerid);
}
case 26:
{
if(response)
{
if(ObjectInfo[SelectedObjectID[playerid]][oPrivacy] == true) return SendPlayerError(playerid, "Äàííûé îáúåêò íåëüçÿ ðåäàêòèðîâàòü!");
EditDynamicObject(playerid, SelectedObjectID[playerid]);
new string[128];
f("%s начал(а) редактирование об. ID: %d | MODEL: %d",GN(playerid),SelectedObjectID[playerid],GetDynamicObjectModel(SelectedObjectID[playerid]));
SendAdminsLog(string);
}
else
{
new objectid = SelectedObjectID[playerid];
if(ObjectInfo[objectid][oPrivacy] == true)
{
SendPlayerError(playerid, "Данный объект нельзя редактировать!");
return 1;
}
new string[1024];
f("%s удалил(а) объект. ID: %d | MODEL: %d",GN(playerid),SelectedObjectID[playerid],GetDynamicObjectModel(objectid));
SendAdminsLog(string);
DestroyDynamicObject(objectid);
CancelEdit(playerid);
SelectedObjectID[playerid] = 0;
mysql_f("DELETE FROM `"TABLE_OBJECTS"` WHERE `ID` = '%d'",objectid);
mysql_query(MySQL_Connect,string,false);
ObjectInfo[objectid][oModel] = 0;
ObjectInfo[objectid][oVirtualWorld] = 0;
ObjectInfo[objectid][oInterior] = 0;
ObjectInfo[objectid][oPosX] = 0.0;
ObjectInfo[objectid][oPosY] = 0.0;
ObjectInfo[objectid][oPosZ] = 0.0;
ObjectInfo[objectid][oRotX] = 0.0;
ObjectInfo[objectid][oRotY] = 0.0;
ObjectInfo[objectid][oRotZ] = 0.0;
}
}
}
PHP:
public OnPlayerSelectDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, modelid, Float:x, Float:y, Float:z)
{
SelectedObjectID[playerid] = objectid;
SPD(playerid,26,DSM,"{FFFFFF}","Объект выбран. Выберите что сделать с ним:","Изменить","Удалить");
return 1;
}
public OnPlayerEditDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
if(!IsValidDynamicObject(objectid)) return 0;
MoveObject(objectid, x, y, z, 10.0, rx, ry, rz);
new Float: oldX, Float: oldY, Float: oldZ,
Float: oldRotX, Float: oldRotY, Float: oldRotZ;
GetDynamicObjectPos(objectid, oldX, oldY, oldZ);
GetDynamicObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
if(!IsValidDynamicObject(objectid)) return 1;
MoveDynamicObject(objectid, x, y, z, 10.0, rx, ry, rz);
new string[1024];
if(response == EDIT_RESPONSE_FINAL)
{
SetDynamicObjectPos(objectid, x, y, z);
SetDynamicObjectRot(objectid, rx, ry, rz);
f("%s закончил(а) редактирование объекта. ID: %d | MODEL: %d",GN(playerid), objectid, GetDynamicObjectModel(objectid));
SendAdminsLog(string);
SelectedObjectID[playerid] = 0;
mysql_f("UPDATE `"TABLE_OBJECTS"` SET \
`fX` = '%f',\
`fY` = '%f',\
`fZ` = '%f',\
`fRotX` = '%f',\
`fRotY` = '%f',\
`fRotZ` = '%f' \
WHERE `ID` = '%d'"
,
x,
y,
z,
rx,
ry,
rz,
objectid
);
mysql_query(MySQL_Connect,string,false);
ObjectInfo[objectid][oPosX] = x;
ObjectInfo[objectid][oPosY] = y;
ObjectInfo[objectid][oPosZ] = z;
ObjectInfo[objectid][oRotX] = rx;
ObjectInfo[objectid][oRotY] = ry;
ObjectInfo[objectid][oRotZ] = rz;
}
if(response == EDIT_RESPONSE_CANCEL)
{
SetDynamicObjectPos(objectid, x, y, z);
SetDynamicObjectRot(objectid, rx, ry, rz);
f("%s закончил(а) редактирование объекта. ID: %d | MODEL: %d",GN(playerid), objectid, GetDynamicObjectModel(objectid));
SendAdminsLog(string);
SelectedObjectID[playerid] = 0;
mysql_f("UPDATE `"TABLE_OBJECTS"` SET \
`fX` = '%f',\
`fY` = '%f',\
`fZ` = '%f',\
`fRotX` = '%f',\
`fRotY` = '%f',\
`fRotZ` = '%f' \
WHERE `ID` = '%d'"
,
x,
y,
z,
rx,
ry,
rz,
objectid
);
mysql_query(MySQL_Connect,string,false);
ObjectInfo[objectid][oPosX] = x;
ObjectInfo[objectid][oPosY] = y;
ObjectInfo[objectid][oPosZ] = z;
ObjectInfo[objectid][oRotX] = rx;
ObjectInfo[objectid][oRotY] = ry;
ObjectInfo[objectid][oRotZ] = rz;
}
return 1;
}
Вот он:
PHP:
--------------------------
SA-MP Server: 0.3.7-R2
Exception At Address: 0x0049B4B1 Module: (samp-server.exe)
Registers:
EAX: 0x02991D90 EBX: 0x0298B1F8 ECX: 0x00000000 EDX: 0x00000000
ESI: 0x02993230 EDI: 0x00000000 EBP: 0x0049B4A1 ESP: 0x0019FE98
EFLAGS: 0x00010202
Stack:
+0000: 0x004AB4A0 0x0019FF70 0x004AB0E1 0xFFFFFFFF
+0010: 0x0049CCA6 0x00000001 0x04571370 0x045713D0
+0020: 0x00000094 0x00000006 0x00000002 0x000023F0
+0030: 0x00000002 0x00000000 0x00000000 0x00000000
+0040: 0x00000000 0x00000000 0x00000000 0x00000000
+0050: 0x00000000 0x00000000 0x00000000 0x00000000
+0060: 0x00000000 0x00000000 0x00000000 0x00000000
+0070: 0x00000000 0x00000000 0x00000000 0x00000000
+0080: 0x00000000 0x00000000 0x00000000 0x00000000
+0090: 0x00000000 0x00000000 0x00000000 0x00000000
+00A0: 0x00000000 0x00000000 0x00000000 0x00000000
+00B0: 0x0049CB52 0x0049CB3A 0x0049CB3A 0x0029C000
+00C0: 0x00000000 0x00000000 0xC0000005 0x00000000
+00D0: 0x0019FEB8 0x0019F6E4 0x0019FFCC 0x0049D208
+00E0: 0x004BA530 0x00000000 0x0019FF94 0x76958654
+00F0: 0x0029C000 0x76958630 0x92F63663 0x0019FFDC
+0100: 0x77DA4A77 0x0029C000 0xECEF13AD 0x00000000
+0110: 0x00000000 0x0029C000 0x00000000 0x00000000
+0120: 0x00000000 0x00000000 0xECEF13AD 0x0019FFA0
+0130: 0x00000000 0x0019FFE4 0x77DB6A50 0x9B151749
--------------------------
Loaded Modules:
samp-server.exe A: 0x00400000 - 0x00519000 (C:\Users\Eupie\Desktop\PAWN Scripting\Matrix RolePlay [0.3.7]\samp-server.exe)
ntdll.dll A: 0x77D40000 - 0x77ECD000 (C:\Windows\SYSTEM32\ntdll.dll)
KERNEL32.DLL A: 0x76940000 - 0x76A10000 (C:\Windows\System32\KERNEL32.DLL)
KERNELBASE.dll A: 0x77690000 - 0x77867000 (C:\Windows\System32\KERNELBASE.dll)
SHELL32.dll A: 0x74180000 - 0x754B3000 (C:\Windows\System32\SHELL32.dll)
msvcrt.dll A: 0x77120000 - 0x771DD000 (C:\Windows\System32\msvcrt.dll)
cfgmgr32.dll A: 0x771E0000 - 0x77218000 (C:\Windows\System32\cfgmgr32.dll)
ucrtbase.dll A: 0x75DD0000 - 0x75EE7000 (C:\Windows\System32\ucrtbase.dll)
shcore.dll A: 0x77570000 - 0x775F8000 (C:\Windows\System32\shcore.dll)
RPCRT4.dll A: 0x76A10000 - 0x76ACE000 (C:\Windows\System32\RPCRT4.dll)
SspiCli.dll A: 0x75AA0000 - 0x75AC0000 (C:\Windows\System32\SspiCli.dll)
CRYPTBASE.dll A: 0x75A90000 - 0x75A9A000 (C:\Windows\System32\CRYPTBASE.dll)
bcryptPrimitives.dll A: 0x77AF0000 - 0x77B47000 (C:\Windows\System32\bcryptPrimitives.dll)
sechost.dll A: 0x77230000 - 0x77273000 (C:\Windows\System32\sechost.dll)
combase.dll A: 0x76430000 - 0x76676000 (C:\Windows\System32\combase.dll)
windows.storage.dll A: 0x76B40000 - 0x77106000 (C:\Windows\System32\windows.storage.dll)
advapi32.dll A: 0x77A70000 - 0x77AE8000 (C:\Windows\System32\advapi32.dll)
shlwapi.dll A: 0x75AC0000 - 0x75B05000 (C:\Windows\System32\shlwapi.dll)
GDI32.dll A: 0x75EF0000 - 0x75F12000 (C:\Windows\System32\GDI32.dll)
gdi32full.dll A: 0x77910000 - 0x77A6E000 (C:\Windows\System32\gdi32full.dll)
msvcp_win.dll A: 0x77610000 - 0x7768C000 (C:\Windows\System32\msvcp_win.dll)
USER32.dll A: 0x75B60000 - 0x75CD5000 (C:\Windows\System32\USER32.dll)
win32u.dll A: 0x77550000 - 0x77566000 (C:\Windows\System32\win32u.dll)
kernel.appcore.dll A: 0x75DC0000 - 0x75DCE000 (C:\Windows\System32\kernel.appcore.dll)
powrprof.dll A: 0x75B10000 - 0x75B55000 (C:\Windows\System32\powrprof.dll)
profapi.dll A: 0x77280000 - 0x77294000 (C:\Windows\System32\profapi.dll)
WINMM.dll A: 0x70240000 - 0x70264000 (C:\Windows\SYSTEM32\WINMM.dll)
WSOCK32.dll A: 0x71940000 - 0x71948000 (C:\Windows\SYSTEM32\WSOCK32.dll)
WS2_32.dll A: 0x76AD0000 - 0x76B36000 (C:\Windows\System32\WS2_32.dll)
WINMMBASE.dll A: 0x701E0000 - 0x70203000 (C:\Windows\SYSTEM32\WINMMBASE.dll)
IMM32.DLL A: 0x772A0000 - 0x772C5000 (C:\Windows\System32\IMM32.DLL)
FakeOnline.dll A: 0x757A0000 - 0x757DC000 (C:\Users\Eupie\Desktop\PAWN Scripting\Matrix RolePlay [0.3.7]\plugins\FakeOnline.dll)
MSVCP100.dll A: 0x756E0000 - 0x75749000 (C:\Windows\SYSTEM32\MSVCP100.dll)
MSVCR100.dll A: 0x71000000 - 0x710BE000 (C:\Windows\SYSTEM32\MSVCR100.dll)
streamer.dll A: 0x75680000 - 0x756D7000 (C:\Users\Eupie\Desktop\PAWN Scripting\Matrix RolePlay [0.3.7]\plugins\streamer.dll)
VCRUNTIME140.dll A: 0x75660000 - 0x75675000 (C:\Windows\SYSTEM32\VCRUNTIME140.dll)
MSVCP140.dll A: 0x70F90000 - 0x70FFD000 (C:\Windows\SYSTEM32\MSVCP140.dll)
dc_cmd.dll A: 0x10000000 - 0x10007000 (C:\Users\Eupie\Desktop\PAWN Scripting\Matrix RolePlay [0.3.7]\plugins\dc_cmd.dll)
MSVCP110.dll A: 0x70F00000 - 0x70F85000 (C:\Windows\SYSTEM32\MSVCP110.dll)
MSVCR110.dll A: 0x70E20000 - 0x70EF2000 (C:\Windows\SYSTEM32\MSVCR110.dll)
sscanf.dll A: 0x04530000 - 0x0453D000 (C:\Users\Eupie\Desktop\PAWN Scripting\Matrix RolePlay [0.3.7]\plugins\sscanf.dll)
mysql.dll A: 0x70DD0000 - 0x70E14000 (C:\Users\Eupie\Desktop\PAWN Scripting\Matrix RolePlay [0.3.7]\plugins\mysql.dll)
LIBMYSQL.dll A: 0x67D90000 - 0x6805A000 (C:\Users\Eupie\Desktop\PAWN Scripting\Matrix RolePlay [0.3.7]\LIBMYSQL.dll)
napinsp.dll A: 0x6E0D0000 - 0x6E0E1000 (C:\Windows\system32\napinsp.dll)
pnrpnsp.dll A: 0x6CF20000 - 0x6CF36000 (C:\Windows\system32\pnrpnsp.dll)
NLAapi.dll A: 0x6CF00000 - 0x6CF13000 (C:\Windows\system32\NLAapi.dll)
mswsock.dll A: 0x6E060000 - 0x6E0B5000 (C:\Windows\System32\mswsock.dll)
DNSAPI.dll A: 0x6DFC0000 - 0x6E054000 (C:\Windows\SYSTEM32\DNSAPI.dll)
NSI.dll A: 0x77220000 - 0x77227000 (C:\Windows\System32\NSI.dll)
IPHLPAPI.DLL A: 0x75600000 - 0x75630000 (C:\Windows\SYSTEM32\IPHLPAPI.DLL)
winrnr.dll A: 0x71360000 - 0x7136C000 (C:\Windows\System32\winrnr.dll)
wshbth.dll A: 0x6E0C0000 - 0x6E0D0000 (C:\Windows\System32\wshbth.dll)
rasadhlp.dll A: 0x6C2B0000 - 0x6C2B8000 (C:\Windows\System32\rasadhlp.dll)
bcrypt.dll A: 0x71330000 - 0x71349000 (C:\Windows\SYSTEM32\bcrypt.dll)
