NewLogic.lua 6.4 KB

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