diff --git a/src/server/game/mod/quest/Quest.go b/src/server/game/mod/quest/Quest.go index 8cf00091..b548a53d 100644 --- a/src/server/game/mod/quest/Quest.go +++ b/src/server/game/mod/quest/Quest.go @@ -24,8 +24,14 @@ const ( TRIGGER_LABEL_PLAYCAT = "PlayCat" TRIGGER_LABEL_FEEDCAT = "FeedCat" TRIGGER_LABEL_CLEANCAT = "CleanCat" - TRIGGER_LABEL_UPLV = "UpLv" // 升级 - TRIGGER_LABEL_LOGIN = "Login" // 登录 + TRIGGER_LABEL_UPLV = "UpLv" // 升级 + TRIGGER_LABEL_LOGIN = "Login" // 登录 + TRIGGER_LABEL_INTERACT = "Interact" // 互动 + TRIGGER_LABEL_PETDRESS = "PetDress" // 宠物换装 + TRIGGER_LABEL_VISITROOM = "VisitRoom" // 参观房间 + TRIGGER_LABEL_PETTREASURE = "PetTreasure" // 宠物寻宝 + TRIGGER_LABEL_ROOMDEC = "RoomDec" // 房间装饰 + TRIGGER_LABEL_PETWORK = "PetWork" // 宠物工作 ) type QuestProgress struct { @@ -66,28 +72,40 @@ func TriggerQuestProgress(q *QuestProgress, Tr *Trigger) bool { case TRIGGER_LABEL_ENERGY: // 消耗x能量 AddNum := Tr.A[0].(int) q.Num += AddNum - if q.Num >= q.Target { - q.Num = q.Target - q.Status = true - } - case TRIGGER_LABEL_MERGELVTIME: // 合成x级棋子y次 Lv, _ := Tr.A[0].(int) TargetLv, _ := strconv.Atoi(q.A[0].(string)) if TargetLv == Lv { q.Num += 1 - if q.Num >= q.Target { - q.Num = q.Target - q.Status = true - } } case TRIGGER_LABEL_MERGETIME, // 合成x次 TRIGGER_LABEL_FINISHORDER: // 完成x次订单 q.Num += 1 - if q.Num >= q.Target { - q.Num = q.Target - q.Status = true + + case TRIGGER_LABEL_INTERACT: // 互动x类型y次 + InteractId := Tr.A[0].(int) + Ids := make([]int, 0) + for _, v := range q.A { + Ids = append(Ids, v.(int)) } + if GoUtil.InArray(InteractId, Ids) { + q.Num += 1 + } + case TRIGGER_LABEL_PETDRESS: // 换装x次 + DressType := Tr.A[0].(string) + Ids := make([]string, 0) + for _, v := range q.A { + Ids = append(Ids, v.(string)) + } + if GoUtil.InStringArray(DressType, Ids) { + q.Num += 1 + } + default: + q.Num += 1 + } + if q.Num >= q.Target { + q.Num = q.Target + q.Status = true } return true }