mirror of
https://gitlab.com/YuukiPS/GSServer-CBT.git
synced 2025-03-14 14:14:42 +03:00
316 lines
7.4 KiB
Lua
316 lines
7.4 KiB
Lua
|
require('Actor/ActorCommon')
|
||
|
local quest352 = require('Actor/Quest/MQ352')
|
||
|
local npcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||
|
local Paimon = class("Paimon", npcActorProxy)
|
||
|
Paimon.defaultAlias = "Paimon"
|
||
|
|
||
|
-- local config begin
|
||
|
--local q351Cfg = require('Actor/Quest/Q351/Q351Config')
|
||
|
--local q352Cfg = require('Quest/Client/Q352ClientConfig')
|
||
|
-- local config end
|
||
|
|
||
|
function Paimon:TransPreCallBack(qCfg)
|
||
|
print("TransPreCallBack")
|
||
|
local avatarEular = self:GetEuler()
|
||
|
self.uActor:SetAvatarEuler(avatarEular)
|
||
|
self:AddPriorityInter(InterTimingType.BTN, qCfg.PlayerBackInter)
|
||
|
local quest = actorMgr:GetActor(qCfg.ActorAlias)
|
||
|
quest:RequestInteraction(qCfg.PaimonData.Paimon)
|
||
|
self:ActionSafeCall(function (actor)
|
||
|
self:ClearPriorityInter(InterTimingType.BTN)
|
||
|
end)
|
||
|
end
|
||
|
|
||
|
function Paimon:TransFinishCallBack(qCfg)
|
||
|
print("TransFinishCallBack")
|
||
|
end
|
||
|
|
||
|
-- local method
|
||
|
--[[ function Paimon:FollowWater()
|
||
|
print("FollowWater")
|
||
|
self:ClearFollowTask()
|
||
|
self:BeFollowTask(q352Cfg.ByWaterPos, q352Cfg.FollowLen, -1,
|
||
|
function(self, task)
|
||
|
if self.BeFollowState == BeFollowState.FAILED then
|
||
|
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
self:StopPerformNarrator()
|
||
|
elseif self.BeFollowState == BeFollowState.SUCCESS then
|
||
|
self:Standby()
|
||
|
self:TurnTo(M.Euler2DirXZ(q352Cfg.ByWaterDir))
|
||
|
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(false, nil)
|
||
|
end
|
||
|
end
|
||
|
end,
|
||
|
function(self, task)
|
||
|
self:Standby()
|
||
|
end
|
||
|
)
|
||
|
self:BeLockTask(q352Cfg.FollowTransLen, 1,
|
||
|
function(self)
|
||
|
self:TransFinishCallBack(q352Cfg)
|
||
|
end,
|
||
|
function(self)
|
||
|
self:TransPreCallBack(q352Cfg)
|
||
|
end
|
||
|
)
|
||
|
end
|
||
|
|
||
|
function Paimon:Follow3()
|
||
|
print("Follow3")
|
||
|
self:ClearFollowTask()
|
||
|
self:BeFollowTask(q352Cfg.PaimonFollow3Pos, q352Cfg.FollowLen,-1,
|
||
|
function(self, task)
|
||
|
if self.BeFollowState == BeFollowState.FAILED then
|
||
|
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
self:StopPerformNarrator()
|
||
|
elseif self.BeFollowState == BeFollowState.SUCCESS then
|
||
|
self:FollowWater()
|
||
|
end
|
||
|
end,
|
||
|
function(self, task)
|
||
|
self:Standby()
|
||
|
end
|
||
|
)
|
||
|
self:BeLockTask(q352Cfg.FollowTransLen, 1,
|
||
|
function(self)
|
||
|
self:TransFinishCallBack(q352Cfg)
|
||
|
end,
|
||
|
function(self)
|
||
|
self:TransPreCallBack(q352Cfg)
|
||
|
end
|
||
|
)
|
||
|
end
|
||
|
|
||
|
function Paimon:Follow2()
|
||
|
print("Follow2")
|
||
|
self:ClearFollowTask()
|
||
|
self:BeFollowTask(q352Cfg.PaimonFollow2Pos, q352Cfg.FollowLen, -1,
|
||
|
function(self, task)
|
||
|
if self.BeFollowState == BeFollowState.FAILED then
|
||
|
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
self:StopPerformNarrator()
|
||
|
elseif self.BeFollowState == BeFollowState.SUCCESS then
|
||
|
self:Follow3()
|
||
|
end
|
||
|
end,
|
||
|
function(self, task)
|
||
|
self:Standby()
|
||
|
end
|
||
|
)
|
||
|
self:BeLockTask(q352Cfg.FollowTransLen, 1,
|
||
|
function(self)
|
||
|
self:TransFinishCallBack(q352Cfg)
|
||
|
end,
|
||
|
function(self)
|
||
|
self:TransPreCallBack(q352Cfg)
|
||
|
end
|
||
|
)
|
||
|
end
|
||
|
|
||
|
function Paimon:Follow1()
|
||
|
print("Follow1")
|
||
|
self:ClearFollowTask()
|
||
|
self:BeFollowTask(q352Cfg.PaimonFollow1Pos, q352Cfg.FollowLen, -1,
|
||
|
function(self, task)
|
||
|
if self.BeFollowState == BeFollowState.FAILED then
|
||
|
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
self:StopPerformNarrator()
|
||
|
elseif self.BeFollowState == BeFollowState.SUCCESS then
|
||
|
self:Follow2()
|
||
|
end
|
||
|
end,
|
||
|
function(self, task)
|
||
|
self:Standby()
|
||
|
end
|
||
|
)
|
||
|
self:BeLockTask(q352Cfg.FollowTransLen, 1,
|
||
|
function(self)
|
||
|
self:TransFinishCallBack(q352Cfg)
|
||
|
end,
|
||
|
function(self)
|
||
|
self:TransPreCallBack(q352Cfg)
|
||
|
end
|
||
|
)
|
||
|
end
|
||
|
|
||
|
function Paimon:FirstStartFollow1()
|
||
|
print("FirstStartFollow1")
|
||
|
self:ClearFollowTask()
|
||
|
--self:SwitchAirMode(true)
|
||
|
self:BeFollowTask(q351Cfg.FirstStartFollow1Pos, q351Cfg.FollowLen, -1,
|
||
|
function(self, task)
|
||
|
if self.BeFollowState == BeFollowState.FAILED then
|
||
|
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
self:StopPerformNarrator()
|
||
|
elseif self.BeFollowState == BeFollowState.SUCCESS then
|
||
|
self:FirstStartFollow2()
|
||
|
end
|
||
|
end,
|
||
|
function(self, task)
|
||
|
self:Standby()
|
||
|
end
|
||
|
)
|
||
|
self:BeLockTask(q351Cfg.FollowTransLen, 1,
|
||
|
function(self)
|
||
|
self:TransFinishCallBack(q351Cfg)
|
||
|
end,
|
||
|
function(self)
|
||
|
self:TransPreCallBack(q351Cfg)
|
||
|
end
|
||
|
)
|
||
|
end
|
||
|
|
||
|
function Paimon:FirstStartFollow2()
|
||
|
print("FirstStartFollow2")
|
||
|
self:ClearFollowTask()
|
||
|
self:BeFollowTask(q351Cfg.FirstStartFollow2Pos, q351Cfg.FollowLen, -1,
|
||
|
function(self, task)
|
||
|
if self.BeFollowState == BeFollowState.FAILED then
|
||
|
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
self:StopPerformNarrator()
|
||
|
elseif self.BeFollowState == BeFollowState.SUCCESS then
|
||
|
self:FirstStartFollow3()
|
||
|
end
|
||
|
end,
|
||
|
function(self, task)
|
||
|
self:Standby()
|
||
|
end
|
||
|
)
|
||
|
self:BeLockTask(q351Cfg.FollowTransLen, 1,
|
||
|
function(self)
|
||
|
self:TransFinishCallBack(q351Cfg)
|
||
|
end,
|
||
|
function(self)
|
||
|
self:TransPreCallBack(q351Cfg)
|
||
|
end
|
||
|
)
|
||
|
end
|
||
|
|
||
|
function Paimon:FirstStartFollow3()
|
||
|
print("FirstStartFollow3")
|
||
|
self:ClearFollowTask()
|
||
|
self:AirModeOff()
|
||
|
self:BeFollowTask(q351Cfg.FirstStartFollow3Pos, q351Cfg.FollowLen, -1,
|
||
|
function(self, task)
|
||
|
if self.BeFollowState == BeFollowState.FAILED then
|
||
|
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
self:StopPerformNarrator()
|
||
|
elseif self.BeFollowState == BeFollowState.SUCCESS then
|
||
|
self:FirstStartFollowFinish()
|
||
|
end
|
||
|
end,
|
||
|
function(self, task)
|
||
|
self:Standby()
|
||
|
end,
|
||
|
nil
|
||
|
)
|
||
|
self:BeLockTask(q351Cfg.FollowTransLen, 1,
|
||
|
function(self)
|
||
|
self:TransFinishCallBack(q351Cfg)
|
||
|
end,
|
||
|
function(self)
|
||
|
self:TransPreCallBack(q351Cfg)
|
||
|
end
|
||
|
)
|
||
|
end
|
||
|
|
||
|
function Paimon:FirstStartFollowFinish()
|
||
|
print("FirstStartFollowFinish")
|
||
|
self:ClearFollowTask()
|
||
|
self:BeFollowTask(q351Cfg.FirstClimbPos, q351Cfg.FollowLen, -1,
|
||
|
function(self, task)
|
||
|
if self.BeFollowState == BeFollowState.FAILED then
|
||
|
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
self:StopPerformNarrator()
|
||
|
elseif self.BeFollowState == BeFollowState.SUCCESS then
|
||
|
self:DoFreeStyle(0)
|
||
|
self:TurnTo(M.Euler2DirXZ(q351Cfg.FirstClimbDir))
|
||
|
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(false, nil)
|
||
|
end
|
||
|
end
|
||
|
end,
|
||
|
function(self, task)
|
||
|
self:Standby()
|
||
|
end
|
||
|
)
|
||
|
self:BeLockTask(q351Cfg.FollowTransLen, 1,
|
||
|
function(self)
|
||
|
self:TransFinishCallBack(q351Cfg)
|
||
|
end,
|
||
|
function(self)
|
||
|
self:TransPreCallBack(q351Cfg)
|
||
|
end
|
||
|
)
|
||
|
end ]]
|
||
|
|
||
|
function Paimon:Vanish(task)
|
||
|
self:Destroy(false)
|
||
|
end
|
||
|
|
||
|
function Paimon:VanishKeep(OnVanish)
|
||
|
self:Disappear(OnVanish)
|
||
|
end
|
||
|
|
||
|
function Paimon:ByQueen()
|
||
|
self:RunToTask(sceneData:GetDummyPoint(3,"Q352Queen").pos,
|
||
|
function(self)
|
||
|
self:AirModeOff()
|
||
|
self:Standby()
|
||
|
self:TurnTo(M.Euler2DirXZ(sceneData:GetDummyPoint(3,"Q352Queen").rot))
|
||
|
end
|
||
|
)
|
||
|
end
|
||
|
|
||
|
function Paimon:AirModeOn()
|
||
|
self:SwitchAirMode(true)
|
||
|
end
|
||
|
|
||
|
function Paimon:AirModeOff()
|
||
|
self:SwitchAirMode(false)
|
||
|
end
|
||
|
|
||
|
-- local method end
|
||
|
|
||
|
Paimon.TaskOnPauseReminder = 1001
|
||
|
Paimon.TaskOnResumeReminder = 1002
|
||
|
|
||
|
function Paimon:Start()
|
||
|
print("start!Paimon")
|
||
|
self:RegisterTaskCB()
|
||
|
end
|
||
|
|
||
|
function Paimon:OnDestroy()
|
||
|
print("Paimon destroied")
|
||
|
self:UnregisterTaskCB()
|
||
|
end
|
||
|
|
||
|
|
||
|
return Paimon
|