battle_msg.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package msg
  2. import (
  3. "rocommon"
  4. "rocommon/util"
  5. "roserver/baseserver/model"
  6. model2 "roserver/battleboss/model"
  7. "roserver/serverproto"
  8. )
  9. func init() {
  10. //玩家下线处理/主动离开boss场景
  11. serverproto.Handle_BATTLEBOSS_SSPlayerOfflineNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  12. msg := ev.Msg().(*serverproto.SSPlayerOfflineNtf)
  13. util.InfoF("receive SSPlayerOfflineNtf msg:%v", msg)
  14. model2.AoiLineMag.PlayerOffline(msg.Uid)
  15. })
  16. //挑战召唤物
  17. serverproto.Handle_BATTLEBOSS_CSPlayerChallengeSummonReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  18. msg := ev.Msg().(*serverproto.CSPlayerChallengeSummonReq)
  19. util.InfoF("receive CSPlayerChallengeSummonReq msg:%v", msg)
  20. ret := model2.AoiLineMag.PlayerChallengeSummonBoss(msg.Uid, msg.ChallengeBossUid, cliId, msg.FightInfo)
  21. ackMsg := &serverproto.SCPlayerChallengeSummonAck{
  22. Error: int32(ret),
  23. BossInfo: model2.AoiLineMag.GetWorldBossInfo(msg.ChallengeBossUid),
  24. }
  25. //删除boss使用
  26. if ret == serverproto.ErrorCode_ERROR_AOI_BOSS_NOT_FOUND {
  27. ackMsg.BossInfo = &serverproto.WorldBossContentInfo{
  28. BossId: int32(msg.ChallengeBossUid),
  29. }
  30. //更新boss信息
  31. } else if ret == serverproto.ErrorCode_ERROR_AOI_BOSS_CHALLENGE_NUM_LIMIT {
  32. ackMsg.BossInfo = model2.AoiLineMag.GetWorldBossInfo(msg.ChallengeBossUid)
  33. }
  34. model.ServiceReplay(ev, ackMsg)
  35. })
  36. //血量上报
  37. serverproto.Handle_BATTLEBOSS_CSPlayerChallengeHpReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  38. msg := ev.Msg().(*serverproto.CSPlayerChallengeHpReq)
  39. util.InfoF("receive CSPlayerChallengeHpReq msg:%v %v", msg, cliId.SessID)
  40. model2.AoiLineMag.DoSummonHp(cliId.SessID, msg.ActionUid, msg.DamageHp)
  41. })
  42. //获取WorldBoss列表
  43. serverproto.Handle_BATTLEBOSS_CSPlayerWorldBossListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  44. msg := ev.Msg().(*serverproto.CSPlayerWorldBossListReq)
  45. util.DebugF("receive CSPlayerWorldBossListReq msg:%v %v", msg, cliId.SessID)
  46. ackMsg := model2.AoiLineMag.GetWorldBossList()
  47. model.ServiceReplay(ev, ackMsg)
  48. })
  49. }