日常任务奖励,使用配置进行管理

This commit is contained in:
hahwu 2026-03-09 11:41:22 +08:00
parent 5f00cf6a14
commit aa337c2e63
4 changed files with 33 additions and 3 deletions

View File

@ -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 {

View File

@ -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
}
}

View File

@ -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,

View File

@ -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)
}