diff --git a/src/server/game/mod/quest/Quest.go b/src/server/game/mod/quest/Quest.go index bf2ad342..a6d62ec4 100644 --- a/src/server/game/mod/quest/Quest.go +++ b/src/server/game/mod/quest/Quest.go @@ -109,10 +109,12 @@ func TriggerQuestProgress(q *QuestProgress, Tr *Trigger) bool { if len(q.A) == 0 { return false } - DressType := GoUtil.Int(q.A[0]) - Ids := Tr.A[0].([]int) - if GoUtil.InArray(DressType, Ids) { - q.Num += 1 + Ids := GoUtil.IntSliceInterface(q.A) + for _, t := range Tr.A { + DressType := GoUtil.Int(t) + if GoUtil.InArray(DressType, Ids) { + q.Num += 1 + } } default: q.Num += 1 diff --git a/src/server/game_util/sliceUtil.go b/src/server/game_util/sliceUtil.go index 268c8402..51887e22 100644 --- a/src/server/game_util/sliceUtil.go +++ b/src/server/game_util/sliceUtil.go @@ -22,6 +22,15 @@ func IntSlice(d interface{}) []int { } return result } + +func IntSliceInterface(d []interface{}) []int { + result := make([]int, 0, len(d)) + for _, v := range d { + num := Int(v) + result = append(result, num) + } + return result +} func IntToInt32(d []int) []int32 { r := make([]int32, 0, len(d)) for _, d := range d { diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go index 9e2d765f..3df0bbb0 100644 --- a/src/server/test/fix_test.go +++ b/src/server/test/fix_test.go @@ -5,7 +5,7 @@ import ( decorateCfg "server/conf/decorate" "server/db" "server/game" - "server/game/mod/playroom" + "server/game/mod/quest" "server/pkg/github.com/name5566/leaf/log" "testing" ) @@ -84,9 +84,7 @@ func TestRandInt(t *testing.T) { p1 := new(game.Player) p1.InitPlayer("3625212") PlayroomMod := p1.GetPlayroomMod() - _, r, e := PlayroomMod.GetTaskReward(playroom.DAILY_TASK_TYPE_ONE) - if e != nil { - log.Debug("GetDailyTaskReward err:%v", e) - } - log.Debug("GetDailyTaskReward r:%v", r) + PlayroomMod.InitDailyTask() + p1.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PETDRESS, A: []interface{}{9}}) + p1.ProcessTrigger() }