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/AIScript/E_XTreeBig.lua

2254 lines
73 KiB

require( "common" )
--------------------------------------------------------------------
--<EFBFBD>ءءءءءءءءءءءءءءءءءءءءءءءءءءءءءءءء<EFBFBD>
--// [S_21003] ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_2014_<EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
---------------------------------------------------------START-----
--<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>
TREE_DEFENCE_TABLE =
{
TREE_DIE = { AniIndex = "E_XTreeBig_Idle05", }, -- <EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TREE_REGEN = { AniIndex = "E_XTreeBig_Idle00", }, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǵ<EFBFBD><EFBFBD><EFBFBD>( 0<EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD> )
}
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD>Ÿ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--------------------------------------------------------------------
SANTA_KEBING_MOB_REGEN_TABLE =
{
RunSpeed = 700,
MobIndex = "KebingX_14",
{ RegenX = 18427, RegenY = 15754, Dir = 0,},
{ RegenX = 13598, RegenY = 15727, Dir = 0,},
{ RegenX = 14685, RegenY = 9746, Dir = 0,},
{ RegenX = 11327, RegenY = 13423, Dir = 0,},
}
SANTA_KEBING_MOB_ANI_TABLE =
{
CastAniIndex = "KebingKnockBackCasting",
CastAniKeepTime = 3, -- CastAniIndex <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>. <EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD>ŭ CastAniIndex <EFBFBD>ִ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>, SwingAniIndex<EFBFBD><EFBFBD> <EFBFBD>Ѿ
SwingAniIndex = "KebingKnockBackSwing",
}
-- <EFBFBD>̵<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>°<EFBFBD> flag
MOVESTATE = {}
MOVESTATE["STOP"] = "STOP"
MOVESTATE["MOVE"] = "MOVE"
PATHTYPE_CHK_DLY = 1
PATHTYPE_GAP = 100 -- <EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ǥüũ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD>
SANTA_KEBING_PATH_TABLE =
{
-- RegenX = 18427, RegenY = 15754<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PATH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
--{ x = 18427, y = 15754, }, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ)
{ x = 17473, y = 14197, },
{ x = 16386, y = 13974, },
{ x = 15572, y = 13385, }, -- Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ǥ
},
-- RegenX = 13598, RegenY = 15727<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PATH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
--{ x = 13598, y = 15727, }, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ)
{ x = 14139, y = 14478, },
{ x = 15572, y = 13385, },
},
-- RegenX = 14685, RegenY = 9746<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PATH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
--{ x = 14685, y = 9746, }, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ)
{ x = 14954, y = 11265, },
{ x = 15555, y = 11704, },
{ x = 15572, y = 13385, },
},
-- RegenX = 11327, RegenY = 13423<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PATH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
--{ x = 11327, y = 13423, }, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ)
{ x = 12547, y = 13423, },
{ x = 13178, y = 12963, },
{ x = 14022, y = 13411, },
{ x = 15572, y = 13385, },
},
}
--------------------------------------------------------------------
--// ũ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD> ó<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--------------------------------------------------------------------
CRUSHBALL_TABLE =
{
MobIndex = "BallCrush",
SkillIndex = "BallCrush_Skill01_W",
}
-- ũ<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>
CRUSHBALL_ABSTATE_TABLE =
{
AbStateHitRate = 300, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>߻<EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
AbstateIndex = "StaKnockBackFly",
Strength = 1,
KeepTime = 1,
}
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--------------------------------------------------------------------
DEFENCE_EVENT_REWARD_ABSTATE_TABLE =
{
AbstateIndex = "StaXmas_StatUp",
Strength = 1,
KeepTime = (60*60*1000),
Range = 10000, -- <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> Range<EFBFBD>ȿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> ij<EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
}
--------------------------------------------------------------------
--// Script
--------------------------------------------------------------------
E_XKebingChat01 = "E_XKebingChat01" -- <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>!!
E_X_Notice_DefenseStart = "E_X_Notice_DefenseStart" -- ũ<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>.
E_X_Notice_DefenseSucc = "E_X_Notice_DefenseSucc" -- ũ<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>.
E_X_Notice_DefenseFail = "E_X_Notice_DefenseFail" -- ũ<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>.
E_X_Notice_TreeRegen = "E_X_Notice_TreeRegen" -- <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>
--------------------------------------------------------------------
NEED_KEBING_KILLCOUNT_FOR_DEFENCE_EVENT = 100 -- <EFBFBD><EFBFBD>ٷ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> n<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD>
SANTAKEBING_CRUSHBALL_HIT_COUNT = 50 -- <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD> n<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SANTAKEBING_RANGE_WITH_TREE = 50 -- <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SANTAKEBING_RANGE_WITH_CRUSHBALL = 50 -- <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DEFENCE_EVENT_FAIL_TREE_REGEN_TIME = 15 -- <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>
--------------------------------------------------------------------
NC_LOG_GAME_CHRISTMAS_DECO_TRY_BIG_TREE = 2045 -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD>ٹ̱<EFBFBD>õ<EFBFBD>
NC_LOG_GAME_CHRISTMAS_DECO_TRY_SMALL_TREE = 2046 -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD>ٹ̱<EFBFBD>õ<EFBFBD>( <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD> )
NC_LOG_GAME_CHRISTMAS_DECO_COMPLETE_BIG_TREE = 2047 -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD>ٹ̱<EFBFBD>ϼ<EFBFBD>
NC_LOG_GAME_CHRISTMAS_DECO_COMPLETE_SMALL_TREE = 2048 -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD>ٹ̱<EFBFBD>ϼ<EFBFBD>( <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD> )
NC_LOG_GAME_CHRISTMAS_START_DEFENCE = 2049 -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NC_LOG_GAME_CHRISTMAS_SUCC_DEFENCE = 2050 -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--------------------------------------------------------------------
--<EFBFBD>ءءءءءءءءءءءءءءءءءءءءءءءءءءءءءءءء<EFBFBD>
--// [S_21003] ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_2014_<EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
---------------------------------------------------------END-------
--<EFBFBD>ءءءءءءءءءءءءءءءءءءءءءءءءءءءءءءءء<EFBFBD>
--------------------------------------------------------------------
--------------------------------------------------------------------
--// Defined
--------------------------------------------------------------------
VALID_MAP_INDEX = "Eld" -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>
IMMORTAL_INDEX = "StaImmortal" -- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ǯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD>
TREE_CAST_TIME = (2*1000) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
TREE_CAST_ANI = "ActionProduct" -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>
TREE_CAST_ITEM = "E_XTreeDeco" -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ҹ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--------------------------------------------------------------------
--// Script
--------------------------------------------------------------------
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD≯<EFBFBD>
SCRIPT_FILE_NAME = "Event"
-- <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>
E_X_Notice_TreeUp01 = "E_X_Notice_TreeUp01" -- Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>þ<EFBFBD>ϴ<EFBFBD>.
E_X_Notice_TreeUp02 = "E_X_Notice_TreeUp02" -- Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3<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>.
E_X_Notice_TreeUp03 = "E_X_Notice_TreeUp03" -- Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4<EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <EFBFBD>Һ<EFBFBD><EFBFBD><EFBFBD> ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
E_X_Notice_TreeUp04 = "E_X_Notice_TreeUp04" -- Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5<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>.
E_X_Notice_TreeUp05 = "E_X_Notice_TreeUp05" -- <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>.
E_X_Notice_TreeInit = "E_X_Notice_TreeInit" -- <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>.
E_X_Notice_Buff01 = "E_X_Notice_Buff01" -- ũ<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>
E_X_Notice_Buff02 = "E_X_Notice_Buff02" -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ҹ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
E_X_Notice_Buff03 = "E_X_Notice_Buff03" -- <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>
E_X_Notice_Buff04 = "E_X_Notice_Buff04" -- <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD> <EFBFBD>Ҹ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
E_X_SysMsg_Deco01 = "E_X_SysMsg_Deco01" -- ũ<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>.
E_X_SysMsg_Deco02 = "E_X_SysMsg_Deco02" -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ҹ<EFBFBD> Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޾ҽ<EFBFBD><EFBFBD>ϴ<EFBFBD>.
E_X_SysMsg_Deco03 = "E_X_SysMsg_Deco03" -- <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>.
E_X_SysMsg_Deco04 = "E_X_SysMsg_Deco04" -- <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD> <EFBFBD>Ҹ<EFBFBD> Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޾ҽ<EFBFBD><EFBFBD>ϴ<EFBFBD>.
E_X_SysMsg_Deco05 = "E_X_SysMsg_Deco05" -- <EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ҹ<EFBFBD> Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޾ҽ<EFBFBD><EFBFBD>ϴ<EFBFBD>.
E_X_ErrMsg_DecoFail = "E_X_ErrMsg_DecoFail" -- Ʈ<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>.
E_X_SysMsg_DecoFail = "E_X_SysMsg_Fail1" -- <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>.
E_X_SysMsg_DecoFail_2 = "E_X_SysMsg_Fail2" -- Cannot use the item due to an Abnormal State
--------------------------------------------------------------------
--// <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>
-- NeedCount : <EFBFBD>ش<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>. (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
-- LevDwnKeep : 1 = 1Sec, <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>
TREE_LEVEL_TABLE =
{
{ NeedCount = 50 , AniIndex = "E_XTreeBig_Idle01", LevDwnKeep = 100, Notice = E_X_Notice_TreeUp01, },
{ NeedCount = 100, AniIndex = "E_XTreeBig_Idle02", LevDwnKeep = 100, Notice = E_X_Notice_TreeUp02, },
{ NeedCount = 150, AniIndex = "E_XTreeBig_Idle03", LevDwnKeep = 100, Notice = E_X_Notice_TreeUp03, },
{ NeedCount = 200, AniIndex = "E_XTreeBig_Idle04", LevDwnKeep = 600, Notice = E_X_Notice_TreeUp04, },
}
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
-- RegenInterval: 1 = 1Sec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ǵ<EFBFBD> <EFBFBD>ð<EFBFBD>.
REWARD_MOB_REGEN_TABLE =
{
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15861, CenterY = 15069, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 15612, CenterY = 11399, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
{ MobIndex = "E_XKebing", CenterX = 12342, CenterY = 11267, Range = 2000, RegenInterval = 2, },
}
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TREE_LEVEL_DOWN_EVENT_INFO =
{
MobLifeTime = 5, -- n<EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD>
MobIndex = "E_XKebing_Show", -- s<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RegenTick = 3, -- n+1ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(1Tick=0.1Sec)
RegenDist = 300, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n<EFBFBD><EFBFBD>ŭ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>
FollowGap = 180, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n<EFBFBD><EFBFBD>ŭ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>̵<EFBFBD><EFBFBD>ؼ<EFBFBD>
AniTime = 3, -- n<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AniIndex = "E_XKebing_Skill01_N", -- s<EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD>
RunSpeed = 2000, -- (n/1000)<EFBFBD><EFBFBD> <EFBFBD>̵<EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD>
RunMaxDist = 2000, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n<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>
KeepTime = 30, -- n<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>
-- KeepTime : 1000 = 1sec
-- Range : <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
REWARD_ABSTATE_TABLE =
{
Reward01 = { AbstateIndex = "StaXReward01", Strength = 1, KeepTime = (60*60*1000), Range = 1000, Notice = E_X_Notice_Buff01, },
Reward02 = { AbstateIndex = "StaXReward02", Strength = 1, KeepTime = (60*60*1000), Range = 1000, Notice = E_X_Notice_Buff02, },
Reward03 = { AbstateIndex = "StaXReward03", Strength = 1, KeepTime = (60*60*1000), Range = 1000, Notice = E_X_Notice_Buff03, },
Reward04 = { AbstateIndex = "StaXReward04", Strength = 1, KeepTime = (60*60*1000), Range = 1000, Notice = E_X_Notice_Buff04, },
}
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
-- MaxLevelKeep : 1 = 1Sec, <EFBFBD>ִ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
-- NeedCount : <EFBFBD>ش<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>. (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
SMALL_TREE_LEVEL_TABLE =
{
MaxLevelKeep = 300,
{ NeedCount = 5, AniIndex = "E_XTree_Idle01", },
{ NeedCount = 10, AniIndex = "E_XTree_Idle02", },
}
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- LevelTable : SMALL_TREE_LEVEL_TABLE <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>
-- RewardAbstate: REWARD_ABSTATE_TABLE <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>
SMALL_TREE_INFO =
{
{ MobIndex = "E_XTree_Xmas", RegenX = 14738, RegenY = 13055, Dir = 7, CastSuccMsg = E_X_SysMsg_Deco01, RewardAbstate = "Reward01", },
{ MobIndex = "E_XTree_Rudolph", RegenX = 17372, RegenY = 13673, Dir = 129, CastSuccMsg = E_X_SysMsg_Deco02, RewardAbstate = "Reward02", },
{ MobIndex = "E_XTree_Fairy", RegenX = 15582, RegenY = 13827, Dir = 43, CastSuccMsg = E_X_SysMsg_Deco03, RewardAbstate = "Reward03", },
{ MobIndex = "E_XTree_Santa", RegenX = 14797, RegenY = 13758, Dir = 132, CastSuccMsg = E_X_SysMsg_Deco04, RewardAbstate = "Reward04", },
{ MobIndex = "E_XTree_Xmas", RegenX = 16750, RegenY = 13852, Dir = 128, CastSuccMsg = E_X_SysMsg_Deco01, RewardAbstate = "Reward01", },
{ MobIndex = "E_XTree_Rudolph", RegenX = 15769, RegenY = 12928, Dir = 81, CastSuccMsg = E_X_SysMsg_Deco02, RewardAbstate = "Reward02", },
{ MobIndex = "E_XTree_Fairy", RegenX = 16517, RegenY = 12977, Dir = 53, CastSuccMsg = E_X_SysMsg_Deco03, RewardAbstate = "Reward03", },
{ MobIndex = "E_XTree_Santa", RegenX = 17363, RegenY = 13090, Dir = 146, CastSuccMsg = E_X_SysMsg_Deco04, RewardAbstate = "Reward04", },
}
--------------------------------------------------------------------
--// <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>
-- Rate : 1000000 = 100%
ITEM_DROP_TABLE =
{
SnowMan =
{
{ ItemIndex = "E_XTreeDeco", Rate = 700000, },
{ ItemIndex = "E_XCrystal", Rate = 500000, },
{ ItemIndex = "E_BallSnow02", Rate = 500000, },
},
}
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- CenterX, CenterY, Range : <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>߽<EFBFBD> <EFBFBD><EFBFBD>ǥ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- LifeTime_Min, LifeTime_Max : 1 = 1Sec, <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>
-- DropTable : ITEM_DROP_TABLE <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>
SNOWMAN_INFO =
{
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 16000, CenterY = 15640, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 14813, CenterY = 10438, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 11142, CenterY = 10910, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
{ MobIndex = "E_XSnowman", CenterX = 18261, CenterY = 10737, Range = 1000, LifeTime_Min = 5, LifeTime_Max = 7, DropTable = "SnowMan", },
}
--------------------------------------------------------------------
--// ũ<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>
MemBlock = {}
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--------------------------------------------------------------------
function E_XTreeBig( Handle, MapIndex )
cExecCheck( "E_XTreeBig" )
if MapIndex ~= VALID_MAP_INDEX
then
cAIScriptSet( Handle )
return ReturnAI["END"]
end
if cIsObjectDead( Handle ) == 1
then
KebingVanishAll( MemBlock[Handle] )
cAIScriptSet( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
end
local Var = MemBlock[Handle]
local CurSec = cCurrentSecond()
if Var == nil
then
MemBlock[Handle] = {}
Var = MemBlock[Handle]
Var["MapIndex"] = MapIndex
Var["Handle"] = Handle
Var["CurSec"] = CurSec
Var["NextTick"] = CurSec
Var["Level"] = 0
Var["Count"] = 0
Var["RegenKebing"] = false
Var["KebingList"] = {}
Var["KebingRegenList"] = {}
Var["LevelDownEvent"] = false
Var["EventKeepTime"] = CurSec
Var["TickCount"] = TREE_LEVEL_DOWN_EVENT_INFO["RegenTick"]
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ٷ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
Var["KebingDeadCount"] = 0
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
MemBlock["TreeHandle"] = Handle
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD>
MemBlock["BonusDefenceEvent"] = {}
MemBlock["BonusDefenceEvent"]["IsProgress"] = false -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD>ߵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD>
MemBlock["BonusDefenceEvent"]["IsSantaKebingCrush"] = false -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ߴ°<EFBFBD>
cAIScriptFunc( Handle, "NPCClick", "TreeClick" )
cAIScriptFunc( Handle, "NPCMenu", "TreeCastingComplete" )
cSetFieldScript ( Var["MapIndex"], Handle )
cFieldScriptFunc ( Var["MapIndex"], "ServantSummon", "ServantSummon" )
end
-- 0.1<EFBFBD>ʸ<EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
if Var["NextTick"] <= CurSec
then
Var["CurSec"] = CurSec
Var["NextTick"] = Var["NextTick"] + 0.1
else
return ReturnAI["END"]
end
TreeProcess( Var )
SmallTreeProcess( Var )
SnowManProcess( Var )
SantaKebingRegenProcess( Var )
return ReturnAI["END"]
end
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
--------------------------------------------------------------------
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
function TreeProcess( Var )
cExecCheck( "TreeProcess" )
if Var == nil
then
return
end
if Var["CurSec"] == nil
then
return
end
if Var["Level"] == nil
then
return
end
if Var["Count"] == nil
then
return
end
if Var["RegenKebing"] == nil
then
return
end
if Var["LevelDownEvent"] == nil
then
return
end
-- TreeCastingComplete <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
if Var["LevDwnKeep"] ~= nil
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var["LevDwnKeep"] <= Var["CurSec"]
then
-- ù <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><EFBFBD≯<EFBFBD>
if Var["Level"] == #TREE_LEVEL_TABLE
then
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ӷα<EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ʈ<EFBFBD><EFBFBD> <EFBFBD>ϼ<EFBFBD> Ƚ<EFBFBD><EFBFBD>( 5<EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٹ̱<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
cSendGameLogDataType_5( NC_LOG_GAME_CHRISTMAS_DECO_COMPLETE_BIG_TREE, 0, 0, 0 )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cNotice( Var["MapIndex"], SCRIPT_FILE_NAME, E_X_Notice_TreeUp05 )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var["RegenKebing"] = true
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٿ<EFBFBD>
Var["Level"] = Var["Level"] - 1
if Var["Level"] <= 0
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- cNotice( Var["MapIndex"], SCRIPT_FILE_NAME, E_X_Notice_TreeInit )
-- <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>
cAnimate( Var["Handle"], "stop" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var["RegenKebing"] = false
KebingVanishAll( Var )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD>Ʈ <EFBFBD>ʱ<EFBFBD>ȭ
Var["Level"] = 0
Var["Count"] = 0
Var["LevDwnKeep"] = nil
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 100 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ѱ<EFBFBD> <EFBFBD>׿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <EFBFBD>߻<EFBFBD>
if Var["KebingDeadCount"] >= NEED_KEBING_KILLCOUNT_FOR_DEFENCE_EVENT
then
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ӷα<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>κ<EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ƚ<EFBFBD><EFBFBD>
cSendGameLogDataType_5( NC_LOG_GAME_CHRISTMAS_START_DEFENCE, 0, 0, 0 )
-- <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>.
cNotice( Var["MapIndex"], SCRIPT_FILE_NAME, E_X_Notice_DefenseStart )
MemBlock["BonusDefenceEvent"]["IsProgress"] = true
else
-- <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>.
cNotice( Var["MapIndex"], SCRIPT_FILE_NAME, E_X_Notice_TreeInit )
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ʱ<EFBFBD>ȭ
Var["KebingDeadCount"] = 0
else
local CurLevData = TREE_LEVEL_TABLE[ Var["Level"] ]
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD> <EFBFBD>ð<EFBFBD>
Var["LevDwnKeep"] = Var["CurSec"] + CurLevData["LevDwnKeep"]
-- <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cAnimate( Var["Handle"], "start", CurLevData["AniIndex"] )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD> <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var["LevelDownEvent"] = true
Var["EventKeepTime"] = Var["CurSec"] + TREE_LEVEL_DOWN_EVENT_INFO["KeepTime"]
end
end
end
if Var["RegenKebing"] == true
then
KebingRegenProcess( Var )
end
if Var["LevelDownEvent"] == true
then
TreeLevelDownEventProcess( Var )
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <EFBFBD>ߵ<EFBFBD>
if MemBlock["BonusDefenceEvent"]["IsProgress"] == true
then
if MemBlock["BonusDefenceEvent"]["IsSantaKebingCrush"] == false
then
-- <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 IsSantaKebingAllDead( Var ) == true
then
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ӷα<EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ƚ<EFBFBD><EFBFBD>
cSendGameLogDataType_5( NC_LOG_GAME_CHRISTMAS_SUCC_DEFENCE, 0, 0, 0 )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD> ( Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
cNotice( Var["MapIndex"], SCRIPT_FILE_NAME, E_X_Notice_DefenseSucc )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ο<EFBFBD>
cSetAbstate_Range( Var["Handle"], DEFENCE_EVENT_REWARD_ABSTATE_TABLE["Range"], ObjectType["Player"], DEFENCE_EVENT_REWARD_ABSTATE_TABLE["AbstateIndex"], DEFENCE_EVENT_REWARD_ABSTATE_TABLE["Strength"], DEFENCE_EVENT_REWARD_ABSTATE_TABLE["KeepTime"] )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʱ<EFBFBD>ȭ <EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
MemBlock["BonusDefenceEvent"]["IsSantaKebingCrush"] = false
MemBlock["BonusDefenceEvent"]["ResetCoolTime"] = nil
MemBlock["BonusDefenceEvent"]["IsProgress"] = false
-- <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ü <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
SantaKebingVanishAll( Var )
MemBlock["SantaKebingList"] = nil
MemBlock["SantaKebingListHandle"] = nil
end
end
-- Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD>,
if MemBlock["BonusDefenceEvent"]["IsSantaKebingCrush"] == true
then
if MemBlock["BonusDefenceEvent"]["ResetCoolTime"] == nil
then
-- <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>. )
cNotice( Var["MapIndex"], SCRIPT_FILE_NAME, E_X_Notice_DefenseFail )
-- <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ü <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
SantaKebingVanishAll( Var )
MemBlock["BonusDefenceEvent"]["ResetCoolTime"] = Var["CurSec"] + DEFENCE_EVENT_FAIL_TREE_REGEN_TIME
-- <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>( <EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִ<EFBFBD> )
cAnimate( Var["Handle"], "start", TREE_DEFENCE_TABLE["TREE_DIE"]["AniIndex"] )
end
end
-- Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ǹ<EFBFBD>,
if MemBlock["BonusDefenceEvent"]["ResetCoolTime"] ~= nil
then
if MemBlock["BonusDefenceEvent"]["ResetCoolTime"] <= Var["CurSec"]
then
-- <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>. )
cNotice( Var["MapIndex"], SCRIPT_FILE_NAME, E_X_Notice_TreeRegen )
-- <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>( <EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> )
cAnimate( Var["Handle"], "start", TREE_DEFENCE_TABLE["TREE_REGEN"]["AniIndex"] )
MemBlock["BonusDefenceEvent"]["IsProgress"] = false
MemBlock["BonusDefenceEvent"]["IsSantaKebingCrush"] = false
MemBlock["BonusDefenceEvent"]["ResetCoolTime"] = nil
MemBlock["SantaKebingList"] = nil
MemBlock["SantaKebingListHandle"] = nil
end
end
end
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
function KebingRegenProcess( Var )
cExecCheck( "KebingRegenProcess" )
if Var == nil
then
return
end
if Var["CurSec"] == nil
then
return
end
if Var["KebingList"] == nil
then
return
end
if Var["KebingRegenList"] == nil
then
return
end
for i = 1, #REWARD_MOB_REGEN_TABLE do
if Var["KebingList"][i] == nil or cIsObjectDead( Var["KebingList"][i] ) == 1
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>׾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ<EFBFBD>ϰ<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ī<EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if cIsObjectDead( Var["KebingList"][i] ) == 1
then
Var["KebingDeadCount"] = Var["KebingDeadCount"] + 1
end
Var["KebingList"][i] = nil
if Var["KebingRegenList"][i] == nil
then
Var["KebingRegenList"][i] = Var["CurSec"] + REWARD_MOB_REGEN_TABLE[i]["RegenInterval"]
end
end
if Var["KebingRegenList"][i] ~= nil and Var["KebingRegenList"][i] <= Var["CurSec"]
then
Var["KebingList"][i] = cMobRegen_Circle( Var["MapIndex"], REWARD_MOB_REGEN_TABLE[i]["MobIndex"],
REWARD_MOB_REGEN_TABLE[i]["CenterX"],
REWARD_MOB_REGEN_TABLE[i]["CenterY"],
REWARD_MOB_REGEN_TABLE[i]["Range"] )
Var["KebingRegenList"][i] = nil
end
end
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
function KebingVanishAll( Var )
cExecCheck( "KebingVanishAll" )
if Var == nil
then
return
end
if Var["KebingList"] == nil
then
return
end
if Var["KebingRegenList"] == nil
then
return
end
for i = 1, #REWARD_MOB_REGEN_TABLE
do
if Var["KebingList"][i] ~= nil
then
cNPCVanish( Var["KebingList"][i] )
Var["KebingList"][i] = nil
end
Var["KebingRegenList"][i] = nil
end
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
function TreeLevelDownEventProcess( Var )
cExecCheck( "TreeLevelDownEventProcess" )
if Var == nil
then
return
end
if Var["Handle"] == nil
then
return
end
if Var["CurSec"] == nil
then
return
end
if Var["LevelDownEvent"] == nil
then
return
end
if Var["EventKeepTime"] == nil
then
return
end
if Var["TickCount"] == nil
then
return
end
if Var["LevelDownEvent"] == false
then
return
end
if Var["EventKeepTime"] <= Var["CurSec"]
then
Var["LevelDownEvent"] = false
Var["TickCount"] = TREE_LEVEL_DOWN_EVENT_INFO["RegenTick"]
return
end
if Var["TickCount"] < TREE_LEVEL_DOWN_EVENT_INFO["RegenTick"]
then
Var["TickCount"] = Var["TickCount"] + 1
return
end
Var["TickCount"] = 0
local Dir = cRandomInt( 1, 90 ) * 4
local RegenX, RegenY = cGetAroundCoord( Var["Handle"], Dir, TREE_LEVEL_DOWN_EVENT_INFO["RegenDist"] )
local MobHandle = cMobRegen_XY( Var["MapIndex"], TREE_LEVEL_DOWN_EVENT_INFO["MobIndex"], RegenX, RegenY, Dir )
if MobHandle ~= nil
then
if cAIScriptSet( MobHandle, Var["Handle"] ) ~= nil
then
cAIScriptFunc( MobHandle, "Entrance", "EventMobRoutine" )
MemBlock[MobHandle] = {}
MemBlock[MobHandle]["Handle"] = MobHandle
MemBlock[MobHandle]["MapIndex"] = Var["MapIndex"]
MemBlock[MobHandle]["CurSec"] = Var["CurSec"]
MemBlock[MobHandle]["NextTick"] = Var["CurSec"]
MemBlock[MobHandle]["LifeTime"] = Var["CurSec"] + TREE_LEVEL_DOWN_EVENT_INFO["MobLifeTime"]
MemBlock[MobHandle]["MasterHandle"] = Var["Handle"]
MemBlock[MobHandle]["GoalX"],
MemBlock[MobHandle]["GoalY"] = cGetAroundCoord( Var["Handle"], Dir, TREE_LEVEL_DOWN_EVENT_INFO["RunMaxDist"] )
end
end
end
-- <EFBFBD>̺<EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƾ
function EventMobRoutine( Handle, MapIndex )
cExecCheck( "EventMobRoutine" )
local Var = MemBlock[Handle]
local CurSec = cCurrentSecond()
if Var == nil
then
cAIScriptSet( Handle )
return ReturnAI["END"]
end
if cIsObjectDead( Handle ) == 1
then
cAIScriptSet( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
end
if cIsObjectDead( Var["MasterHandle"] ) == 1
then
cAIScriptSet( Handle )
cNPCVanish( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
end
-- <EFBFBD>̵<EFBFBD>
if Var["Step"] == nil
then
cFollow( Handle, Var["MasterHandle"], TREE_LEVEL_DOWN_EVENT_INFO["FollowGap"], 9999 )
Var["Step"] = 1
end
-- 0.1<EFBFBD>ʸ<EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
if Var["NextTick"] <= CurSec
then
Var["CurSec"] = CurSec
Var["NextTick"] = Var["NextTick"] + 0.1
else
return ReturnAI["END"]
end
-- 1<EFBFBD><EFBFBD><EFBFBD>Ǻ<EFBFBD><EFBFBD><EFBFBD> 0.1<EFBFBD>ʸ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> if<EFBFBD><EFBFBD> <EFBFBD>и<EFBFBD>
if Var["Step"] == 1
then
local MoveState, KeepTime = cGetMoveState( Handle )
if MoveState ~= nil and MoveState == 0
then
cAnimate( Handle, "start", TREE_LEVEL_DOWN_EVENT_INFO["AniIndex"] )
Var["Step"] = Var["Step"] + 1
end
elseif Var["Step"] == 2
then
local MoveState, KeepTime = cGetMoveState( Handle )
if MoveState ~= nil and MoveState == 0 and KeepTime >= TREE_LEVEL_DOWN_EVENT_INFO["AniTime"]
then
cAnimate( Handle, "stop" )
Var["Step"] = Var["Step"] + 1
end
elseif Var["Step"] == 3
then
if Var["GoalX"] ~= nil and Var["GoalY"] ~= nil
then
cRunTo( Handle, Var["GoalX"], Var["GoalY"], TREE_LEVEL_DOWN_EVENT_INFO["RunSpeed"] )
end
Var["Step"] = Var["Step"] + 1
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>
if Var["LifeTime"] <= Var["CurSec"]
then
cAIScriptSet( Handle )
cNPCVanish( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
end
return ReturnAI["END"]
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD>
function TreeClick( NPCHandle, PlyHandle, RegistNumber )
cExecCheck( "TreeClick" )
local Var = MemBlock[NPCHandle]
if Var == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Level"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Count"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if #TREE_LEVEL_TABLE == 0
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Count"] >= TREE_LEVEL_TABLE[ #TREE_LEVEL_TABLE ]["NeedCount"]
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if MemBlock["BonusDefenceEvent"]["IsProgress"] == true
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if cIsNoAttacOrNoMove( PlyHandle ) == 1
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail_2 )
return
end
cCastingBar( PlyHandle, NPCHandle, TREE_CAST_TIME, TREE_CAST_ANI )
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ϸ<EFBFBD> ó<EFBFBD><EFBFBD>
function TreeCastingComplete( NPCHandle, PlyHandle, RegistNumber, Menu )
cExecCheck( "TreeCastingComplete" )
local Var = MemBlock[NPCHandle]
if Var == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Level"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Count"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["MapIndex"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if #TREE_LEVEL_TABLE == 0
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Level"] >= #TREE_LEVEL_TABLE
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Count"] >= TREE_LEVEL_TABLE[ #TREE_LEVEL_TABLE ]["NeedCount"]
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if MemBlock["BonusDefenceEvent"]["IsProgress"] == true
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if cInvenItemDestroy( PlyHandle, TREE_CAST_ITEM, 1 ) == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_ErrMsg_DecoFail )
return
end
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_Deco05 )
Var["Count"] = Var["Count"] + 1
-- <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> 1<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cSendGameLogDataType_5( NC_LOG_GAME_CHRISTMAS_DECO_TRY_BIG_TREE, 0, 0, 0 )
local NextLevData = TREE_LEVEL_TABLE[ Var["Level"]+1 ]
if Var["Count"] >= NextLevData["NeedCount"]
then
cAnimate( NPCHandle, "start", NextLevData["AniIndex"] )
cNotice( Var["MapIndex"], SCRIPT_FILE_NAME, NextLevData["Notice"] )
Var["Level"] = Var["Level"] + 1
end
if Var["Level"] >= #TREE_LEVEL_TABLE
then
if NextLevData["LevDwnKeep"] == nil
then
Var["LevDwnKeep"] = cCurrentSecond() + 0.5
else
Var["LevDwnKeep"] = cCurrentSecond() + NextLevData["LevDwnKeep"]
end
end
--------------------------
--local CurX, CurY = cObjectLocate( Var["Handle"] )
--cEffectRegen_XY( Var["MapIndex"], "LightShield", CurX, CurY, 0, 4, 0, 1000 )
--------------------------
end
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
--------------------------------------------------------------------
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD>
function SmallTreeProcess( Var )
cExecCheck( "SmallTreeProcess" )
if Var == nil
then
return
end
if Var["MapIndex"] == nil
then
return
end
if Var["Handle"] == nil
then
return
end
if Var["SmallTreeList"] == nil
then
Var["SmallTreeList"] = {}
end
for i = 1, #SMALL_TREE_INFO
do
if Var["SmallTreeList"][i] == nil
then
Var["SmallTreeList"][i] = {}
local CurTree = Var["SmallTreeList"][i]
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CurTree["Handle"] = cMobRegen_XY( Var["MapIndex"], SMALL_TREE_INFO[i]["MobIndex"], SMALL_TREE_INFO[i]["RegenX"], SMALL_TREE_INFO[i]["RegenY"], SMALL_TREE_INFO[i]["Dir"] )
if CurTree["Handle"] ~= nil
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cResetAbstate( CurTree["Handle"], IMMORTAL_INDEX )
-- <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ʿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if cAIScriptSet( CurTree["Handle"], Var["Handle"] ) ~= nil
then
cAIScriptFunc( CurTree["Handle"], "Entrance", "SmallTreeRoutine" )
cAIScriptFunc( CurTree["Handle"], "NPCClick", "SmallTreeClick" )
cAIScriptFunc( CurTree["Handle"], "NPCMenu", "SmallTreeCastingComplete" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MemBlock[CurTree["Handle"]] = {}
MemBlock[CurTree["Handle"]]["MasterHandle"] = Var["Handle"]
MemBlock[CurTree["Handle"]]["MasterMobID"] = cGetMobID( Var["Handle"] )
MemBlock[CurTree["Handle"]]["Handle"] = CurTree["Handle"]
MemBlock[CurTree["Handle"]]["MapIndex"] = Var["MapIndex"]
MemBlock[CurTree["Handle"]]["CurSec"] = Var["CurSec"]
MemBlock[CurTree["Handle"]]["NextTick"] = Var["CurSec"]
MemBlock[CurTree["Handle"]]["Level"] = 0
MemBlock[CurTree["Handle"]]["Count"] = 0
MemBlock[CurTree["Handle"]]["DataIndex"] = i
-- <EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ<EFBFBD>ϱ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CurTree["MobID"] = cGetMobID( CurTree["Handle"] )
CurTree["RegenX"],
CurTree["RegenY"] = cObjectLocate( CurTree["Handle"] )
end
end
end
if Var["SmallTreeList"][i] ~= nil
then
if SmallTreeValidCheck( Var["SmallTreeList"][i] ) == false
then
Var["SmallTreeList"][i] = nil
end
end
end
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>)
function SmallTreeValidCheck( Var )
cExecCheck( "SmallTreeValidCheck" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if Var == nil
then
return false
end
if Var["Handle"] == nil
then
return false
end
if Var["MobID"] == nil
then
return false
end
if Var["RegenX"] == nil or Var["RegenY"] == nil
then
return false
end
-- <EFBFBD>׾<EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if cIsObjectDead( Var["Handle"] ) == 1
then
return false
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>´<EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
local MobID = cGetMobID( Var["Handle"] )
if MobID == nil
then
return false
end
if MobID ~= Var["MobID"]
then
return false
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥȮ<EFBFBD><EFBFBD>
local CurX, CurY = cObjectLocate( Var["Handle"] )
if CurX == nil or CurY == nil
then
return false
end
if CurX ~= Var["RegenX"] or CurY ~= Var["RegenY"]
then
return false
end
return true
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƾ
function SmallTreeRoutine( Handle, MapIndex )
cExecCheck( "SmallTreeRoutine" )
local Var = MemBlock[Handle]
local CurSec = cCurrentSecond()
if Var == nil
then
cAIScriptSet( Handle )
cNPCVanish( Handle )
return ReturnAI["END"]
end
if cIsObjectDead( Handle ) == 1
then
cAIScriptSet( Handle )
cNPCVanish( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
end
-- 0.1<EFBFBD>ʸ<EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
if Var["NextTick"] <= CurSec
then
Var["CurSec"] = CurSec
Var["NextTick"] = Var["NextTick"] + 0.1
else
return ReturnAI["END"]
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if MainTreeValidCheck( Var ) == false
then
cAIScriptSet( Handle )
cNPCVanish( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
end
-- SmallTreeCastingComplete <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִ<EFBFBD><EFBFBD> <EFBFBD>ɶ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
if Var["MaxLevelKeep"] ~= nil
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var["MaxLevelKeep"] <= Var["CurSec"]
then
-- <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>
cAnimate( Handle, "stop" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD>Ʈ <EFBFBD>ʱ<EFBFBD>ȭ
Var["Level"] = 0
Var["Count"] = 0
Var["MaxLevelKeep"] = nil
end
end
return ReturnAI["END"]
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>)
function MainTreeValidCheck( Var )
cExecCheck( "MainTreeValidCheck" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if Var == nil
then
return false
end
if Var["MasterHandle"] == nil
then
return false
end
if Var["MasterMobID"] == nil
then
return false
end
-- <EFBFBD>׾<EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if cIsObjectDead( Var["MasterHandle"] ) == 1
then
return false
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>´<EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
local MobID = cGetMobID( Var["MasterHandle"] )
if MobID == nil
then
return false
end
if MobID ~= Var["MasterMobID"]
then
return false
end
return true
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
function SmallTreeClick( NPCHandle, PlyHandle, RegistNumber )
cExecCheck( "SmallTreeClick" )
local Var = MemBlock[NPCHandle]
if Var == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Level"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Count"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["DataIndex"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
local LevelData = SMALL_TREE_LEVEL_TABLE
if LevelData == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if #LevelData == 0
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Count"] >= LevelData[ #LevelData ]["NeedCount"]
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if cIsNoAttacOrNoMove( PlyHandle ) == 1
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail_2 )
return
end
cCastingBar( PlyHandle, NPCHandle, TREE_CAST_TIME, TREE_CAST_ANI )
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ϸ<EFBFBD> ó<EFBFBD><EFBFBD>
function SmallTreeCastingComplete( NPCHandle, PlyHandle, RegistNumber, Menu )
cExecCheck( "SmallTreeCastingComplete" )
local Var = MemBlock[NPCHandle]
if Var == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Level"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Count"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["DataIndex"] == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
local LevelData = SMALL_TREE_LEVEL_TABLE
if LevelData == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if #LevelData == 0
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Level"] >= #LevelData
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if Var["Count"] >= LevelData[ #LevelData ]["NeedCount"]
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_SysMsg_DecoFail )
return
end
if cInvenItemDestroy( PlyHandle, TREE_CAST_ITEM, 1 ) == nil
then
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, E_X_ErrMsg_DecoFail )
return
end
cSystemMessage_Obj( PlyHandle, SCRIPT_FILE_NAME, SMALL_TREE_INFO[ Var["DataIndex"] ]["CastSuccMsg"] )
Var["Count"] = Var["Count"] + 1
-- <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> 1<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cSendGameLogDataType_5( NC_LOG_GAME_CHRISTMAS_DECO_TRY_SMALL_TREE, 0, cGetMobID(NPCHandle), 0 )
local NextLevData = LevelData[ Var["Level"]+1 ]
if Var["Count"] >= NextLevData["NeedCount"]
then
cAnimate( NPCHandle, "start", NextLevData["AniIndex"] )
Var["Level"] = Var["Level"] + 1
end
if Var["Level"] >= #LevelData
then
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ӷα<EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ʈ<EFBFBD><EFBFBD> <EFBFBD>ϼ<EFBFBD> Ƚ<EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> 4<EFBFBD><EFBFBD>)
cSendGameLogDataType_5( NC_LOG_GAME_CHRISTMAS_DECO_COMPLETE_SMALL_TREE, 0, cGetMobID(NPCHandle), 0 )
local RewardData = REWARD_ABSTATE_TABLE[ SMALL_TREE_INFO[ Var["DataIndex"] ]["RewardAbstate"] ]
if RewardData ~= nil
then
cSetAbstate_Range( NPCHandle, RewardData["Range"], ObjectType["Player"], RewardData["AbstateIndex"], RewardData["Strength"], RewardData["KeepTime"] )
cNotice( Var["MapIndex"], SCRIPT_FILE_NAME, RewardData["Notice"] )
end
if LevelData["MaxLevelKeep"] == nil
then
Var["MaxLevelKeep"] = cCurrentSecond() + 1
else
Var["MaxLevelKeep"] = cCurrentSecond() + LevelData["MaxLevelKeep"]
end
end
--------------------------
--local CurX, CurY = cObjectLocate( Var["Handle"] )
--cEffectRegen_XY( Var["MapIndex"], "LightShield", CurX, CurY, 0, 4, 0, 1000 )
--------------------------
end
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
--------------------------------------------------------------------
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD>
function SnowManProcess( Var )
cExecCheck( "SnowManProcess" )
if Var == nil
then
return
end
if Var["SnowManList"] == nil
then
Var["SnowManList"] = {}
end
for i = 1, #SNOWMAN_INFO
do
if Var["SnowManList"][i] == nil
then
Var["SnowManList"][i] = Var["CurSec"] + cRandomInt( SNOWMAN_INFO[i]["LifeTime_Min"], SNOWMAN_INFO[i]["LifeTime_Max"] )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local MobHandle = cMobRegen_Circle( Var["MapIndex"], SNOWMAN_INFO[i]["MobIndex"], SNOWMAN_INFO[i]["CenterX"], SNOWMAN_INFO[i]["CenterY"], SNOWMAN_INFO[i]["Range"] )
if MobHandle ~= nil
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cResetAbstate( MobHandle, IMMORTAL_INDEX )
-- <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ʿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if cAIScriptSet( MobHandle, Var["Handle"] ) ~= nil
then
cAIScriptFunc( MobHandle, "Entrance", "SnowManRoutine" )
MemBlock[MobHandle] = {}
MemBlock[MobHandle]["Handle"] = MobHandle
MemBlock[MobHandle]["MapIndex"] = Var["MapIndex"]
MemBlock[MobHandle]["CurSec"] = Var["CurSec"]
MemBlock[MobHandle]["NextTick"] = Var["CurSec"]
MemBlock[MobHandle]["LifeTime"] = Var["SnowManList"][i]
MemBlock[MobHandle]["RegenX"],
MemBlock[MobHandle]["RegenY"] = cObjectLocate( MobHandle )
MemBlock[MobHandle]["DropTable"]= ITEM_DROP_TABLE[ SNOWMAN_INFO[i]["DropTable"] ]
end
end
end
if Var["SnowManList"][i] + 0.5 <= Var["CurSec"]
then
Var["SnowManList"][i] = nil
end
end
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƾ
function SnowManRoutine( Handle, MapIndex )
cExecCheck( "SnowManRoutine" )
local Var = MemBlock[Handle]
local CurSec = cCurrentSecond()
if Var == nil
then
cAIScriptSet( Handle )
return ReturnAI["END"]
end
if cIsObjectDead( Handle ) == 1
then
cAIScriptSet( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
end
-- 0.1<EFBFBD>ʸ<EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
if Var["NextTick"] <= CurSec
then
Var["CurSec"] = CurSec
Var["NextTick"] = Var["NextTick"] + 0.1
else
return ReturnAI["END"]
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> üũ
local CurX, CurY = cObjectLocate( Handle )
if CurX == nil or CurY == nil or Var["RegenX"] == nil or Var["RegenY"] == nil
then
cAIScriptSet( Handle )
cNPCVanish( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
else
if CurX ~= Var["RegenX"] or CurY ~= Var["RegenY"]
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var["DropTable"] ~= nil
then
for j = 1, #Var["DropTable"]
do
cDropItem( Var["DropTable"][j]["ItemIndex"], Handle, -1, Var["DropTable"][j]["Rate"] )
end
end
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cAIScriptSet( Handle )
cKillObject( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
end
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>
if Var["LifeTime"] <= Var["CurSec"]
then
cAIScriptSet( Handle )
cNPCVanish( Handle )
MemBlock[Handle] = nil
return ReturnAI["END"]
end
return ReturnAI["END"]
end
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD> : SantaKebingRegenProcess
--------------------------------------------------------------------
function SantaKebingRegenProcess( Var )
cExecCheck ( "SantaKebingRegenProcess" )
if Var == nil
then
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ƴϸ<EFBFBD> return
if MemBlock["BonusDefenceEvent"]["IsProgress"] == false
then
return
end
if MemBlock["SantaKebingList"] == nil and MemBlock["SantaKebingListHandle"] == nil
then
MemBlock["SantaKebingList"] = {}
MemBlock["SantaKebingListHandle"] = {}
for i = 1, #SANTA_KEBING_MOB_REGEN_TABLE
do
local temphandle = cMobRegen_XY( Var["MapIndex"], SANTA_KEBING_MOB_REGEN_TABLE["MobIndex"], SANTA_KEBING_MOB_REGEN_TABLE[i]["RegenX"],
SANTA_KEBING_MOB_REGEN_TABLE[i]["RegenY"], SANTA_KEBING_MOB_REGEN_TABLE[i]["Dir"] )
if temphandle == nil
then
return
end
if MemBlock["SantaKebingList"][temphandle] == nil
then
MemBlock["SantaKebingList"][temphandle] = {}
if cAIScriptSet( temphandle, Var["Handle"] ) ~= nil
then
cAIScriptFunc( temphandle, "Entrance", "SantaKebingRoutine" )
end
MemBlock["SantaKebingList"][temphandle]["Handle"] = temphandle
MemBlock["SantaKebingList"][temphandle]["RunSpeed"] = SANTA_KEBING_MOB_REGEN_TABLE["RunSpeed"]
MemBlock["SantaKebingList"][temphandle]["TargetHandle"] = Var["Handle"]
MemBlock["SantaKebingList"][temphandle]["GoalX"],
MemBlock["SantaKebingList"][temphandle]["GoalY"] = cObjectLocate( Var["Handle"] )
MemBlock["SantaKebingList"][temphandle]["CrushBallHitCount"] = 0
MemBlock["SantaKebingList"][temphandle]["PathFinding"] = SANTA_KEBING_PATH_TABLE[i]
MemBlock["SantaKebingListHandle"][i] = temphandle
-- <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>!! )
cMobChat( temphandle, SCRIPT_FILE_NAME, E_XKebingChat01 )
-- <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>
cResetAbstate( temphandle , "StaImmortal" )
end
end
end
end
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD> : SantaKebingRoutine
--------------------------------------------------------------------
function SantaKebingRoutine( Handle, MapIndex )
cExecCheck ( "SantaKebingRoutine" )
if MapIndex ~= VALID_MAP_INDEX
then
cAIScriptSet( Handle )
return ReturnAI["END"]
end
if cIsObjectDead( Handle ) == 1
then
cAIScriptSet( Handle )
return ReturnAI["END"]
end
local CurSantaKebing = MemBlock["SantaKebingList"][Handle]
-- <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>
PathTypeProcess( Handle )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>
if cDistanceSquar( Handle, CurSantaKebing["TargetHandle"] ) <= ( SANTAKEBING_RANGE_WITH_TREE * SANTAKEBING_RANGE_WITH_TREE )
then
-- <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> )
if MemBlock["SantaKebingList"][Handle]["CrushAniTime"] == nil
then
MemBlock["SantaKebingList"][Handle]["CrushAniTime"] = cCurrentSecond() + SANTA_KEBING_MOB_ANI_TABLE["CastAniKeepTime"]
cAnimate( Handle, "start", SANTA_KEBING_MOB_ANI_TABLE["CastAniIndex"] )
end
if MemBlock["SantaKebingList"][Handle]["CrushAniTime"] ~= nil
then
if MemBlock["SantaKebingList"][Handle]["CrushAniTime"] > cCurrentSecond()
then
return ReturnAI["CPP"]
end
cAnimate( Handle, "start", SANTA_KEBING_MOB_ANI_TABLE["SwingAniIndex"] )
end
MemBlock["BonusDefenceEvent"]["IsSantaKebingCrush"] = true
cAIScriptSet( Handle )
return ReturnAI["END"]
end
-- ũ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¾Ҵ<EFBFBD><EFBFBD><EFBFBD> üũ<EFBFBD>Ѵ<EFBFBD>
if CurSantaKebing["CrushBallHitCount"] >= SANTAKEBING_CRUSHBALL_HIT_COUNT
then
cMobSuicide( MapIndex, Handle )
cAIScriptSet( Handle )
return ReturnAI["END"]
end
return ReturnAI["END"]
end
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD> : IsSantaKebingAllDead
--------------------------------------------------------------------
-- <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>
function IsSantaKebingAllDead( Var )
cExecCheck( "IsSantaKebingAllDead" )
if MemBlock["SantaKebingList"] == nil
then
return false
end
for i = 1, #MemBlock["SantaKebingListHandle"] do
if cIsObjectDead( MemBlock["SantaKebingListHandle"][i] ) == nil
then
return false -- <EFBFBD>ѳ<EFBFBD><EFBFBD>̶<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> false<EFBFBD><EFBFBD>ȯ
end
if i == #MemBlock["SantaKebingListHandle"]
then
return true -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>׾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true <EFBFBD><EFBFBD>ȯ
end
end
end
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD> : SantaKebingVanishAll
--------------------------------------------------------------------
-- <EFBFBD><EFBFBD>Ÿ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
function SantaKebingVanishAll( Var )
cExecCheck( "SantaKebingVanishAll" )
if Var == nil
then
return
end
if MemBlock["SantaKebingList"] == nil
then
return
end
for i = 1, #MemBlock["SantaKebingListHandle"]
do
local CurHandle = MemBlock["SantaKebingListHandle"][i]
if MemBlock["SantaKebingList"][CurHandle] ~= nil
then
cNPCVanish( MemBlock["SantaKebingList"][CurHandle]["Handle"] )
MemBlock["SantaKebingList"][CurHandle] = nil
end
end
end
--------------------------------------------------------------------
--// <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> pathó<EFBFBD><EFBFBD> : PathTypeProcess
--------------------------------------------------------------------
function PathTypeProcess( Handle )
local CurSantaKebing = MemBlock["SantaKebingList"][Handle]
if cIsObjectDead( Handle ) == 1
then
return
end
if CurSantaKebing == nil
then
return
end
if CurSantaKebing["PathFinding"] == nil
then
return
end
-- <EFBFBD>̹<EFBFBD> <EFBFBD>浹 ó<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̹Ƿ<EFBFBD>, return
if CurSantaKebing["CrushAniTime"] ~= nil
then
return
end
if MemBlock["SantaKebingList"][Handle]["PathProgress"] == nil
then
MemBlock["SantaKebingList"][Handle]["PathProgress"] = {}
MemBlock["SantaKebingList"][Handle]["PathProgress"]["GoalCheckTime"] = cCurrentSecond()
MemBlock["SantaKebingList"][Handle]["PathProgress"]["CurPathStep"] = 1
MemBlock["SantaKebingList"][Handle]["PathProgress"]["CurMoveState"] = MOVESTATE["STOP"]
end
if CurSantaKebing["PathProgress"]["CurPathStep"] > #CurSantaKebing["PathFinding"]
then
return
end
if CurSantaKebing["PathProgress"]["CurMoveState"] == MOVESTATE["STOP"]
then
if cWillMovement( Handle ) == nil
then
return
end
cRunTo( Handle,
CurSantaKebing["PathFinding"][CurSantaKebing["PathProgress"]["CurPathStep"]]["x"],
CurSantaKebing["PathFinding"][CurSantaKebing["PathProgress"]["CurPathStep"]]["y"],
SANTA_KEBING_MOB_REGEN_TABLE["RunSpeed"] )
CurSantaKebing["PathProgress"]["CurMoveState"] = MOVESTATE["MOVE"]
end
if CurSantaKebing["PathProgress"]["CurMoveState"] == MOVESTATE["MOVE"]
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if cWillMovement( Handle ) == nil
then
CurSantaKebing["PathProgress"]["CurMoveState"] = MOVESTATE["STOP"]
return
end
end
-- <EFBFBD><EFBFBD>ǥ<EFBFBD><EFBFBD> üũ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local CurSec = cCurrentSecond()
if CurSantaKebing["PathProgress"]["GoalCheckTime"] + PATHTYPE_CHK_DLY > CurSec
then
return
end
CurSantaKebing["PathProgress"]["GoalCheckTime"] = CurSec
-- <EFBFBD><EFBFBD>ǥ<EFBFBD><EFBFBD> üũ
local curr = {}
local goal = {}
curr["x"], curr["y"] = cObjectLocate( Handle )
goal["x"] = CurSantaKebing["PathFinding"][CurSantaKebing["PathProgress"]["CurPathStep"]]["x"]
goal["y"] = CurSantaKebing["PathFinding"][CurSantaKebing["PathProgress"]["CurPathStep"]]["y"]
local dx = goal["x"] - curr["x"]
local dy = goal["y"] - curr["y"]
local distsquar = dx * dx + dy * dy
if distsquar < PATHTYPE_GAP then
CurSantaKebing["PathProgress"]["CurPathStep"] = CurSantaKebing["PathProgress"]["CurPathStep"] + 1
CurSantaKebing["PathProgress"]["CurMoveState"] = MOVESTATE["STOP"]
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> üũ
curr["x"], curr["y"] = cMove2Where( Handle )
if curr["x"] ~= goal["x"] and curr["y"] ~= goal["y"] then
cRunTo( Handle,
CurSantaKebing["PathFinding"][CurSantaKebing["PathProgress"]["CurPathStep"]]["x"],
CurSantaKebing["PathFinding"][CurSantaKebing["PathProgress"]["CurPathStep"]]["y"],
SANTA_KEBING_MOB_REGEN_TABLE["RunSpeed"] )
end
return
end
--------------------------------------------------------------------
--// ũ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD> ó<EFBFBD><EFBFBD> : ServantSummon
--------------------------------------------------------------------
-- ũ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD>
function ServantSummon( MapIndex, ServantHandle, ServantIndex, MasterHandle )
cExecCheck "ServantSummon"
-- <EFBFBD>߸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if MapIndex ~= VALID_MAP_INDEX
then
cAIScriptSet( Handle )
return ReturnAI["END"]
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>
if MemBlock["BonusDefenceEvent"]["IsProgress"] ~= true
then
return
end
-- <EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD> <EFBFBD>ƴѰ<EFBFBD><EFBFBD><EFBFBD>,
if ServantIndex ~= CRUSHBALL_TABLE["MobIndex"]
then
return
end
cAIScriptSet( ServantHandle, MemBlock["TreeHandle"] )
cAIScriptFunc( ServantHandle, "Entrance", "Crushball_Entrance" )
end
--------------------------------------------------------------------
--// ũ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD> ó<EFBFBD><EFBFBD> : Crushball_Entrance
--------------------------------------------------------------------
function Crushball_Entrance( Handle, MapIndex )
cExecCheck "Crushball_Entrance"
-- <EFBFBD>߸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if MapIndex ~= VALID_MAP_INDEX
then
cAIScriptSet( Handle )
return ReturnAI["END"]
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>
if MemBlock["SantaKebingList"] == nil
then
cAIScriptSet( Handle )
return ReturnAI["END"]
end
-- <EFBFBD>׾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if cIsObjectDead( Handle ) == 1
then
cAIScriptSet( Handle )
return ReturnAI["END"]
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if cIsObjectAlreadyDead( Handle ) == true
then
cAIScriptSet( Handle )
return ReturnAI["END"]
end
local NearSanta = cObjectFind( Handle, SANTAKEBING_RANGE_WITH_CRUSHBALL, SANTA_KEBING_MOB_REGEN_TABLE["MobIndex"], "so_mobile_GetIdxName" )
-- <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><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>
if NearSanta ~= nil
then
if cIsObjectDead( NearSanta ) == 1 or cIsObjectAlreadyDead( NearSanta ) == true
then
cAIScriptSet( Handle )
return ReturnAI["END"]
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>.
if cPermileRate( CRUSHBALL_ABSTATE_TABLE["AbStateHitRate"] ) == 1
then
cSetAbstate( NearSanta, CRUSHBALL_ABSTATE_TABLE["AbstateIndex"], CRUSHBALL_ABSTATE_TABLE["Strength"], CRUSHBALL_ABSTATE_TABLE["KeepTime"], Handle )
end
MemBlock["SantaKebingList"][NearSanta]["CrushBallHitCount"] = MemBlock["SantaKebingList"][NearSanta]["CrushBallHitCount"] + 1
--DebugLog("<EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ鰪 : "..NearSanta..", <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD> : "..MemBlock["SantaKebingList"][NearSanta]["CrushBallHitCount"])
cSkillBlast ( Handle, Handle, CRUSHBALL_TABLE["SkillIndex"] )
cVanishReserv ( Handle, 3 )
return ReturnAI["END"]
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>.
if cGetMoveState( Handle ) ~= 0
then
return ReturnAI["CPP"]
end
return ReturnAI["END"]
end
----------------------------------------------------------------------
-- Log Functions
----------------------------------------------------------------------
function DebugLog( String )
cExecCheck ( "DebugLog" )
if String == nil
then
cAssertLog( "DebugLog::String == nil" )
return
end
cAssertLog( "Debug - "..String )
end
function ErrorLog( String )
cExecCheck ( "ErrorLog" )
if String == nil
then
cAssertLog( "ErrorLog::String == nil" )
return
end
cAssertLog( "Error - "..String )
end