NewLogic.lua 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  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. attr = {
  30. key = number, --属性类型
  31. value = number, -- 属性值
  32. }
  33. SkinData = {
  34. id = number -- 皮肤id
  35. attrs = [attr]array
  36. }
  37. Skin = {
  38. id : number -- 皮肤配置ID
  39. buyItem : Buyitem -- 皮肤信息
  40. skinData : []SkinData -- 皮肤内容
  41. }
  42. ]]
  43. ------------------------------- CG请求 -------------------------------
  44. --[[
  45. CG_WARORDER_INFO = {
  46. orderType = number -- 战令类型 1 勇士之证 2 恶魔之证 3 工会之证明 4 竞技之证
  47. }
  48. ]]
  49. local CG_WARORDER_INFO = 101 -- 战令信息请求
  50. --[[
  51. orderType = number -- 战令类型
  52. ]]
  53. local CG_WARORDER_REWARD = 102 -- 战令获取奖励
  54. --[[
  55. panelId = number -- panelID
  56. ]]
  57. local CG_SKIN_QUREY = 103 -- 皮肤活动详情查询
  58. ------------------------------- GC推送 -------------------------------
  59. --[[
  60. GC_GIFT_GENERATE = {
  61. gift = Gift
  62. }
  63. ]]
  64. local GC_GIFT_GENERATE = 10 -- 新增礼包推送
  65. --[[
  66. GC_QUERY_GIFT = {
  67. list = {Gift}
  68. }
  69. ]]
  70. local GC_QUERY_GIFT = 11 -- 登录推送礼包数据
  71. --[[
  72. BuyItem = {
  73. BuyItem = {
  74. {"buyID", 1, "int"}, -- 支付ID
  75. {"region", 1, "string"}, -- 货币类型 CN/HK等
  76. {"cost", 1, "double"}, -- 价格 当前价格
  77. {"icon", 1, "int"}, -- 图标
  78. {"name", 1, "string"}, -- 名称
  79. {"desc", 1, "string"}, -- 描述
  80. {"isFirst", 1, "byte"}, -- 是否首次购买
  81. {"doubleCnt", 1, "byte"}, -- 双倍次数
  82. {"actDoubleCnt",1, "byte"}, -- 活动双倍次数
  83. {"useDoubleCnt",1, "int"}, -- 当前消耗双倍次数
  84. {"buyCnt", 1, "int"}, -- 当前购买次数
  85. {"vipExp", 1, "int"}, -- 附赠vip经验
  86. {"zhekou", 1, "int"}, -- 折扣
  87. {"yuanjia", 1, "int"}, -- 原价
  88. }
  89. }
  90. normal = {
  91. idx number 等级
  92. process number 等级对应所需进度
  93. content [ItemGrid]array 普通战令等级奖励
  94. upgradeContent [ItemGrid]array 升级战令等级奖励
  95. }
  96. GC_WARORDER_INFO = {
  97. orderType = orderType, -- 战令类型
  98. normal = [normal]array, -- 普通配置
  99. language = string
  100. buyItem = BuyItem, -- 战令商品信息
  101. -- 自身的进度
  102. exp = orderData.exp, -- 当前经验
  103. unlock = orderData.unlock, -- 是否解锁升级版 0 表示未解锁 1 表示解锁
  104. finish = [number]array, -- 已经完成的普通版等级
  105. upgradeFinish = [number]array, -- 已经完成的升级版等级
  106. }
  107. ]]
  108. local GC_WARORDER_INFO = 12 -- 战令信息推送
  109. --[[
  110. GC_WARORDER_CHANGE = {
  111. orderType = number -- 战令类型
  112. exp = number -- 战令经验
  113. unlock = number -- 是否解锁升级版 0 表示未解锁 1 表示解锁
  114. finish = [number]array -- idx数组
  115. upgradeFinish = [number]array -- idx数组
  116. isRed = number -- 是否红点
  117. }
  118. ]]
  119. local GC_WARORDER_CHANGE = 13 -- 战令数据推送
  120. --[[
  121. GC_SKIN_QUERY = {
  122. list = [skin]array -- 皮肤活动详情列表
  123. }
  124. ]]
  125. local GC_SKIN_QUERY = 14 -- 皮肤活动详情推送
  126. -----------------------------------------------------------------------
  127. local push = {
  128. [GC_GIFT_GENERATE] = true,
  129. [GC_QUERY_GIFT] = true,
  130. [GC_WARORDER_INFO] = true,
  131. [GC_WARORDER_CHANGE] = true,
  132. }
  133. local handler = {
  134. [CG_WARORDER_INFO] = function(human,param)
  135. local orderType = assert(tonumber(param),"invalid param")
  136. local data = WarOrder.warOrderInfo(human,orderType)
  137. if not data then
  138. -- 参数错误,报错
  139. return
  140. end
  141. PushClient(human,GC_WARORDER_INFO,data)
  142. end,
  143. [CG_WARORDER_REWARD] = function(human,param)
  144. local orderType = assert(tonumber(param),"invalid param")
  145. local data = WarOrder.warOrderReward(human,orderType)
  146. if not data then
  147. -- 参数错误,报错
  148. return
  149. end
  150. PushClient(human,GC_WARORDER_CHANGE,data)
  151. end,
  152. [CG_SKIN_QUREY] = function(human,param)
  153. local panelId = assert(tonumber(param),"invalid param")
  154. local heroSkinLogic = require"present.HeroSkinLogic"
  155. local data = heroSkinLogic.query(human,panelId)
  156. if not data then
  157. return
  158. end
  159. PushClient(human,GC_SKIN_QUERY,data)
  160. end,
  161. }
  162. function NewProto(human, type, paramJson)
  163. -- print("newProto:",type,param)
  164. -- local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
  165. -- msgRet.ret = type
  166. -- msgRet.tip = "test data"
  167. -- Msg.send(msgRet,human.fd)
  168. local f = assert(handler[type],"invalid proto type")
  169. --local param = Json.Decode(paramJson)
  170. return f(human,paramJson)
  171. end
  172. -- 主动推送给客户端
  173. function PushClient(human,type,data)
  174. if not push[type] then
  175. Broadcast.sendErr(human, Lang.DRILL_CHOOSE_MY_ERR_INDEX .. " type is " .. type)
  176. return
  177. end
  178. local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
  179. msgRet.ret = type
  180. msgRet.tip = Json.Encode(data)
  181. Msg.send(msgRet,human.fd)
  182. end