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

506 lines
19 KiB
Lua
Raw Normal View History

2023-06-26 04:40:53 -07:00
--------------------------------------------------------------------------------
-- KingCrab :: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--------------------------------------------------------------------------------
function KC_WhirlWind( Handle, MapIndex )
cExecCheck "KC_WhirlWind"
local Var = InstanceField[ MapIndex ]
if Var["KingCrabProcess"]["SkillWorkTime"] > Var["CurSec"]
then
return ReturnAI["END"]
end
local SkillInfo = SkillInfo_KingCrab["KC_WhirlWind"]
--------------------------------------------------------------------------------
-- <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>, <20>ѹ<EFBFBD><D1B9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20>κ<EFBFBD>(<28>ʱ<EFBFBD>ȭ)
--------------------------------------------------------------------------------
if Var["KC_WhirlWind"] == nil
then
Var["KC_WhirlWind"] ={}
--DebugLog("KC_WhirlWind <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD>")
------------------------------------------------------------------------------------------
-- 1. <20>ӽ<EFBFBD> Ÿ<><C5B8> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
-- ŷũ<C5B7><C5A9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD> <20>ȿ<EFBFBD> <20>ִ<EFBFBD> <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20>޾ƿ<DEBE>
Var["KC_WhirlWind"]["TargetList_Temp"] = { cNearObjectList( Handle, SkillInfo["Target_SearchArea"], ObjectType["Player"] ) }
--[[
DebugLog("========================================================")
DebugLog("TargetList_Temp Ÿ<>ٸ<EFBFBD><D9B8><EFBFBD>Ʈ")
for i = 1, #Var["KC_WhirlWind"]["TargetList_Temp"]
do
DebugLog("Ÿ<EFBFBD><EFBFBD> <20>ڵ<EFBFBD>[ "..i.." ] :"..Var["KC_WhirlWind"]["TargetList_Temp"][i] )
end
DebugLog("========================================================")
--]]
Var["KC_WhirlWind"]["CurTargetNum"] = 1
Var["KC_WhirlWind"]["CurTargetHandle"] = INVALID_HANDLE
Var["KC_WhirlWind"]["IsFollowState"] = false
Var["KC_WhirlWind"]["PathListEachTarget"] = {} -- Ÿ<>ٺ<EFBFBD><D9BA><EFBFBD> path <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD>̺<EFBFBD>
------------------------------------------------------------------------------------------
-- 2. <20><><EFBFBD>ǿ<EFBFBD> <20>´<EFBFBD> <20>÷<EFBFBD><C3B7>̾<CCBE><EEB8AE>Ʈ <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD>( <20><EFBFBD><ECBCB1><EFBFBD><EFBFBD> <20><><EFBFBD>ǿ<EFBFBD> <20>°<EFBFBD> )
Var["KC_WhirlWind"]["TargetList"] = {}
-- TargetList_Temp <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><ECBCB1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ο<EFBFBD><CEBF>Ѵ<EFBFBD>.
for i, v in pairs( Var["KC_WhirlWind"]["TargetList_Temp"] )
do
-- <20><EFBFBD><ECBCB1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ
Var["KC_WhirlWind"]["TargetList"][v] = 0
------------------------------------------------------------------------------------------
-- 1 ) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> üũ.
local Priority_Class = SkillInfo["Target_Priority"]["ChrBaseClass"]
local charBaseClassNum = cGetBaseClass( v )
--DebugLog("charBaseClassNum : "..charBaseClassNum)
for i = 1, #Priority_Class
do
if Priority_Class[i]["class"] == charBaseClassNum
then
Var["KC_WhirlWind"]["TargetList"][v] = Var["KC_WhirlWind"]["TargetList"][v] + Priority_Class[i]["arg"]
--DebugLog("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "..charBaseClassNum..", <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> +"..Priority_Class[i]["arg"].." = "..Var["KC_WhirlWind"]["TargetList"][v] )
break
end
end
------------------------------------------------------------------------------------------
-- 2 ) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> üũ.
local Priority_AbState = SkillInfo["Target_Priority"]["ChrAbState"]
for i = 1, #Priority_AbState
do
local strength, resttime = cGetAbstate( v, Priority_AbState[i]["Index"] )
if strength ~= nil
then
Var["KC_WhirlWind"]["TargetList"][v] = Var["KC_WhirlWind"]["TargetList"][v] + Priority_AbState[i]["arg"]
--DebugLog("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD> "..Priority_AbState[i]["Index"]..", <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> +"..Priority_AbState[i]["arg"].." = "..Var["KC_WhirlWind"]["TargetList"][v])
end
end
end
-- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<>ٸ<EFBFBD><D9B8><EFBFBD>Ʈ TargetList<73><74> ũ<><20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD>´<EFBFBD>.
--DebugLog("Ÿ<>ٸ<EFBFBD><D9B8><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>")
local TargetListSize = 0
for i, v in pairs( Var["KC_WhirlWind"]["TargetList"] )
do
TargetListSize = TargetListSize + 1
--DebugLog("TargetList["..i.."] = "..v)
end
Var["KC_WhirlWind"]["TargetListSize"] = TargetListSize
Var["KC_WhirlWind"]["CurTargetHandle"] = PopMyTarget( Var["KC_WhirlWind"]["TargetList"] )
--DebugLog("TargetList ũ<><C5A9><EFBFBD><EFBFBD>.. "..Var["KC_WhirlWind"]["TargetListSize"] )
--DebugLog("ù Ÿ<><C5B8><EFBFBD><EFBFBD> .."..Var["KC_WhirlWind"]["CurTargetHandle"])
------------------------------------------------------------------------------------------
-- 3. ŷũ<C5B7><C5A9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <20>ɾ<EFBFBD><C9BE>ش<EFBFBD>( <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> )
-- StaSDVale01_Wheel : <20><><EFBFBD><EFBFBD> <20>ִϸ<D6B4><CFB8>̼<EFBFBD> <20><> <20>ֺ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
local AbStateList = SkillInfo["AbState_To_KingCrab"]
-- <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <20>ɵ<EFBFBD><C9B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, keeptime <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD>
cSetAbstate( Handle, AbStateList["SpinDamage"]["Index"], AbStateList["SpinDamage"]["Strength"], AbStateList["SpinDamage"]["KeepTime"], Handle )
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
------------------------------------------------------------------------------------------
-- 4. Ÿ<>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>Ʈ[1] = {}<7D><> <20><><EFBFBD><EFBFBD>, Ÿ<>ٸ<EFBFBD><D9B8><EFBFBD>Ʈ[1]<5D><> <20>ڵ鰪<DAB5><E9B0AA> <20>̿<EFBFBD><CCBF><EFBFBD> 5<><35><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD> <20><><EFBFBD>´<EFBFBD>.
-- Ÿ<>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>Ʈ[1][1]["x"] = 2,
-- Ÿ<>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>Ʈ[1][1]["y"] = 2,
-- .....
-- Ÿ<>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>Ʈ[1][5]["x"] = 2,
-- Ÿ<>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>Ʈ[1][5]["y"] = 2,
-- Ÿ<>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>ٸ<EFBFBD><D9B8><EFBFBD>Ʈ <20><>ŭ <20><><EFBFBD><EFBFBD>
--------------------------------------------------------------------------------
-- <20><> Var["KC_WhirlWind"] <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ó<><C3B3><EFBFBD><EFBFBD> <20>κ<EFBFBD>
--------------------------------------------------------------------------------
if Var["KC_WhirlWind"] ~= nil
then
local CurTargetNum = Var["KC_WhirlWind"]["CurTargetNum"]
local CurTargetHandle = Var["KC_WhirlWind"]["CurTargetHandle"]
--------------------------------------------------------------------------------
-- <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD>ӽð<D3BD><C3B0><EFBFBD> üũ<C3BC>Ѵ<EFBFBD>. <20><20>ൿ<EFBFBD><E0B5BF><EFBFBD>̴<EFBFBD><CCB4><EFBFBD><EFBFBD><EFBFBD>, <20><> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD>.
--------------------------------------------------------------------------------
if Var["KingCrabProcess"]["SkillEndTime"] <= Var["CurSec"]
then
--DebugLog("<22>ð<EFBFBD> <20>ʰ<EFBFBD>! <20>ൿ<EFBFBD><E0B5BF><EFBFBD><EFBFBD>!")
local AbStateList = SkillInfo["AbState_To_KingCrab"]
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <20><><EFBFBD><EFBFBD>
cResetAbstate( Handle, AbStateList["SpinDamage"]["Index"] )
cResetAbstate( Handle, AbStateList["NotTargetted"]["Index"] )
Var["KC_WhirlWind"] = nil
Var[Handle]["IsProgressSpecialSkill"] = false
Var["KingCrabProcess"]["SkillStartTime"] = 0
Var["KingCrabProcess"]["SkillWorkTime"] = 0
Var["KingCrabProcess"]["SkillEndTime"] = 0
cAIScriptSet( Handle )
return ReturnAI["END"]
end
--------------------------------------------------------------------------------
-- <20><> Ÿ<>ٸ<EFBFBD><D9B8><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>
--------------------------------------------------------------------------------
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
if CurTargetNum <= Var["KC_WhirlWind"]["TargetListSize"]
then
-- Ÿ<><C5B8> <20>ڵ鰪<DAB5><E9B0AA> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>, <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if CurTargetHandle == nil or CurTargetHandle == INVALID_HANDLE
then
--DebugLog("<22>ش<EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> <20>ڵ鰪 == nil or INVALID_HANDLE, <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>")
Var["KC_WhirlWind"]["IsFollowState"] = false
Var["KC_WhirlWind"]["CurTargetNum"] = Var["KC_WhirlWind"]["CurTargetNum"] + 1
Var["KC_WhirlWind"]["CurTargetHandle"] = PopMyTarget( Var["KC_WhirlWind"]["TargetList"] )
return ReturnAI["END"]
end
-- Ÿ<><C5B8><EFBFBD><EFBFBD> <20>̹<EFBFBD> <20>׾<EFBFBD><D7BE><EFBFBD><EFBFBD>Ƿ<EFBFBD>, <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if cIsObjectDead( CurTargetHandle ) == 1 or cIsObjectAlreadyDead( CurTargetHandle ) == 1
then
--DebugLog("Ÿ<><C5B8><EFBFBD><EFBFBD> <20>װų<D7B0> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>")
Var["KC_WhirlWind"]["IsFollowState"] = false
Var["KC_WhirlWind"]["CurTargetNum"] = Var["KC_WhirlWind"]["CurTargetNum"] + 1
Var["KC_WhirlWind"]["CurTargetHandle"] = PopMyTarget( Var["KC_WhirlWind"]["TargetList"] )
return ReturnAI["END"]
end
local PathList = Var["KC_WhirlWind"]["PathListEachTarget"]
--------------------------------------------------------------------------------
-- <20><> <20>ش<EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> path <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
--------------------------------------------------------------------------------
if PathList[CurTargetHandle] == nil
then
-- Ÿ<>ٰ<EFBFBD><D9B0><EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20>ʹ<EFBFBD> <20>ָ<EFBFBD>, <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
local distanceWithTarget = cDistanceSquar( Handle, CurTargetHandle )
--DebugLog("Ÿ<>ٰ<EFBFBD><D9B0><EFBFBD> <20>Ÿ<EFBFBD>["..CurTargetHandle.."] : "..distanceWithTarget)
if cDistanceSquar( Handle, CurTargetHandle ) > ( SkillInfo["Target_Distance"] * SkillInfo["Target_Distance"] )
then
--DebugLog("Ÿ<>ٰ<EFBFBD><D9B0><EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20>ʹ<EFBFBD> <20>ִ<EFBFBD>.. <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>")
Var["KC_WhirlWind"]["IsFollowState"] = false
Var["KC_WhirlWind"]["CurTargetNum"] = Var["KC_WhirlWind"]["CurTargetNum"] + 1
Var["KC_WhirlWind"]["CurTargetHandle"] = PopMyTarget( Var["KC_WhirlWind"]["TargetList"] )
return ReturnAI["END"]
end
--DebugLog("Ÿ<><C5B8>"..CurTargetHandle.."<22><> path <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
PathList[CurTargetHandle] = {}
PathList[CurTargetHandle]["CurPathNum"] = 1
-- ù<><C3B9>° path<74><68> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>ڸ<EFBFBD>
PathList[CurTargetHandle][1] = {}
PathList[CurTargetHandle][1]["x"],
PathList[CurTargetHandle][1]["y"] = cObjectLocate( CurTargetHandle )
PathList[CurTargetHandle][1]["x"] = PathList[CurTargetHandle][1]["x"] + 5
PathList[CurTargetHandle][1]["y"] = PathList[CurTargetHandle][1]["y"] + 5
-- 2<><32>° <20><><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD> path<74><68> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ǥ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ǥ <20><><EFBFBD><EFBFBD>
for i = 2, SkillInfo["PathListEachTarget"]["ListNum"]
do
local Dir = cRandomInt( 1, 90 ) * 4
local LocateX, LocateY = cGetAroundCoord( CurTargetHandle, Dir, SkillInfo["PathListEachTarget"]["Distance"] )
PathList[CurTargetHandle][i] = {}
PathList[CurTargetHandle][i]["x"] = LocateX
PathList[CurTargetHandle][i]["y"] = LocateY
end
--[[
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> PathList <20><><EFBFBD><EFBFBD>
for i = 1, SkillInfo["PathListEachTarget"]["ListNum"]
do
DebugLog("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8> "..CurTargetHandle.."<EFBFBD><EFBFBD> [ "..i.." ][\"x\"]"..PathList[CurTargetHandle][i]["x"])
DebugLog("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8> "..CurTargetHandle.."<EFBFBD><EFBFBD> [ "..i.." ][\"y\"]"..PathList[CurTargetHandle][i]["y"])
end
--]]
end
--------------------------------------------------------------------------------
-- <20><> <20>ش<EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> path <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--------------------------------------------------------------------------------
-- <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִٸ<D6B4>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>°<EFBFBD> cRunTo<54>Ѵ<EFBFBD>.
if PathList[CurTargetHandle] ~= nil
then
local CurPathNum = PathList[CurTargetHandle]["CurPathNum"]
-- Ÿ<><C5B8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ִ°<D6B4><C2B0><EFBFBD>,
if CurPathNum <= SkillInfo["PathListEachTarget"]["ListNum"]
then
-- <20><><EFBFBD><EFBFBD> path<74><68> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD>°<EFBFBD> <20>ƴϸ<C6B4>, Ÿ<><C5B8> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if Var["KC_WhirlWind"]["IsFollowState"] == false
then
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD> nil<69>̶<EFBFBD><CCB6><EFBFBD>, <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
-- cRunTo <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5> nil<69><6C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3> <20>ȵ<EFBFBD><C8B5>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>...<2E>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
if PathList[CurTargetHandle][CurPathNum]["x"] == nil or PathList[CurTargetHandle][CurPathNum]["y"] == nil
then
--DebugLog("CurTargetHandle<6C><65> path<74><68> nil<69>̶<EFBFBD>, <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD>")
PathList[CurTargetHandle] = nil
Var["KC_WhirlWind"]["CurTargetNum"] = Var["KC_WhirlWind"]["CurTargetNum"] + 1
return ReturnAI["END"]
end
if cRunTo( Handle, PathList[CurTargetHandle][CurPathNum]["x"], PathList[CurTargetHandle][CurPathNum]["y"], SkillInfo["SpeedRate"] ) == nil
then
--DebugLog("<22>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>")
return ReturnAI["END"]
end
Var["KC_WhirlWind"]["IsFollowState"] = true
--DebugLog("<22><><EFBFBD><EFBFBD> path : "..CurPathNum)
end
-- <20><><EFBFBD><EFBFBD> path<74><68> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD>¸<EFBFBD>, <20>Ÿ<EFBFBD><C5B8><EFBFBD> üũ<C3BC><C5A9>
if Var["KC_WhirlWind"]["IsFollowState"] == true
then
local myLocateX, myLocateY = cObjectLocate( Handle )
--DebugLog("ŷũ<C5B7><C5A9> x : "..myLocateX.."ŷũ<C5B7><C5A9> y : "..myLocateY )
--DebugLog("<22><>ǥ<EFBFBD><C7A5>ǥ : "..PathList[CurTargetHandle][CurPathNum]["x"]..", "..PathList[CurTargetHandle][CurPathNum]["y"] )
local dist = cDistanceSquar( myLocateX, myLocateY, PathList[CurTargetHandle][CurPathNum]["x"], PathList[CurTargetHandle][CurPathNum]["y"] )
-- <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>,
if dist > SkillInfo["PathListEachTarget"]["Distance"]
then
--DebugLog("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.."..dist)
return ReturnAI["END"]
end
-- <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> path<74><68> <20><><EFBFBD><EFBFBD>
--DebugLog("<22>Ÿ<EFBFBD><C5B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.. <20><><EFBFBD><EFBFBD> path<74><68> <20><><EFBFBD><EFBFBD>")
PathList[CurTargetHandle]["CurPathNum"] = PathList[CurTargetHandle]["CurPathNum"] + 1
--DebugLog("<22><><EFBFBD><EFBFBD> path : "..PathList[CurTargetHandle]["CurPathNum"] )
Var["KC_WhirlWind"]["IsFollowState"] = false
return ReturnAI["END"]
end
end
-- Ÿ<><C5B8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>Ƽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>,
-- <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
PathList[CurTargetHandle] = nil
Var["KC_WhirlWind"]["CurTargetNum"] = Var["KC_WhirlWind"]["CurTargetNum"] + 1
Var["KC_WhirlWind"]["CurTargetHandle"] = PopMyTarget( Var["KC_WhirlWind"]["TargetList"] )
--DebugLog("<22><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> path<74><68> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"..CurTargetHandle)
--DebugLog("<22><><EFBFBD><EFBFBD> Ÿ<><C5B8>num<75><6D> : "..Var["KC_WhirlWind"]["CurTargetNum"] )
return ReturnAI["END"]
end
end
--------------------------------------------------------------------------------
-- <20><> Ÿ<>ٸ<EFBFBD><D9B8><EFBFBD>Ʈ<EFBFBD><C6AE> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> <20><><EFBFBD><EFBFBD>
--------------------------------------------------------------------------------
--DebugLog("<22><><EFBFBD><EFBFBD> Ÿ<><C5B8> <20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>")
local AbStateList = SkillInfo["AbState_To_KingCrab"]
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <20><><EFBFBD><EFBFBD>
cResetAbstate( Handle, AbStateList["SpinDamage"]["Index"] )
cResetAbstate( Handle, AbStateList["NotTargetted"]["Index"] )
Var["KC_WhirlWind"] = nil
Var[Handle]["IsProgressSpecialSkill"] = false
Var["KingCrabProcess"]["SkillStartTime"] = 0
Var["KingCrabProcess"]["SkillWorkTime"] = 0
Var["KingCrabProcess"]["SkillEndTime"] = 0
cAIScriptSet( Handle )
return ReturnAI["END"]
end
end
--------------------------------------------------------------------------------
-- KingCrab :: <20><>ȯ
--------------------------------------------------------------------------------
function KC_SummonBubble( Handle, MapIndex )
cExecCheck "KC_SummonBubble"
local Var = InstanceField[ MapIndex ]
if Var["KingCrabProcess"]["SkillWorkTime"] > Var["CurSec"]
then
return ReturnAI["END"]
end
local SkillInfo = SkillInfo_KingCrab["KC_SummonBubble"]
--------------------------------------------------------------------------------
-- <20><> KC_SummonBubble ó<><C3B3><EFBFBD><EFBFBD>, <20>ѹ<EFBFBD><D1B9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20>κ<EFBFBD>(<28>ʱ<EFBFBD>ȭ)
--------------------------------------------------------------------------------
if Var["KC_SummonBubble"] == nil
then
Var["KC_SummonBubble"] = {}
local AbStateList = SkillInfo["AbState_To_KingCrab"]
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
-- <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["KC_SummonBubble"]["SummonRegenLocate"] == nil
then
Var["KC_SummonBubble"]["SummonRegenLocate"] = {}
local CurKingCrabX, CurKingCrabY = cObjectLocate( Handle )
for i = 1, SkillInfo["SummonNum"]
do
Var["KC_SummonBubble"]["SummonRegenLocate"][i] = {}
Var["KC_SummonBubble"]["SummonRegenLocate"][i]["x"],
Var["KC_SummonBubble"]["SummonRegenLocate"][i]["y"] = cGetCoord_Circle( CurKingCrabX, CurKingCrabY, 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["KC_SummonBubble"]["SummonRegenLocate"][i]["x"])
DebugLog("SummonRegenLocate Y :"..Var["KC_SummonBubble"]["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["KC_SummonBubble"]["SummonTime"] == nil
then
Var["KC_SummonBubble"]["SummonTime"] = Var["CurSec"]
Var["KC_SummonBubble"]["CurSummonSequence"] = 1
--DebugLog("SummonTime : " ..Var["CurSec"])
--DebugLog("CurSummonSequence : " ..Var["KC_SummonBubble"]["CurSummonSequence"])
end
end
--------------------------------------------------------------------------------
-- <20><> Var["KC_SummonBubble"] <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ó<><C3B3><EFBFBD><EFBFBD> <20>κ<EFBFBD>
--------------------------------------------------------------------------------
if Var["KC_SummonBubble"] ~= nil
then
if Var["KC_SummonBubble"]["SummonTime"] ~= nil
then
if Var["KC_SummonBubble"]["SummonTime"] > Var["CurSec"]
then
return ReturnAI["END"]
end
if Var["KC_SummonBubble"]["CurSummonSequence"] <= SkillInfo["SummonNum"]
then
local CurSummonMob = Var["KC_SummonBubble"]["SummonRegenLocate"][Var["KC_SummonBubble"]["CurSummonSequence"]]
local CurSummonHandle = cMobRegen_XY( MapIndex, SkillInfo["SummonIndex"], CurSummonMob["x"], CurSummonMob["y"] )
if CurSummonHandle == nil
then
-- DebugLog("<22><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"..Var["KC_SummonBubble"]["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, SkillInfo["SummonSkillIndex"] ) == nil
then
ErrorLog("<EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"..Var["KC_SummonBubble"]["CurSummonSequence"] )
end
end
-- <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
Var["KC_SummonBubble"]["CurSummonSequence"] = Var["KC_SummonBubble"]["CurSummonSequence"] + 1
Var["KC_SummonBubble"]["SummonTime"] = Var["KC_SummonBubble"]["SummonTime"] + SkillInfo["SummonTick"]
--DebugLog("<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> : "..Var["KC_SummonBubble"]["SummonTime"])
return ReturnAI["END"]
end
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>, <20>ʱ<EFBFBD>ȭ
Var["KC_SummonBubble"]["SummonTime"] = nil
Var["KC_SummonBubble"]["CurSummonSequence"] = nil
end
--------------------------------------------------------------------------------
-- <20><> <20><> <20><>ȯ <20>۾<EFBFBD><DBBE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>, <20><> <20><><EFBFBD><EFBFBD> <20>ö<EFBFBD><C3B6>͵<EFBFBD> <20>Ǵ<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> üũ<C3BC>Ѵ<EFBFBD>
--------------------------------------------------------------------------------
if Var["KingCrabProcess"]["SkillEndTime"] > Var["CurSec"]
then
--DebugLog("<22>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..")
return ReturnAI["END"]
end
if Var["KingCrabProcess"]["SkillEndTime"] <= Var["CurSec"]
then
--DebugLog("<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ö<EFBFBD><C3B6><EFBFBD> <20>ð<EFBFBD>!")
local AbStateList = SkillInfo["AbState_To_KingCrab"]
cResetAbstate( Handle, AbStateList["NotTargetted"]["Index"] )
Var["KC_SummonBubble"] = nil
-- <20><>ų ó<><C3B3> <20>ٳ<EFBFBD><D9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
Var[Handle]["IsProgressSpecialSkill"] = false
Var["KingCrabProcess"]["SkillStartTime"] = 0
Var["KingCrabProcess"]["SkillWorkTime"] = 0
Var["KingCrabProcess"]["SkillEndTime"] = 0
cAIScriptSet( Handle )
return ReturnAI["END"]
end
end
return ReturnAI["END"]
end