diff --git a/src/server/conf/daily_task/daily_task_cfg.go b/src/server/conf/daily_task/daily_task_cfg.go index ecc36c06..c969b437 100644 --- a/src/server/conf/daily_task/daily_task_cfg.go +++ b/src/server/conf/daily_task/daily_task_cfg.go @@ -50,6 +50,22 @@ func GetDailyTaskReward(Id, factory, activityId int) []*item.Item { return nil } +func GetDailyTaskScore(Id, activityId int) int { + data, err := gamedata.GetData(DAILY_TASK_REWARD) + if err != nil { + log.Debug("GetDailyTaskScore err:%v", err) + return 0 + } + for _, v := range data { + sortId := gamedata.GetIntValue(v, "SortId") + rewardGroupType := gamedata.GetIntValue(v, "RewardGroupType") + if sortId == Id && rewardGroupType == activityId { + return gamedata.GetIntValue(v, "ScoreReward") + } + } + return 0 +} + func GetActivityIds() []int { data, err := gamedata.GetDataByKey(DAILY_TASK_CONST, "RewardGroupType_const") if err != nil { diff --git a/src/server/game/mod/daily_task/DailyTask.go b/src/server/game/mod/daily_task/DailyTask.go index 58bfe2a7..2c629ef8 100644 --- a/src/server/game/mod/daily_task/DailyTask.go +++ b/src/server/game/mod/daily_task/DailyTask.go @@ -167,12 +167,12 @@ func (dt *DailyTaskMod) BackData() *msg.ResDailyTask { } } -func (dt *DailyTaskMod) GetDailyReward(id int) ([]*item.Item, error) { +func (dt *DailyTaskMod) GetDailyReward(id, activityId int) ([]*item.Item, error) { if v, ok := dt.DayTask[id]; ok { if v.Status == quest.QUEST_STATUS_FINISH { v.Status = quest.QUEST_STATUS_REWARD dt.DayTask[id] = v - dt.Active += 5 + dt.Active += dailyTaskCfg.GetDailyTaskScore(id, activityId) return v.Items, nil } } diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 5e5c35be..072d0f14 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -1333,7 +1333,7 @@ func ReqGetDailyTaskReward(player *Player, buf []byte) error { return err } DailyTaskMod := player.PlayMod.getDailyTaskMod() - itemList, err := DailyTaskMod.GetDailyReward(int(req.Id)) + itemList, err := DailyTaskMod.GetDailyReward(int(req.Id), player.GetDailyTaskActivityId()) if err != nil { player.SendErrClienRes(&msg.ResGetDailyTaskReward{ Code: msg.RES_CODE_FAIL, diff --git a/src/server/test/dailytask_test.go b/src/server/test/dailytask_test.go index 72711427..673ba37a 100644 --- a/src/server/test/dailytask_test.go +++ b/src/server/test/dailytask_test.go @@ -1,6 +1,8 @@ package test import ( + "fmt" + dailyTaskCfg "server/conf/daily_task" "server/game" "testing" ) @@ -23,3 +25,15 @@ func TestDailyZeroUpdate(t *testing.T) { DailyTaskMod.ZeroUpdate(BaseMod.Level, DecorateMod.GetAreaId(), player.GetDailyTaskActivityId()) DailyTaskMod.BackData() } + +func TestDailyTaskRewardScore(t *testing.T) { + score1 := dailyTaskCfg.GetDailyTaskScore(1, 1) + if score1 == 0 { + t.Errorf("GetDailyTaskScore failed, score1 is 0") + } + score2 := dailyTaskCfg.GetDailyTaskScore(1, 0) + if score2 == 0 { + t.Errorf("GetDailyTaskScore failed, score2 is 0") + } + fmt.Printf("score1: %d, score2: %d\n", score1, score2) +}