RoleDailyGift.lua 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. -- 每日好礼(小7渠道专属)
  2. -- db.roleDailyGiftData = { getTime = 领取时间戳 }
  3. local Util = require("common.Util")
  4. local Lang = require("common.Lang")
  5. local Msg = require("core.Msg")
  6. local Broadcast = require("broadcast.Broadcast")
  7. local Grid = require("bag.Grid")
  8. local BagLogic = require("bag.BagLogic")
  9. local ObjHuman = require("core.ObjHuman")
  10. local CommonDefine = require("common.CommonDefine")
  11. -- local RoleSystemLogic = require("roleSystem.RoleSystemLogic")
  12. -- local RoleSystemDefine = require("roleSystem.RoleSystemDefine")
  13. local LOGTYPE = "roleDailyGift"
  14. local REWARD_ITEM_ID = 31
  15. local REWARD_ITEM_CNT = 648
  16. local function getChannelId(human)
  17. return human.db.phpChanelID or human.phpChanelID
  18. end
  19. local function isXiaoQiChannel(human)
  20. local channelID = getChannelId(human)
  21. return channelID == CommonDefine.CHANNEL_TAG_XIAOQI
  22. or channelID == tostring(CommonDefine.CHANNEL_TAG_XIAOQI)
  23. end
  24. function ModuleisOpen(human)
  25. return isXiaoQiChannel(human)
  26. end
  27. local function isClaimedToday(human)
  28. local data = human.db.roleDailyGiftData
  29. if not data or not data.getTime then
  30. return false
  31. end
  32. return Util.isSameDay(data.getTime)
  33. end
  34. local function getPrizeState(human)
  35. if isClaimedToday(human) then
  36. return CommonDefine.COMMON_PRIZE_STATE_GET
  37. end
  38. return CommonDefine.COMMON_PRIZE_STATE_CANGET
  39. end
  40. -- function isDot(human)
  41. -- if not ModuleisOpen(human) then
  42. -- return false
  43. -- end
  44. -- return getPrizeState(human) == CommonDefine.COMMON_PRIZE_STATE_CANGET
  45. -- end
  46. function updateDaily(human)
  47. if not ModuleisOpen(human) then
  48. return
  49. end
  50. -- RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_113)
  51. if human.fd then
  52. Query(human)
  53. end
  54. end
  55. function Query(human)
  56. if not ModuleisOpen(human) then
  57. return
  58. end
  59. ObjHuman.updateDaily(human)
  60. local msgRet = Msg.gc.GC_ROLE_DAILY_GIFT_QUERY
  61. msgRet.status = getPrizeState(human)
  62. Grid.makeItem(msgRet.item, REWARD_ITEM_ID, REWARD_ITEM_CNT)
  63. Msg.send(msgRet, human.fd)
  64. end
  65. function Get(human)
  66. if not ModuleisOpen(human) then
  67. return Broadcast.sendErr(human, Lang.COMMON_SYSTEM_READY)
  68. end
  69. ObjHuman.updateDaily(human)
  70. if isClaimedToday(human) then
  71. return Broadcast.sendErr(human, "今日已领取")
  72. end
  73. local itemArr = {{REWARD_ITEM_ID, REWARD_ITEM_CNT}}
  74. BagLogic.addItemList(human, itemArr, LOGTYPE)
  75. human.db.roleDailyGiftData = human.db.roleDailyGiftData or {}
  76. human.db.roleDailyGiftData.getTime = os.time()
  77. -- RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_113)
  78. Query(human)
  79. end