Some additional informations on the crashes, in case someone wants to try his luck:
PinKiller uses the API function
SetFloatingMarkerInfo. Calling this function can lead to a crash, but it's pretty random. Sometimes it works, sometimes it doesn't.
From my experience the first call (for each pin type) after a loading screen to the function works fine without crashes.
The default UI from ZO calls this function after each loading screen as well:
Lua Code:
local function OnPlayerActivated()
SetFloatingMarkerInfo(MAP_PIN_TYPE_ASSISTED_QUEST_CONDITION, 32, "EsoUI/Art/FloatingMarkers/quest_icon_assisted.dds", "EsoUI/Art/FloatingMarkers/quest_icon_door_assisted.dds")
SetFloatingMarkerInfo(MAP_PIN_TYPE_ASSISTED_QUEST_OPTIONAL_CONDITION, 32, "EsoUI/Art/FloatingMarkers/quest_icon_assisted.dds", "EsoUI/Art/FloatingMarkers/quest_icon_door_assisted.dds")
SetFloatingMarkerInfo(MAP_PIN_TYPE_ASSISTED_QUEST_ENDING, 32, "EsoUI/Art/FloatingMarkers/quest_icon_assisted.dds", "EsoUI/Art/FloatingMarkers/quest_icon_door_assisted.dds")
SetFloatingMarkerInfo(MAP_PIN_TYPE_TRACKED_QUEST_CONDITION, 32, "EsoUI/Art/FloatingMarkers/quest_icon.dds", "EsoUI/Art/FloatingMarkers/quest_icon_door.dds")
SetFloatingMarkerInfo(MAP_PIN_TYPE_TRACKED_QUEST_OPTIONAL_CONDITION, 32, "EsoUI/Art/FloatingMarkers/quest_icon.dds", "EsoUI/Art/FloatingMarkers/quest_icon_door.dds")
SetFloatingMarkerInfo(MAP_PIN_TYPE_TRACKED_QUEST_ENDING, 32, "EsoUI/Art/FloatingMarkers/quest_icon.dds", "EsoUI/Art/FloatingMarkers/quest_icon_door.dds")
local PULSES = true
SetFloatingMarkerInfo(MAP_PIN_TYPE_QUEST_OFFER, 32, "EsoUI/Art/FloatingMarkers/quest_available_icon.dds", "", PULSES)
end
EVENT_MANAGER:RegisterForEvent("ZO_FloatingMarkers", EVENT_PLAYER_ACTIVATED, OnPlayerActivated)
SetFloatingMarkerGlobalAlpha(0)
PinKiller tries to prevent additional calls to the function via:
Lua Code:
local oldSetFloatingMarkerInfo = SetFloatingMarkerInfo
SetFloatingMarkerInfo = function( ... ) end
local SetFloatingMarkerInfo = oldSetFloatingMarkerInfo
This way only PinKiller can call the API function. And just like ZO's default UI, PinKiller calls
SetFloatingMarkerInfo only via the EVENT_PLAYER_ACTIVATED handler. I have no idea why the function leads to crashes, since it's called only once (for each pintype) and only after EVENT_PLAYER_ACTIVATED just like without the addon.