Object Crashers. -
Sanya4 - 29.11.2017
Действительно из-за некоторых объектов игроков может крашить?
Говорят что объекты "clothes (384-393) or spray tags" могут крашить игроков. Если это так не могли бы скинуть еще какие именно объекты крашат.

А то на моих картах иногда целая куча народа вылетает, то есть по пачками по 10-15 человек. Вроде адрес скинули(но не точно): Exception 0xC0000005 at 0x44A503. Вроде гаражных ворот нет там.
Re: Object Crashers. -
Eims - 29.11.2017
Если удалить ворота от тюнинга или покраски, так же крашить будет
Re: Object Crashers. -
Sanya4 - 29.11.2017
Удалось получить краш репорт(могу скинуть объекты):
PHP Code:
SA-MP 0.3.7
Exception At Address: 0x0044A503
Base: 0x036D0000
Registers:
EAX: 0x00000000 EBX: 0x00000800 ECX: 0x0A16B4BC EDX: 0x0085BB2F
ESI: 0x0A16B4BC EDI: 0x0A16B4BC EBP: 0x0028FD8C ESP: 0x0028FCE8
EFLAGS: 0x00210202
Stack:
+0000: 0x09368E58 0x0028FD8C 0x00448B16 0x09368E58
+0010: 0x005A2B71 0x005A2B7F 0x00000000 0x09368E58
+0020: 0x00000800 0x000055D8 0x00000000 0x00000000
+0030: 0x00000000 0x00000000 0x00000000 0x00000000
+0040: 0x00000AEE 0x09F954A0 0x00871120 0x0056872C
+0050: 0x00000001 0x080C2F5C 0x0000009D 0x0053C09A
+0060: 0x0000001A 0xFFFFFFFF 0x00000000 0xFF69A9E4
+0070: 0x03734436 0xFFFFFFFF 0x0376DAAE 0x0000001A
+0080: 0x080B94C2 0x00000000 0x0D493D80 0x0028FD64
+0090: 0x0028F824 0x0028FF70 0x03785D64 0x037AA678
+00A0: 0x00000002 0x75299F10 0x0053E986 0x00000001
+00B0: 0x00000001 0x0000000A 0x0053ECC2 0x00000001
+00C0: 0x00619B71 0x0000001A 0x00000001 0x00000001
+00D0: 0x0000000A 0x00748DA0 0x0000001A 0x00000001
+00E0: 0x77328F60 0x00000000 0x0028FF80 0xFFFDF000
+00F0: 0x016D0000 0x4D00B873 0x016D0F08 0x00000008
+0100: 0x00000100 0x00000008 0x00000102 0x442AC000
+0110: 0x43C00000 0x00000000 0x00000000 0x00000556
+0120: 0x00000300 0x00000000 0x00000001 0x001F22F8
+0130: 0x00000113 0x00000001 0x00000000 0x1E4E46C6
+0140: 0x00000247 0x000000DB 0x0000002C 0x0028FE24
+0150: 0x00825EA4 0x0028FF70 0x74D44115 0x00000000
+0160: 0xFFFDF000 0x00821D17 0x00835342 0xE7168FEC
+0170: 0x0028FF80 0x008246F1 0x00400000 0x00000000
+0180: 0x017F336D 0x0000000A 0x00000094 0x00000006
+0190: 0x00000002 0x000023F0 0x00000002 0x00000000
+01A0: 0x00000000 0x00000000 0x00000000 0x00000000
+01B0: 0x00000000 0x00000000 0x00000000 0x00000000
+01C0: 0x00000000 0x00000000 0x00000000 0x00000000
+01D0: 0x00000000 0x00000000 0x00000000 0x00000000
+01E0: 0x00000000 0x00000000 0x00000000 0x00000000
+01F0: 0x00000000 0x00000000 0x00000000 0x00000000
+0200: 0x00000000 0x00000000 0x00000000 0x00000000
+0210: 0x00000000 0x00000000 0x00824588 0x00824570
+0220: 0x00824570 0xFFFDF000 0xC0000005 0x00000000
+0230: 0x017F336D 0x00000044 0x017FD218 0x017FEA78
+0240: 0x018079B0 0x00000000 0x00000000 0x00000000
+0250: 0x00000000 0x00000000 0x00000000 0x00000000
+0260: 0x00000000 0x00000000 0x00000000 0xFFFFFFFF
+0270: 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000
SCM Op: 0x685, lDbg: 0 LastRendObj: 3276
Game Version: US 1.0
State Information: Ped Context: 0
P0 (17,0) P1 (32,0) P2 (17,0) P3 (17,0)
P4 (17,0) P5 (17,0) P8 (17,0) P9 (17,0) P10 (17,0) P11 (17,0)
P12 (17,0) P13 (17,0) P14 (17,0) P16 (17,0) P17 (17,0) P18 (17,0) P19 (17,0)
P20 (17,0) P21 (17,0) P22 (19,192) P23 (17,0)
P24 (17,0) P26 (17,0) P27 (17,0)
P28 (17,0) P31 (17,0)
P34 (17,0)
Re: Object Crashers. -
cm666 - 29.11.2017
http://forum.sa-mp.com/showthread.ph...ght=0x0044A503
Re: Object Crashers. -
Sanya4 - 29.11.2017
Как выяснилось это походу крашер. Называется детонатор крашер(в собейте). Кто-нибудь знает как фиксануть?
Re: Object Crashers. -
Sanya4 - 29.11.2017
Мой сервер 0.3.7-R2. Вот код:
PHP Code:
if (OLCheats->bDetonatorCrasher)
{
static DWORD DetonatorCrasherTick = GetTickCount();
static int iCamModeCount = 0;
int iCameModeID[7] = { 7, 8, 34, 45, 46, 51, 65 };
static bool bState = false;
if (GetTickCount() - DetonatorCrasherTick < 1000)
{
if (!bState)
{
stOnFootData OnFootData;
memcpy(&OnFootData, &g_Players->pLocalPlayer->onFootData, sizeof(stOnFootData));
OnFootData.sKeys = 128; // works only with key for aim
OnFootData.byteCurrentWeapon = 40;
BitStream bsOnFoot;
bsOnFoot.Write((BYTE)ID_PLAYER_SYNC);
bsOnFoot.Write((PCHAR)&OnFootData, sizeof(stOnFootData));
g_RakFuncs->Send(&bsOnFoot, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0);
bState = true;
}
}
else
{
if (bState)
{
stOnFootData OnFootData;
memcpy(&OnFootData, &g_Players->pLocalPlayer->onFootData, sizeof(stOnFootData));
OnFootData.fPosition[0] += 200000.f;
OnFootData.fPosition[1] += 200000.f;
OnFootData.sKeys = 128;
OnFootData.byteCurrentWeapon = 40;
BitStream bsOnFoot;
bsOnFoot.Write((BYTE)ID_PLAYER_SYNC);
bsOnFoot.Write((PCHAR)&OnFootData, sizeof(stOnFootData));
g_RakFuncs->Send(&bsOnFoot, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0);
bState = false;
}
if (GetTickCount() - DetonatorCrasherTick > 2000)
{
DetonatorCrasherTick = GetTickCount();
}
}
stAimData AimData;
memcpy(&AimData, &g_Players->pLocalPlayer->aimData, sizeof(stAimData));
AimData.byteCamMode = iCameModeID[iCamModeCount];
BitStream bsAim;
bsAim.Write((BYTE)ID_AIM_SYNC);
bsAim.Write((PCHAR)&AimData, sizeof(stAimData));
g_RakFuncs->Send(&bsAim, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0);
iCamModeCount++;
if (iCamModeCount >= 7)
iCamModeCount = 0;
}
Прикол в том игроки не крашат сразу. Samp client удаляет игрока и дает exception warn. Сам крашер пропадает(Removed player X due to error. X-ид крашера). Крашеру надо снова заспавниться чтобы стать видимым. Если у вас не используется оружие Satchel Charge то фикс думаю будет таким:
PHP Code:
public OnPlayerUpdate(playerid)
{
if(GetPlayerWeapon(playerid) == 40)
{
Kick(playerid);
return 0;
}
return 1;
}
Только не знаю как фиксануть если испольузется Satchel Charge(как у меня). В конце код не очень понятен, зачем то отправляются различные камеры.
Re: Object Crashers. -
Stuntff - 29.11.2017
Попробуйте сделать проверку на эти камеры