gamedata空指针
This commit is contained in:
parent
14f8211ea1
commit
a9d67662b3
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue