diff --git a/src/server/GoUtil/GoUtil.go b/src/server/GoUtil/GoUtil.go index 494b9b8c..b5ca11dd 100644 --- a/src/server/GoUtil/GoUtil.go +++ b/src/server/GoUtil/GoUtil.go @@ -238,6 +238,12 @@ func GobUnmarshal(data []byte, obj interface{}) error { } func GetServerIdByUid(uid int) int { + if uid <= 100000 { + return uid + } + if uid <= 100000000 { + return uid / 100000 + } return int((uid % 100000000) / 100000) } diff --git a/src/server/game/ClusterMgr.go b/src/server/game/ClusterMgr.go index e3b1ba4e..98374e2f 100644 --- a/src/server/game/ClusterMgr.go +++ b/src/server/game/ClusterMgr.go @@ -39,6 +39,7 @@ func init() { RegisterClusterHandler(msg.CLUSTER_FRIEND_SYNC, ClusterFriendSync) RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, champshipInrankHandler) RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_RANK_INFO, champshipRankInfoHandler) + RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_MY_RANK, champshipMyRankHandler) } func champshipInrankHandler(m *msg.Msg) error { @@ -54,3 +55,12 @@ func champshipRankInfoHandler(m *msg.Msg) error { FriendMgrSend(m) return nil } + +func champshipMyRankHandler(m *msg.Msg) error { + MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(m.From) + m.To = m.From + m.From = 0 + m.Extra = MyRank + FriendMgrSend(m) + return nil +} diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index a5a1c4ba..3e5d89ef 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -126,15 +126,16 @@ const ( func (m *Msg) Clone() *Msg { return &Msg{ - Type: m.Type, - To: m.To, - From: m.From, - Item: m.Item, - SendT: m.SendT, - End: m.End, - Extra: m.Extra, - Id: m.Id, - H: m.H, + Type: m.Type, + To: m.To, + From: m.From, + Item: m.Item, + SendT: m.SendT, + End: m.End, + Extra: m.Extra, + Id: m.Id, + H: m.H, + UniKey: m.UniKey, } }