From 0df389240e67f159215a4856bce7d3322ff0eaea Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 13 Jan 2026 15:11:04 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=B6=88=E6=81=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/game_type.go | 1 + src/server/game/message_mgr.go | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/server/game/game_type.go b/src/server/game/game_type.go index df0a844c..dbc05e48 100644 --- a/src/server/game/game_type.go +++ b/src/server/game/game_type.go @@ -131,4 +131,5 @@ func init() { gob.Register(item.Item{}) gob.Register([]*item.Item{}) // 注册 []*item.Item 类型 gob.Register(friend.ReplyInfo{}) + gob.Register(GameResult{}) } diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 93c9e6bb..b1427533 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -101,6 +101,8 @@ func (m *MessageMgr) MessageMgrInit() { gob.Register(item.Item{}) gob.Register([]*item.Item{}) // 注册 []*item.Item 类型 gob.Register(friend.ReplyInfo{}) + gob.Register(msg.VarData{}) + gob.Register(GameResult{}) // 注册处理函数 m.init() m.handler = make(map[int]MessageHandlerFunc) From 48ddddb6803d755ed90f8040608f97393f85dd7c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 13 Jan 2026 15:19:43 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AE=89=E5=85=A8?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/gamedata/reader.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/server/gamedata/reader.go b/src/server/gamedata/reader.go index ec15a45d..1c62982d 100644 --- a/src/server/gamedata/reader.go +++ b/src/server/gamedata/reader.go @@ -184,7 +184,7 @@ func GetStringValue(a interface{}, key string) string { if v == nil { return "" } - return v.(string) + String(v) } return "" } @@ -237,3 +237,22 @@ func Int(a interface{}) int { } return 0 } + +func String(a interface{}) string { + if a == nil { + return "" + } + switch v := a.(type) { + case int: + return strconv.Itoa(v) + case int32: + return strconv.Itoa(int(v)) + case int64: + return strconv.Itoa(int(v)) + case float64: + return strconv.FormatFloat(v, 'f', -1, 64) + case string: + return v + } + return "" +} From 9f8e2460ac763987fe820c356eef4797450b37d9 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 13 Jan 2026 15:28:39 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/gamedata/reader.go | 2 +- src/server/test/config_test.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/server/gamedata/reader.go b/src/server/gamedata/reader.go index 1c62982d..cbf505f7 100644 --- a/src/server/gamedata/reader.go +++ b/src/server/gamedata/reader.go @@ -184,7 +184,7 @@ func GetStringValue(a interface{}, key string) string { if v == nil { return "" } - String(v) + return String(v) } return "" } diff --git a/src/server/test/config_test.go b/src/server/test/config_test.go index 39158fcd..93579df5 100644 --- a/src/server/test/config_test.go +++ b/src/server/test/config_test.go @@ -2,6 +2,7 @@ package test import ( "fmt" + playroomCfg "server/conf/playroom" userCfg "server/conf/user" "testing" ) @@ -10,3 +11,8 @@ func Test(t *testing.T) { i := userCfg.GetEnergyMulByLv(1) fmt.Println(i) } + +func TestGetOrderItemByGrade(t *testing.T) { + itemId := playroomCfg.GetOrderItemByGrade(2) + fmt.Println(itemId) +} From 158b7a840a2b2ff743da0b1649a284a1df40a0b5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 13 Jan 2026 16:50:50 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E7=82=B9=E8=B5=9E=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/register_network_func.go | 14 +++++++------- src/server/game/var.go | 5 ++++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 6e88dfba..96435706 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -2051,13 +2051,13 @@ func ReqCardGive(player *Player, buf []byte) error { }) return fmt.Errorf("card id empty") } - err = player.SubCard(CardId) - if err != nil { - player.SendErrClienRes(&msg.ResCardGive{ - Code: msg.RES_CODE_FAIL, - Msg: err.Error(), - }) - } + // err = player.SubCard(CardId) + // if err != nil { + // player.SendErrClienRes(&msg.ResCardGive{ + // Code: msg.RES_CODE_FAIL, + // Msg: err.Error(), + // }) + // } Id := GoUtil.CreateCardId(int(player.M_DwUin), 0, int(req.CardId)) for _, v := range req.Uid { Uid := int(v) diff --git a/src/server/game/var.go b/src/server/game/var.go index fd6b26b6..ea1cb417 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -102,7 +102,10 @@ func (p *Player) SubVarDataAsync(key string) { } func (p *Player) AddPlayroomUpvote(PlayerId int) { - p.AddVarDataAsync(VAR_PLAYROOM_UPVOTE) + newP := &Player{ + M_DwUin: int64(PlayerId), + } + newP.AddVarDataAsync(VAR_PLAYROOM_UPVOTE) } func (p *Player) AddPlayroomChip(PlayerId int) { From 5354e1bca0eedc725863760868826d857b06032e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 13 Jan 2026 16:55:50 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E7=82=B9=E8=B5=9E=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/register_network_func.go | 4 +-- src/server/game/var.go | 33 +++++++++++------------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 96435706..fb04408c 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -3800,7 +3800,7 @@ func ReqPlayroomInteract(player *Player, buf []byte) error { return err } if GoUtil.InArray(int(req.Id), playroomCfg.GetInteractIdBath()) { - player.SetPlayroomKiss(0) + player.SetPlayroomKiss(0, int(player.M_DwUin)) } PExp := playroomCfg.GetInteractPExp(int(req.Id)) _, err = player.GetPlayerBaseMod().AddExp(player, 0, PExp) @@ -4269,7 +4269,7 @@ func ReqPlayroomUpvote(player *Player, buf []byte) error { SendT: GoUtil.Now(), }) player.AddPlayroomUpvote(int(req.Id)) - player.SetPlayroomKiss(1) + player.SetPlayroomKiss(1, int(req.Id)) player.TeLog("visit_like", map[string]interface{}{ "user_id": req.Id, }) diff --git a/src/server/game/var.go b/src/server/game/var.go index ea1cb417..783db211 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -51,9 +51,9 @@ func (p *Player) GetUserVarData(key string) interface{} { // return data.Extra // } -func (p *Player) OpVarDataAsync(key string, value interface{}, opType int) { +func (p *Player) OpVarDataAsync(PlayerId int, key string, value interface{}, opType int) { SendMsgToCenterAsync(&msg.Msg{ - From: int(p.M_DwUin), + From: PlayerId, HandleType: msg.HANDLE_MOD_USER_VAR_SET, Extra: msg.VarData{ Key: key, @@ -63,9 +63,9 @@ func (p *Player) OpVarDataAsync(key string, value interface{}, opType int) { }) } -func (p *Player) OpVarDataSync(key string, value interface{}, opType int) (*msg.Msg, error) { +func (p *Player) OpVarDataSync(PlayerId int, key string, value interface{}, opType int) (*msg.Msg, error) { return SendMsgToCenterSync(&msg.Msg{ - From: int(p.M_DwUin), + From: PlayerId, HandleType: msg.HANDLE_MOD_USER_VAR_SET, Extra: msg.VarData{ Key: key, @@ -89,31 +89,28 @@ func (p *Player) OpServerVarDataSync(key string, Value interface{}, opType int) }) } -func (p *Player) SetVarDataAsync(key string, value interface{}) { - p.OpVarDataAsync(key, value, msg.VAR_OP_SET) +func (p *Player) SetVarDataAsync(key string, value interface{}, PlayerId int) { + p.OpVarDataAsync(PlayerId, key, value, msg.VAR_OP_SET) } -func (p *Player) AddVarDataAsync(key string) { - p.OpVarDataAsync(key, nil, msg.VAR_OP_ADD) +func (p *Player) AddVarDataAsync(key string, PlayerId int) { + p.OpVarDataAsync(PlayerId, key, nil, msg.VAR_OP_ADD) } -func (p *Player) SubVarDataAsync(key string) { - p.OpVarDataAsync(key, nil, msg.VAR_OP_SUB) +func (p *Player) SubVarDataAsync(key string, PlayerId int) { + p.OpVarDataAsync(PlayerId, key, nil, msg.VAR_OP_SUB) } func (p *Player) AddPlayroomUpvote(PlayerId int) { - newP := &Player{ - M_DwUin: int64(PlayerId), - } - newP.AddVarDataAsync(VAR_PLAYROOM_UPVOTE) + p.AddVarDataAsync(VAR_PLAYROOM_UPVOTE, PlayerId) } func (p *Player) AddPlayroomChip(PlayerId int) { - p.AddVarDataAsync(VAR_PLAYROOM_CHIP) + p.AddVarDataAsync(VAR_PLAYROOM_CHIP, PlayerId) } func (p *Player) SubPlayroomChip(PlayerId int) { - p.SubVarDataAsync(VAR_PLAYROOM_CHIP) + p.SubVarDataAsync(VAR_PLAYROOM_CHIP, PlayerId) } func (p *Player) GetPlayroomUpvote() int { @@ -132,8 +129,8 @@ func (p *Player) GetPlayroomChip() int { return data.(int) } -func (p *Player) SetPlayroomKiss(Kiss int) { - p.SetVarDataAsync(VAR_PLAYROOM_KISS, Kiss) +func (p *Player) SetPlayroomKiss(Kiss int, PlayerId int) { + p.SetVarDataAsync(VAR_PLAYROOM_KISS, Kiss, PlayerId) } func (p *Player) GetPlayroomKiss() int { From eaffa63ae87f3658a9a64689ce6fba2bfceca28a Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 13 Jan 2026 17:13:46 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E6=B6=88=E6=81=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_back.go | 10 +++++----- src/server/game/register_network_func.go | 1 - src/server/game/var.go | 24 ++++++++++++++---------- src/server/game/var_mgr.go | 6 +++--- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/server/game/player_back.go b/src/server/game/player_back.go index 2dbcbfc7..cb327656 100644 --- a/src/server/game/player_back.go +++ b/src/server/game/player_back.go @@ -156,7 +156,7 @@ func (p *Player) PlayroomBackData() { r.Unlock = PlayroomMod.GetUnlockIds() r.DailyTaskReward = GoUtil.IntToInt32(PlayroomMod.DailyTaskReward) r.DailyTask = PlayroomMod.BackDataTask() - r.Kiss = int32(p.GetPlayroomKiss()) + r.Kiss = int32(p.GetPlayroomKiss(int(p.M_DwUin))) r.Revenge = PlayroomMod.RevengeUid r.InteractNum = int32(PlayroomMod.InteractNum) r.AdItem = AdWatch @@ -195,16 +195,16 @@ func (p *Player) PlayroomVisit(Uid int) { r.Upvote = GoUtil.InArray(Uid, PlayroomMod.UpvoteList) r.Items = Items r.Status = int32(PlayroomMod.GameStatus) - r.UpvoteCount = int32(p.GetPlayroomUpvote()) - r.Chip = int32(p.GetPlayroomChip()) - r.Kiss = int32(p.GetPlayroomKiss()) + r.UpvoteCount = int32(p.GetPlayroomUpvote(Uid)) + r.Chip = int32(p.GetPlayroomChip(Uid)) + r.Kiss = int32(p.GetPlayroomKiss(Uid)) r.DressSet = GoUtil.MapIntToInt32(PlayerData.DressSet) p.PushClientRes(r) } func (p *Player) NotifyPlayroomKiss() { m := &proto.NotifyPlayroomKiss{ - Kiss: int32(p.GetPlayroomKiss()), + Kiss: int32(p.GetPlayroomKiss(int(p.M_DwUin))), } p.PushClientRes(m) } diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index fb04408c..f1461d49 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -2097,7 +2097,6 @@ func ReqCardGive(player *Player, buf []byte) error { } FriendMgrSend(m) } - player.PushClientRes(&msg.ResCardGive{ Code: msg.RES_CODE_SUCCESS, }) diff --git a/src/server/game/var.go b/src/server/game/var.go index 783db211..c8f0b8a4 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -28,9 +28,9 @@ func (p *Player) GetVarData(key string) interface{} { return cache.D } -func (p *Player) GetUserVarData(key string) interface{} { +func (p *Player) GetUserVarData(key string, PlayerId int) interface{} { cache := map[string]*VarExpireData{} - err := LoadCacheVarData(GoUtil.GetVarKey(int(p.M_DwUin)), &cache) + err := LoadCacheVarData(GoUtil.GetVarKey(int(PlayerId)), &cache) if err != nil { // log.Error("GetUserVarData err : %s, key: %s", err, key) return nil @@ -53,7 +53,9 @@ func (p *Player) GetUserVarData(key string) interface{} { func (p *Player) OpVarDataAsync(PlayerId int, key string, value interface{}, opType int) { SendMsgToCenterAsync(&msg.Msg{ - From: PlayerId, + From: int(p.M_DwUin), + To: PlayerId, + SendT: GoUtil.Now(), HandleType: msg.HANDLE_MOD_USER_VAR_SET, Extra: msg.VarData{ Key: key, @@ -65,7 +67,9 @@ func (p *Player) OpVarDataAsync(PlayerId int, key string, value interface{}, opT func (p *Player) OpVarDataSync(PlayerId int, key string, value interface{}, opType int) (*msg.Msg, error) { return SendMsgToCenterSync(&msg.Msg{ - From: PlayerId, + From: int(p.M_DwUin), + To: PlayerId, + SendT: GoUtil.Now(), HandleType: msg.HANDLE_MOD_USER_VAR_SET, Extra: msg.VarData{ Key: key, @@ -113,16 +117,16 @@ func (p *Player) SubPlayroomChip(PlayerId int) { p.SubVarDataAsync(VAR_PLAYROOM_CHIP, PlayerId) } -func (p *Player) GetPlayroomUpvote() int { - data := p.GetUserVarData(VAR_PLAYROOM_UPVOTE) +func (p *Player) GetPlayroomUpvote(PlayerId int) int { + data := p.GetUserVarData(VAR_PLAYROOM_UPVOTE, PlayerId) if data == nil { return 0 } return data.(int) } -func (p *Player) GetPlayroomChip() int { - data := p.GetUserVarData(VAR_PLAYROOM_CHIP) +func (p *Player) GetPlayroomChip(PlayerId int) int { + data := p.GetUserVarData(VAR_PLAYROOM_CHIP, PlayerId) if data == nil { return 0 } @@ -133,8 +137,8 @@ func (p *Player) SetPlayroomKiss(Kiss int, PlayerId int) { p.SetVarDataAsync(VAR_PLAYROOM_KISS, Kiss, PlayerId) } -func (p *Player) GetPlayroomKiss() int { - data := p.GetUserVarData(VAR_PLAYROOM_KISS) +func (p *Player) GetPlayroomKiss(PlayerId int) int { + data := p.GetUserVarData(VAR_PLAYROOM_KISS, PlayerId) if data == nil { return 0 } diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index e2d2b309..c5544eb0 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -246,10 +246,10 @@ func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) { data.mu.Lock() defer data.mu.Unlock() if v, ok := m.Extra.(msg.VarData); ok { - varData := data.NewUseVar[m.From] + varData := data.NewUseVar[m.To] if varData == nil { varData = make(map[string]*VarExpireData) - data.NewUseVar[m.From] = varData + data.NewUseVar[m.To] = varData } ved, ok := varData[v.Key] if !ok { @@ -282,7 +282,7 @@ func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) { data.Var[v.Key] = ved } // 保存到缓存中 - SaveCacheVarData(GoUtil.GetVarKey(m.From), data.NewUseVar[m.From]) + SaveCacheVarData(GoUtil.GetVarKey(m.To), data.NewUseVar[m.From]) return nil, nil } From ade21206c63483b2eda3beca635147362ccd8c43 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 13 Jan 2026 17:29:43 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E6=B6=88=E6=81=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/var_mgr.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index c5544eb0..ca08ce94 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -219,7 +219,7 @@ func SetVarDataHandler(m *msg.Msg) (interface{}, error) { if m.End > 0 { ved.T = m.End } - data.Var[v.Key] = ved + data.NewVar[v.Key] = ved SaveCacheVarData(v.Key, ved) } return nil, nil @@ -279,10 +279,11 @@ func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) { if m.End > 0 { ved.T = m.End } - data.Var[v.Key] = ved + varData[v.Key] = ved + data.NewUseVar[m.To] = varData + SaveCacheVarData(GoUtil.GetVarKey(m.To), data.NewUseVar[m.To]) } // 保存到缓存中 - SaveCacheVarData(GoUtil.GetVarKey(m.To), data.NewUseVar[m.From]) return nil, nil } From 7d6a040cec2841c728fc798d720bac30c5084ceb Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 13 Jan 2026 17:42:53 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/activity/activity_cfg.go | 9 +++++++++ src/server/game/gm_handler.go | 5 +++++ src/server/test/config_test.go | 14 ++++++++++---- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/server/conf/activity/activity_cfg.go b/src/server/conf/activity/activity_cfg.go index 8ab34b62..b6edf150 100644 --- a/src/server/conf/activity/activity_cfg.go +++ b/src/server/conf/activity/activity_cfg.go @@ -107,3 +107,12 @@ func GetActivityTitle(ActId int) (string, string) { } return languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Title")), languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Title")) } + +func GetActivityRecycleMail(ActId int) (string, string, string) { + data, err := gamedata.GetDataByIntKey(CFG_ACTIVITY, ActId) + if err != nil { + log.Debug("GetActivityRecycleMail err:%v", err) + return "", "", "" + } + return gamedata.GetStringValue(data, "Title"), gamedata.GetStringValue(data, "Mail_Title"), gamedata.GetStringValue(data, "Mail_Content") +} diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 97017f87..2595beca 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -576,6 +576,11 @@ func ReqGmCommand_(player *Player, Command string) error { BaseMod := player.PlayMod.getBaseMod() BaseMod.AddCode = fmt.Sprintf("MMM-%s-%s", "156", GoUtil.UniqueStringFromInt(int(BaseMod.Uid))) player.BackUserInfo() + case "debug": + player.AddPlayroomUpvote(100100129) + i := player.GetPlayroomUpvote(100100129) + log.Debug("debug upvote:%d", i) + default: return fmt.Errorf("Player %d ReqGmCommand:%v not found", player.M_DwUin, arg) } diff --git a/src/server/test/config_test.go b/src/server/test/config_test.go index 93579df5..6b03f3e5 100644 --- a/src/server/test/config_test.go +++ b/src/server/test/config_test.go @@ -2,8 +2,10 @@ package test import ( "fmt" - playroomCfg "server/conf/playroom" + activityCfg "server/conf/activity" + languageCfg "server/conf/language" userCfg "server/conf/user" + "server/msg" "testing" ) @@ -12,7 +14,11 @@ func Test(t *testing.T) { fmt.Println(i) } -func TestGetOrderItemByGrade(t *testing.T) { - itemId := playroomCfg.GetOrderItemByGrade(2) - fmt.Println(itemId) +func TestGetActivityRecycleMail(t *testing.T) { + title, mailTitle, mailContent := activityCfg.GetActivityRecycleMail(1) + fmt.Println("title:", title) + fmt.Println("mailTitle:", mailTitle) + fmt.Println("mailContent:", mailContent) + en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mailTitle) + fmt.Println("en:", en) }