From a9d67662b3492aaa6f1b1e3173d7caf9532ca28d Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Sat, 9 Nov 2024 14:09:39 +0800 Subject: [PATCH] =?UTF-8?q?gamedata=E7=A9=BA=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/dbsaver.go | 22 ++++++++++++++++++---- worldsrv/player.go | 5 +++-- worldsrv/playercache.go | 2 +- worldsrv/playermgr.go | 4 ++-- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/worldsrv/dbsaver.go b/worldsrv/dbsaver.go index 663c86e..2bf2ff7 100644 --- a/worldsrv/dbsaver.go +++ b/worldsrv/dbsaver.go @@ -1,6 +1,8 @@ package main import ( + "fmt" + "strings" "time" "mongo.games.com/goserver/core/logger" @@ -13,7 +15,7 @@ type SaveTaskHandler interface { var SaverSliceNumber = 600 -var DbSaver_Inst = &DbSaver{ +var DbSaveInst = &DbSaver{ Tick: int32(SaverSliceNumber), index: 0, init: false, @@ -31,6 +33,18 @@ type DbSaver struct { pool map[SaveTaskHandler]*SaverArray } +func (this *DbSaver) String() string { + buf := strings.Builder{} + buf.WriteString("DbSaver:\n") + buf.WriteString(fmt.Sprintf("Tick: %v\n", this.Tick)) + buf.WriteString(fmt.Sprintf("List: %v\n", len(this.list))) + buf.WriteString(fmt.Sprintf("Queue: %v\n", len(this.queue))) + for k, v := range this.queue { + buf.WriteString(fmt.Sprintf("q%v: %v\n", k, len(v.queue))) + } + return buf.String() +} + // pushBalanceSaverArray 向队列中添加SaveTaskHandler func (this *DbSaver) pushBalanceSaverArray(sth SaveTaskHandler) { if sth == nil { @@ -64,8 +78,8 @@ func (this *DbSaver) RegisterDbSaverTask(i interface{}) { } } -// UnregisteDbSaveTask 从队列中移除SaveTaskHandler -func (this *DbSaver) UnregisteDbSaveTask(i interface{}) { +// UnregisterDbSaveTask 从队列中移除SaveTaskHandler +func (this *DbSaver) UnregisterDbSaveTask(i interface{}) { if sth, ok := i.(SaveTaskHandler); ok { if arr, exist := this.pool[sth]; exist { delete(this.pool, sth) @@ -144,5 +158,5 @@ func (this *DbSaver) Shutdown() { // 注册模块 func init() { - module.RegisteModule(DbSaver_Inst, time.Second, 0) + module.RegisteModule(DbSaveInst, time.Second, 0) } diff --git a/worldsrv/player.go b/worldsrv/player.go index 448fce8..d930f16 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -1379,7 +1379,7 @@ func (this *Player) OnLogouted() { // 更新数据库 logger.Logger.Tracef("###%v unmount from DBSaver[DelPlayer]", this.Name) - DbSaver_Inst.UnregisteDbSaveTask(this) + DbSaveInst.UnregisterDbSaveTask(this) this.Save(true) } @@ -1418,7 +1418,8 @@ func (this *Player) UnmarshalData(data []byte, scene *Scene) { // PlayerInfo 同步 info := PlayerInfoMgrSingle.Players[this.SnId] if info == nil { - PlayerInfoMgrSingle.Players[this.SnId] = &PlayerInfo{} + info = &PlayerInfo{} + PlayerInfoMgrSingle.Players[this.SnId] = info } info.GameData = pd.GameData diff --git a/worldsrv/playercache.go b/worldsrv/playercache.go index bc46591..030e927 100644 --- a/worldsrv/playercache.go +++ b/worldsrv/playercache.go @@ -207,7 +207,7 @@ func (c *PlayerCacheMgr) Update() { c.DbSaver.Update() for _, p := range c.playerWaitClr { delete(c.playerMap, p.SnId) - c.UnregisteDbSaveTask(p) + c.UnregisterDbSaveTask(p) // 释放玩家数据 if PlayerMgrSington.GetPlayerBySnId(p.SnId) == nil { diff --git a/worldsrv/playermgr.go b/worldsrv/playermgr.go index a3522aa..13defda 100644 --- a/worldsrv/playermgr.go +++ b/worldsrv/playermgr.go @@ -144,9 +144,9 @@ func (this *PlayerMgr) AddPlayer(sid int64, playerInfo *model.PlayerData, s *net logger.Logger.Tracef("###%v mount to DBSaver[AddPlayer]", player.Name) if oldp != nil { //删除旧的玩家 - DbSaver_Inst.UnregisteDbSaveTask(oldp) + DbSaveInst.UnregisterDbSaveTask(oldp) } - DbSaver_Inst.RegisterDbSaverTask(player) + DbSaveInst.RegisterDbSaverTask(player) niceIdMgr.NiceIdCheck(player.SnId) } else { player.NiceId = niceIdMgr.PopNiceId(player.SnId)