NewLogic.lua 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. local Msg = require("core.Msg")
  2. local Broadcast = require("broadcast.Broadcast")
  3. local Lang = require("common.Lang")
  4. local Json = require("common.Json")
  5. local WarOrder = require("shop.WarOrder")
  6. --[[
  7. BuyItem = {
  8. buyID : number -- buy配置表id
  9. region : string -- 区域 默认cn
  10. cost : number -- 价格
  11. icon : number -- 图标
  12. name : string -- 名称
  13. desc : string -- 描述
  14. zhekou : number -- 折扣价
  15. yuanjia : number -- 原价
  16. ttl : number -- 有效期
  17. }
  18. Item = {
  19. id : number
  20. count : number
  21. }
  22. Gift = {
  23. id : number -- 礼包ID
  24. startTimeStamp : number -- 开启时间戳(秒)
  25. restTime : number -- 剩余时间(秒)
  26. buyItem : Buyitem -- 礼包信息
  27. content : {item} -- 礼包内容
  28. }
  29. ]]
  30. ------------------------------- CG请求 -------------------------------
  31. --[[
  32. CG_WARORDER_INFO = {
  33. orderType = number -- 战令类型 1 勇士之证 2 恶魔之证 3 工会之证明 4 竞技之证
  34. }
  35. ]]
  36. local CG_WARORDER_INFO = 10001 -- 战令信息请求
  37. --[[
  38. orderType = number -- 战令类型
  39. ]]
  40. local CG_WARORDER_REWARD = 10002 -- 战令获取奖励
  41. ------------------------------- GC推送 -------------------------------
  42. --[[
  43. GC_GIFT_GENERATE = {
  44. gift = Gift
  45. }
  46. ]]
  47. local GC_GIFT_GENERATE = 10 -- 新增礼包推送
  48. --[[
  49. GC_QUERY_GIFT = {
  50. list = {Gift}
  51. }
  52. ]]
  53. local GC_QUERY_GIFT = 11 -- 登录推送礼包数据
  54. --[[
  55. normal = {
  56. idx number 等级
  57. process number 等级对应所需进度
  58. content [ItemGrid]array 普通战令等级奖励
  59. upgradeContent [ItemGrid]array 升级战令等级奖励
  60. }
  61. GC_WARORDER_INFO = {
  62. orderType = orderType, -- 战令类型
  63. normal = [normal]array, -- 普通配置
  64. language = string -- 战令描述
  65. -- 自身的进度
  66. exp = orderData.exp, -- 当前经验
  67. unlock = orderData.unlock, -- 是否解锁升级版 0 表示未解锁 1 表示解锁
  68. finish = [number]array, -- 已经完成的普通版等级
  69. upgradeFinish = [number]array, -- 已经完成的升级版等级
  70. }
  71. ]]
  72. local GC_WARORDER_INFO = 12 -- 战令信息推送
  73. --[[
  74. GC_WARORDER_CHANGE = {
  75. orderType = number -- 战令类型
  76. exp = number -- 战令经验
  77. unlock = number -- 是否解锁升级版 0 表示未解锁 1 表示解锁
  78. finish = [number]array -- idx数组
  79. upgradeFinish = [number]array -- idx数组
  80. isRed = number -- 是否红点
  81. }
  82. ]]
  83. local GC_WARORDER_CHANGE = 13 -- 战令数据推送
  84. -----------------------------------------------------------------------
  85. local push = {
  86. [GC_GIFT_GENERATE] = true,
  87. [GC_QUERY_GIFT] = true
  88. }
  89. local handler = {
  90. [CG_WARORDER_INFO] = function(human,param)
  91. local data = WarOrder.warOrderInfo(human,param.orderType)
  92. if not data then
  93. -- 参数错误,报错
  94. return
  95. end
  96. PushClient(human,GC_WARORDER_INFO,data)
  97. end,
  98. [CG_WARORDER_REWARD] = function(human,param)
  99. local data = WarOrder.warOrderReward(human,param.orderType)
  100. if not data then
  101. -- 参数错误,报错
  102. return
  103. end
  104. PushClient(human,GC_WARORDER_CHANGE,data)
  105. end,
  106. }
  107. function NewProto(human, type, paramJson)
  108. -- print("newProto:",type,param)
  109. -- local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
  110. -- msgRet.ret = type
  111. -- msgRet.tip = "test data"
  112. -- Msg.send(msgRet,human.fd)
  113. local f = assert(handler[type],"invalid proto type")
  114. local param = Json.Decode(paramJson)
  115. return f(human,param)
  116. end
  117. -- 主动推送给客户端
  118. function PushClient(human,type,data)
  119. if not push[type] then
  120. Broadcast.sendErr(human, Lang.DRILL_CHOOSE_MY_ERR_INDEX .. " type is " .. type)
  121. return
  122. end
  123. local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
  124. msgRet.ret = type
  125. msgRet.tip = Json.Encode(data)
  126. Msg.send(msgRet,human.fd)
  127. end