增加玩家全服数据

This commit is contained in:
hahwu 2025-04-29 14:38:50 +08:00
parent 38d6f14b95
commit b20f111cbb

View File

@ -5,7 +5,6 @@ import (
"server/GoUtil" "server/GoUtil"
"server/game/mod/card" "server/game/mod/card"
"server/game/mod/msg" "server/game/mod/msg"
"sync"
"time" "time"
) )
@ -15,7 +14,7 @@ type VarMgr struct {
type VarData struct { type VarData struct {
Var map[string]interface{} Var map[string]interface{}
UserVar sync.Map UserVar map[string]*VarUserData
ZeroTime int64 ZeroTime int64
} }
@ -40,6 +39,9 @@ func (f *VarMgr) Init() {
if f.data.(*VarData).Var == nil { if f.data.(*VarData).Var == nil {
f.data.(*VarData).Var = make(map[string]interface{}) f.data.(*VarData).Var = make(map[string]interface{})
} }
if f.data.(*VarData).UserVar == nil {
f.data.(*VarData).UserVar = make(map[string]*VarUserData)
}
if f.getData().ZeroTime == GoUtil.ZeroTimestamp() { if f.getData().ZeroTime == GoUtil.ZeroTimestamp() {
f.ZeroUpdate(&msg.Msg{}) f.ZeroUpdate(&msg.Msg{})
} }
@ -68,29 +70,26 @@ func (f *VarMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) {
} }
func (f *VarMgr) SetVar(key string, value interface{}) { func (f *VarMgr) SetVar(key string, value interface{}) {
f.getData().UserVar.Store(key, value) f.getData().Var[key] = value
} }
func (f *VarMgr) GetVar(key string) interface{} { func (f *VarMgr) GetVar(key string) interface{} {
value, _ := f.getData().UserVar.Load(key) return f.getData().Var[key]
return value
} }
func (f *VarMgr) SetUserVar(key string, value *VarUserData) { func (f *VarMgr) SetUserVar(key string, value *VarUserData) {
f.getData().UserVar.Store(key, value) f.getData().UserVar[key] = value
} }
func (f *VarMgr) GetUserVar(key string) *VarUserData { func (f *VarMgr) GetUserVar(key string) *VarUserData {
value, _ := f.getData().UserVar.Load(key) if v, ok := f.getData().UserVar[key]; ok {
if value == nil { return v
value = &VarUserData{}
f.getData().UserVar.Store(key, value)
} }
return value.(*VarUserData) return nil
} }
func (f *VarMgr) DelVar(key string) { func (f *VarMgr) DelVar(key string) {
f.getData().UserVar.Delete(key) delete(f.getData().Var, key)
} }
func (f *VarMgr) getData() *VarData { func (f *VarMgr) getData() *VarData {