Hook.lua 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. -- 涉及到的相关属性在属性表配置
  2. Hook = {}
  3. local this = Hook;
  4. function Hook.onLoginEnd(actor)
  5. setplaydef(actor, "@" .. "HOOK_STATUS", 0)
  6. setplaydef(actor, "@" .. "HOOK_PICK_ITEMS", {})
  7. end
  8. function Hook.onLogout(actor)
  9. setplaydef(actor, "@" .. "HOOK_PICK_ITEMS", {})
  10. end
  11. function Hook.hookUpdateStatus(actor, msgData)
  12. if actor == nil or actor:toString() == "0" then
  13. return
  14. end
  15. setplaydef(actor, "@" .. "HOOK_STATUS", msgData.status)
  16. end
  17. function Hook.pickUpItem(actor, items)
  18. if actor == nil or actor:toString() == "0" then
  19. return
  20. end
  21. local status = getplaydef(actor, "@" .. "HOOK_STATUS") or 0
  22. if status ~= 1 then
  23. return nil
  24. end
  25. local pickItems = getplaydef(actor, "@" .. "HOOK_PICK_ITEMS") or {}
  26. local datas = {}
  27. local isSave = false
  28. for k, v in pairs(items) do
  29. if pickItems[v.objectid] ~= nil then
  30. datas[v.id] = {
  31. allow = true
  32. }
  33. pickItems[v.objectid] = nil
  34. isSave = true
  35. else
  36. datas[v.id] = {
  37. allow = false
  38. }
  39. end
  40. end
  41. if isSave then
  42. setplaydef(actor, "@" .. "HOOK_PICK_ITEMS", pickItems)
  43. end
  44. return datas
  45. end
  46. function Hook.pickItem(actor, msgData)
  47. local pickItems = getplaydef(actor, "@" .. "HOOK_PICK_ITEMS") or {}
  48. pickItems[msgData.itemId] = 1
  49. setplaydef(actor, "@" .. "HOOK_PICK_ITEMS", pickItems)
  50. pickuprounditem(actor, msgData.itemId, 3)
  51. end