RoleDailyGift.lua 2.3 KB

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