-- 涉及到的相关属性在属性表配置 Hook = {} local this = Hook; function Hook.onLoginEnd(actor) setplaydef(actor, "@" .. "HOOK_STATUS", 0) setplaydef(actor, "@" .. "HOOK_PICK_ITEMS", {}) end function Hook.onLogout(actor) setplaydef(actor, "@" .. "HOOK_PICK_ITEMS", {}) end function Hook.hookUpdateStatus(actor, msgData) if actor == nil or actor:toString() == "0" then return end setplaydef(actor, "@" .. "HOOK_STATUS", msgData.status) end function Hook.pickUpItem(actor, items) if actor == nil or actor:toString() == "0" then return end local status = getplaydef(actor, "@" .. "HOOK_STATUS") or 0 if status ~= 1 then return nil end local pickItems = getplaydef(actor, "@" .. "HOOK_PICK_ITEMS") or {} local datas = {} local isSave = false for k, v in pairs(items) do if pickItems[v.objectid] ~= nil then datas[v.id] = { allow = true } pickItems[v.objectid] = nil isSave = true else datas[v.id] = { allow = false } end end if isSave then setplaydef(actor, "@" .. "HOOK_PICK_ITEMS", pickItems) end return datas end function Hook.pickItem(actor, msgData) local pickItems = getplaydef(actor, "@" .. "HOOK_PICK_ITEMS") or {} pickItems[msgData.itemId] = 1 setplaydef(actor, "@" .. "HOOK_PICK_ITEMS", pickItems) pickuprounditem(actor, msgData.itemId, 3) end