From ccc02de3152aa2a2c8d6d2bf94fe78fa0d3e0359 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 10 Feb 2026 11:03:46 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A5=BD=E5=8F=8B=E6=8E=A8=E8=8D=90=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=9B2AD=20energy=E5=A2=9E=E5=8A=A0=E5=B8=B8?= =?UTF-8?q?=E9=87=8F=EF=BC=9B3playroom=E6=97=A5=E5=B8=B8=E4=BB=BB=E5=8A=A1?= =?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/conf/base/base_cfg.go | 9 ++++++++ src/server/conf/friend/friend_cfg.go | 20 ++++++++++++++++++ src/server/conf/playroom/playroom_cfg.go | 27 +++++++++++++++++++++++- src/server/game/mod/base/Base.go | 2 +- src/server/game/mod/friend/Friend.go | 3 ++- src/server/game/mod/playroom/playroom.go | 12 +++++++++++ src/server/game/register_network_func.go | 5 +++-- src/server/test/config_test.go | 18 ++++++++++++++++ 8 files changed, 91 insertions(+), 5 deletions(-) diff --git a/src/server/conf/base/base_cfg.go b/src/server/conf/base/base_cfg.go index 1a520299..b259d14d 100644 --- a/src/server/conf/base/base_cfg.go +++ b/src/server/conf/base/base_cfg.go @@ -61,6 +61,15 @@ func GetFriendReplyReward() []*item.Item { return gamedata.GetItemList(data, "Value") } +func GetEnergyByADNum() []*item.Item { + data, err := gamedata.GetDataByKey(CFG_BASE, "ad_energy_gift") + if err != nil { + log.Debug("GetEnergyByADNum err:%v", err) + return nil + } + return gamedata.GetItemList(data, "Value") +} + func GetMaxEnergyMul(Lv int, Energy int) int { Mul := 0 for i := 1; i <= MAX_ENERGY_LEVEL; i++ { diff --git a/src/server/conf/friend/friend_cfg.go b/src/server/conf/friend/friend_cfg.go index 4ebf3f2c..5c7327ae 100644 --- a/src/server/conf/friend/friend_cfg.go +++ b/src/server/conf/friend/friend_cfg.go @@ -7,10 +7,12 @@ import ( const ( CFG_NPC_FRIENDS = "NPCFriends" + CFG_CONST = "FriendConst" ) func init() { gamedata.InitCfg(CFG_NPC_FRIENDS) + gamedata.InitCfg(CFG_CONST) } func IsNpcFriend(Id int) bool { @@ -21,3 +23,21 @@ func IsNpcFriend(Id int) bool { } return true } + +func GetFriendSponsorNum() int { + data, err := gamedata.GetDataByKey(CFG_CONST, "friend_energy_bonus") + if err != nil { + log.Debug("GetFriendSponsorNum err:%v", err) + return 0 + } + return gamedata.GetIntValue(data, "Value") +} + +func GetFriendLimitNum() int { + data, err := gamedata.GetDataByKey(CFG_CONST, "friend_limit") + if err != nil { + log.Debug("GetFriendLimitNum err:%v", err) + return 0 + } + return gamedata.GetIntValue(data, "Value") +} diff --git a/src/server/conf/playroom/playroom_cfg.go b/src/server/conf/playroom/playroom_cfg.go index 16d0e4c2..257a86bb 100644 --- a/src/server/conf/playroom/playroom_cfg.go +++ b/src/server/conf/playroom/playroom_cfg.go @@ -499,7 +499,14 @@ func GetDailyTask(Type int) map[int]string { r1 = append(r1, k1) } } - r3 := GoUtil.RandSliceNum(r1, 6) + daily_group_num := 0 + switch Type { + case 1: + daily_group_num = GetPlayroomTaskDailyNum1() + case 2: + daily_group_num = GetPlayroomTaskDailyNum2() + } + r3 := GoUtil.RandSliceNum(r1, daily_group_num) for _, v := range r3 { r2[v] = r[v] } @@ -695,3 +702,21 @@ func GetItemAddPhysiology(Item map[int]int) int { } return r } + +func GetPlayroomTaskDailyNum1() int { + data, err := gamedata.GetDataByKey(CFG_PLAYROOM_CONST, "dailytask_groupnum1") + if err != nil { + log.Debug("GetPlayroomTaskDailyNum1 err:%v", err) + return 0 + } + return gamedata.GetIntValue(data, "Value") +} + +func GetPlayroomTaskDailyNum2() int { + data, err := gamedata.GetDataByKey(CFG_PLAYROOM_CONST, "dailytask_groupnum2") + if err != nil { + log.Debug("GetPlayroomTaskDailyNum2 err:%v", err) + return 0 + } + return gamedata.GetIntValue(data, "Value") +} diff --git a/src/server/game/mod/base/Base.go b/src/server/game/mod/base/Base.go index a070b12c..c64dcdb1 100644 --- a/src/server/game/mod/base/Base.go +++ b/src/server/game/mod/base/Base.go @@ -263,7 +263,7 @@ func (b *Base) GetEnergyByAD() ([]*item.Item, error) { return nil, fmt.Errorf("energy ad is max") } b.EnergyAD += 1 - return []*item.Item{{Id: item.ITEM_ENERGY_ID, Num: 25}}, nil + return baseCfg.GetEnergyByADNum(), nil } func (b *Base) FormatEnergyMul(Energy int) { diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index 16919e4a..23b38cb5 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -607,7 +607,8 @@ func (f *FriendMod) GetSponsorReward() ([]*item.Item, error) { return nil, fmt.Errorf("no sponsor left") } f.DailySponsor-- - return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, 25)}, nil + itemNum := friendCfg.GetFriendSponsorNum() + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, itemNum)}, nil } func (f *FriendMod) AddRecommend(Uid int) { diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 624d1ddb..428ebc28 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -707,6 +707,18 @@ func (p *PlayroomMod) GetTaskReward(Type int) (int, []*item.Item, error) { if GoUtil.InArray(Type, p.DailyTaskReward) { return 0, nil, fmt.Errorf("GetTaskReward Type is already in DailyTaskReward") } + finish := 0 + for _, v := range p.DailyTask { + if v.Status == quest.QUEST_STATUS_FINISH { + finish++ + } + } + if Type == DAILY_TASK_TYPE_ONE && finish < playroomCfg.GetPlayroomTaskDailyNum1() { + return 0, nil, fmt.Errorf("GetTaskReward Type is DAILY_TASK_TYPE_ONE but finish is %d", finish) + } + if Type == DAILY_TASK_TYPE_TWO && finish < playroomCfg.GetPlayroomTaskDailyNum1()+playroomCfg.GetPlayroomTaskDailyNum2() { + return 0, nil, fmt.Errorf("GetTaskReward Type is DAILY_TASK_TYPE_TWO but finish is %d", finish) + } p.DailyTaskReward = append(p.DailyTaskReward, Type) Id := 0 var Items []*item.Item diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index fc859fce..08fb7da1 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -11,6 +11,7 @@ import ( collectCfg "server/conf/collect" decorateCfg "server/conf/decorate" emojiCfg "server/conf/emoji" + friendCfg "server/conf/friend" GuideTaskCfg "server/conf/guide_task" handbookCfg "server/conf/handbook" limitedTimeEventCfg "server/conf/limited_time_event" @@ -1861,7 +1862,7 @@ func ReqApplyFriend(player *Player, buf []byte) error { return fmt.Errorf("already friend") } // 好友人数到达上限(2000人)时,玩家将无法再发送好友申请 - if FriendMod.GetFriendLen() >= 2000 { + if FriendMod.GetFriendLen() >= friendCfg.GetFriendLimitNum() { player.SendErrClienRes(&msg.ResApplyFriend{ Code: msg.RES_CODE_FAIL, Msg: "friend list full", @@ -1940,7 +1941,7 @@ func ReqAgreeFriend(player *Player, buf []byte) error { return fmt.Errorf("apply uid not exist") } // 好友人数到达上限(2000人)时,玩家将无法再同意好友申请 - if FriendMod.GetFriendLen() >= 2000 { + if FriendMod.GetFriendLen() >= friendCfg.GetFriendLimitNum() { player.SendErrClienRes(&msg.ResAgreeFriend{ Code: msg.RES_CODE_FAIL, Msg: "friend list full", diff --git a/src/server/test/config_test.go b/src/server/test/config_test.go index 7e6d5c46..7379d427 100644 --- a/src/server/test/config_test.go +++ b/src/server/test/config_test.go @@ -3,7 +3,10 @@ package test import ( "fmt" activityCfg "server/conf/activity" + baseCfg "server/conf/base" + friendCfg "server/conf/friend" languageCfg "server/conf/language" + playroomCfg "server/conf/playroom" userCfg "server/conf/user" GoUtil "server/game_util" "server/msg" @@ -24,3 +27,18 @@ func TestGetActivityRecycleMail(t *testing.T) { en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mailTitle) fmt.Println("en:", en) } + +func TestGetFriendSponsorNum(t *testing.T) { + r := friendCfg.GetFriendSponsorNum() + fmt.Println("r:", r) +} + +func TestGetPlayroomTaskDailyNum1(t *testing.T) { + r := playroomCfg.GetPlayroomTaskDailyNum1() + fmt.Println("r:", r) +} + +func TestGetEnergyByADNum(t *testing.T) { + r := baseCfg.GetEnergyByADNum() + fmt.Println("r:", r) +}