diff --git a/src/server/GoUtil/GoUtil.go b/src/server/GoUtil/GoUtil.go index dd4fc083..3bb16fd3 100644 --- a/src/server/GoUtil/GoUtil.go +++ b/src/server/GoUtil/GoUtil.go @@ -211,7 +211,7 @@ func GobUnmarshal(data []byte, obj interface{}) error { } func GetServerIdByUid(uid int) int { - return int(uid / 100000) + return int((uid % 100000000) / 100000) } func CreateOrderSn(uid int) string { diff --git a/src/server/cluster/ClusterFunc.go b/src/server/cluster/ClusterFunc.go index b8def1db..df03a6fb 100644 --- a/src/server/cluster/ClusterFunc.go +++ b/src/server/cluster/ClusterFunc.go @@ -120,6 +120,7 @@ func SendServerMsg(m *msg.Msg, serverId int) error { return err } v.(network.Agent).WriteMsg(data) + return nil } return fmt.Errorf("server %d not online", serverId) } diff --git a/src/server/game/FriendMgr.go b/src/server/game/FriendMgr.go index 6bbe8992..e5cca2b9 100644 --- a/src/server/game/FriendMgr.go +++ b/src/server/game/FriendMgr.go @@ -110,10 +110,12 @@ func FriendMgrSend(m *msg.Msg) error { err := mergeCluster.SendServerMsg(m, ToServer) if err != nil { // 区服不在线 G_GameLogicPtr.FriendMgrSend(m) + log.Debug("send to server %d error : %s\n", ToServer, err) return err } return nil } + log.Debug("send to server %d success, %d", ToServer, conf.Server.ServerID) G_GameLogicPtr.FriendMgrSend(m) return nil } diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 0826eaa3..9f56cddc 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -1319,7 +1319,7 @@ func ReqApplyFriend(args []interface{}) error { }) return fmt.Errorf("already friend") } - if FriendMod.CheckSendApply(Uid) { + if FriendMod.AddSendApply(Uid) { player.SendErrClienRes(&msg.ResApplyFriend{ Code: msg.RES_CODE_FAIL, Msg: "already apply", diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index ec35c259..6b5f84a9 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -56,6 +56,9 @@ func (f *FriendMod) InitData() { if f.Card == nil { f.Card = make(map[string]*card.CardInfo) } + if f.SendApply == nil { + f.SendApply = make(map[int]int64) + } } func (f *FriendMod) AddFriend(id int) { @@ -113,8 +116,12 @@ func (f *FriendMod) AddFriendApply(Uid int) { } // 发送申请 -func (f *FriendMod) AddSendApply(Uid int) { +func (f *FriendMod) AddSendApply(Uid int) bool { + if _, ok := f.SendApply[Uid]; ok { + return true + } f.SendApply[Uid] = GoUtil.Now() + return false } func (f *FriendMod) CheckSendApply(Id int) bool {