重连如果比赛没有开始就退赛

This commit is contained in:
sk 2024-09-14 16:22:06 +08:00
parent c0941e43e7
commit f83b22688c
3 changed files with 11 additions and 290 deletions

View File

@ -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() {

View File

@ -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

View File

@ -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),