SigFiesta/LuaScript/ID/SD_Vale01/Functions/Routine_KingSlime.lua

278 lines
9.1 KiB
Lua
Raw Normal View History

2023-06-26 04:40:53 -07:00
--------------------------------------------------------------------------------
-- KingSlime :: <20><><EFBFBD>ʳ<EFBFBD><CAB3><EFBFBD>( <20><><EFBFBD><EFBFBD> <20><> <20><>ų )
--------------------------------------------------------------------------------
function KS_ShowUp( Handle, MapIndex )
cExecCheck "KS_ShowUp"
local Var = InstanceField[ MapIndex ]
if Var["KingSlimeProcess"]["SkillEndTime"] > Var["CurSec"]
then
return ReturnAI["END"]
end
-- <20><>ų ó<><C3B3> <20>ٳ<EFBFBD><D9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
Var[Handle]["IsProgressSpecialSkill"] = false
Var["KingSlimeProcess"]["SkillStartTime"] = 0
Var["KingSlimeProcess"]["SkillEndTime"] = 0
cAIScriptSet( Handle )
return ReturnAI["END"]
end
--------------------------------------------------------------------------------
-- KingSlime :: <20><><EFBFBD><EFBFBD>
--------------------------------------------------------------------------------
function KS_Warp( Handle, MapIndex )
cExecCheck "KS_Warp"
local Var = InstanceField[ MapIndex ]
if Var["KingSlimeProcess"]["SkillWorkTime"] > Var["CurSec"]
then
return ReturnAI["END"]
end
local SkillInfo = SkillInfo_KingSlime["KS_Warp"]
local AbStateList = SkillInfo["AbState_To_KingSlime"]
--------------------------------------------------------------------------------
-- <20><> KS_Warp ó<><C3B3><EFBFBD><EFBFBD>, <20>ѹ<EFBFBD><D1B9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20>κ<EFBFBD>(<28>ʱ<EFBFBD>ȭ)
--------------------------------------------------------------------------------
if Var["KS_Warp"] == nil
then
DebugLog("KS_Warp <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD>")
Var["KS_Warp"] = {}
-- ŷ<><C5B7><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <20>ɾ<EFBFBD><C9BE>ش<EFBFBD>
cSetAbstate( Handle, AbStateList["NotTargetted"]["Index"], AbStateList["NotTargetted"]["Strength"], AbStateList["NotTargetted"]["KeepTime"], Handle )
-- <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0>ִ<EFBFBD> <20>÷<EFBFBD><C3B7>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
local PlayerHandleList = { cGetPlayerList( Var["MapIndex"] ) }
-- DebugLog( "<22>ʿ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> : "..#PlayerHandleList )
for i = 1, #PlayerHandleList
do
cTargetChangeNull( PlayerHandleList[i], Handle )
end
end
--------------------------------------------------------------------------------
-- <20><> Var["KS_Warp"] <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ó<><C3B3><EFBFBD><EFBFBD> <20>κ<EFBFBD>
--------------------------------------------------------------------------------
if Var["KS_Warp"] ~= nil
then
if Var["KingSlimeProcess"]["SkillEndTime"] > Var["CurSec"]
then
return ReturnAI["END"]
end
if Var["KingSlimeProcess"]["SkillEndTime"] <= Var["CurSec"]
then
DebugLog("KS_Warp <20><><EFBFBD><EFBFBD> <20><>ųó<C5B3><C3B3><EFBFBD>Ϸ<EFBFBD>!")
--<2D><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <20><><EFBFBD><EFBFBD>
cResetAbstate( Handle, AbStateList["NotTargetted"]["Index"] )
Var["KS_Warp"] = nil
-- <20><>ų ó<><C3B3> <20>ٳ<EFBFBD><D9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
Var[Handle]["IsProgressSpecialSkill"] = false
Var["KingSlimeProcess"]["SkillStartTime"] = 0
Var["KingSlimeProcess"]["SkillWorkTime"] = 0
Var["KingSlimeProcess"]["SkillEndTime"] = 0
Var["KingSlimeProcess"]["CurSkillIndex"] = nil
cAIScriptSet( Handle )
return ReturnAI["END"]
end
end
end
--------------------------------------------------------------------------------
-- KingSlime :: <20><><EFBFBD><EFBFBD>( <20><> <20><>ȯ )
--------------------------------------------------------------------------------
function KS_BombSlimePiece( Handle, MapIndex )
cExecCheck "KS_BombSlimePiece"
local Var = InstanceField[ MapIndex ]
if Var["KingSlimeProcess"]["SkillWorkTime"] > Var["CurSec"]
then
return ReturnAI["END"]
end
local SkillInfo = SkillInfo_KingSlime["KS_BombSlimePiece"]
--------------------------------------------------------------------------------
-- <20><> KS_BombSlimePiece ó<><C3B3><EFBFBD><EFBFBD>, <20>ѹ<EFBFBD><D1B9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20>κ<EFBFBD>(<28>ʱ<EFBFBD>ȭ)
--------------------------------------------------------------------------------
if Var["KS_BombSlimePiece"] == nil
then
Var["KS_BombSlimePiece"] = {}
--DebugLog("KS_BombSlimePiece <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD>")
-- <20><><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF> <20><>ǥ<EFBFBD><C7A5> x, y<><79> SummonRegenLocate <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>
if Var["KS_BombSlimePiece"]["SummonRegenLocate"] == nil
then
Var["KS_BombSlimePiece"]["SummonRegenLocate"] = {}
local CurKingSlimeX, CurKingSlimeY = cObjectLocate( Handle )
for i = 1, SkillInfo["SummonNum"]
do
Var["KS_BombSlimePiece"]["SummonRegenLocate"][i] = {}
Var["KS_BombSlimePiece"]["SummonRegenLocate"][i]["x"],
Var["KS_BombSlimePiece"]["SummonRegenLocate"][i]["y"] = cGetCoord_Circle( CurKingSlimeX, CurKingSlimeY, SkillInfo["SummonRadius"] )
--[[
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF> <20><>ǥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
DebugLog("----["..i.."]----")
DebugLog("SummonRegenLocate X :"..Var["KS_BombSlimePiece"]["SummonRegenLocate"][i]["x"])
DebugLog("SummonRegenLocate Y :"..Var["KS_BombSlimePiece"]["SummonRegenLocate"][i]["y"])
--]]
end
end
-- <20><>ȯ<EFBFBD><C8AF> <20>ð<EFBFBD><C3B0><EFBFBD>, <20><>ȯ<EFBFBD><C8AF> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ<EFBFBD>Ѵ<EFBFBD>
if Var["KS_BombSlimePiece"]["SummonTime"] == nil
then
Var["KS_BombSlimePiece"]["SummonTime"] = Var["CurSec"]
Var["KS_BombSlimePiece"]["CurSummonSequence"] = 1
--DebugLog("SummonTime : " ..Var["CurSec"])
--DebugLog("CurSummonSequence : " ..Var["KS_BombSlimePiece"]["CurSummonSequence"])
end
end
--------------------------------------------------------------------------------
-- <20><> Var["KS_BombSlimePiece"] <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ó<><C3B3><EFBFBD><EFBFBD> <20>κ<EFBFBD>
--------------------------------------------------------------------------------
if Var["KS_BombSlimePiece"] ~= nil
then
if Var["KS_BombSlimePiece"]["SummonTime"] ~= nil
then
if Var["KS_BombSlimePiece"]["SummonTime"] > Var["CurSec"]
then
return ReturnAI["END"]
end
if Var["KS_BombSlimePiece"]["CurSummonSequence"] <= SkillInfo["SummonNum"]
then
-- <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>
local CurSummonMob = Var["KS_BombSlimePiece"]["SummonRegenLocate"][Var["KS_BombSlimePiece"]["CurSummonSequence"]]
-- <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų<EFBFBD>ε<EFBFBD><CEB5><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų<EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD>.
local CurSummonMobIndex = nil
local CurSummonSkillIndex = nil
-- ŷ<><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SD_SlimeLump <20><> <20><>ȯ<EFBFBD>ϴ<EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
if Var["KingSlimeProcess"]["CurSkillIndex"] == SkillInfo["SkillIndex_Lump"]
then
--DebugLog("ŷ<><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>ų.."..SkillInfo["SkillIndex_Lump"] )
CurSummonMobIndex = SkillInfo["SummonLump"]["SummonIndex"]
CurSummonSkillIndex = SkillInfo["SummonLump"]["SummonSkillIndex"]
-- ŷ<><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SD_SlimeIce <20><> <20><>ȯ<EFBFBD>ϴ<EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
elseif Var["KingSlimeProcess"]["CurSkillIndex"] == SkillInfo["SkillIndex_Ice"]
then
--DebugLog("ŷ<><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>ų.."..SkillInfo["SkillIndex_Ice"] )
CurSummonMobIndex = SkillInfo["SummonIce"]["SummonIndex"]
CurSummonSkillIndex = SkillInfo["SummonIce"]["SummonSkillIndex"]
-- ŷ<><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><>ȯ<EFBFBD>ϴ<EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.( ¦<><C2A6><><C8A6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
elseif Var["KingSlimeProcess"]["CurSkillIndex"] == SkillInfo["SkillIndex_All"]
then
--DebugLog("ŷ<><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>ų.."..SkillInfo["SkillIndex_All"] )
if Var["KS_BombSlimePiece"]["CurSummonSequence"] % 2 == 0
then
CurSummonMobIndex = SkillInfo["SummonLump"]["SummonIndex"]
CurSummonSkillIndex = SkillInfo["SummonLump"]["SummonSkillIndex"]
elseif Var["KS_BombSlimePiece"]["CurSummonSequence"] % 2 == 1
then
CurSummonMobIndex = SkillInfo["SummonIce"]["SummonIndex"]
CurSummonSkillIndex = SkillInfo["SummonIce"]["SummonSkillIndex"]
end
-- <20>̷<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ<EFBFBD>뵵..
else
ErrorLog("KS_BombSlimePiece <20><>ƾ, <20>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..")
end
-- <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD> <20>ڵ鰪<DAB5><E9B0AA> <20><><EFBFBD>´<EFBFBD>.
local CurSummonHandle = cMobRegen_XY( MapIndex, CurSummonMobIndex, CurSummonMob["x"], CurSummonMob["y"] )
if CurSummonHandle == nil
then
-- DebugLog("<22><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"..Var["KS_BombSlimePiece"]["CurSummonSequence"] )
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ʴ´<CAB4>.
-- <20>׳<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20>Ѿ<D1BE><EEB0A3>.
end
if CurSummonHandle ~= nil
then
if cSkillBlast( CurSummonHandle, CurSummonHandle, CurSummonSkillIndex ) == nil
then
ErrorLog("<EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"..Var["KS_BombSlimePiece"]["CurSummonSequence"] )
end
end
-- <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
Var["KS_BombSlimePiece"]["CurSummonSequence"] = Var["KS_BombSlimePiece"]["CurSummonSequence"] + 1
Var["KS_BombSlimePiece"]["SummonTime"] = Var["KS_BombSlimePiece"]["SummonTime"] + SkillInfo["SummonTick"]
--DebugLog("<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> : "..Var["KS_BombSlimePiece"]["SummonTime"])
return ReturnAI["END"]
end
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>, <20>ʱ<EFBFBD>ȭ
Var["KS_BombSlimePiece"]["SummonTime"] = nil
Var["KS_BombSlimePiece"]["CurSummonSequence"] = nil
end
--------------------------------------------------------------------------------
-- <20><> <20><> <20><>ȯ <20>۾<EFBFBD><DBBE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>, <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD> <20>Ǵ<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> üũ<C3BC>Ѵ<EFBFBD>
--------------------------------------------------------------------------------
-- <20><>ų ó<><C3B3><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD>ִϸ<D6B4><CFB8>̼<EFBFBD> <20><><EFBFBD>̶<EFBFBD><CCB6><EFBFBD> <20><><EFBFBD><EFBFBD>
if Var["KingSlimeProcess"]["SkillEndTime"] > Var["CurSec"]
then
--DebugLog("<22>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..")
return ReturnAI["END"]
end
if Var["KingSlimeProcess"]["SkillEndTime"] <= Var["CurSec"]
then
--DebugLog("KS_BombSlimePiece <20><><EFBFBD><EFBFBD> <20><>ųó<C5B3><C3B3><EFBFBD>Ϸ<EFBFBD>!")
Var["KS_BombSlimePiece"] = nil
-- <20><>ų ó<><C3B3> <20>ٳ<EFBFBD><D9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
Var[Handle]["IsProgressSpecialSkill"] = false
Var["KingSlimeProcess"]["SkillStartTime"] = 0
Var["KingSlimeProcess"]["SkillWorkTime"] = 0
Var["KingSlimeProcess"]["SkillEndTime"] = 0
Var["KingSlimeProcess"]["CurSkillIndex"] = nil
cAIScriptSet( Handle )
return ReturnAI["END"]
end
end
return ReturnAI["END"]
end