diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index f1b469be..5845af96 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -385,13 +385,15 @@ func InsertServerData(data *SqlServerModStruct) error { } func SavePlayerModData(data *SqlModStruct) error { - sql := "INSERT INTO `t_player_mod` (`mData` , `updateTime` ,`dwUin`) Values (?,?,?) ON DUPLICATE KEY UPDATE `mData` = ? , `updateTime` = ? " + tableName := "t_player_mod_" + fmt.Sprintf("%02d", data.DwUin%100) + sql := "INSERT INTO `" + tableName + "` (`mData` , `updateTime` ,`dwUin`) Values (?,?,?) ON DUPLICATE KEY UPDATE `mData` = ? , `updateTime` = ? " _, err := SqlDb.Exec(sql, data.ModData, data.UpdataTime, data.DwUin, data.ModData, data.UpdataTime) return err } func InsertPlayerModData(data *SqlModStruct) error { - sql := "insert into t_player_mod (`mData` , `updateTime` ,`dwUin`) Values (?,?,?)" + tableName := "t_player_mod_" + fmt.Sprintf("%02d", data.DwUin%100) + sql := "insert into `" + tableName + "` (`mData` , `updateTime` ,`dwUin`) Values (?,?,?)" _, err := SqlDb.Exec(sql, data.ModData, data.UpdataTime, data.DwUin) return err } diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 9c460453..a9798d7d 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -659,6 +659,8 @@ func ReqGmCommand_(player *Player, Command string) error { From: uid, Extra: []int{2, 145}, }) + case "resetKv": + player.PlayMod.mod_list.Kv.Data = make(map[int]string) case "debugBeckmarkMsg": for i := 0; i < 1000000; i++ { for j := 0; j < 10; j++ { diff --git a/src/server/game/player_mod.go b/src/server/game/player_mod.go index 4b5c76d7..5cf5b83e 100644 --- a/src/server/game/player_mod.go +++ b/src/server/game/player_mod.go @@ -128,15 +128,17 @@ type PlayerModList struct { } func (p *PlayerModData) LoadDataFromDB(dwUin interface{}) bool { + uid := dwUin.(int64) + mod_table := "t_player_mod_" + fmt.Sprintf("%02d", uid%100) sqlStr := "SELECT * FROM t_player_mod WHERE dwUin = ?" p.Data = db.SqlModStruct{} - if err := db.SqlDb.Get(&p.Data, sqlStr, dwUin.(int64)); err != nil { - - p.IsHaveDataDb = false - } else { - p.IsHaveDataDb = true + if err := db.SqlDb.Get(&p.Data, sqlStr, uid); err != nil { + if err = db.SqlDb.Get(&p.Data, "select * from "+mod_table+" where dwUin = ?", uid); err != nil { + log.Debug("player mod get data failed, dwUin:%d, err:%v\n", uid, err) + return false + } } - p.Data.DwUin = dwUin.(int64) + p.Data.DwUin = uid return true } @@ -144,17 +146,6 @@ func (p *PlayerModData) ClearData() bool { return true } -func (p *PlayerModData) SaveDataFromDB(Key interface{}) bool { - //序列化数据 - db.FormatAllMemUpdateDb(&p.Data, "t_player_mod", "dwUin") - p.IsHaveDataDb = true - return true -} - -func (p *PlayerModData) ReqModData(buf []byte) { - -} - // 推送基础数据 func (p *PlayerModData) Reconnect(b bool) []byte { return []byte{} diff --git a/src/server/sql/Merge_Pet.sql b/src/server/sql/Merge_Pet.sql index 62021d38..f89fa039 100644 --- a/src/server/sql/Merge_Pet.sql +++ b/src/server/sql/Merge_Pet.sql @@ -83,7 +83,7 @@ CREATE TABLE IF NOT EXISTS `t_player_baseinfo` ( /*==============================================================*/ CREATE TABLE IF NOT EXISTS t_player_mod ( `dwUin` bigint unsigned COMMENT '玩家uid', - `mData` blob DEFAULT NULL COMMENT '数据', + `mData` mediumblob DEFAULT NULL COMMENT '数据', `updateTime` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间', primary key (`dwUin`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '玩家模块表';