diff --git a/server/imserver/cachemgr.go b/server/imserver/cachemgr.go index 439ef5ad..4d7db40d 100644 --- a/server/imserver/cachemgr.go +++ b/server/imserver/cachemgr.go @@ -10,6 +10,8 @@ type PlayerProfile struct { Avatar int32 // 头像 AvatarHead int32 // 头像框 Star int32 // 星星 + totalKills int32 // 总击杀数 + totalWinTimes int32 // 总赢数 Rank int32 // 排位赛段位 OnlineStatus int32 // 在线状态 LastLoginTime int32 // 上次登录时间 @@ -59,7 +61,6 @@ func (cm *CacheMgr) AsyncGetUsers(accountIds []string, cb func(bool)) { cm.cacheMutex.Unlock() if exists { - // 用户数据在缓存中 mu.Lock() successCount++ mu.Unlock() @@ -107,12 +108,10 @@ func (cm *CacheMgr) LoadPlayerProfile(user *User, cb func(*PlayerProfile)) { } func (cm *CacheMgr) AddCacheProfile(version int, playerProfile *PlayerProfile) { - cm.cachePlayerProfiles[playerProfile.AccountId] = &CachePlayerProfile{ - version: version, - data: playerProfile, + if _, exists := cm.cachePlayerProfiles[playerProfile.AccountId]; !exists { + cm.cachePlayerProfiles[playerProfile.AccountId] = &CachePlayerProfile{ + version: version, + data: playerProfile, + } } } - -func (cm *CacheMgr) ForceSetProfile(accountId string, profile *PlayerProfile) { - cm.cachePlayerProfiles[accountId].data = profile -} diff --git a/server/imserver/player.go b/server/imserver/player.go index f6976492..fa89d8f6 100644 --- a/server/imserver/player.go +++ b/server/imserver/player.go @@ -637,6 +637,9 @@ func (p *Player) FillMFGuildMember(member *GuildMember) *cs.MFGuildMember { // FillMFGuild 填充公会 func (p *Player) FillMFGuild(guild *Guild) *cs.MFGuild { + // 总星星数 + var totalStar int32 = 0 + var guildMembers []*cs.MFGuildMember for _, member := range guild.Members { guildMember := p.FillMFGuildMember(member) @@ -644,6 +647,7 @@ func (p *Player) FillMFGuild(guild *Guild) *cs.MFGuild { continue } guildMembers = append(guildMembers, guildMember) + totalStar += guildMember.GetStar() } var resGuild *cs.MFGuild @@ -656,7 +660,7 @@ func (p *Player) FillMFGuild(guild *Guild) *cs.MFGuild { Notice: &guild.Notice, JoinCond: &guild.JoinCond, JoinCondValue: &guild.JoinCondValue, - TotalStars: &guild.TotalStars, + TotalStars: &totalStar, TotalKills: &guild.TotalKills, ChickenDinners: &guild.ChickenDinners, MaxMembers: &guild.MembersMax, @@ -678,7 +682,7 @@ func (p *Player) FillMFGuilds(guilds []*Guild) []*cs.MFGuild { // FillMFUser 填充好友信息 func (p *Player) FillMFUser(profile *PlayerProfile) *cs.MFUser { var guildId int64 = 0 - guildName := "" + var guildName = "" guild := guildMgr.GetGuildByAccountId(profile.AccountId) if guild != nil { guildId = guild.GuildId diff --git a/server/imserver/playermgr.go b/server/imserver/playermgr.go index 88f2a14c..d84d83b4 100644 --- a/server/imserver/playermgr.go +++ b/server/imserver/playermgr.go @@ -133,8 +133,7 @@ func (this *PlayerMgr) CMLoginResult(hdr *f5.MsgHdr, msg *cs.CMLogin, rsp f5.Htt OnlineStatus: OnlineStatus, LastLoginTime: q5.ToInt32(resObj.Info.LastLoginTime), } - cacheMgr.ForceSetProfile(accountId, playerProfile) - // Add friends + cacheMgr.AddCacheProfile(1, playerProfile) friendMgr.LoadUser(accountId) serverInfo := "192.168.100.39:2000"