This commit is contained in:
hahwu 2025-12-24 10:28:38 +08:00
parent c0f02217c1
commit b25a10f2fe
5 changed files with 47 additions and 7 deletions

View File

@ -914,6 +914,7 @@ func (ad *GameLogic) GetStartTime() int64 {
func NotifyPlayer(Uid int, m *MsgMod.Msg) {
m.To = Uid
m.HandleType = MsgMod.HANDLE_MOD_PLAYER_MSG
CenterPlayerMsgHandler(m)
}

View File

@ -249,6 +249,8 @@ func (c *ChampshipMgr) GetPreRankMsg(Uid int) *proto.ResChampshipPreRank {
RankList: RL,
}
}
// TODO 待优化
func (c *ChampshipMgr) GetRankMsg(Uid int) *proto.ResChampshipRank {
ChampshipData := c.getData()
GroupId := ChampshipData.GroupInfo[Uid]

View File

@ -105,6 +105,9 @@ func (m *MessageMgr) CenterRegister() {
m.RegisterHandler(msg.HANDLE_MOD_USER_VAR_GET, MessageHandlerFunc(GetUserVarDataHandler))
m.RegisterHandler(msg.HANDLE_MOD_CATNIP_PARTNER, MessageHandlerFunc(CatnipPartnerHandler))
m.RegisterHandler(msg.HANDLE_MDO_CHAMPSHIP_INRANK, MessageHandlerFunc(ChampshipInRankHandler))
m.RegisterHandler(msg.HANDLE_MOD_CHAMPSHIP_RANK_INFO, MessageHandlerFunc(ChampshipRankInfoHandler))
m.RegisterHandler(msg.HANDLE_MOD_CHAMPSHIP_RANK_LIST, MessageHandlerFunc(ChampshipRankListHandler))
m.RegisterHandler(msg.HANDLE_MOD_CHAMPSHIP_PRE_RANK, MessageHandlerFunc(ChampshipRankPreHandler))
}
}
@ -113,6 +116,28 @@ func getMessageData() *MessageData {
}
// ----------------------------------- 处理函数实现 ---------------------------
func ChampshipRankPreHandler(data *msg.Msg) (interface{}, error) {
PlayerId := data.From
PreRankMsg := G_GameLogicPtr.ChampshipMgr.GetPreRankMsg(PlayerId)
ReplyPlayerMsgASync(data, PreRankMsg)
return nil, nil
}
func ChampshipRankListHandler(data *msg.Msg) (interface{}, error) {
PlayerId := data.From
RankMsg := G_GameLogicPtr.ChampshipMgr.GetRankMsg(PlayerId)
ReplyPlayerMsgASync(data, RankMsg)
return nil, nil
}
func ChampshipRankInfoHandler(data *msg.Msg) (interface{}, error) {
PlayerId := data.From
MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(PlayerId)
MyPreRank := G_GameLogicPtr.ChampshipMgr.getLastMyRank(PlayerId)
ReplyPlayerMsgASync(data, []int{MyRank, MyPreRank})
return nil, nil
}
func NotifyAllPlayerMsg(m *msg.Msg) {
messageMgrData := getMessageData()
for PlayerId, node := range messageMgrData.PlayerList {
@ -134,11 +159,8 @@ func CatnipPartnerHandler(data *msg.Msg) (interface{}, error) {
return G_GameLogicPtr.VarMgr.HandleCatnipPartner(m.Uid, m.Partner, m.GameId, m.EndTime)
}
func ReplyPlayerMsgSync(m *msg.Msg, reply interface{}) (interface{}, error) {
clone := m.Clone()
clone.To = m.From
clone.HandleType = msg.HANDLE_MOD_REPLY_PLAYER_MSG
clone.Extra = reply
func ReplyPlayerMsgASync(m *msg.Msg, reply interface{}) (interface{}, error) {
clone := m.Reply(reply)
messageMgrData := getMessageData()
if node, ok := messageMgrData.PlayerList[int64(m.From)]; ok {
go SendMsgToNodeAsync(clone, node)

View File

@ -174,6 +174,21 @@ func (m *Msg) Clone() *Msg {
}
}
func (m *Msg) Reply(data interface{}) *Msg {
return &Msg{
Type: m.Type,
To: m.From,
Item: m.Item,
SendT: m.SendT,
End: m.End,
Extra: data,
Id: m.Id,
H: m.H,
UniKey: m.UniKey,
HandleType: HANDLE_MOD_REPLY_PLAYER_MSG,
}
}
func Handle(fun func(Msg) error, m Msg) error {
return fun(m)
}

View File

@ -231,7 +231,7 @@ func GetUserVarDataHandler(m *msg.Msg) (interface{}, error) {
if userVar == nil {
userVar = &VarExpireData{}
}
ReplyPlayerMsgSync(m, userVar.D)
ReplyPlayerMsgASync(m, userVar.D)
return userVar, nil
}
return nil, fmt.Errorf("invalid parameters for getting var data")
@ -288,7 +288,7 @@ func GetVarDataHandler(m *msg.Msg) (interface{}, error) {
if varData == nil {
varData = &VarExpireData{}
}
ReplyPlayerMsgSync(m, varData.D)
ReplyPlayerMsgASync(m, varData.D)
return varData, nil
}
return nil, fmt.Errorf("invalid parameters for getting var data")