75 lignes
2,1 Kio
Lua
75 lignes
2,1 Kio
Lua
|
QuestHelper_File["collect_hearth.lua"] = "4.0.1.$svnversion$"
|
|||
|
QuestHelper_Loadtime["collect_hearth.lua"] = GetTime()
|
|||
|
|
|||
|
local debug_output = false
|
|||
|
if QuestHelper_File["collect_hearth.lua"] == "Development Version" then debug_output = true end
|
|||
|
|
|||
|
local QHCZ
|
|||
|
|
|||
|
local GetLoc
|
|||
|
local Merger
|
|||
|
|
|||
|
local function DoZoneUpdate(label, debugverbose)
|
|||
|
local zname = string.format("%s@@%s@@%s", GetZoneText(), GetRealZoneText(), GetSubZoneText()) -- 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 == "<22>\000\000\000<30>\000\000\000<30><30><EFBFBD>" then return end -- this is kind of the "null value"
|
|||
|
local found = false
|
|||
|
|
|||
|
-- 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 last_hearth = 0
|
|||
|
|
|||
|
local function CollectHearth()
|
|||
|
local start, cd, _ = GetItemCooldown(6948)
|
|||
|
if last_hearth + 1800 < GetTime() and cd == 1800 then
|
|||
|
last_hearth = start
|
|||
|
QHCZ[GetBindLocation()] = GetLoc()
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
local function OnEvent()
|
|||
|
-- DoZoneUpdate("border", true)
|
|||
|
CollectHearth()
|
|||
|
end
|
|||
|
|
|||
|
local lastupdate = 0
|
|||
|
local function OnUpdate()
|
|||
|
if lastupdate + 15 <= GetTime() then
|
|||
|
DoZoneUpdate("update")
|
|||
|
lastupdate = GetTime()
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function QH_Collect_Zone_Init(QHCData, API)
|
|||
|
do return end -- we really don't need this anymore
|
|||
|
|
|||
|
if not QHCData.hearth then QHCData.hearth = {} end
|
|||
|
QHCZ = QHCData.hearth
|
|||
|
|
|||
|
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
|