Does anyone have a clue what causes this? Any insight to what I could possibly do to fix this? I can't make any sense of it when I look through the code. It's only the random bandit item fetch quests (i.e. drugs and medicine, just like other factions) that do this, but not the weapon fetch quests. Olivius also has two quests that cause this CTD.
Expression : <no expression>
Function : CScriptEngine::lua_pcall_failed
File : ..\xrServerEntities\script_engine.cpp
Line : 204
Description : fatal error
Arguments : LUA error: d:\games\coc_1.5_r6_full\gamedata\scripts\xr_logic.script:607: attempt to index local 'npc' (a nil value)
stack trace:
0023:00B9269C xrCore.dll, xrDebug::fatal()
0023:68A8266D lua51.dll
0023:68AA2FCA lua51.dll, lua_sethook()
0023:68AA28CC lua51.dll, lua_sethook()
0023:68AA2EF3 lua51.dll, lua_sethook()
0023:68AAADD6 lua51.dll, luaJIT_version_2_0_4()
0023:68A82A54 lua51.dll
0023:04EBAFBD luabind.beta7-devel.rc4.dll, luabind::detail::class_rep::construct_lua_class_callback()
0023:68A8266D lua51.dll
0023:68A87246 lua51.dll, lua_pcall()
0023:0B9C4D9D xrGame.dll, CDialogHolder::operator=()
0023:0BB899E9 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB8988B xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB897CA xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:68A876D1 lua51.dll, lua_rawseti()
0023:68A876D1 lua51.dll, lua_rawseti()
0023:04EBEEE1 luabind.beta7-devel.rc4.dll, luabind::detail::ref()
0023:68A87EED lua51.dll, lua_touserdata()
0023:04EBE9CE luabind.beta7-devel.rc4.dll, luabind::detail::object_rep::garbage_collector()
0023:68A8266D lua51.dll
0023:0BB88DF3 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB282E8 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB282E8 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BAFFE07 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB17ADE xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB8FA77 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB8FA77 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB8FA77 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB8FA77 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB8FA77 xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BB89B6B xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0BAE9132 xrGame.dll, CDialogHolder::IR_UIOnKeyboardPress()
0023:0BAF310E xrGame.dll, CDialogHolder::IR_UIOnMouseMove()
0023:0B961C72 xrGame.dll, CDialogHolder::operator=()
0023:04E312F3 xrRender_R1.dll
0023:00CC72C6 xrCDB.dll, ISpatial_DB::q_sphere()
0023:68A876D1 lua51.dll, lua_rawseti()
0023:00CC72C6 xrCDB.dll, ISpatial_DB::q_sphere()
0023:00CC72C6 xrCDB.dll, ISpatial_DB::q_sphere()
0023:00CC72C6 xrCDB.dll, ISpatial_DB::q_sphere()
0023:00CC72C6 xrCDB.dll, ISpatial_DB::q_sphere()
0023:00CC72C6 xrCDB.dll, ISpatial_DB::q_sphere()
0023:00CC72C6 xrCDB.dll, ISpatial_DB::q_sphere()
0023:00CD4590 xrCDB.dll, CObjectSpace::GetNearest()
0023:00CD4518 xrCDB.dll, CObjectSpace::GetNearest()
0023:774CBE7F ntdll.dll, RtlWow64GetProcessMachines()
0023:774CBD0C ntdll.dll, RtlQueryPerformanceCounter()
0023:774CBD0C ntdll.dll, RtlQueryPerformanceCounter()
0023:0044E839 xrEngine.exe, CSheduler::ProcessStep()
Nevermind I managed to find a solution.
Replace these lines in xr_logic.script:
function abort_syntax_error_in_cond(npc, section, field)
printf("object '%s': section '%s': field '%s': syntax error in switch condition",npc:name(), section, field)
end
with these:
function abort_syntax_error_in_cond(section,field,c)
callstack()
abort("section '%s': field '%s': syntax error in switch condition [%s]",section,field,c)
end
Should look like this: