1
0
Bifurcation 0
Ce dépôt a été archivé le 2020-03-15. Vous pouvez voir ses fichiers ou le cloner, mais pas ouvrir de ticket ou de demandes d'ajout, ni soumettre de changements.
questhelperredux/QuestHelper/collect_zone.lua

75 lignes
2.1 KiB
Lua

local GetTime = QuestHelper_GetTime
QuestHelper_File["collect_zone.lua"] = "4.0.1.$svnversion$"
QuestHelper_Loadtime["collect_zone.lua"] = GetTime()
local debug_output = false
if QuestHelper_File["collect_zone.lua"] == "Development Version" then debug_output = true end
local QHCZ
local GetLoc
local Merger
local function DoZoneUpdate(label, debugverbose)
local zt, rzt, szt, mzt = GetZoneText() or "", GetRealZoneText() or "", GetSubZoneText() or "", GetMinimapZoneText() or ""
local zname = string.format("%s@@%s@@%s@@%s", zt, rzt, szt, mzt) -- I don't *think* any zones will have a @@ in them :D
if zname == "@@@@" then return end -- denied
if not QHCZ[zname] then QHCZ[zname] = {} end
if not QHCZ[zname][label] then QHCZ[zname][label] = {} end
local znl = QHCZ[zname][label]
if debugverbose and debug_output then
--QuestHelper:TextOut("zoneupdate " .. zname .. " type " .. label)
end
QHCZ[zname].mapname = GetMapInfo()
local loc = GetLoc()
if loc.delayed == 128 and loc.c == 0 and loc.z == 0 and loc.x == -128 and loc.y == -128 then return end
--if loc == "€\000\000\000€\000\000\000€€€" then return end -- this is kind of the "null value"
local found = false
if not znl.locs then
znl.locs = {}
end
table.insert(znl.locs, loc)
-- Commented out, 'cause this module isn't really loaded anymore. I'll remove it after the next commit.
--Merger.Add(znl, loc, true)
end
local function OnEvent()
DoZoneUpdate("border", true)
end
local lastupdate = 0
local function OnUpdate()
if lastupdate + 15 <= GetTime() then
DoZoneUpdate("update")
lastupdate = GetTime()
end
end
function QH_Collect_Zone_FactionChange(QHCData)
if not QHCData.zone then QHCData.zone = {} end
QHCZ = QHCData.zone
end
function QH_Collect_Zone_Init(QHCData, API)
QH_Collect_Zone_FactionChange(QHCData)
QH_Event("ZONE_CHANGED", OnEvent)
QH_Event("ZONE_CHANGED_INDOORS", OnEvent)
QH_Event("ZONE_CHANGED_NEW_AREA", OnEvent)
API.Registrar_OnUpdateHook(OnUpdate)
GetLoc = API.Callback_LocationBolusCurrent
QuestHelper: Assert(GetLoc)
Merger = API.Utility_Merger
QuestHelper: Assert(Merger)
end