srvBattleMgr.lua 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --[[
  2. Author: zkj
  3. Date: 2021-05-31 14:14:53
  4. LastEditTime: 2021-06-01 11:00:59
  5. LastEditors: Please set LastEditors
  6. Description: battle agent 管理服务
  7. --]]
  8. local const = require "const.const"
  9. local skynet = require "skynet"
  10. local agentPool = require "agentPool"
  11. local baseService = require("baseService")
  12. local pool
  13. local CMD = {}
  14. function CMD.getBattleAgent()
  15. return pool:alloc_agent_srv()
  16. end
  17. -- from agent
  18. function CMD.battleEnter(id, battleAgent)
  19. pool:bind_agent(id, battleAgent)
  20. end
  21. -- from agent
  22. function CMD.battleLeave(id, battleAgent)
  23. pool:unbind_agent(id, battleAgent)
  24. end
  25. -- 玩家是否在战斗中
  26. function CMD.is_user_in_battle(uid, battleId, battleAgent)
  27. if battleAgent == nil or not pool:get_agent_info_by_addr(battleAgent) then
  28. return false
  29. end
  30. local ok = skynet.call(battleAgent, "lua", "is_user_in_battle", uid, battleId)
  31. return ok
  32. end
  33. function CMD.onStart()
  34. pool = agentPool.new("srvBattle", const.INIT_AGENT_COUNT)
  35. end
  36. baseService.start(CMD, ".BattleMgr", true)