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/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/gm_handler.go b/src/server/game/gm_handler.go index 0ae18dbd..54e1c831 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -579,6 +579,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/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) 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 98ed81ab..5ac81bba 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -2052,13 +2052,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) @@ -2098,7 +2098,6 @@ func ReqCardGive(player *Player, buf []byte) error { } FriendMgrSend(m) } - player.PushClientRes(&msg.ResCardGive{ Code: msg.RES_CODE_SUCCESS, }) @@ -3801,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) @@ -4270,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 fd6b26b6..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 @@ -51,9 +51,11 @@ 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), + To: PlayerId, + SendT: GoUtil.Now(), HandleType: msg.HANDLE_MOD_USER_VAR_SET, Extra: msg.VarData{ Key: key, @@ -63,9 +65,11 @@ 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), + To: PlayerId, + SendT: GoUtil.Now(), HandleType: msg.HANDLE_MOD_USER_VAR_SET, Extra: msg.VarData{ Key: key, @@ -89,52 +93,52 @@ 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) { - p.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 { - 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 } 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 { - 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..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 @@ -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 { @@ -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.From), data.NewUseVar[m.From]) return nil, nil } diff --git a/src/server/gamedata/reader.go b/src/server/gamedata/reader.go index ec15a45d..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 "" } - return v.(string) + return 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 "" +} diff --git a/src/server/test/config_test.go b/src/server/test/config_test.go index 39158fcd..6b03f3e5 100644 --- a/src/server/test/config_test.go +++ b/src/server/test/config_test.go @@ -2,7 +2,10 @@ package test import ( "fmt" + activityCfg "server/conf/activity" + languageCfg "server/conf/language" userCfg "server/conf/user" + "server/msg" "testing" ) @@ -10,3 +13,12 @@ func Test(t *testing.T) { i := userCfg.GetEnergyMulByLv(1) fmt.Println(i) } + +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) +}