From 6450c857ceb5a8768bfd22dbe0106b2cc1f125a5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 12 Mar 2026 16:09:45 +0800 Subject: [PATCH] =?UTF-8?q?GM=20=E6=8C=87=E4=BB=A4=EF=BC=8C=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/db/Mysql.go | 21 +++++++++++++++++++++ src/server/game/gm_handler.go | 16 ++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index af80a370..e2581d95 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -311,6 +311,27 @@ func ResetAccountData(oldName, newName string) error { return err } +func MappingAccountData(oldName, newName string) error { + sqlStr := "UPDATE t_account SET user_name = ? WHERE user_name = ?" + _, err := SqlDb.Exec(sqlStr, "", oldName) + if err != nil { + return err + } + sqlStr = "UPDATE t_player_baseinfo SET user_name = ? WHERE user_name = ?" + _, err = SqlDb.Exec(sqlStr, "", oldName) + if err != nil { + return err + } + sqlStr = "UPDATE t_account SET user_name = ? WHERE user_name = ?" + _, err = SqlDb.Exec(sqlStr, oldName, newName) + if err != nil { + return err + } + sqlStr = "UPDATE t_player_baseinfo SET user_name = ? WHERE user_name = ?" + _, err = SqlDb.Exec(sqlStr, oldName, newName) + return err +} + func UpdateAccountInfoToDb(account *Db_Account) (err error) { _, err = SqlDb.Exec("UPDATE t_account SET user_password = ? WHERE user_name = ?", account.UserPassword, account.UserName) return diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 77bf594b..85979836 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -591,6 +591,22 @@ func ReqGmCommand_(player *Player, Command string) error { BaseMod.Account = newAccount player.GetPlayerBaseMod().Data.UserName = newAccount player.PushAndSendClienRes(&msg.ForceKickOut{}) + case "mapping": + if len(arg) < 2 { + return fmt.Errorf("mapping command requires an argument") + } + BaseMod := player.PlayMod.getBaseMod() + account := BaseMod.Account + err := db.MappingAccountData(account, arg[1]) + if err != nil { + log.Error("resetPlayer err:%s", err.Error()) + return err + } + log.Debug("player reset: old account: %s; new account %s", account, arg[1]) + BaseMod.Account = "" + player.GetPlayerBaseMod().Data.UserName = "" + player.PushAndSendClienRes(&msg.ForceKickOut{}) + player.ClearData() case "resetCode": BaseMod := player.PlayMod.getBaseMod() BaseMod.AddCode = fmt.Sprintf("MMM-%s-%s", "156", GoUtil.UniqueStringFromInt(int(BaseMod.Uid)))