6
This commit is contained in:
parent
c0f02217c1
commit
b25a10f2fe
@ -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)
|
||||
}
|
||||
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
@ -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")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user