From 023c56700e86e85d39b32843917809e527b9f1f7 Mon Sep 17 00:00:00 2001 From: zhexu14 <64713351+zhexu14@users.noreply.github.com> Date: Sun, 6 Apr 2025 22:43:52 +1000 Subject: [PATCH] Wrap DEAD event handler in pcall as it sometimes fails (#3497) --- resources/plugins/base/dcs_liberation.lua | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/resources/plugins/base/dcs_liberation.lua b/resources/plugins/base/dcs_liberation.lua index 2f5597ce..6888b84b 100644 --- a/resources/plugins/base/dcs_liberation.lua +++ b/resources/plugins/base/dcs_liberation.lua @@ -176,16 +176,19 @@ local function onEvent(event) end if event.id == world.event.S_EVENT_DEAD and event.initiator then - dead_events[#dead_events + 1] = event.initiator.getName(event.initiator) - local position = event.initiator.getPosition(event.initiator) - local destruction = {} - destruction.x = position.p.x - destruction.y = position.p.y - destruction.z = position.p.z - destruction.type = event.initiator:getTypeName() - destruction.orientation = mist.getHeading(event.initiator) * 57.3 - destroyed_objects_positions[#destroyed_objects_positions + 1] = destruction - write_state() + get_initiator_name_success, initiator_name = pcall(event.initiator.getName, event.initiator) + if get_initiator_name_success then + dead_events[#dead_events + 1] = event.initiator.getName(event.initiator) + local position = event.initiator.getPosition(event.initiator) + local destruction = {} + destruction.x = position.p.x + destruction.y = position.p.y + destruction.z = position.p.z + destruction.type = event.initiator:getTypeName() + destruction.orientation = mist.getHeading(event.initiator) * 57.3 + destroyed_objects_positions[#destroyed_objects_positions + 1] = destruction + write_state() + end end if event.id == world.event.S_EVENT_HIT then