gm.lua 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. local code = require "code"
  2. local machine = require "machine"
  3. local noticeUtil = require "utils.noticeUtil"
  4. local timeUtil = require "utils.timeUtil"
  5. local nodeMgr = require "nodeMgr"
  6. local loginPlatformModule = require "modules.loginPlatformModule"
  7. local chatUtil = require "utils.chatUtil"
  8. local util_user = require("utils.util_user")
  9. local util_mail = require("utils.util_mail")
  10. local lib_game_mysql = require("lib_game_mysql")
  11. local gameConst = require("const.gameConst")
  12. local baseAdapt = require("base.baseAdapt")
  13. local resAdapt = require "adapt.resAdapt"
  14. local shopAdapt = require "adapt.shopAdapt"
  15. local chatAdapt = require "adapt.chatAdapt"
  16. local moduleData = require("data.module")
  17. local sessionData = require("data.session")
  18. local payData = require("data.pay")
  19. local userData = require("data.user")
  20. local arenaData = require("data.arena")
  21. local battleData = require("data.battle")
  22. local resData = require("data.res")
  23. local playerData = require("data.player")
  24. local root = {}
  25. -- 获取玩家信息
  26. function root.gm_get_player_info(msg)
  27. local uid = tonumber(msg.uid)
  28. log.info("gm_get_player_info msg[%s]", tostring(msg))
  29. --.玩家id .玩家昵称 .国王等级 .竞技场等级 .玩家密码 -是否在线 .渠道号 .版本号 -账号状态 .注册时间 .最近登录时间 -状态
  30. --.战斗局数 .广告次数 。金币 。钻石 .充值金额 -充值次数 .当前城市 .UUID .UDID
  31. local _, items = root.getBagInfo({uid = uid})
  32. local userInfo = userData:user_get_info(uid)
  33. userInfo.lv = playerData:get_level(uid)
  34. userInfo.status = ""
  35. userInfo.gold = resData:get_item_count(uid, gameConst.ITEM_ID.GOLD) -- 金币
  36. userInfo.diamond = resData:get_item_count(uid, gameConst.ITEM_ID.DIAMOND) -- 钻石
  37. userInfo.RechargeAmount = payData:user_get_total_pay_count(uid) -- 充值总额 integer
  38. userInfo.RechargeCount = 0 -- 充值次数 integer
  39. return code.OK, {user = userInfo, bag = {items = items}}
  40. end
  41. -- 背包信息
  42. function root.gm_get_player_bag_info(msg)
  43. local uid = tonumber(msg.uid)
  44. local itemList = {}
  45. local itemInfo = moduleData:hget_json(uid, "bag", "itemInfo")
  46. for k, v in ipairs(itemInfo) do
  47. if v.count > 0 then
  48. table.insert(itemList, {id = v.id, count = v.count, endTime = v.endTime})
  49. end
  50. end
  51. for i, v in pairs(itemList) do
  52. v.name = resAdapt:get_item_name(v.id)
  53. if v.sceneLv then
  54. v.name = string.format("%s-%s", v.name, v.sceneLv)
  55. v.sceneLv = nil
  56. elseif v.endTime then
  57. v.name = string.format("%s(%s)", v.name, timeUtil.toString(v.endTime))
  58. v.endTime = nil
  59. end
  60. end
  61. return code.OK, itemList
  62. end
  63. -- 获取道具配置
  64. function root.gm_get_conf_items(msg)
  65. local items = {}
  66. local conf = resAdapt:get_item_conf_list()
  67. for _, v in ipairs(conf) do
  68. table.insert(items, {id = v.id, name = v.name, price = v.price})
  69. end
  70. return code.OK, {list = items}
  71. end
  72. -- 获取商品配置
  73. function root.gm_get_conf_goods(msg)
  74. local list = {}
  75. local shConf = baseAdapt:getConfig("GoodsConfig")
  76. for k, v in ipairs(shConf) do
  77. table.insert(list, {id = v.id, name = v.name, rmb = v.rmb})
  78. end
  79. return code.OK, {goods = list}
  80. end
  81. -- 对某个玩家发送邮件
  82. function root.send_mail(msg)
  83. local uid = tonumber(msg.uid)
  84. for i, v in pairs(msg.items) do
  85. if not resAdapt:get_item_conf(v.id) then
  86. return code.RES.ID_ERROR
  87. end
  88. end
  89. local ok = util_mail:add_mail(uid, 0, msg.title, msg.message, msg.items, msg.type, nil, nil, "GM后台")
  90. do
  91. -- 埋点
  92. local keyEvent = "message"
  93. for _, value in ipairs(msg.items or {}) do
  94. local text = string.format("%s,%s,%s", tostring(1), tostring(value.id), tostring(value.count))
  95. util_user:log_event(uid, keyEvent, text)
  96. end
  97. end
  98. if not ok then
  99. return code.UNKNOWN
  100. end
  101. return code.OK, {}
  102. end
  103. -- 玩家状态
  104. function root.update_player_status(msg)
  105. log.info("update_player_status msg[%s]", tostring(msg))
  106. if msg == nil then
  107. return code.PARAMTER_ERROR
  108. end
  109. local uid = tonumber(msg.uid)
  110. local status = msg.status
  111. if uid == nil or status == nil then
  112. return code.PARAMTER_ERROR
  113. end
  114. if util_user:user_is_online_game(uid) then
  115. util_user:user_call_game_agent(uid, "user.updateStatus", msg)
  116. else
  117. moduleData:hset(uid, "user", "status", status)
  118. end
  119. return code.OK
  120. end
  121. return root