PDA

Просмотр полной версии : [Вопрос] Крашит сервер из-за новой версии Streamer



KrutoyKrosch
15.04.2017, 06:59
Поставил версию v2.9 Streamer для своего скрипта FEZ и стало крашить сервер при создании камеры (код ниже). Крашдетект вообще никак не реагирует. При этом если версию Streamer откатить на одну назад - все нормально, но хочу юзать эту именно из-за актеров. Баг походу именно в плагине...

В OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)



SetDynamicObjectPos(objectid, x, y, z);
SetDynamicObjectRot(objectid, rx, ry, rz);

if(response == EDIT_RESPONSE_FINAL)
{
if(objectid == ObjectAddCamers[playerid])
{
DestroyDynamicObject(objectid);

if(TypeAddCamers{playerid} == 1)
{
switch(ActAddCamers{playerid})
{
case 0:
{
PosAddCamers[0][ArryIDAddCamers{playerid}][playerid] = x;
PosAddCamers[1][ArryIDAddCamers{playerid}][playerid] = y;
PosAddCamers[2][ArryIDAddCamers{playerid}][playerid] = z;

ObjectAddCamers[playerid] = CreateDynamicObject(19483, x, y + 1.0, z, 0.0, 0.0, 0.0, -1, -1, playerid);
SetDynamicObjectMaterialText(ObjectAddCamers[playerid], 0, "№", 140, "webdings", 150, 0, -1, 0, 1);
EditDynamicObject(playerid, ObjectAddCamers[playerid]);

SPN(playerid, "Выберите куда будет смотреть камера.");
}
case 1:
{
PosAddCamers[3][ArryIDAddCamers{playerid}][playerid] = x;
PosAddCamers[4][ArryIDAddCamers{playerid}][playerid] = y;
PosAddCamers[5][ArryIDAddCamers{playerid}][playerid] = z;

format(gstring, sizeof(gstring), "Камера создана. ID %d.", ArryIDAddCamers{playerid});
SPN(playerid, gstring);

ObjectAddCamers[playerid] = 0;
AllCamersForPlayer{playerid}++;
ArryIDAddCamers{playerid} = 0;
TypeAddCamers{playerid} = 0;

return 1;
}
}

ActAddCamers{playerid}++;
}
else if(TypeAddCamers{playerid} == 2)
{
switch(ActAddCamers{playerid})
{
case 0:
{
PosAddCamers[0][ArryIDAddCamers{playerid}][playerid] = x;
PosAddCamers[1][ArryIDAddCamers{playerid}][playerid] = y;
PosAddCamers[2][ArryIDAddCamers{playerid}][playerid] = z;

ObjectAddCamers[playerid] = CreateDynamicObject(19483, x, y + 1.0, z, 0.0, 0.0, 0.0, -1, -1, playerid);
SetDynamicObjectMaterialText(ObjectAddCamers[playerid], 0, "№", 140, "webdings", 150, 0, -1, 0, 1);
EditDynamicObject(playerid, ObjectAddCamers[playerid]);

SPN(playerid, "Выберите куда будет смотреть камера (отсюда начнется двигаться камера).");
}
case 1:
{
PosAddCamers[3][ArryIDAddCamers{playerid}][playerid] = x;
PosAddCamers[4][ArryIDAddCamers{playerid}][playerid] = y;
PosAddCamers[5][ArryIDAddCamers{playerid}][playerid] = z;

ObjectAddCamers[playerid] = CreateDynamicObject(19483, x, y + 1.0, z, 0.0, 0.0, 0.0, -1, -1, playerid);
SetDynamicObjectMaterialText(ObjectAddCamers[playerid], 0, "№", 140, "webdings", 150, 0, -1, 0, 1);
EditDynamicObject(playerid, ObjectAddCamers[playerid]);

SPN(playerid, "Выберите откуда будет смотреть камера (сюда начнется двигаться камера).");
}
case 2:
{
PosAddCamers[6][ArryIDAddCamers{playerid}][playerid] = x;
PosAddCamers[7][ArryIDAddCamers{playerid}][playerid] = y;
PosAddCamers[8][ArryIDAddCamers{playerid}][playerid] = z;

ObjectAddCamers[playerid] = CreateDynamicObject(19483, x, y + 1.0, z, 0.0, 0.0, 0.0, -1, -1, playerid);
SetDynamicObjectMaterialText(ObjectAddCamers[playerid], 0, "№", 140, "webdings", 150, 0, -1, 0, 1);
EditDynamicObject(playerid, ObjectAddCamers[playerid]);

// ВРОДЕ БЫ КАК КРАШИТ ИМЕННО НА ЭТОТ МОМЕНТЕ

SPN(playerid, "Выберите куда будет смотреть камера (сюда начнется двигаться камера).");
}
case 3:
{
PosAddCamers[9][ArryIDAddCamers{playerid}][playerid] = x;
PosAddCamers[10][ArryIDAddCamers{playerid}][playerid] = y;
PosAddCamers[11][ArryIDAddCamers{playerid}][playerid] = z;

format(gstring, sizeof(gstring), "Камера создана. ID %d.", ArryIDAddCamers{playerid});
SPN(playerid, gstring);

ObjectAddCamers[playerid] = 0;
AllCamersForPlayer{playerid}++;
ArryIDAddCamers{playerid} = 0;

TypeAddCamers{playerid} = 0;

return 1;
}
}

ActAddCamers{playerid}++;
}
}


Комментарием пометил примерно где крашит, точно узнать не удалось. Сообщить именно автору плагина влом))0 Регаться там надо.... Может кто сообщит?

ps ДА да да да да да быдлокод комраш гадасть мои глазаааа

- - - Добавлено - - -

Эмммм, что-то вообще странно как-то... При краше сервера еще создается файл FCNPC:



=========================== FCNPC Exception Handler ============================
Address: 0x609f42c6

Registers:
EAX: 0x6aa150 - EBX: 0x680d60 - ECX: 0x0 - EDX: 0x0
ESI: 0x680990 - EDI: 0x0 - EBP: 0x19fcc4 - ESP: 0x19fca0

Stack:
0x0: 0x19fdd0 - 0x4: 0x695420 - 0x8: 0x48 - 0xC: 0x680e30 - 0x10: 0x0 - 0x14: 0x19fdd0
0x18: 0x19fd24 - 0x1C: 0x60a23f32 - 0x20: 0x1

Information:
System: Windows
SA-MP: 0.3.7 R2-1
FCNPC: 1.7.0

Functions:
FUNC_CPlayerPool__DeletePlayer: 0x466570
FUNC_CPlayer__Kill: 0x484620
FUNC_CPlayer__EnterVehicle: 0x484c70
FUNC_CPlayer__ExitVehicle: 0x484f50
FUNC_CPlayer__SpawnForWorld: 0x486d30
FUNC_GetVehicleModelInfo: 0x488240
FUNC_CConsole__GetIntVariable: 0x48b5b0
FUNC_ClientJoin_RPC: 0x4918f0

Pointers:
VAR_ServerAuthentication: 0x4f5fe8
VAR_NetVersion: 0xfd9

Offsets:
OFFSET_RemoteSystemManager: 0x33c
OFFSET_RemoteSystemSize: 0xcb8
OFFSET_RemoteSystem__ConnectMode: 0xcb0
OFFSET_RemoteSystem__Unknown: 0xcb5
=========================== FCNPC Exception Handler ============================


- - - Добавлено - - -

Эмммммммммммммммммммммммммммммммммммммм..... Вообще как-то странно, выяснилось что крашит именно в радиусе 10 - 15 этих координат:


-1895.6558,965.8510,35.0222

Что это за бермудский треугольник?

- - - Добавлено - - -

Если что, примерно на этих координатах я начинал запись NPC бота, и потом его проигрывал... Конечно это может быть совпадением, но все же...

- - - Добавлено - - -

Интересно узнать, каким образом FCNPC и создание динамического объекта связаны?

ziggi
15.04.2017, 07:48
FCNPC просто отлавливает падение и выдаёт этот отчёт, причина может быть где угодно. Но попробуй запустить без FCNPC. Ещё можешь попробовать версию из этого поста (там есть какие-то исправления для актёров): http://forum.sa-mp.com/showpost.php?p=3868118&postcount=5613

KrutoyKrosch
16.04.2017, 03:47
Сегодня сервер крашнуло опять.... Только теперь просто так..... Ехал на машине - краш.... Мне так и не удалось выяснить из-за какого плагина происходит краш, потому, что это как-то рандомно возникает (при создании камеры это было просто совпадение).... Но именно либо из-за FCNPC (1.7) или Streamer (v2.9) (именно после обновления этих плагинов такая хрень началась)...



=========================== FCNPC Exception Handler ============================
Address: 0x5a7242c6

Registers:
EAX: 0x6f6c60 - EBX: 0x6fb3e0 - ECX: 0x0 - EDX: 0x0
ESI: 0x6d0c30 - EDI: 0x0 - EBP: 0x19fcc4 - ESP: 0x19fca0

Stack:
0x0: 0x19fdd0 - 0x4: 0x6e56c8 - 0x8: 0x48 - 0xC: 0x6fb4b0 - 0x10: 0x0 - 0x14: 0x19fdd0
0x18: 0x19fd24 - 0x1C: 0x5a753f32 - 0x20: 0x1

Information:
System: Windows
SA-MP: 0.3.7 R2-1
FCNPC: 1.7.0

Functions:
FUNC_CPlayerPool__DeletePlayer: 0x466570
FUNC_CPlayer__Kill: 0x484620
FUNC_CPlayer__EnterVehicle: 0x484c70
FUNC_CPlayer__ExitVehicle: 0x484f50
FUNC_CPlayer__SpawnForWorld: 0x486d30
FUNC_GetVehicleModelInfo: 0x488240
FUNC_CConsole__GetIntVariable: 0x48b5b0
FUNC_ClientJoin_RPC: 0x4918f0

Pointers:
VAR_ServerAuthentication: 0x4f5fe8
VAR_NetVersion: 0xfd9

Offsets:
OFFSET_RemoteSystemManager: 0x33c
OFFSET_RemoteSystemSize: 0xcb8
OFFSET_RemoteSystem__ConnectMode: 0xcb0
OFFSET_RemoteSystem__Unknown: 0xcb5
=========================== FCNPC Exception Handler ============================


- - - Добавлено - - -

Или вообще при связи FCNPC и Streamer...

- - - Добавлено - - -

И то скорее всего происходит это из-за стримера, функциями FCNPC после включения сервера не пользовался, а вот Streamer'а да.... А если еще дальше рыть... То из-за паблика OnPlayerEditDynamicObject скорее всего...

KrutoyKrosch
24.04.2017, 20:59
Отключил FCNPC - крашет реально из-за стримера. Может кто-то разрабу написать?

- - - Добавлено - - -

UPD вышла обнова его с фиксом краша, не заметил