feat: 实现跨服PVP匹配和战斗功能

This commit is contained in:
xinian
2026-04-05 05:04:04 +08:00
committed by cnb
parent 102d87da3e
commit 7d054bbe91
8 changed files with 1167 additions and 29 deletions

View File

@@ -2,12 +2,10 @@ package controller
import (
"blazing/common/socket/errorcode"
"blazing/cool"
"blazing/logic/service/common"
"blazing/logic/service/fight"
"blazing/logic/service/fight/info"
"blazing/logic/service/fight/pvp"
"blazing/logic/service/player"
"context"
)
// 表示"宠物王加入"的入站消息数据
@@ -18,14 +16,22 @@ type PetTOPLEVELnboundInfo struct {
}
func (h Controller) JoINtop(data *PetTOPLEVELnboundInfo, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
cool.RedisDo(context.TODO(), "sun:join", info.RPCFightinfo{
PlayerID: c.Info.UserID,
Mode: data.Mode,
Type: 1,
})
// // 类型断言为 UniversalClient
// universalClient, _ := client.(goredis.UniversalClient)
// repo.NewPlayerRepository(universalClient).AddPlayerToPool(context.TODO(), data.Head.UserID, 1)
err = pvp.JoinPeakQueue(c, data.Mode)
if err != 0 {
return nil, err
}
return nil, -1
}
func (h Controller) CancelPeakQueue(data *fight.PeakQueueCancelInboundInfo, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
pvp.CancelPeakQueue(c)
return nil, -1
}
func (h Controller) SubmitPeakBanPick(data *fight.PeakBanPickSubmitInboundInfo, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
err = pvp.SubmitBanPick(c, data.SelectedCatchTimes, data.BanCatchTimes)
if err != 0 {
return nil, err
}
return nil, -1
}