GSServer-CBT/soggy_resources/lua/Actor/Quest/AQ352.lua
Akbar Yahya e0d4d8040c melon
2022-11-21 16:30:31 +08:00

222 lines
6.8 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

require('Actor/ActorCommon')
local questActorProxy = require('Actor/Quest/QuestActorProxy')
local Quest352 = class("Quest352", questActorProxy)
Quest352.defaultAlias = "Quest352"
local q352Cfg = require('Quest/Client/Q352ClientConfig')
local warningTask = nil
local stayWarningTask = nil
-- Generated
function Quest352:OnSubStartHandlerBuild()
self.subStartHandlers = {}
self.subStartHandlers["35200"] = self.OnSubStart35200
self.subStartHandlers["35201"] = self.OnSubStart35201
self.subStartHandlers["35202"] = self.OnSubStart35202
self.subStartHandlers["35203"] = self.OnSubStart35203
self.subStartHandlers["35204"] = self.OnSubStart35204
self.subStartHandlers["35205"] = self.OnSubStart35205
end
function Quest352:OnSubFinishHandlerBuild()
self.subFinishHandlers = {}
self.subFinishHandlers["35200"] = self.OnSubFinish35200
self.subFinishHandlers["35201"] = self.OnSubFinish35201
self.subFinishHandlers["35202"] = self.OnSubFinish35202
self.subFinishHandlers["35203"] = self.OnSubFinish35203
self.subFinishHandlers["35204"] = self.OnSubFinish35204
self.subFinishHandlers["35205"] = self.OnSubFinish35205
end
---sub start & finish 内调用的函数
function Quest352:PaimonCreat()
local PaimonData = self.clientData.PaimonData
actorMgr:CreateActorWithPos(PaimonData.Paimon, PaimonData.PaimonScript, PaimonData.PaimonID, 0, PaimonData.Pos1, PaimonData.Dir1, true, false)
self:NarratorOnlyTask(self.clientData.NarratorData.Story1)
end
function Quest352:On35201CutsceneFinish()
local PaimonData = self.clientData.PaimonData
self:RequestInteraction(PaimonData.Paimon)
end
---隐藏女神像写法待程序换处理方式后可干掉
local goddessActor;
local goddessInitPos;
function Quest352:ShowGoddess()
if goddessActor ~= nil then
goddessActor:SetPos(goddessInitPos)
goddessActor = nil
end
end
function Quest352:HideGoddess()
goddessActor = actorMgr:GetActor("Goddess_3003")
if goddessActor == nil or goddessActor == actorMgr.dummyActor then
goddessActor = nil
print("can not find Goddess_3003")
else
goddessInitPos = goddessActor:GetPos()
goddessActor:SetPos(M.Pos(goddessInitPos.x, goddessInitPos.y + 100, goddessInitPos.z))
end
end
---
function Quest352:On35204CutsceneDestroy()
print("On35204CutsceneDestroy")
self:ShowGoddess() --还原女神像
end
function Quest352:On35204CutsceneFinish()
self:ShowGoddess() --还原女神像
--完成任务35309开地图
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuestID(false, 35205)
end
self:CallDelay(1, self.Actionsafe)
--self:ActionSafeCall(self.InteractPaimon)
--[[ local PaimonData = self.clientData.PaimonData
self:RequestInteraction(PaimonData.Paimon) ]]
end
function Quest352:Actionsafe()
self:ActionSafeCall(self.InteractPaimon)
end
function Quest352:InteractPaimon()
local PaimonData = self.clientData.PaimonData
self:RequestInteraction(PaimonData.Paimon)
end
--@region sub start & finish handlers
---按流程触发顺序
---当OnSubFinish当前环和OnSubStart下一环等效时写在OnSubFinish内否则断线重连流程可能和OnSubStart流程重复执行
function Quest352:OnSubFinish35200(quest)
print("35200 Finish: Paimon shimo to NPC")
self.uActor:AvatarPaimonDisappear(nil, false)
self:CallDelay(2, self.PaimonCreat)
end
function Quest352:OnSubFinish35201(quest)
print("35201 Finish : Cs_BigWorldShow_Cutscene")
self:PlayCutscene(self.clientData.InterData.Cutscene1, self.On35201CutsceneFinish)
self:CallDelay(3,
function()
globalActor:ChangeDay24Time(9, true)
end
)
if stayWarningTask ~= nil then
stayWarningTask:FinishTask()
end
if warningTask ~= nil then
warningTask:FinishTask()
end
end
function Quest352:OnSubStart35202(quest)
globalActor:ChangeDay24Time(9, true)
globalActor:PlayerBackButtonOn(1, 3, "Q352View", 40, 9)
end
function Quest352:OnSubStart35203(quest)
print("35203 Start: Follow Paimon")
globalActor:PlayerBackButtonOff(1)
local Paimon = actorMgr:GetActor(self.clientData.PaimonData.Paimon)
self:CallDelay(5,
function()
Paimon:NarratorTask(q352Cfg.NarratorFlow, q352Cfg.FollowLen, q352Cfg.FollowLen, nil, "Story")
end
)
Paimon:BeFollowTaskByRoutePoints(q352Cfg.RoutePoints, q352Cfg.FollowLen, q352Cfg.FollowTransLen,
function(Paimon, task)
if Paimon.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
if quest ~= nil then
print("35203 failed1111111")
quest:FinishQuestID(true, 35203)
end
Paimon:StopPerformNarrator()
elseif Paimon.BeFollowState == BeFollowState.SUCCESS then
Paimon:Standby()
Paimon:TurnTo(M.Euler2DirXZ(self.clientData.PaimonData.Dir5))
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuestID(false, 35203)
end
end
end,
function(Paimon, task)
Paimon:Standby(false)
end
-- ,nil,nil,nil,
-- function(Paimon, task)
-- local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
-- if quest ~= nil then
-- print("35203 failed22222222")
-- quest:FinishQuest(true, nil)
-- end
-- end
)
-- Paimon:BeLockTask(q352Cfg.FollowTransLen, 1,
-- function(Paimon)
-- Paimon:TransFinishCallBack(q352Cfg)
-- end,
-- function(Paimon)
-- Paimon:TransPreCallBack(q352Cfg)
-- end
-- )
stayWarningTask = Paimon:WarningNarratorTask(0, q352Cfg.NarratorStayWarning, function(Paimon)
local selfPos = Paimon:GetPos()
local avatarPos = actorUtils.GetAvatarPos()
local currLen = M.Dist(selfPos, avatarPos)
return currLen > q352Cfg.FollowLen + 5 and currLen <= q352Cfg.FollowLen + 15 and Paimon:IsInIdle()
end, nil, "StoryWarning")
warningTask = Paimon:WarningNarratorTask(1, q352Cfg.NarratorWarning, function(Paimon)
local selfPos = Paimon:GetPos()
local avatarPos = actorUtils.GetAvatarPos()
local currLen = M.Dist(selfPos, avatarPos)
return currLen > q352Cfg.FollowLen + 15 and currLen < q352Cfg.FollowLen + 1000
end, nil, "StoryWarning")
end
function Quest352:OnSubFinish35203(quest)
print("35203 Finish : Clear Task")
if stayWarningTask ~= nil then
stayWarningTask:FinishTask()
end
if warningTask ~= nil then
warningTask:FinishTask()
end
local Paimon = actorMgr:GetActor(self.clientData.PaimonData.Paimon)
-- Paimon:ClearBeLockTask()
end
function Quest352:OnSubStart35204(quest)
print("35204 Start: ByQueen")
local Paimon = actorMgr:GetActor(self.clientData.PaimonData.Paimon)
Paimon:NarratorTask(q352Cfg.NarratorFlow2, 20, 20, nil)
Paimon:AirModeOn()
Paimon:ByQueen()
end
function Quest352:On35204CutsceneStart()
self:HideGoddess() --隐藏女神像,用导演自己的
end
function Quest352:OnSubFinish35204(quest)
print("35204 Finish: Cs_MDAQ010_UnlockSkill")
self:PlayCutscene(self.clientData.InterData.Cutscene2, self.On35204CutsceneFinish, self.On35204CutsceneStart, self.On35204CutsceneDestroy)
end
--@endregion
function Quest352:Start()
end
function Quest352:OnDestroy()
end
return Quest352