638 lines
16 KiB
Lua
Raw Normal View History

2023-06-26 04:40:53 -07:00
--------------------------------------------------------------------------------
-- KDArena Routine --
--------------------------------------------------------------------------------
function DummyRoutineFunc( )
cExecCheck "DummyRoutineFunc"
end
----------------------------------------------------------------------
-- MapLogin Function
----------------------------------------------------------------------
function PlayerMapLogin( MapIndex, Handle )
cExecCheck "PlayerMapLogin"
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : ŷ<><C5B7> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>, <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><> <20><>ȣ, <20>÷<EFBFBD><C3B7>̾<EFBFBD> ij<><C4B3> <20><>ȣ
local Var = InstanceField[ MapIndex ]
local CurSec = cCurrentSecond()
local TeamNumber = cGetKQTeamType( Handle ) + 1
local CharNo = cGetCharNo( Handle )
DebugLog( "TeamNumer : "..TeamNumber )
if Var == nil
then
return
end
if CurSec == nil
then
return
end
if TeamNumber == nil
then
return
end
if CharNo == nil
then
return
end
-- <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><>, <20>ڵ<EFBFBD>, <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD>,
local PlayerCount = #Var[ "Player" ]
local OldHandle = 0
local PlayerInsert = true
-- <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD><EFBFBD> ã<><C3A3>
for i = 1, PlayerCount
do
if CharNo == Var[ "Player" ][ i ][ "CharNo" ]
then
-- <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD>, <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD>
PlayerInsert = false
OldHandle = Var[ "Player" ][ i ][ "Handle" ]
Var[ "Player" ][ i ][ "Handle" ] = Handle
Var[ "Player" ][ i ][ "FlagPickSec" ] = CurSec + ArenaFlag[ "PickDelay" ]
Var[ "Player" ][ i ][ "InMap" ] = true
-- <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><> <20><>ȣ<EFBFBD><C8A3> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD>
if TeamNumber ~= Var[ "Player" ][ i ][ "TeamNumber" ]
then
-- <20><> <20><><EFBFBD><EFBFBD>
local DelTeamNumber = Var[ "Player" ][ i ][ "TeamNumber" ]
local TeamMemberCount = #Var[ "Team" ][ DelTeamNumber ][ "Member" ]
-- <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> <20><><EFBFBD><EFBFBD>
for DelMemberIndex = 1, TeamMemberCount
do
if Var[ "Team" ][ DelTeamNumber ][ "Member" ] == OldHandle
then
for MoveIndex = DelMemberIndex, ( TeamMemberCount - 1 )
do
Var[ "Team" ][ DelTeamNumber ][ "Member" ][ MoveIndex ] = Var[ "Team" ][ DelTeamNumber ][ "Member" ][ ( MoveIndex + 1 ) ]
end
Var[ "Team" ][ DelTeamNumber ][ "Member" ][ TeamMemberCount ] = nil
break
end
end
-- <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> <20><><EFBFBD><EFBFBD>
for MoveIndex = i, ( PlayerCount - 1 )
do
Var[ "Player" ][ MoveIndex ] = Var[ "Player" ][ ( MoveIndex + 1 ) ]
end
Var[ "Player" ][ PlayerCount ] = nil
return
end
break
end
end
if PlayerInsert == true
then
------------------------------------------------------------
-- <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD>
------------------------------------------------------------
if TeamNumber >= DEF_TEAM
then
return
end
local P_InsertIndex = ( PlayerCount + 1 )
local T_InsertIndex = ( #Var[ "Team" ][ TeamNumber ][ "Member" ] + 1 )
-- <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> <20>߰<EFBFBD>
Var[ "Player" ][ P_InsertIndex ] = {}
Var[ "Player" ][ P_InsertIndex ][ "Handle" ] = Handle
Var[ "Player" ][ P_InsertIndex ][ "CharNo" ] = CharNo
Var[ "Player" ][ P_InsertIndex ][ "FlagPickSec" ] = CurSec + ArenaFlag[ "PickDelay" ]
Var[ "Player" ][ P_InsertIndex ][ "InMap" ] = true
Var[ "Player" ][ P_InsertIndex ][ "TeamNumber" ] = TeamNumber
-- <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> <20>߰<EFBFBD>
Var["Team"][ TeamNumber ][ "Member" ][ T_InsertIndex ] = Handle
elseif OldHandle ~= Handle
then
------------------------------------------------------------
-- <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
------------------------------------------------------------
local MemberCount = #Var["Team"][ TeamNumber ][ "Member" ]
-- <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
for i = 1, MemberCount
do
if OldHandle == Var["Team"][ TeamNumber ][ "Member" ][ i ]
then
Var["Team"][ TeamNumber ][ "Member" ][ i ] = Handle
break
end
end
end
-- <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
for i = 1, #TeamUniform[ TeamNumber ]
do
cViewSlotEquip( Handle, TeamUniform[ TeamNumber ][ i ] )
end
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ƴϸ<C6B4> <20>Լ<EFBFBD> <20><><EFBFBD><EFBFBD>
if Var[ "KQLimitTime" ] <= 0
then
return
end
-- <20>Ʒ<EFBFBD><C6B7><EFBFBD> <20><><EFBFBD><EFBFBD>, <20>ð<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
cScoreInfo( Handle, #TeamNumberList, Var[ "Team" ][ RED_TEAM ][ "Score" ], Var[ "Team" ][ BLUE_TEAM ][ "Score" ] )
cTimer_Obj( Handle, ( Var[ "KQLimitTime" ] - CurSec ) )
end
----------------------------------------------------------------------
-- Click Functions
----------------------------------------------------------------------
function ArenaGate_Click( NPCHandle, PlayerHandle, PlayerCharNo, Arg )
cExecCheck "ArenaGate_Click"
-- <20><><EFBFBD>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local NPCMapIndex = cGetCurMapIndex( NPCHandle )
if NPCMapIndex == nil
then
return
end
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : ŷ<><C5B7> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
local Var = InstanceField[ NPCMapIndex ]
if Var == nil
then
return
end
if Var[ "ArenaGate" ] == nil
then
return
end
-- <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> ã<><C3A3>
local WarpInfo = nil
for i = 1, Var[ "ArenaGate" ][ "Count" ]
do
if Var[ "ArenaGate" ][ i ] == NPCHandle
then
WarpInfo = WarpGate[ i ]
if WarpInfo == nil
then
return
end
break
end
end
-- <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><> Ȯ<><C8AE>
for i = 1, #Var[ "Player" ]
do
if Var[ "Player" ][ i ][ "CharNo" ] == PlayerCharNo
then
if Var[ "Player" ][ i ][ "TeamNumber" ] == WarpInfo[ "Team" ]
then
cCastTeleport( PlayerHandle, "SpecificCoord", WarpInfo[ "X" ], WarpInfo[ "Y" ] );
end
end
end
end
----------------------------------------------------------------------
-- Entrance Functions
----------------------------------------------------------------------
function ArenaFlag_Entrance( Handle, MapIndex )
cExecCheck "ArenaFlag_Entrance"
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : ŷ<><C5B7> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>
local Var = InstanceField[ MapIndex ]
local CurSec = cCurrentSecond()
if Var == nil
then
return ReturnAI[ "END" ]
end
if CurSec == nil
then
return ReturnAI[ "END" ]
end
if Var[ "KQLimitTime" ] == 0
then
return ReturnAI[ "END" ]
end
local ArenaFlagInfo = Var[ "ArenaFlag" ]
if ArenaFlagInfo == nil
then
return ReturnAI[ "END" ]
end
-- <20><> <20><>ȣ ã<><C3A3>
local FlagTeamNumber = DEF_TEAM
for i = 1, #TeamNumberList
do
if ArenaFlagInfo[ TeamNumberList[ i ] ][ "Handle" ] == Handle
then
FlagTeamNumber = TeamNumberList[ i ]
end
end
if FlagTeamNumber == DEF_TEAM
then
return ReturnAI[ "END" ]
end
------------------------------------------------------------
-- <20><><EFBFBD><EFBFBD> 30 <20><> <20><> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20>̵<EFBFBD>
------------------------------------------------------------
if ArenaFlagInfo[ FlagTeamNumber ][ "Drop_LifeTime" ] ~= nil
then
if ArenaFlagInfo[ FlagTeamNumber ][ "Drop_LifeTime" ] <= CurSec
then
local Regen_Flag = RegenInfo[ "NPC" ][ "ArenaFlag" ][ FlagTeamNumber ]
local Regen_Handle = nil
-- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
cNPCVanish( Handle )
ArenaFlagInfo[ FlagTeamNumber ][ "Handle" ] = nil
-- <20><><EFBFBD><EFBFBD> <20><>ȯ
Regen_Handle = cMobRegen_XY( Var[ "MapIndex" ], Regen_Flag[ "Index" ], Regen_Flag[ "X" ], Regen_Flag[ "Y" ], Regen_Flag[ "Dir" ] )
if Regen_Handle ~= nil
then
cSetAIScript ( MainLuaScriptPath, Regen_Handle )
cAIScriptFunc( Regen_Handle, "Entrance", "ArenaFlag_Entrance" )
ArenaFlagInfo[ FlagTeamNumber ][ "Handle" ] = Regen_Handle
ArenaFlagInfo[ FlagTeamNumber ][ "PlayerHandle" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "PlayerTeam" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "Drop_LifeTime" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "X" ] = Regen_Flag[ "X" ]
ArenaFlagInfo[ FlagTeamNumber ][ "Y" ] = Regen_Flag[ "Y" ]
ArenaFlagInfo[ FlagTeamNumber ][ "GoalConditionNoticeTime"] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "Penalty"] = nil
end
-- <20><><EFBFBD><EFBFBD> ȸ<><C8B8> <20>˸<EFBFBD>
cScriptMessage( Var[ "MapIndex" ], ArenaFlag[ FlagTeamNumber ][ "ScriptMsg" ][ "Return_Flag" ] )
return ReturnAI[ "END" ]
end
end
------------------------------------------------------------
-- <20><>ó<EFBFBD><C3B3> <20>÷<EFBFBD><C3B7>̾ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
------------------------------------------------------------
local PlayerList = { cNearObjectList( Handle, ArenaFlag[ "CheckDistance_Falg" ], ObjectType[ "Player" ] ) }
for i = 1, #PlayerList
do
-- <20>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD>
for PlayerIndex = 1, #Var[ "Player" ]
do
-- <20>ڵ<EFBFBD>, <20><><EFBFBD><EFBFBD> ȹ<><C8B9> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20><><EFBFBD><EFBFBD>
if Var[ "Player" ][ PlayerIndex ][ "Handle" ] == PlayerList[ i ] and
Var[ "Player" ][ PlayerIndex ][ "FlagPickSec" ] <= CurSec
then
-- <20><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> Ȯ<><C8AE>( <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
local bAbstateCheck = false
for j = 1, #ArenaFlag[ "Drop_Abstate" ]
do
if cAbstateRestTime( PlayerList[ i ], ArenaFlag[ "Drop_Abstate" ][ j ] ) ~= nil
then
bAbstateCheck = true
break
end
end
if bAbstateCheck == false
then
if Var[ "Player" ][ PlayerIndex ][ "TeamNumber" ] == FlagTeamNumber
then
if ArenaFlagInfo[ FlagTeamNumber ][ "Drop_LifeTime" ] ~= nil
then
------------------------------------------------------------
-- <20>Ʊ<EFBFBD> : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><>ȯ
------------------------------------------------------------
local Regen_Flag = RegenInfo[ "NPC" ][ "ArenaFlag" ][ FlagTeamNumber ]
local Regen_Handle = nil
-- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
cNPCVanish( Handle )
ArenaFlagInfo[ FlagTeamNumber ][ "Handle" ] = nil
-- <20><><EFBFBD><EFBFBD> <20><>ȯ
Regen_Handle = cMobRegen_XY( Var[ "MapIndex" ], Regen_Flag[ "Index" ], Regen_Flag[ "X" ], Regen_Flag[ "Y" ], Regen_Flag[ "Dir" ] )
if Regen_Handle ~= nil
then
cSetAIScript ( MainLuaScriptPath, Regen_Handle )
cAIScriptFunc( Regen_Handle, "Entrance", "ArenaFlag_Entrance" )
ArenaFlagInfo[ FlagTeamNumber ][ "Handle" ] = Regen_Handle
ArenaFlagInfo[ FlagTeamNumber ][ "PlayerHandle" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "PlayerTeam" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "Drop_LifeTime" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "X" ] = Regen_Flag[ "X" ]
ArenaFlagInfo[ FlagTeamNumber ][ "Y" ] = Regen_Flag[ "Y" ]
ArenaFlagInfo[ FlagTeamNumber ][ "GoalConditionNoticeTime" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "Penalty"] = nil
end
-- <20><><EFBFBD><EFBFBD> ȸ<><C8B8> <20>˸<EFBFBD>
cScriptMessage( Var[ "MapIndex" ], ArenaFlag[ FlagTeamNumber ][ "ScriptMsg" ][ "Return_Flag" ] )
return ReturnAI[ "END" ]
end
else
------------------------------------------------------------
-- <20><><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD> ȹ<><C8B9>
------------------------------------------------------------
--
local FlagData = ArenaFlag[ FlagTeamNumber ]
local PenaltyData = ArenaFlag["Penalty"]
local Player_X, Player_Y = cObjectLocate( Handle )
if X == nil or Y == nil
then
Player_X = 0
Player_Y = 0
end
-- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
ArenaFlagInfo[ FlagTeamNumber ][ "Handle" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "PlayerHandle" ] = Var[ "Player" ][ PlayerIndex ][ "Handle" ]
ArenaFlagInfo[ FlagTeamNumber ][ "PlayerTeam" ] = Var[ "Player" ][ PlayerIndex ][ "TeamNumber" ]
ArenaFlagInfo[ FlagTeamNumber ][ "Drop_LifeTime" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "X" ] = Player_X
ArenaFlagInfo[ FlagTeamNumber ][ "Y" ] = Player_Y
ArenaFlagInfo[ FlagTeamNumber ][ "GoalConditionNoticeTime" ] = nil
ArenaFlagInfo[ FlagTeamNumber ][ "Penalty"] = {}
ArenaFlagInfo[ FlagTeamNumber ][ "Penalty"]["Step"] = 1
ArenaFlagInfo[ FlagTeamNumber ][ "Penalty"]["CheckTime"] = CurSec + PenaltyData["Step"][ 1 ]["CheckTick"]
-- <20><><EFBFBD><EFBFBD> ȹ<><C8B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <20>ɱ<EFBFBD>
cSetAbstate( PlayerList[i], FlagData["Abstate"]["Index"],
FlagData["Abstate"]["Str"],
FlagData["Abstate"]["KeepTime"] )
-- <20><><EFBFBD><EFBFBD> ȹ<><C8B9><EFBFBD><EFBFBD> <20>г<EFBFBD>Ƽ <20>ο<EFBFBD>
for PenaltyIndex = 1, #PenaltyData["Abstate"]
do
cSetAbstate( PlayerList[i], PenaltyData["Abstate"][PenaltyIndex]["Index"],
PenaltyData["Abstate"][PenaltyIndex]["Str"],
PenaltyData["Abstate"][PenaltyIndex]["KeepTime"] )
end
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ǥ<><C7A5>
cDirectionalArrow( PlayerList[ i ], ArenaFlag[ FlagTeamNumber ][ "GoalPoint" ][ "X" ], ArenaFlag[ FlagTeamNumber ][ "GoalPoint" ][ "Y" ] )
-- <20><><EFBFBD><EFBFBD> ȹ<><C8B9> <20>˸<EFBFBD><CBB8><EFBFBD>
local PlayerName = cGetPlayerName( PlayerList[ i ] )
if PlayerName == nil
then
PlayerName = ""
end
cScriptMessage( Var[ "MapIndex" ], ArenaFlag[ FlagTeamNumber ][ "ScriptMsg" ][ "Have_Flag" ], PlayerName )
cNPCVanish( Handle )
return ReturnAI[ "END" ]
end
end
break
end
end
end
return ReturnAI[ "END" ]
end
function ArenaStone_Entrance( Handle, MapIndex )
cExecCheck "ArenaStone_Entrance"
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : ŷ<><C5B7> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>
local Var = InstanceField[ MapIndex ]
local CurSec = cCurrentSecond()
if Var == nil
then
return ReturnAI[ "END" ]
end
if CurSec == nil
then
return ReturnAI[ "END" ]
end
if Var[ "ArenaStone" ] == nil
then
return ReturnAI[ "END" ]
end
if Var[ "ArenaStone" ][ "SkillUseTime" ] == nil
then
return ReturnAI[ "END" ]
end
if Var[ "ArenaStone" ][ "SkillUseTime" ][ Handle ] == nil
then
-- <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.
Var[ "ArenaStone" ][ "SkillUseTime" ][ Handle ] = CurSec + ArenaStone[ "IntervalTime" ]
return ReturnAI[ "END" ]
end
-- <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD> Ȯ<><C8AE>
if Var[ "ArenaStone" ][ "SkillUseTime" ][ Handle ] <= CurSec
then
-- <20><>ų <20><><EFBFBD><EFBFBD>
cSkillBlast( Handle, Handle, ArenaStone[ "SkillIndex" ] )
-- <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD> <20><><EFBFBD><EFBFBD>
Var[ "ArenaStone" ][ "SkillUseTime" ][ Handle ] = CurSec + ArenaStone[ "IntervalTime" ]
end
return ReturnAI[ "END" ]
end
function ArenaCrystal_Entrance( Handle, MapIndex )
cExecCheck "ArenaCrystal"
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : ŷ<><C5B7> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>, ũ<><C5A9><EFBFBD><EFBFBD>Ż HP <20><><EFBFBD><EFBFBD>
local Var = InstanceField[ MapIndex ]
local CurSec = cCurrentSecond()
local CurHP, MaHP = cObjectHP( Handle )
if Var == nil
then
return ReturnAI[ "END" ]
end
if CurSec == nil
then
return ReturnAI[ "END" ]
end
if CurHP == nil
then
return returnAI[ "END" ]
end
if Var[ "ArenaCrystal" ] == nil
then
return ReturnAI[ "END" ]
end
-- ũ<><C5A9><EFBFBD><EFBFBD>Ż HP <20><> <20><><EFBFBD><EFBFBD> ó<><C3B3>
if CurHP > 1
then
------------------------------------------------------------
-- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><>ų
------------------------------------------------------------
if Var[ "ArenaCrystal" ][ "SkillUseTime" ] == nil
then
-- <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.
Var[ "ArenaCrystal" ][ "SkillUseTime" ] = CurSec + ArenaCrystal[ "Routine" ][ "BlastTime" ]
return ReturnAI[ "END" ]
end
-- <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD> Ȯ<><C8AE>
if Var[ "ArenaCrystal" ][ "SkillUseTime" ] <= CurSec
then
-- ũ<><C5A9><EFBFBD><EFBFBD>Ż <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local X, Y = cObjectLocate( Handle )
if X == nil or Y == nil
then
return ReturnAI[ "END" ]
end
-- <20><>ų <20><><EFBFBD><EFBFBD>
--cMagicFieldSpread( Handle, X, Y, 0, ArenaCrystal[ "Routine" ][ "MagicField" ], 0 )
cSkillBlast( Handle, Handle, ArenaCrystal[ "Routine" ][ "SkillIndex" ] )
-- <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD> <20><><EFBFBD><EFBFBD>
Var[ "ArenaCrystal" ][ "SkillUseTime" ] = CurSec + ArenaCrystal[ "Routine" ][ "BlastTime" ]
end
else
------------------------------------------------------------
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><>ų
------------------------------------------------------------
if Var[ "ArenaCrystal" ][ "SkillUseTime" ] ~= nil
then
if Var[ "ArenaCrystal" ][ "SkillUseTime" ] <= CurSec
then
-- <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>
cSkillBlast( Handle, Handle, ArenaCrystal[ "Dead" ][ "SkillIndex" ] )
Var[ "ArenaCrystal" ][ "SkillUseTime" ] = nil
Var[ "ArenaCrystal" ][ "VanishTime" ] = CurSec + ArenaCrystal[ "Dead" ][ "BlastTime" ]
end
end
-- <20>Ҹ<EFBFBD><D2B8>ð<EFBFBD> Ȯ<><C8AE>
if Var[ "ArenaCrystal" ][ "VanishTime" ] ~= nil
then
if Var[ "ArenaCrystal" ][ "VanishTime" ] <= CurSec
then
-- <20>ڵ<EFBFBD> <20>ʱ<EFBFBD>ȭ
Var[ "ArenaCrystal" ][ "Handle" ] = nil
-- <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20>Ҹ<EFBFBD>
cAIScriptSet( Handle )
cKillObject( Handle )
end
end
end
return ReturnAI[ "END" ]
end