You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SigFiesta/LuaScript/ID/AdlF/AdlF_Zone4.lua

540 lines
10 KiB

--[[ ]]--
--[[ <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD> <EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ]]--
--[[ 4<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ]]--
--[[ ]]--
function Zone4_Setting( Var )
cExecCheck "Zone4_Setting"
if Var == nil then
return
end
Var.Eglack = cMobRegen_XY( Var.MapIndex, RegenInfo.Eglack.Index,
RegenInfo.Eglack.x,
RegenInfo.Eglack.y,
RegenInfo.Eglack.dir )
if Var.Eglack == nil then
cDebugLog( "Default_Setting : Fail cMobRegen_XY Eglack" )
return
end
cSetAbstate( Var.Eglack, "StaSalare00", 1, 20000000 )
if Var.SummonStone_Active ~= "Loussier" then
cSetDeadDelayTime ( Var.Eglack, 9999 )
end
Var.StepFunc = Dummy
return
end
function Zone4_Event_1( Var )
cExecCheck "Zone4_Event_1"
if Var == nil then
return
end
local CurSec = cCurrentSecond()
-- <EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ְ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȭ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var.Zone4_Event_1_Step == nil then
if Var.SummonStone_Active == "Loussier" then
Var.Dialog = DialogInfo.Zone4_Event1_alive
else
Var.Dialog = DialogInfo.Zone4_Event1_Dead
end
Var.DialogStep = 1
Var.Zone4_Event_1_Step = 1
Var.Zone4_EventPlayTime = CurSec
return
end
-- <EFBFBD><EFBFBD>ȭ, <EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִٸ<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ܰ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var.Zone4_Event_1_Step == 1 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
if Var.DialogStep <= #Var.Dialog then
cMobDialog( Var.MapIndex,
Var.Dialog[Var.DialogStep].Portrait,
Var.Dialog[Var.DialogStep].FileName,
Var.Dialog[Var.DialogStep].Index )
Var.Zone4_EventPlayTime = CurSec + Var.Dialog[Var.DialogStep].Delay
Var.DialogStep = Var.DialogStep + 1
return
end
Var.Dialog = nil
Var.DialogStep = nil
if Var.SummonStone_Active == "Loussier" then
Var.Zone4_Event_1_Step = 2
else
Var.Zone4_Event_1_Step = 99
end
Var.Zone4_EventPlayTime = CurSec
return
end
if Var.Zone4_Event_1_Step == 2 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ų
if cSkillBlast( Var.LoussierHandle, Var.Eglack, "AdlF_Loussier_Skill01_N", 9999 ) == nil then
cDebugLog( "Eglack Debuff Fail" )
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cResetAbstate( Var.Eglack, "StaSalare00" )
Var.Zone4_Event_1_Step = 3
Var.Zone4_EventPlayTime = CurSec + 4
return
end
if Var.Zone4_Event_1_Step == 3 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
-- <EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if cSkillBlast( Var.LoussierHandle, Var.LoussierHandle, "AdlF_Loussier_Skill03_N" ) == nil then
cDebugLog( "Loussier Immortal Fail" )
end
Var.Zone4_Event_1_Step = 4
Var.Zone4_EventPlayTime = CurSec
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <EFBFBD>ɾ<EFBFBD><EFBFBD>ִ<EFBFBD> <EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- ActiveSkill <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>, <EFBFBD>ɸ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD>, Ȯ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- SubAbstate <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ӽð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>׿<EFBFBD><EFBFBD><EFBFBD>
cScriptMessage( Var.MapIndex, AnnounceInfo.AdlF_Mission_04_001 )
Var.Zone4_Event_1_Step = nil
Var.Zone4_EventPlayTime = nil
Var.StepFunc = Dummy
end
function Zone4_Event_2( Var )
cExecCheck "Zone4_Event_2"
if Var == nil then
return
end
local CurSec = cCurrentSecond()
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- <EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
if Var.SummonStone_Active == "Loussier" then
if Var.Zone4_Event_2_Step == nil then
-- <EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD> <EFBFBD>̵<EFBFBD>
local louNewX, louNewY = cGetAroundCoord( Var.Eglack, Var.EglackDeadDir, 100 )
cNPCVanish( Var.LoussierHandle )
Var.LoussierHandle = cMobRegen_XY( Var.MapIndex, RegenInfo.Loussier.Index,
louNewX,
louNewY,
Var.EglackDeadDir )
cSetAIScript( "ID/AdlF/AdlF", Var.LoussierHandle )
Var.Dialog = DialogInfo.Zone4_Event2_alive
Var.DialogStep = 1
Var.Zone4_Event_2_Step = 1
Var.Zone4_EventPlayTime = CurSec + 3
return
end
-- <EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><EFBFBD>α<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var.Zone4_Event_2_Step == 1 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
if Var.DialogStep <= #Var.Dialog then
cMobDialog( Var.MapIndex,
Var.Dialog[Var.DialogStep].Portrait,
Var.Dialog[Var.DialogStep].FileName,
Var.Dialog[Var.DialogStep].Index )
Var.Zone4_EventPlayTime = CurSec + Var.Dialog[Var.DialogStep].Delay
Var.DialogStep = Var.DialogStep + 1
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cQuestMobKill_AllInMap( Var.MapIndex, 2681, "Daliy_Check_Adlf", 5 )
Var.Dialog = nil
Var.DialogStep = nil
Var.Zone4_Event_2_Step = 2
Var.Zone4_EventPlayTime = CurSec + 1
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var.Zone4_Event_2_Step == 2 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
Var.CompleteGate = cMobRegen_XY( Var.MapIndex, RegenInfo.CompleteGate.Index,
Var.EglackDeadLocX,
Var.EglackDeadLocY,
0 )
if Var.CompleteGate == nil then
cDebugLog( "Default_Setting : Fail cMobRegen_XY CompleteGate" )
return
end
if cSetAIScript( "ID/AdlF/AdlF", Var.CompleteGate ) == nil then
cDebugLog( "Default_Setting : Fail cSetAIScript CompleteGate" )
return
end
if cAIScriptFunc( Var.CompleteGate, "NPCClick", "CompleteGateFunc" ) == nil then
cDebugLog( "Default_Setting : Fail cAIScriptFunc CompleteGate" )
return
end
Var.Zone4_Event_2_Step = 3
Var.Zone4_EventPlayTime = CurSec + 1
end
Var.Zone4_Event_2_Step = nil
Var.Zone4_EventPlayTime = nil
Var.StepFunc = Dummy
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- <EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
else
if Var.Zone4_Event_2_Step == nil then
local kerenNewX, kerenNewY = cGetAroundCoord( Var.Eglack, Var.EglackDeadDir, 116 )
Var.Karen = cMobRegen_XY( Var.MapIndex, RegenInfo.Karen.Index,
kerenNewX,
kerenNewY,
Var.EglackDeadDir )
cSetAIScript( "ID/AdlF/AdlF", Var.Karen )
Var.Zone4_Event_2_Step = 1
Var.Zone4_EventPlayTime = CurSec + 1
return
end
if Var.Zone4_Event_2_Step == 1 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
if cSkillBlast( Var.Karen, Var.Karen, "AdlF_Karen_Skill02_W" ) == nil then
cDebugLog( "Karen Sleep Fail" )
end
Var.Zone4_Event_2_Step = 2
Var.Zone4_EventPlayTime = CurSec + 4.5
return
end
if Var.Zone4_Event_2_Step == 2 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
local player = { cGetAreaObjectList( Var.MapIndex, AreaIndex.Zone4_2, ObjectType.Player ) }
for i=1, #player do
cSetAbstate( player[i], "StaMesmerize", 1, 22000 )
end
Var.Zone4_Event_2_Step = 3
Var.Zone4_EventPlayTime = CurSec
Var.Dialog = DialogInfo.Zone4_Event2_Dead_1
Var.DialogStep = 1
return
end
if Var.Zone4_Event_2_Step == 3 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
if Var.DialogStep <= #Var.Dialog then
cMobDialog( Var.MapIndex,
Var.Dialog[Var.DialogStep].Portrait,
Var.Dialog[Var.DialogStep].FileName,
Var.Dialog[Var.DialogStep].Index )
Var.Zone4_EventPlayTime = CurSec + Var.Dialog[Var.DialogStep].Delay
Var.DialogStep = Var.DialogStep + 1
return
end
Var.Dialog = nil
Var.DialogStep = nil
Var.Zone4_Event_2_Step = 4
Var.Zone4_EventPlayTime = CurSec
return
end
if Var.Zone4_Event_2_Step == 4 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
if cSkillBlast( Var.Karen, Var.Eglack, "AdlF_Karen_Skill03_N" ) == nil then
cDebugLog( "Karen Revive Fail" )
end
Var.Zone4_Event_2_Step = 5
Var.Zone4_EventPlayTime = CurSec + 3.5
return
end
if Var.Zone4_Event_2_Step == 5 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
local eglNewX, eglNewY = cGetAroundCoord( Var.Eglack, Var.EglackDeadDir+180, 100 )
cNPCVanish( Var.Eglack )
Var.Eglack = cMobRegen_XY( Var.MapIndex, RegenInfo.EglackMad.Index,
eglNewX,
eglNewY,
Var.EglackDeadDir )
Var.Zone4_Event_2_Step = 6
Var.Zone4_EventPlayTime = CurSec + 1
return
end
Var.Zone4_Event_2_Step = nil
Var.Zone4_EventPlayTime = nil
Var.StepFunc = Zone4_Eglack_Mad
end
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
end
function Zone4_Eglack_Mad( Var )
cExecCheck "Zone4_Eglack_Mad"
if Var == nil then
return
end
local CurSec = cCurrentSecond()
if Var.Zone4_Event_3_Step == nil then
if cIsObjectDead( Var.Eglack ) ~= nil then
Var.EglackDeadLocX, Var.EglackDeadLocY = cObjectLocate( Var.Eglack )
Var.Zone4_Event_3_Step = 1
Var.Zone4_EventPlayTime = CurSec + 1
Var.Dialog = DialogInfo.Zone4_Event3_Dead
Var.DialogStep = 1
end
return
end
if Var.Zone4_Event_3_Step == 1 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
if Var.DialogStep <= #Var.Dialog then
cMobDialog( Var.MapIndex,
Var.Dialog[Var.DialogStep].Portrait,
Var.Dialog[Var.DialogStep].FileName,
Var.Dialog[Var.DialogStep].Index )
Var.Zone4_EventPlayTime = CurSec + Var.Dialog[Var.DialogStep].Delay
Var.DialogStep = Var.DialogStep + 1
return
end
Var.Dialog = nil
Var.DialogStep = nil
Var.Zone4_Event_3_Step = 2
Var.Zone4_EventPlayTime = CurSec
return
end
if Var.Zone4_Event_3_Step == 2 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
cNPCVanish( Var.Karen )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cQuestMobKill_AllInMap( Var.MapIndex, 2681, "Daliy_Check_Adlf", 5 )
Var.Zone4_Event_3_Step = 3
Var.Zone4_EventPlayTime = CurSec
return
end
if Var.Zone4_Event_3_Step == 3 then
if Var.Zone4_EventPlayTime > CurSec then
return
end
Var.CompleteGate = cMobRegen_XY( Var.MapIndex, RegenInfo.CompleteGate.Index,
Var.EglackDeadLocX,
Var.EglackDeadLocY,
0 )
if Var.CompleteGate == nil then
cDebugLog( "Default_Setting : Fail cMobRegen_XY CompleteGate" )
return
end
if cSetAIScript( "ID/AdlF/AdlF", Var.CompleteGate ) == nil then
cDebugLog( "Default_Setting : Fail cSetAIScript CompleteGate" )
return
end
if cAIScriptFunc( Var.CompleteGate, "NPCClick", "CompleteGateFunc" ) == nil then
cDebugLog( "Default_Setting : Fail cAIScriptFunc CompleteGate" )
return
end
Var.Zone4_Event_3_Step = 4
Var.Zone4_EventPlayTime = CurSec
return
end
Var.Zone4_Event_3_Step = nil
Var.Zone4_EventPlayTime = nil
Var.StepFunc = Dummy
end