mirror of
https://gitlab.com/YuukiPS/GSServer-CBT.git
synced 2024-12-25 15:29:22 +03:00
450 lines
15 KiB
Lua
450 lines
15 KiB
Lua
require('Actor/ActorCommon')
|
|
local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
|
|
|
local Quest463 = class("Quest463", questActorProxy)
|
|
|
|
Quest463.defaultAlias = "Quest463"
|
|
|
|
local q463Cfg = require('Quest/Client/Q463ClientConfig')
|
|
|
|
--local KaeyaData = Quest463.clientData.KaeyaData
|
|
local kaeyaData = q463Cfg.KaeyaData
|
|
local paimonData = q463Cfg.PaimonData
|
|
local npcBossData=q463Cfg.KaeyaNPCBossData
|
|
local DungeonData = q463Cfg.DungeonData
|
|
local Invisible=q463Cfg.Invisible
|
|
local SoldierData=q463Cfg.SoldierData
|
|
--local kaeya = actorMgr:GetActor(KaeyaData.kaeya)
|
|
--local NPCData=Quest463.clientData.NPCData
|
|
|
|
function Quest463:PaimonVanish()
|
|
--self:ShowTutorialDialog(113)
|
|
print("463 PaimonVanish")
|
|
local paimon = actorMgr:GetActor(paimonData.Alias)
|
|
paimon:AirModeOff()
|
|
--paimon:VanishKeep()
|
|
if paimon ~= nil then
|
|
paimon:DestroyWithDisappear(false)
|
|
end
|
|
end
|
|
|
|
|
|
-- Generated
|
|
function Quest463:OnSubStartHandlerBuild()
|
|
self.subStartHandlers = {}
|
|
self.subStartHandlers["46300"] = self.OnSubStart46300
|
|
self.subStartHandlers["46301"] = self.OnSubStart46301
|
|
self.subStartHandlers["46302"] = self.OnSubStart46302
|
|
self.subStartHandlers["46303"] = self.OnSubStart46303
|
|
self.subStartHandlers["46304"] = self.OnSubStart46304
|
|
self.subStartHandlers["46305"] = self.OnSubStart46305
|
|
self.subStartHandlers["46306"] = self.OnSubStart46306
|
|
self.subStartHandlers["46307"] = self.OnSubStart46307
|
|
self.subStartHandlers["46308"] = self.OnSubStart46308
|
|
end
|
|
|
|
function Quest463:OnSubFinishHandlerBuild()
|
|
self.subFinishHandlers = {}
|
|
self.subFinishHandlers["46300"] = self.OnSubFinish46300
|
|
self.subFinishHandlers["46301"] = self.OnSubFinish46301
|
|
self.subFinishHandlers["46302"] = self.OnSubFinish46302
|
|
self.subFinishHandlers["46303"] = self.OnSubFinish46303
|
|
self.subFinishHandlers["46304"] = self.OnSubFinish46304
|
|
self.subFinishHandlers["46305"] = self.OnSubFinish46305
|
|
self.subFinishHandlers["46306"] = self.OnSubFinish46306
|
|
self.subFinishHandlers["46307"] = self.OnSubFinish46307
|
|
self.subFinishHandlers["46308"] = self.OnSubFinish46308
|
|
end
|
|
|
|
function Quest463:PaimonEnter()
|
|
--actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.BornPos, paimonData.BornDir, true, false,3)
|
|
local paimon = actorMgr:GetActor(paimonData.Alias)
|
|
paimon:SetVisible(true)
|
|
--kaeya:AddPriorityInter(InterTimingType.BTN, self.clientData.InterData.NoReplyInter)
|
|
print("463 PaimonEnter")
|
|
paimon:WalkToTask(paimonData.Pos3,
|
|
function(actor, task)
|
|
--actor:ClearFollowTask()
|
|
--actor:ClearPriorityInter(InterTimingType.BTN)
|
|
--actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos3, paimonData.Dir3, true, false,3)
|
|
actor:Standby()
|
|
print("463 PaimonEnter TurnTo")
|
|
actor:TurnTo(M.Euler2DirXZ(paimonData.Dir3))
|
|
end
|
|
)
|
|
end
|
|
|
|
function Quest463:KaeyaLeave()
|
|
local kaeya = actorMgr:GetActor(kaeyaData.Kaeya)
|
|
kaeya:SetVisible(true)
|
|
--kaeya:AddPriorityInter(InterTimingType.BTN, self.clientData.InterData.NoReplyInter)
|
|
kaeya:EnableInteraction(false)
|
|
print("463 KaeyaLeave")
|
|
kaeya:WalkToTask(paimonData.BornPos,
|
|
function(actor, task)
|
|
--actor:ClearFollowTask()
|
|
--actor:ClearPriorityInter(InterTimingType.BTN)
|
|
actor:EnableInteraction(true)
|
|
--actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos3, paimonData.Dir3, true, false,3)
|
|
--actor:Destroy(false)
|
|
actor:Standby()
|
|
actor:SetVisible(false)
|
|
end
|
|
)
|
|
end
|
|
|
|
function Quest463:Soldier1Enter()
|
|
local soldier1 = actorMgr:GetActor(SoldierData.Alias1)
|
|
soldier1:SetVisible(true)
|
|
soldier1:WalkToTask(SoldierData.Pos1,
|
|
function(actor, task)
|
|
--actor:ClearFollowTask()
|
|
--actor:ClearPriorityInter(InterTimingType.BTN)
|
|
--actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos3, paimonData.Dir3, true, false,3)
|
|
--actor:Destroy(false)
|
|
actor:Standby()
|
|
actor:TurnTo(M.Euler2DirXZ(SoldierData.Dir1))
|
|
end
|
|
)
|
|
end
|
|
|
|
function Quest463:Soldier2Enter()
|
|
local soldier2 = actorMgr:GetActor(SoldierData.Alias2)
|
|
soldier2:SetVisible(true)
|
|
soldier2:WalkToTask(SoldierData.Pos2,
|
|
function(actor, task)
|
|
--actor:ClearFollowTask()
|
|
--actor:ClearPriorityInter(InterTimingType.BTN)
|
|
--actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos3, paimonData.Dir3, true, false,3)
|
|
--actor:Destroy(false)
|
|
--actor:Standby()
|
|
actor:TurnTo(M.Euler2DirXZ(SoldierData.Dir2))
|
|
end
|
|
)
|
|
end
|
|
|
|
|
|
function Quest463:KaeyaEnter()
|
|
local kaeya = actorMgr:GetActor(kaeyaData.Kaeya)
|
|
kaeya:SetVisible(true)
|
|
--kaeya:AddPriorityInter(InterTimingType.BTN, self.clientData.InterData.NoReplyInter)
|
|
print("463 KaeyaEnter")
|
|
kaeya:WalkToTask(kaeyaData.InPos,
|
|
function(actor, task)
|
|
--actor:ClearFollowTask()
|
|
--actor:ClearPriorityInter(InterTimingType.BTN)
|
|
--actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos3, paimonData.Dir3, true, false,3)
|
|
--actor:Destroy(false)
|
|
actor:Standby()
|
|
actor:TurnTo(M.Euler2DirXZ(kaeyaData.InDir))
|
|
end
|
|
)
|
|
self:CallDelay(0.1,self.Soldier1Enter)
|
|
self:CallDelay(0.2,self.Soldier2Enter)
|
|
end
|
|
|
|
function Quest463:NPCEnter()
|
|
local npc = actorMgr:GetActor(npcBossData.NpcBoss)
|
|
npc:SetVisible(true)
|
|
--kaeya:AddPriorityInter(InterTimingType.BTN, self.clientData.InterData.NoReplyInter)
|
|
print("463 NPCEnter")
|
|
npc:WalkToTask(npcBossData.NpcBossPos,
|
|
function(actor, task)
|
|
--actor:ClearFollowTask()
|
|
--actor:ClearPriorityInter(InterTimingType.BTN)
|
|
--actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos3, paimonData.Dir3, true, false,3)
|
|
--actor:Destroy(false)
|
|
actor:Standby()
|
|
print("463 NPCEnter TurnTo")
|
|
actor:TurnTo(M.Euler2DirXZ(npcBossData.NpcBossDir))
|
|
end
|
|
)
|
|
end
|
|
|
|
function Quest463:NPCRun()
|
|
local npc = actorMgr:GetActor(npcBossData.NpcBoss)
|
|
--kaeya:AddPriorityInter(InterTimingType.BTN, self.clientData.InterData.NoReplyInter)
|
|
print("463 NPCRun")
|
|
npc:RunToTask(npcBossData.TrapPos,
|
|
function(actor, task)
|
|
--actor:ClearFollowTask()
|
|
--actor:ClearPriorityInter(InterTimingType.BTN)
|
|
--actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos3, paimonData.Dir3, true, false,3)
|
|
--actor:Destroy(false)
|
|
actor:Standby()
|
|
actor:TurnTo(M.Euler2DirXZ(npcBossData.TrapDir))
|
|
print("Invoke 0 finish quest")
|
|
local quest = actorMgr:GetActor(q463Cfg.ActorAlias)
|
|
if quest ~= nil then
|
|
quest:FinishQuest(false, nil)
|
|
end
|
|
end
|
|
)
|
|
end
|
|
|
|
function Quest463:NPCRun2()
|
|
local npc = actorMgr:GetActor(npcBossData.NpcBoss)
|
|
--kaeya:AddPriorityInter(InterTimingType.BTN, self.clientData.InterData.NoReplyInter)
|
|
print("463 NPCRun")
|
|
npc:RunToTask(npcBossData.LastPos,
|
|
function(actor, task)
|
|
--actor:ClearFollowTask()
|
|
--actor:ClearPriorityInter(InterTimingType.BTN)
|
|
--actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos3, paimonData.Dir3, true, false,3)
|
|
--actor:Destroy(false)
|
|
actor:Standby()
|
|
actor:PerformDither(false,2)
|
|
end
|
|
)
|
|
end
|
|
|
|
function Quest463:NPCTrans()
|
|
local npc = actorMgr:GetActor(npcBossData.NpcBoss)
|
|
print("463 NPCTrans")
|
|
npc:ClearAllTask()
|
|
npc:SetPosAndTurnTo(npcBossData.NpcBossPos,M.Euler2DirXZ(npcBossData.NpcBossDir),true)
|
|
--actorMgr:CreateActorWithPos(npcBossData.NpcBoss, npcBossData.NpcBossScript, npcBossData.NpcBossID, 0, npcBossData.NpcBossPos, npcBossData.NpcBossDir, true, false,20016)
|
|
end
|
|
|
|
function Quest463:PaiMonTrans()
|
|
local paimon = actorMgr:GetActor(paimonData.Alias)
|
|
print("463 PaiMonTrans")
|
|
paimon:ClearAllTask()
|
|
paimon:SetPosAndTurnTo(paimonData.Pos3,M.Euler2DirXZ(paimonData.Dir3),true)
|
|
end
|
|
|
|
function Quest463:KaeyaTrans()
|
|
local kaeya = actorMgr:GetActor(kaeyaData.Kaeya)
|
|
local soldier1 = actorMgr:GetActor(SoldierData.Alias1)
|
|
local soldier2 = actorMgr:GetActor(SoldierData.Alias2)
|
|
|
|
print("463 KaeyaTrans")
|
|
kaeya:ClearAllTask()
|
|
soldier1:ClearAllTask()
|
|
soldier2:ClearAllTask()
|
|
kaeya:SetPosAndTurnTo(kaeyaData.InPos,M.Euler2DirXZ(kaeyaData.InDir),true)
|
|
soldier1:SetPosAndTurnTo(SoldierData.Pos1,M.Euler2DirXZ(SoldierData.Dir1),true)
|
|
soldier2:SetPosAndTurnTo(SoldierData.Pos2,M.Euler2DirXZ(SoldierData.Dir2),true)
|
|
|
|
end
|
|
|
|
function Quest463:InvokeOnInteraction(param)
|
|
print("463 Invoke : ")
|
|
if param == 0 then
|
|
print("Invoke 0 finish quest")
|
|
local quest = actorMgr:GetActor(q463Cfg.ActorAlias)
|
|
if quest ~= nil then
|
|
quest:FinishQuest(false, nil)
|
|
end
|
|
elseif param == 1 then
|
|
print("Invoke 1 paimon born")
|
|
self:PaimonEnter()
|
|
elseif param == 2 then
|
|
self:NPCEnter()
|
|
elseif param == 3 then
|
|
self:KaeyaEnter()
|
|
elseif param == 4 then
|
|
self:CallDelay(0.5,self.NPCRun)
|
|
elseif param == 5 then
|
|
print("Invoke 5 kaeya leave")
|
|
self:KaeyaLeave()
|
|
elseif param == 6 then
|
|
print("Invoke 6 npc trans")
|
|
--self:CallDelay(0,self.NPCTrans)
|
|
self:NPCTrans()
|
|
elseif param == 7 then
|
|
print("Invoke 7 PaiMonTrans")
|
|
--self:CallDelay(0,self.PaiMonTrans)
|
|
self:PaiMonTrans()
|
|
elseif param == 8 then
|
|
print("Invoke 8 KaeyaTrans")
|
|
--self:CallDelay(0,self.KaeyaTrans)
|
|
self:KaeyaTrans()
|
|
elseif param == 10 then
|
|
print("Invoke 10 treasure")
|
|
self:ShowTutorialDialog(182)
|
|
elseif param == 11 then
|
|
print("Invoke 11 treasure")
|
|
self:NPCDisappear()
|
|
elseif param == 12 then
|
|
print("Invoke 12 treasure")
|
|
--self:NPCRun2()
|
|
self:CallDelay(3,self.NPCRun2)
|
|
end
|
|
end
|
|
|
|
function Quest463:NPCDisappear()
|
|
local npc = actorMgr:GetActor(npcBossData.NpcBoss)
|
|
local soldier1 = actorMgr:GetActor(SoldierData.Alias1)
|
|
local soldier2 = actorMgr:GetActor(SoldierData.Alias2)
|
|
npc:SetVisible(false)
|
|
soldier1:SetVisible(false)
|
|
soldier2:SetVisible(false)
|
|
end
|
|
|
|
|
|
function Quest463:OnSubFinish46306(quest)
|
|
print("46306 Finish : Creat Kaeya")
|
|
-- actorMgr:CreateActorWithPos(npcBossData.NpcBoss, npcBossData.NpcBossScript, npcBossData.NpcBossID, 0, npcBossData.TrapPos, npcBossData.TrapDir, true, false,20016)
|
|
--self:NPCEnter()
|
|
--self:NPCRun()
|
|
end
|
|
|
|
|
|
|
|
|
|
--@region sub start & finish handlers
|
|
---按流程触发顺序
|
|
|
|
function Quest463:StartTalk46300()
|
|
print("46302 Start : ")
|
|
actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos1, paimonData.Dir1, true, false,3)
|
|
self:CallDelay(0.2,
|
|
function(self)
|
|
self:RequestInteraction(paimonData.Alias)
|
|
end
|
|
)
|
|
end
|
|
|
|
function Quest463:StartTalk46301()
|
|
print("46302 Start : ")
|
|
actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos2, paimonData.Dir2, true, false,3)
|
|
self:CallDelay(0.2,
|
|
function(self)
|
|
print("46307 RequestInteraction : ")
|
|
self:RequestInteraction(paimonData.Alias)
|
|
end
|
|
)
|
|
end
|
|
|
|
function Quest463:OnSubStart46300(quest)
|
|
print("46300 Start : Creat paimon")
|
|
self:ShowBlackScreen(0.5,0.5,0.5, self.StartTalk46300)
|
|
end
|
|
|
|
function Quest463:OnSubFinish46300(quest)
|
|
print("46300 Finish : ")
|
|
self:ActionSafeCall(
|
|
function(self)
|
|
self:PaimonVanish()
|
|
end
|
|
)
|
|
|
|
end
|
|
|
|
function Quest463:OnSubStart46301(quest)
|
|
print("46301 Start : Creat door")
|
|
--self:SpawnGadget(DungeonData.DoorID, DungeonData.Pos, DungeonData.Dir, DungeonData.Alias, 3)
|
|
end
|
|
|
|
function Quest463:OnSubFinish46301(quest)
|
|
print("46301 Start : Creat Kaeya")
|
|
|
|
end
|
|
|
|
function Quest463:OnSubStart46302(quest)
|
|
print("46302 Start : ")
|
|
actorMgr:CreateActorWithPos(Invisible.Invisible, Invisible.NpcScript, Invisible.InvisibleID, 0, Invisible.InvisiblePos, Invisible.InvisibleDir, true, false,20016)
|
|
end
|
|
|
|
function Quest463:StartTalk()
|
|
print("46302 Start : ")
|
|
actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.BornPos, paimonData.BornDir, true, false,20016)
|
|
self:CallDelay(0.2,
|
|
function(self)
|
|
self:RequestInteraction(paimonData.Alias)
|
|
end
|
|
)
|
|
end
|
|
|
|
|
|
function Quest463:OnSubStart46303(quest)
|
|
print("46303 Start : ")
|
|
--actorMgr:CreateActorWithPos(Invisible.Invisible, Invisible.NpcScript, Invisible.InvisibleID, 0, Invisible.InvisiblePos, Invisible.InvisibleDir, true, false,20016)
|
|
self:ShowBlackScreen(0.5,0.5,0.5, self.StartTalk)
|
|
--[[self:CallDelay(0.5,
|
|
function(self)
|
|
self:RequestInteraction(Invisible.Invisible)
|
|
end
|
|
)]]--
|
|
|
|
-- actorMgr:CreateActorWithPos(paimonData.Alias, paimonData.Script, paimonData.ID, 0, paimonData.Pos3, paimonData.Dir3, true,false,20016)
|
|
end
|
|
|
|
function Quest463:OnSubStart46304(quest)
|
|
print("46304 Start : ")
|
|
self:ActionSafeCall(
|
|
function(self)
|
|
local npc = actorMgr:GetActor(npcBossData.NpcBoss)
|
|
local kaeya = actorMgr:GetActor(kaeyaData.Kaeya)
|
|
local soldier1 = actorMgr:GetActor(SoldierData.Alias1)
|
|
local soldier2 = actorMgr:GetActor(SoldierData.Alias2)
|
|
local paimon = actorMgr:GetActor(paimonData.Alias)
|
|
npc:Destroy(false)
|
|
kaeya:Destroy(false)
|
|
soldier1:Destroy(false)
|
|
soldier2:Destroy(false)
|
|
paimon:Destroy(false)
|
|
end
|
|
)
|
|
|
|
self:NarratorOnlyTask(q463Cfg.NarratorData.Story1)
|
|
end
|
|
|
|
function Quest463:OnSubStart46307(quest)
|
|
print("46307 Start : ")
|
|
self:ShowBlackScreen(0.5,0.5,0.5, self.StartTalk46301)
|
|
end
|
|
|
|
function Quest463:OnSubFinish46307(quest)
|
|
print("46307 Finish : ")
|
|
self:PaimonVanish()
|
|
end
|
|
|
|
function Quest463:OnSubStart46305(quest)
|
|
print("46305 Start : ")
|
|
--actorMgr:CreateActorWithPos(kaeyaData.Kaeya, kaeyaData.KaeyaScript, kaeyaData.KaeyaID, 0, kaeyaData.InPos, kaeyaData.InDir, true, false,20016)
|
|
--[[actorMgr:CreateActorWithPos(Invisible.Invisible, Invisible.NpcScript, Invisible.InvisibleID, 0, Invisible.InvisiblePos, Invisible.InvisibleDir, true, false,20016)
|
|
self:CallDelay(2,
|
|
function()
|
|
self:RequestInteraction(Invisible.Invisible)
|
|
end
|
|
)]]--
|
|
self:CallDelay(6,
|
|
function(self)
|
|
self:ShowBlackScreen(0.5,0.5,0.5,self.StartTalk)
|
|
end
|
|
)
|
|
|
|
--self:ShowBlackScreen(0.3, 0.3, 0.3, self.StartTalk)
|
|
end
|
|
|
|
function Quest463:OnSubFinish46305(quest)
|
|
print("46305 Finish : ")
|
|
self:ActionSafeCall(
|
|
function(self)
|
|
local npc = actorMgr:GetActor(npcBossData.NpcBoss)
|
|
local kaeya = actorMgr:GetActor(kaeyaData.Kaeya)
|
|
local soldier1 = actorMgr:GetActor(SoldierData.Alias1)
|
|
local soldier2 = actorMgr:GetActor(SoldierData.Alias2)
|
|
local paimon = actorMgr:GetActor(paimonData.Alias)
|
|
npc:Destroy(false)
|
|
kaeya:Destroy(false)
|
|
soldier1:Destroy(false)
|
|
soldier2:Destroy(false)
|
|
paimon:Destroy(false)
|
|
end
|
|
)
|
|
--self:PaimonVanish()
|
|
end
|
|
|
|
|
|
--@endregion
|
|
|
|
function Quest463:Start()
|
|
end
|
|
|
|
function Quest463:OnDestroy()
|
|
end
|
|
|
|
return Quest463 |