diff --git a/src/server/game/server_mod.go b/src/server/game/server_mod.go index cddcee79..43757e59 100644 --- a/src/server/game/server_mod.go +++ b/src/server/game/server_mod.go @@ -139,7 +139,25 @@ func (s *ServerMod) SaveData() { DbData.Key = s.key DbData.UpdataTime = GoUtil.Now() var err error - DbData.ModData, err = GoUtil.GobMarshal(s.data) + switch s.data.(type) { + case *ChampshipData: + data := s.data.(*ChampshipData) + data.mu.Lock() + DbData.ModData, err = GoUtil.GobMarshal(s.data) + data.mu.Unlock() + case *MessageData: + data := s.data.(*MessageData) + data.mu.Lock() + DbData.ModData, err = GoUtil.GobMarshal(s.data) + data.mu.Unlock() + case *VarData: + data := s.data.(*VarData) + data.mu.Lock() + DbData.ModData, err = GoUtil.GobMarshal(s.data) + data.mu.Unlock() + default: + DbData.ModData, err = GoUtil.GobMarshal(s.data) + } if err != nil { log.Error("SaveData Marshal failed,Mod Key: %s err:%v", s.key, err) return