diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 1c0775bc..c0511f0d 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -270,6 +270,7 @@ func (p *Player) InitPlayer(UserName string) error { p.initAcitivity() p.ZeroUpdate(nil) p.NoonUpdate(nil) + p.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_GUIDE_LOGIN}) p.Login() // GoUtil.RegisterEvent(MergeConst.Notify_Daily_Renew, p.ZeroUpdate, p) // GoUtil.RegisterEvent(MergeConst.Notify_Midday_Renew, p.ZeroUpdate, p) @@ -332,7 +333,6 @@ func (p *Player) ZeroUpdate(a []interface{}) { p.initAcitivity() ActivityZeroUpdate(p) p.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_LOGIN}) - p.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_GUIDE_LOGIN}) p.PlayMod.save() } // 周更新 diff --git a/src/server/game/external.go b/src/server/game/external.go index 38d60634..7e03472c 100644 --- a/src/server/game/external.go +++ b/src/server/game/external.go @@ -191,6 +191,7 @@ func HandleClientReq(args []interface{}) { EventName: "Login_log", }) } + p.(*Player).ProcessTrigger() case "ReqServerTime": // 获取服务器时间 detail := &msg.ReqServerTime{} proto.Unmarshal(buf, detail) diff --git a/src/server/game/mod/guideTask/guideTask.go b/src/server/game/mod/guideTask/guideTask.go index ca6af3b3..23b17223 100644 --- a/src/server/game/mod/guideTask/guideTask.go +++ b/src/server/game/mod/guideTask/guideTask.go @@ -54,11 +54,6 @@ func (gt *GuideTaskMod) Unlock(lv int) bool { UnLockLv := GuideTaskCfg.GetUnlockLv() if lv >= UnLockLv && gt.UnlockTime == 0 { gt.UnlockTime = GoUtil.Now() - for _, v := range gt.Tasks { - if v.Quest.Label == quest.TRIGGER_LABEL_GUIDE_LOGIN { - v.Quest.A = []interface{}{GoUtil.Now()} - } - } gt.Trigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_GUIDE_LOGIN, A: []interface{}{}}) return true } @@ -82,6 +77,9 @@ func (gt *GuideTaskMod) Trigger(Tr *quest.Trigger) bool { if v.Status != quest.QUEST_STATUS_UNFINISH { continue } + if v.Quest.Label == quest.TRIGGER_LABEL_GUIDE_LOGIN { + v.Quest.A = []interface{}{gt.UnlockTime} + } up := quest.TriggerQuestProgress(&v.Quest, Tr) if up { update = true diff --git a/src/server/game/mod/quest/Quest.go b/src/server/game/mod/quest/Quest.go index b7089add..ba942c01 100644 --- a/src/server/game/mod/quest/Quest.go +++ b/src/server/game/mod/quest/Quest.go @@ -79,23 +79,23 @@ func TriggerQuestProgress(q *QuestProgress, Tr *Trigger) bool { TRIGGER_LABEL_STAR, TRIGGER_LABEL_DIAMOND, TRIGGER_LABEL_DECORATE: // 消耗x能量 - AddNum := Tr.A[0].(int) + AddNum := GoUtil.Int(Tr.A[0]) q.Num += AddNum case TRIGGER_LABEL_MERGELVTIME: // 合成x级棋子y次 - Lv, _ := Tr.A[0].(int) + Lv := GoUtil.Int(Tr.A[0]) TargetLv, _ := strconv.Atoi(q.A[0].(string)) if TargetLv == Lv { q.Num += 1 } case TRIGGER_LABEL_GUIDE_LOGIN: // 引导任务登录 - UnlockTime := Tr.A[0].(int) + UnlockTime := GoUtil.Int(q.A[0]) q.Num = 1 + int((GoUtil.Now()-int64(UnlockTime))/3600/24) case TRIGGER_LABEL_MERGETIME, // 合成x次 TRIGGER_LABEL_FINISHORDER, TRIGGER_LABEL_BUBBLE: // 完成x次订单 q.Num += 1 case TRIGGER_LABEL_INTERACT: // 互动x类型y次 - InteractId := Tr.A[0].(int) + InteractId := GoUtil.Int(Tr.A[0]) Ids := make([]int, 0) for _, v := range q.A { Ids = append(Ids, GoUtil.Int(v))