From f83b22688c6f02a65c5a1594e1a1f942560faf72 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Sat, 14 Sep 2024 16:22:06 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E8=BF=9E=E5=A6=82=E6=9E=9C=E6=AF=94?= =?UTF-8?q?=E8=B5=9B=E6=B2=A1=E6=9C=89=E5=BC=80=E5=A7=8B=E5=B0=B1=E9=80=80?= =?UTF-8?q?=E8=B5=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/loginstatemgr.go | 13 +- worldsrv/player.go | 1 + worldsrv/playermgr.go | 287 -------------------------------------- 3 files changed, 11 insertions(+), 290 deletions(-) diff --git a/worldsrv/loginstatemgr.go b/worldsrv/loginstatemgr.go index 38c666b..4fb7610 100644 --- a/worldsrv/loginstatemgr.go +++ b/worldsrv/loginstatemgr.go @@ -307,13 +307,20 @@ func (this *LoginStateMgr) Init() { func (this *LoginStateMgr) Update() { // 定时清理已经登出的账号数据 curTs := time.Now().Unix() - for name, s := range this.statesByPlayer { + var delAcc []*AccLoginState + for _, s := range this.statesByPlayer { + if s == nil { + continue + } if len(s.lss) == 0 && curTs-s.lastLogoutTs > int64(model.GameParamData.LoginStateCacheSec) { - if s != nil && s.acc != nil { - this.DeleteAccount(name, s) + if s.acc != nil { + delAcc = append(delAcc, s) } } } + for _, s := range delAcc { + this.DeleteAccount(s.acc.AccountId.Hex(), s) + } } func (this *LoginStateMgr) Shutdown() { diff --git a/worldsrv/player.go b/worldsrv/player.go index 39e4967..2461b9b 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -437,6 +437,7 @@ func (this *Player) OnRehold() { FriendUnreadMgrSington.CheckSendFriendUnreadData(this.Platform, this.SnId) if !this.IsRob { + TournamentMgr.Quit(this.Platform, this.SnId) // 比赛没有开始,退赛 this.SendJackPotInit() PlayerOnlineSington.Check = true diff --git a/worldsrv/playermgr.go b/worldsrv/playermgr.go index 73b463b..bd705fd 100644 --- a/worldsrv/playermgr.go +++ b/worldsrv/playermgr.go @@ -644,293 +644,6 @@ func (this *PlayerMgr) EndPlayerLoading(accid string) int64 { return 0 } -//func PlayerRankGe(p1, p2 *Player, n int) bool { -// switch n { -// case 0: -// if p1.TotalCoin == p2.TotalCoin { -// return p1.SnId < p2.SnId -// } else { -// return p1.TotalCoin > p2.TotalCoin -// } -// case 1: -// if p1.CoinPayTotal == p2.CoinPayTotal { -// return p1.SnId < p2.SnId -// } else { -// return p1.CoinPayTotal > p2.CoinPayTotal -// } -// case 2: -// if p1.CoinExchangeTotal == p2.CoinExchangeTotal { -// return p1.SnId < p2.SnId -// } else { -// return p1.CoinExchangeTotal > p2.CoinExchangeTotal -// } -// case 3: -// a := p1.Coin + p1.SafeBoxCoin - p1.CoinPayTotal -// b := p2.Coin + p2.SafeBoxCoin - p2.CoinPayTotal -// if a == b { -// return p1.SnId < p2.SnId -// } else { -// return a > b -// } -// -// } -// return false -//} - -// func (this *PlayerMgr) GetRank() map[string][]*model.Rank { -// ret := make(map[string][]*model.Rank) -// ls := make(map[string]*list.List) -// -// platforms := PlatformMgrSingleton.Platforms -// for p := range platforms { -// ret[p] = make([]*model.Rank, 0) -// ls[p] = list.New() -// } -// -// for _, player := range this.players { -// if player.IsRob { -// continue -// } -// -// p := player.PlayerData.Platform -// if _, ok := platforms[p]; !ok { -// continue -// } -// -// l := ls[p] -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// if PlayerRankGe(player, np) { -// l.InsertBefore(player, n) -// goto CHECK -// } -// } -// //else { -// // logger.Logger.Warnf("PlayerMgr.GetRank n.Value.(*Player) fail") -// // continue -// //} -// } -// -// l.PushBack(player) -// CHECK: -// if l.Len() > model.MAX_RANK_COUNT { -// l.Remove(l.Back()) -// } -// } -// -// for p := range platforms { -// l := ls[p] -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// ret[p] = append(ret[p], &model.Rank{ -// SnId: np.PlayerData.SnId, -// Name: np.PlayerData.Name, -// Head: np.PlayerData.Head, -// VIP: np.PlayerData.VIP, -// TotalCoin: np.PlayerData.TotalCoin, -// }) -// } -// } -// } -// -// return ret -// } - -//func (this *PlayerMgr) GetAssetRank(platform string) []*model.Rank { -// ret := make([]*model.Rank, 0, model.MAX_RANK_COUNT) -// l := list.New() -// -// for _, player := range this.players { -// if player.IsRob { -// continue -// } -// -// if player.PlayerData.Platform != platform { -// continue -// } -// -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// if PlayerRankGe(player, np, 0) { -// l.InsertBefore(player, n) -// goto CHECK -// } -// } -// } -// -// l.PushBack(player) -// CHECK: -// if l.Len() > model.MAX_RANK_COUNT { -// l.Remove(l.Back()) -// } -// } -// -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// ret = append(ret, &model.Rank{ -// SnId: np.PlayerData.SnId, -// Name: np.PlayerData.Name, -// Head: np.PlayerData.Head, -// VIP: np.PlayerData.VIP, -// TotalCoin: np.PlayerData.TotalCoin, -// }) -// } -// } -// -// return ret -//} - -//func (this *PlayerMgr) GetRechargeLists(platform string) []*model.Rank { -// ret := make([]*model.Rank, 0, model.MAX_RANK_COUNT) -// l := list.New() -// -// for _, player := range this.players { -// if player.IsRob { -// continue -// } -// -// if player.PlayerData.Platform != platform { -// continue -// } -// -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// if PlayerRankGe(player, np, 1) { -// l.InsertBefore(player, n) -// goto CHECK -// } -// } -// } -// -// l.PushBack(player) -// CHECK: -// if l.Len() > model.MAX_RANK_COUNT { -// l.Remove(l.Back()) -// } -// } -// -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// ret = append(ret, &model.Rank{ -// SnId: np.PlayerData.SnId, -// Name: np.PlayerData.Name, -// Head: np.PlayerData.Head, -// VIP: np.PlayerData.VIP, -// TotalCoin: np.PlayerData.CoinPayTotal, -// }) -// } -// } -// -// return ret -//} - -//func (this *PlayerMgr) GetExchangeLists(platform string) []*model.Rank { -// ret := make([]*model.Rank, 0, model.MAX_RANK_COUNT) -// l := list.New() -// -// for _, player := range this.players { -// if player.IsRob { -// continue -// } -// -// if player.PlayerData.Platform != platform { -// continue -// } -// -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// if PlayerRankGe(player, np, 2) { -// l.InsertBefore(player, n) -// goto CHECK -// } -// } -// } -// -// l.PushBack(player) -// CHECK: -// if l.Len() > model.MAX_RANK_COUNT { -// l.Remove(l.Back()) -// } -// } -// -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// ret = append(ret, &model.Rank{ -// SnId: np.PlayerData.SnId, -// Name: np.PlayerData.Name, -// Head: np.PlayerData.Head, -// VIP: np.PlayerData.VIP, -// TotalCoin: np.PlayerData.CoinExchangeTotal, -// }) -// } -// } -// -// return ret -//} - -//func (this *PlayerMgr) GetProfitLists(platform string) []*model.Rank { -// ret := make([]*model.Rank, 0, model.MAX_RANK_COUNT) -// l := list.New() -// -// for _, player := range this.players { -// if player.IsRob { -// continue -// } -// -// if player.PlayerData.Platform != platform { -// continue -// } -// -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// if PlayerRankGe(player, np, 3) { -// l.InsertBefore(player, n) -// goto CHECK -// } -// } -// } -// -// l.PushBack(player) -// CHECK: -// if l.Len() > model.MAX_RANK_COUNT { -// l.Remove(l.Back()) -// } -// } -// -// for n := l.Front(); n != nil; n = n.Next() { -// if np, ok := n.Value.(*Player); ok { -// ret = append(ret, &model.Rank{ -// SnId: np.PlayerData.SnId, -// Name: np.PlayerData.Name, -// Head: np.PlayerData.Head, -// VIP: np.PlayerData.VIP, -// //TotalCoin: np.PlayerData.ProfitCoin, -// }) -// } -// } -// -// return ret -//} - -//func (this *PlayerMgr) DeletePlayerByPlatform(platform string) { -// var dels []*Player -// for _, p := range this.players { -// if p != nil && p.Platform == platform { -// p.Kickout(common.KickReason_Disconnection) -// dels = append(dels, p) -// } -// } -// -// for _, p := range dels { -// if p != nil { -// p.isDelete = true -// if p.scene == nil { -// this.DelPlayer(p.SnId) -// } -// } -// } -//} - func (this *PlayerMgr) StatsOnline() model.PlayerOLStats { stats := model.PlayerOLStats{ PlatformStats: make(map[string]*model.PlayerStats),