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_Ski_CongressNPC.lua

1586 lines
52 KiB

require( "common" )
------------------------------------------------------------------------------------------------------
--
-- DATA
--
------------------------------------------------------------------------------------------------------
EVENT_INFO = -- [<EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
{
MapIndex = "E_Olympic", -- <EFBFBD><EFBFBD> <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>
QuestNPC = "E_Ski_QuestNPC", -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ NPC
NPCDirect = 180,
MaxRanking = 20, -- <EFBFBD><EFBFBD>ŷ <EFBFBD>ִ
MaxPlayer = 200, -- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD>ִ
SeasonProcressSec = 3000, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
SeasonRestSec = 600, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
GameResultLogType = 2026, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ӷα<EFBFBD> Ÿ<EFBFBD><EFBFBD>
SeasonbRewardLogType = 2027, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ӷα<EFBFBD> Ÿ<EFBFBD><EFBFBD>
GameResultType = -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<EFBFBD><EFBFBD>
{
GRT_SeasonEnd = 1, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GRT_StanbyTimeout = 2, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD><EFBFBD>ȿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GRT_RunTimeout = 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><EFBFBD>
GRT_Goal = 4, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
},
GoalNPCLink = -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NPC <EFBFBD><EFBFBD>ũ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
MapIndex = "E_Olympic",
x = 5463,
y = 22711,
},
TimerDeleteSec = 20, -- Ÿ<EFBFBD≯<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
}
GAME_INFO = -- [<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
{
StanbyTimeout = 60, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
RunTimeout = 300, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
PointTimeout = 60, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> ( <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
PointIncPerSec = 2, -- <EFBFBD>ʴ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
PointDecPerSec = 2, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
StartLineArea = "Area_Start", -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD≯<EFBFBD>
GoalLineArea = "Area_Finish", -- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD≯<EFBFBD>
StartEffectMsg = EFFECT_MSG_TYPE["EMT_START_OLYMPIC"], -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <EFBFBD>޽<EFBFBD><EFBFBD><EFBFBD>
GoalEffectMsg = EFFECT_MSG_TYPE["EMT_GOAL_OLYMPIC"], -- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <EFBFBD>޽<EFBFBD><EFBFBD><EFBFBD>
FailEffectMsg = EFFECT_MSG_TYPE["EMT_FAIL"], -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<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> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> <EFBFBD>ִ<EFBFBD> <EFBFBD>κ<EFBFBD><EFBFBD>Դϴ<EFBFBD>.
RankingReward = -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
{ TitleType = 117, ElementNo = 0 }, -- <EFBFBD><EFBFBD>
{ TitleType = 118, ElementNo = 0 }, -- <EFBFBD><EFBFBD>
{ TitleType = 119, ElementNo = 0 }, -- <EFBFBD><EFBFBD>
},
GoalReward =
{
AbsIndex = "StaE_Ski_Reward",
AbsStr = 1,
AbsKeepTime = 3600000,
},
}
MSG_INFO = -- [<EFBFBD>޽<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
{
GoalMsg_Point = "E_Olympic_A01", -- %s<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> %sPoint<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
GoalMsg_RankingFail1 = "E_Olympic_A02", -- <EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 20<EFBFBD><EFBFBD> <EFBFBD>ǿ<EFBFBD> <EFBFBD>Ի<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
GoalMsg_RankingFail2 = "E_Olympic_A08", -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʽ<EFBFBD><EFBFBD>ϴ<EFBFBD>.
GoalMsg_RankingSuc = "E_Olympic_A03", -- <EFBFBD><EFBFBD><EFBFBD>ϵ帳<EFBFBD>ϴ<EFBFBD>. %d<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ի<EFBFBD><EFBFBD>ϼ̽<EFBFBD><EFBFBD>ϴ<EFBFBD>.
Season_Start = "E_Olympic_A04", -- ī<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ű<EFBFBD><EFBFBD>ȸ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>.
Season_End = "E_Olympic_A05", -- ī<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ű<EFBFBD><EFBFBD>ȸ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>.
Season_Ranking = "E_Olympic_A06", -- <EFBFBD>̹<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s<EFBFBD><EFBFBD>, 2<EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s<EFBFBD><EFBFBD>, 3<EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s<EFBFBD><EFBFBD> <EFBFBD>Դϴ<EFBFBD>.
Season_RankingEmpty = "E_Olympic_A07", -- <EFBFBD>̹<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1,2,3<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʽ<EFBFBD><EFBFBD>ϴ<EFBFBD>.
Error_SeasonEnd = "E_Olympic_F01", -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ּ<EFBFBD><EFBFBD><EFBFBD>.
Error_SeasonRest = "E_Olympic_F02", -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>۵Ǹ<EFBFBD> <EFBFBD>ٽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ּ<EFBFBD><EFBFBD><EFBFBD>.
Error_JoinPlayer = "E_Olympic_F03", -- <EFBFBD>̹<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ϵǼ̽<EFBFBD><EFBFBD>ϴ<EFBFBD>. <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ּ<EFBFBD><EFBFBD><EFBFBD>.
Error_StanbyTimeout = "E_Olympic_F07", --
Error_RunTimeout = "E_Olympic_F07", -- <EFBFBD><EFBFBD><EFBFBD>ѽð<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Finish<EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ϼ̳׿<EFBFBD>. <EFBFBD>ƽ<EFBFBD><EFBFBD>Ե<EFBFBD> <EFBFBD>ǰ<EFBFBD><EFBFBD>Դϴ<EFBFBD>.
NPCChat = -- NPC ä<EFBFBD><EFBFBD>
{
{ Index = "E_Olympic_MC01", Interval = 20, }, -- ī<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ű<EFBFBD><EFBFBD>ȸ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s<EFBFBD><EFBFBD> <EFBFBD>Դϴ<EFBFBD>.
{ Index = "E_Olympic_MC02", Interval = 20, }, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!! <EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>~
{ Index = "E_Olympic_MC03", Interval = 20, }, -- <EFBFBD><EFBFBD>~ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>~ <EFBFBD><EFBFBD>Ű<EFBFBD><EFBFBD>ȸ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻð<EFBFBD> Ǫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD> <EFBFBD>޾ư<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>~
},
Game_Guide = -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>û <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>µǴ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
{
{ Index = "E_Olympic_F04", Interval = 10 }, -- <EFBFBD><EFBFBD><EFBFBD>ѽð<EFBFBD> 5<EFBFBD>оȿ<EFBFBD> Finish<EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼž<EFBFBD> <EFBFBD>մϴ<EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>ѽð<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD><EFBFBD><EFBFBD>.
{ Index = "E_Olympic_F05", Interval = 10 }, -- Finish <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>.
{ Index = "E_Olympic_F06", Interval = 10 }, -- <EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ӽð<EFBFBD> 2<EFBFBD><EFBFBD> <EFBFBD>ʰ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>г<EFBFBD>Ƽ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻô°<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>.
},
}
FLAG_DOOR_INFO = -- [<EFBFBD>⹮]
{
Type = -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
{ Index = "E_SkiFlag_Red", Point = 50, AbsIndex = "StaE_Ski_SpeedUp", AbsStr = 1, AbsKeepTime = 3000, SkillIndex = "E_SkiFlag_Red_Skill01_N" },
{ Index = "E_SkiFlag_Blue", Point = 25, AbsIndex = "StaE_Ski_SpeedUp", AbsStr = 1, AbsKeepTime = 3000, SkillIndex = "E_SkiFlag_Red_Skill01_N" },
{ Index = "E_SkiFlag_Gold", Point = 10, AbsIndex = "StaE_Ski_SpeedUp", AbsStr = 1, AbsKeepTime = 3000, SkillIndex = "E_SkiFlag_Red_Skill01_N" },
},
Location = -- <EFBFBD><EFBFBD>ġ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
{ { x = 3782, y = 21659 }, { x = 4082, y = 21659 }, { x = 3582, y = 21659 }, }, -- 1
{ { x = 3604, y = 20531 }, { x = 3604, y = 20531 }, { x = 3604, y = 20531 }, }, -- 2
{ { x = 4320, y = 19844 }, { x = 3920, y = 19844 }, { x = 4520, y = 19844 }, }, -- 3
{ { x = 3591, y = 19028 }, { x = 3291, y = 19028 }, { x = 3791, y = 19028 }, }, -- 4
{ { x = 4558, y = 18491 }, { x = 4708, y = 18491 }, { x = 4358, y = 18491 }, }, -- 5
{ { x = 3829, y = 17885 }, { x = 3629, y = 17885 }, { x = 4000, y = 17885 }, }, -- 6
{ { x = 4464, y = 17585 }, { x = 4264, y = 17585 }, { x = 4664, y = 17585 }, }, -- 7
{ { x = 3864, y = 16568 }, { x = 3164, y = 16468 }, { x = 3664, y = 16368 }, }, -- 8
{ { x = 3530, y = 15708 }, { x = 4730, y = 15708 }, { x = 4030, y = 15708 }, }, -- 9
{ { x = 4322, y = 15240 }, { x = 4122, y = 15240 }, { x = 4522, y = 15240 }, }, -- 10
{ { x = 3773, y = 14346 }, { x = 3973, y = 14346 }, { x = 4173, y = 14346 }, }, -- 11
{ { x = 4164, y = 13314 }, { x = 3964, y = 13314 }, }, -- 12
{ { x = 3704, y = 12899 }, { x = 4004, y = 12899 }, { x = 3505, y = 12899 }, }, -- 13
{ { x = 3845, y = 12255 }, { x = 3545, y = 12255 }, { x = 3245, y = 12255 }, }, -- 14
{ { x = 3139, y = 11496 }, { x = 3339, y = 11496 }, { x = 3539, y = 11496 }, }, -- 15
{ { x = 3827, y = 10808 }, { x = 3527, y = 10808 }, { x = 3227, y = 10808 }, }, -- 16
{ { x = 3287, y = 9869 }, { x = 3287, y = 9869 }, { x = 3287, y = 9869 }, }, -- 17
{ { x = 3733, y = 9043 }, { x = 3433, y = 9043 }, { x = 3133, y = 9043 }, }, -- 18
{ { x = 3397, y = 8387 }, { x = 2997, y = 8387 }, { x = 3697, y = 8387 }, }, -- 19
{ { x = 4142, y = 7860 }, { x = 3742, y = 7860 }, { x = 4342, y = 7860 }, }, -- 20
{ { x = 4049, y = 6588 }, { x = 4349, y = 6588 }, { x = 3849, y = 6588 }, }, -- 21
{ { x = 5082, y = 5945 }, { x = 4482, y = 6045 }, { x = 4882, y = 5945 }, }, -- 22
{ { x = 5119, y = 5023 }, { x = 5319, y = 5023 }, { x = 5519, y = 5023 }, }, -- 23
{ { x = 6049, y = 4353 }, { x = 6349, y = 4353 }, { x = 5749, y = 4353 }, }, -- 24
{ { x = 6826, y = 3842 }, { x = 6651, y = 4035 }, { x = 6670, y = 3628 }, }, -- 25
{ { x = 7405, y = 3445 }, { x = 7583, y = 3621 }, { x = 7405, y = 3145 }, }, -- 26
{ { x = 8078, y = 3749 }, { x = 8078, y = 3549 }, { x = 7878, y = 3749 }, }, -- 27
{ { x = 8619, y = 3684 }, { x = 8619, y = 3884 }, { x = 8619, y = 4184 }, }, -- 28
{ { x = 9417, y = 3928 }, { x = 9417, y = 4584 }, { x = 9619, y = 4384 }, }, -- 29
{ { x = 10363, y = 4339 }, { x = 10172, y = 4487 }, { x = 10183, y = 4741 }, }, -- 30
{ { x = 10928, y = 4593 }, { x = 10786, y = 4829 }, { x = 10599, y = 4992 }, }, -- 31
{ { x = 11449, y = 5122 }, { x = 11449, y = 5422 }, { x = 11148, y = 5665 }, }, -- 32
{ { x = 2894, y = 7960 }, { x = 2594, y = 7960 }, { x = 2194, y = 7960 }, }, -- 33
{ { x = 2309, y = 7386 }, { x = 2099, y = 7276 }, { x = 1907, y = 7197 }, }, -- 34
{ { x = 2007, y = 6727 }, { x = 1847, y = 6689 }, { x = 1745, y = 6509 }, }, -- 35
{ { x = 1974, y = 6029 }, { x = 2094, y = 6106 }, { x = 1864, y = 5929 }, }, -- 36
{ { x = 2238, y = 5317 }, { x = 2038, y = 5317 }, { x = 2438, y = 5317 }, }, -- 37
{ { x = 2198, y = 4508 }, { x = 2333, y = 4553 }, { x = 2061, y = 4326 }, }, -- 38
{ { x = 2500, y = 3923 }, { x = 2814, y = 3820 }, { x = 2563, y = 3261 }, }, -- 39
{ { x = 3276, y = 2777 }, { x = 3518, y = 2810 }, { x = 3294, y = 2382 }, }, -- 40
{ { x = 4215, y = 2400 }, { x = 4086, y = 2155 }, { x = 4360, y = 2518 }, }, -- 41
{ { x = 4805, y = 1883 }, { x = 4988, y = 2126 }, { x = 5151, y = 2284 }, }, -- 42
{ { x = 5817, y = 1694 }, { x = 5776, y = 1998 }, { x = 5996, y = 1532 }, }, -- 43
{ { x = 6713, y = 1892 }, { x = 6922, y = 1876 }, { x = 6662, y = 2151 }, }, -- 44
{ { x = 7233, y = 2166 }, { x = 7046, y = 2546 }, { x = 7630, y = 2240 }, }, -- 45
}
}
-- <EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD> : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SNOWMAN_INFO =
{
-- 1
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4002, y = 16760, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
-- 2
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4252, y = 14499, Range = 700, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
-- 3
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3352, y = 8311, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
-- 4
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 7526, y = 3079, Range = 1000, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
-- 5
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 4843, y = 5813, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
-- 6
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 3247, y = 2931, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
-- 7
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
{ Index = "E_Ski_Snowman", Point = 5, x = 10177, y = 4518, Range = 500, LifeTime_Min = 1, LifeTime_Max = 3, RegenInterval = 1 },
}
-- <EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD> : <EFBFBD>ϴ<EFBFBD>
HONEYING_INFO =
{
Index = "E_Ski_IDHoneying",
MoveCheckInterval = 0.1,
GoalDistInterval = 10,
AbsIndex = "StaE_Ski_Stun",
AbsStr = 1,
AbsKeepTime = 3000,
SkillIndex = "E_SkiFlag_Red_Skill01_N",
-- 1
{ Speed = 2000, { x = 1931, y = 4980 }, { x = 2502, y = 5738 } },
{ Speed = 2000, { x = 1875, y = 5412 }, { x = 2406, y = 4954 } },
-- 2
{ Speed = 2000, { x = 4320, y = 2671 }, { x = 4150, y = 1846 } },
{ Speed = 2000, { x = 4231, y = 1766 }, { x = 4516, y = 2530 } },
-- 3
{ Speed = 2000, { x = 9257, y = 4697 }, { x = 9075, y = 3774 } },
{ Speed = 3000, { x = 9472, y = 4026 }, { x = 8728, y = 4510 } },
-- 4
{ Speed = 3000, { x = 4025, y = 6381 }, { x = 4494, y = 6500 }, { x = 4171, y = 6137 }, { x = 4416, y = 6870 } },
-- 5
{ Speed = 2000, { x = 3425, y = 12405 }, { x = 3924, y = 12177 } },
{ Speed = 2000, { x = 3457, y = 12818 }, { x = 4161, y = 12742 } },
-- 6
{ Speed = 2000, { x = 3458, y = 12773 }, { x = 3925, y = 12187 } },
{ Speed = 2000, { x = 3388, y = 12428 }, { x = 4140, y = 12778 } },
-- 7
{ Speed = 2000, { x = 2897, y = 10075 }, { x = 4055, y = 10314 } },
{ Speed = 2000, { x = 3036, y = 10831 }, { x = 3917, y = 10550 } },
-- 8
{ Speed = 2000, { x = 8418, y = 3376 }, { x = 8229, y = 4197 } },
{ Speed = 2000, { x = 8099, y = 3970 }, { x = 8945, y = 3701 } },
-- 9
{ Speed = 3000, { x = 7994, y = 4004 }, { x = 4055, y = 3017 } },
{ Speed = 3000, { x = 4055, y = 3017 }, { x = 7075, y = 3100 } },
{ Speed = 3000, { x = 7075, y = 3100 }, { x = 8105, y = 2860 } },
-- 10
{ Speed = 2000, { x = 5084, y = 6205 }, { x = 4756, y = 5125 } },
{ Speed = 2000, { x = 5474, y = 5833 }, { x = 4370, y = 5635 } },
-- 11
{ Speed = 2000, { x = 2296, y = 5815 }, { x = 1656, y = 5806 }, { x = 2057, y = 6336} },
-- 12
{ Speed = 2000, { x = 9825, y = 4692 }, { x = 10608, y = 4428 }, { x = 10670, y = 5122}, { x = 11437, y = 5053} , { x = 11168, y = 5751} , { x = 11838, y = 6131}, { x = 11263, y = 6616} },
-- 13
{ Speed = 2000, { x = 9972, y = 4111 }, { x = 10056, y = 4748 }, { x = 10989, y = 4525}, { x = 10877, y = 5412} , { x = 11633, y = 5477} , { x = 11288, y = 5983}, { x = 11888, y = 6412} },
-- 14
{ Speed = 2000, { x = 10852, y = 4508 }, { x = 10475, y = 4928 } },
{ Speed = 2000, { x = 11471, y = 5153 }, { x = 10978, y = 5519 } },
}
-- <EFBFBD>̵<EFBFBD><EFBFBD>ӵ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SLOW_AREA =
{
{ AreaName = "SlowArea01", AbsIndex = "StaE_Ski_ICE", AbsStr = 1, AbsKeepTime = 1000 },
{ AreaName = "SlowArea02", AbsIndex = "StaE_Ski_ICE", AbsStr = 1, AbsKeepTime = 1000 },
{ AreaName = "SlowArea03", AbsIndex = "StaE_Ski_ICE", AbsStr = 1, AbsKeepTime = 1000 },
{ AreaName = "SlowArea04", AbsIndex = "StaE_Ski_ICE", AbsStr = 1, AbsKeepTime = 1000 },
{ AreaName = "SlowArea05", AbsIndex = "StaE_Ski_ICE", AbsStr = 1, AbsKeepTime = 1000 },
{ AreaName = "SlowArea06", AbsIndex = "StaE_Ski_ICE", AbsStr = 1, AbsKeepTime = 1000 },
{ AreaName = "SlowArea07", AbsIndex = "StaE_Ski_ICE", AbsStr = 1, AbsKeepTime = 1000 },
{ AreaName = "SlowArea08", AbsIndex = "StaE_Ski_ICE", AbsStr = 1, AbsKeepTime = 1000 },
}
------------------------------------------------------------------------------------------------------
--
-- GLOBAL VARIABLES
--
------------------------------------------------------------------------------------------------------
gEventMain = nil -- [<EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
--{
-- NPCHandle = 0, -- NPC <EFBFBD>ڵ<EFBFBD>
-- FunctionCallSec = 0, -- <EFBFBD>Լ<EFBFBD> ȣ<EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
-- Function = 0, -- <EFBFBD>Լ<EFBFBD>
-- ChatIndex = 0, -- ä<EFBFBD><EFBFBD> <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>
-- ChatSec - 0, -- ä<EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
--}
gSeasonTime = -- [<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>]
{
StartSec = 0, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
EndSec = 0, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
}
gPlayerCnt = 0 -- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD>
gPlayerList = nil -- [<EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ]
--{
-- {
-- CharNo = 0, -- ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȣ
-- Handle = 0, -- <EFBFBD>ڵ<EFBFBD>
-- Score = 0, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- RegistSec = 0, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
-- StartSec = 0, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
-- GuideIndex = 0, -- <EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD> <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>
-- GuideSec = 0, -- <EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
-- CheckFlagDoorList = {} -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
-- }
--}
gRankingList = nil -- [<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ]
gPreviousankingList = nil -- [<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ]
--{
-- {
-- nRanking = 0, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- nCharNo = 0, -- ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȣ
-- sCharID = "", -- ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
-- nScore = 0, -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- }
--}
gFlagDoorIndexList = nil -- <EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
gFlagDoorList = nil -- [<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ]
--{
-- {
-- Handle = 0, -- <EFBFBD>ڵ<EFBFBD>
-- TypeInfo = FLAG_DOOR_INFO["Type"][1],-- <EFBFBD>⹮ Ÿ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- }
--}
gSnowManIndexList = nil
gSnowManList = nil
--{
-- {
-- Handle
-- RegenSec
-- LifeTime
-- }
--}
gHoneyingIndexList = nil
gHoneyingList = nil
--{
--- {
-- Handle
-- MoveInfo
-- MoveCheckSec
-- MoveIndex
-- MoveBack
-- }
--}
------------------------------------------------------------------------------------------------------
--
-- FUNCTION : CPP -> LUA
--
------------------------------------------------------------------------------------------------------
function DummyFunction()
end
function E_Ski_CongressNPC( Handle, MapIndex )
cExecCheck( "E_Ski_CongressNPC" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local nCurSec = cCurrentSecond()
-- <EFBFBD>̺<EFBFBD>Ʈ <EFBFBD>ʱ<EFBFBD>ȭ
if gEventMain == nil
then
-- <EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if MapIndex ~= EVENT_INFO["MapIndex"]
then
cAIScriptSet( Handle )
return ReturnAI["END"]
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local CurLocalTime = os.date( "*t", os.time() )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gSeasonTime["StartSec"] = nCurSec-- + ((60 - CurLocalTime["min"]) * 60) - CurLocalTime["sec"] -- ó<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>۽<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gSeasonTime["EndSec"] = nCurSec
-- AISctipt Function <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cAIScriptFunc( Handle, "NPCClick", "WinterOlympic_Click" )
cAIScriptFunc( Handle, "NPCMenu", "WinterOlympic_Menu" )
-- EventNPC <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gEventMain = {}
gEventMain["NPCHandle"] = Handle
gEventMain["FunctionCallSec"] = nCurSec
gEventMain["Function"] = Season_Start
gEventMain["ChatIndex"] = 1
gEventMain["ChatSec"] = nCurSec
-- <EFBFBD><EFBFBD>Ÿ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʱ<EFBFBD>ȭ
gPlayerCnt = 0
gPlayerList = {}
gRankingList = {}
gPreviousankingList = {}
gFlagDoorIndexList = {}
gFlagDoorList = {}
gSnowManIndexList = {}
gSnowManList = {}
gHoneyingIndexList = {}
gHoneyingList = {}
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cSetObjectDirect( Handle, EVENT_INFO["NPCDirect"] )
-- QuestNPC
local QuestHandle = cGetNPCHandle( EVENT_INFO["MapIndex"], EVENT_INFO["QuestNPC"] )
if QuestHandle ~= nil
then
cAIScriptSet( QuestHandle, Handle )
cAIScriptFunc( QuestHandle, "Entrance", "DummyFunction" )
cAIScriptFunc( QuestHandle, "NPCMenu", "E_Ski_QuestNPC_Menu" )
end
end
-- <EFBFBD>ڵ<EFBFBD> Ȯ<EFBFBD><EFBFBD>
if gEventMain["NPCHandle"] ~= Handle
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 cIsObjectDead( Handle ) == 1
then
cAIScriptSet( Handle )
FlagDoor_Delete()
SnowMan_Delete()
Honeying_Delete()
gEventMain = nil
gPlayerCnt = 0
gPlayerList = nil
gRankingList = nil
gPreviousankingList = nil
cSetFieldScript( EVENT_INFO["MapIndex"] )
return ReturnAI["END"]
end
-- NPC ä<EFBFBD><EFBFBD>
if nCurSec >= gEventMain["ChatSec"]
then
local NPCChatInfo = MSG_INFO["NPCChat"][gEventMain["ChatIndex"]]
if gEventMain["ChatIndex"] == 1
then
if gRankingList[1] ~= nil
then
cScriptMsg( EVENT_INFO["MapIndex"], gEventMain["NPCHandle"], NPCChatInfo["Index"], gRankingList[1]["sCharID"] )
end
else
cScriptMsg( EVENT_INFO["MapIndex"], gEventMain["NPCHandle"], NPCChatInfo["Index"] )
end
gEventMain["ChatIndex"] = gEventMain["ChatIndex"] + 1
gEventMain["ChatSec"] = nCurSec + NPCChatInfo["Interval"]
if gEventMain["ChatIndex"] > #MSG_INFO["NPCChat"]
then
gEventMain["ChatIndex"] = 1
end
end
-- <EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if nCurSec >= gEventMain["FunctionCallSec"]
then
gEventMain["Function"]( nCurSec )
gEventMain["FunctionCallSec"] = nCurSec + 0.1
end
return ReturnAI["END"]
end
function WinterOlympic_Click( NPCHandle, PlyHandle, PlyCharNo )
cExecCheck( "WinterOlympic_Click" )
-- <EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><EFBFBD>α<EFBFBD> <EFBFBD>޴<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cNPCMenuOpen( NPCHandle, PlyHandle )
end
function WinterOlympic_Menu( NPCHandle, PlyHandle, PlyCharNo, Value )
cExecCheck( "WinterOlympic_Menu" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local nCurSec = cCurrentSecond()
-- <EFBFBD><EFBFBD>ȸ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Value == 1
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if nCurSec >= gSeasonTime["EndSec"]
then
cScriptMsg( PlyHandle, nil, MSG_INFO["Error_SeasonRest"] )
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <EFBFBD>ִ<EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if gPlayerCnt >= EVENT_INFO["MaxPlayer"]
then
return
end
-- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if gPlayerList[PlyCharNo] ~= nil
then
cScriptMsg( PlyHandle, nil, MSG_INFO["Error_JoinPlayer"] )
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʱ<EFBFBD>ȭ
gPlayerList[PlyCharNo] = {}
gPlayerList[PlyCharNo]["CharNo"] = PlyCharNo
gPlayerList[PlyCharNo]["Handle"] = PlyHandle
gPlayerList[PlyCharNo]["Score"] = 0
gPlayerList[PlyCharNo]["RegistSec"] = nCurSec
gPlayerList[PlyCharNo]["StartSec"] = 0
gPlayerList[PlyCharNo]["GuideIndex"] = 1
gPlayerList[PlyCharNo]["GuideSec"] = nCurSec
gPlayerList[PlyCharNo]["CheckFlagDoorList"] = {}
gPlayerCnt = gPlayerCnt + 1
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
elseif Value == 2
then
-- <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cSendRankingList( PlyHandle, gPreviousankingList, gRankingList )
end
end
function E_Ski_QuestNPC_Menu( NPCHandle, PlyHandle, PlyCharNo, Value )
cExecCheck( "E_Ski_QuestNPC_Menu" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local nCurSec = cCurrentSecond()
if Value == 1
then
-- <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cSendRankingList( PlyHandle, gPreviousankingList, gRankingList )
elseif Value == 2
then
cLinkTo( PlyHandle, EVENT_INFO["GoalNPCLink"]["MapIndex"], EVENT_INFO["GoalNPCLink"]["x"], EVENT_INFO["GoalNPCLink"]["y"] )
end
end
function FlagDoor_NPCAction( MapIndex, NPCHandle, PlyHandle, PlyCharNo )
cExecCheck( "FlagDoor_NPCAction" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local nFlagInx = gFlagDoorIndexList[NPCHandle]
if nFlagInx == nil
then
cAssertLog( "FlagDoor_NPCAction:gFlagDoorIndexList[NPCHandle] nil" );
cNPCVanish( NPCHandle )
return
end
if gFlagDoorList[nFlagInx] == nil
then
cAssertLog( "FlagDoor_NPCAction:gFlagDoorList[FlagInx] nil" );
cNPCVanish( NPCHandle )
return
end
local TypeInfo = gFlagDoorList[nFlagInx]["TypeInfo"]
if TypeInfo == nil
then
cAssertLog( "FlagDoor_NPCAction:gFlagDoorList[nFlagInx][TypeInfo] nil" );
cNPCVanish( NPCHandle )
return
end
-- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local PlyInfo = gPlayerList[PlyCharNo]
if PlyInfo == nil
then
-- cAssertLog( "FlagDoor_NPCAction:gPlayerList[PlyCharNo] nil" );
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if PlyInfo["CheckFlagDoorList"][nFlagInx] == nil
then
PlyInfo["Score"] = PlyInfo["Score"] + TypeInfo["Point"]
PlyInfo["CheckFlagDoorList"][nFlagInx] = true
cSetAbstate( PlyHandle, TypeInfo["AbsIndex"], TypeInfo["AbsStr"], TypeInfo["AbsKeepTime"], NPCHandle )
cSkillBlast( NPCHandle, PlyHandle, TypeInfo["SkillIndex"] )
end
end
function SnowMan_NPCAction( MapIndex, NPCHandle, PlyHandle, PlyCharNo )
cExecCheck( "SnowMan_NPCAction" )
local nCurSec = cCurrentSecond()
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local nSnowManInx = gSnowManIndexList[NPCHandle]
if nSnowManInx == nil
then
cAssertLog( "SnowMan_NPCAction:gSnowManIndexList[NPCHandle] nil" );
cNPCVanish( NPCHandle )
return
end
if gSnowManList[nSnowManInx] == nil
then
cAssertLog( "SnowMan_NPCAction:gSnowManList[nSnowManInx] nil" );
cNPCVanish( NPCHandle )
return
end
local SnowManInfo = SNOWMAN_INFO[nSnowManInx]
if SnowManInfo == nil
then
cAssertLog( "SnowMan_NPCAction:SNOWMAN_INFO[nSnowManInx] nil" );
cNPCVanish( NPCHandle )
gSnowManList[nSnowManInx] = nil
gSnowManIndexList[NPCHandle] = nil
return
end
-- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local PlyInfo = gPlayerList[PlyCharNo]
if PlyInfo == nil
then
-- cAssertLog( "SnowMan_NPCAction:gPlayerList[PlyCharNo] nil" );
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PlyInfo["Score"] = PlyInfo["Score"] - SnowManInfo["Point"]
-- SnowMan <EFBFBD><EFBFBD><EFBFBD><EFBFBD> / <EFBFBD>ʱ<EFBFBD>ȭ
cNPCVanish( NPCHandle )
gSnowManList[nSnowManInx]["Handle"] = nil
gSnowManList[nSnowManInx]["RegenSec"] = nCurSec + SnowManInfo["RegenInterval"]
gSnowManList[nSnowManInx]["LifeTime"] = 0
gSnowManIndexList[NPCHandle] = nil
end
function Honeying_Routine( Handle, MapIndex )
cExecCheck( "Honeying_Routine" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local nCurSec = cCurrentSecond()
local nHoneyingInx = gHoneyingIndexList[Handle]
if nHoneyingInx == nil
then
cAssertLog( "Honeying_Routine:gHoneyingIndexList[Handle] nil" );
cNPCVanish( Handle )
return ReturnAI["END"]
end
if gHoneyingList[nHoneyingInx] == nil
then
cAssertLog( "Honeying_Routine:gHoneyingList[nHoneyingInx] nil" );
cNPCVanish( Handle )
return ReturnAI["END"]
end
if gHoneyingList[nHoneyingInx]["MoveCheckSec"] > nCurSec
then
return ReturnAI["END"]
end
-- <EFBFBD>ϴ<EFBFBD> <EFBFBD>̵<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local MoveInfo = gHoneyingList[nHoneyingInx]["MoveInfo"]
local MoveInx = gHoneyingList[nHoneyingInx]["MoveIndex"]
local MaxMoveInx = #gHoneyingList[nHoneyingInx]["MoveInfo"]
local CurX, CurY = cObjectLocate( Handle )
if cDistanceSquar( CurX, CurY, MoveInfo[MoveInx]["x"], MoveInfo[MoveInx]["y"] ) < (HONEYING_INFO["GoalDistInterval"] * HONEYING_INFO["GoalDistInterval"])
then
if gHoneyingList[nHoneyingInx]["MoveBack"] == false
then
MoveInx = MoveInx + 1
if MoveInx > MaxMoveInx
then
MoveInx = MaxMoveInx - 1
gHoneyingList[nHoneyingInx]["MoveBack"] = true
end
else
MoveInx = MoveInx- 1
if MoveInx < 1
then
MoveInx = 2
gHoneyingList[nHoneyingInx]["MoveBack"] = false
end
end
cRunTo( Handle, MoveInfo[MoveInx]["x"], MoveInfo[MoveInx]["y"], MoveInfo["Speed"] )
gHoneyingList[nHoneyingInx]["MoveIndex"] = MoveInx
else
if cGetMoveState( Handle ) == 0
then
cRunTo( Handle, MoveInfo[MoveInx]["x"], MoveInfo[MoveInx]["y"], MoveInfo["Speed"] )
end
end
gHoneyingList[nHoneyingInx]["MoveCheckSec"] = gHoneyingList[nHoneyingInx]["MoveCheckSec"] + HONEYING_INFO["MoveCheckInterval"]
return ReturnAI["END"]
end
function Honeying_NPCAction( MapIndex, NPCHandle, PlyHandle, PlyCharNo )
cExecCheck( "Honeying_NPCAction" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local nHoneyingInx = gHoneyingIndexList[NPCHandle]
if nHoneyingInx == nil
then
cAssertLog( "Honeying_NPCAction:gHoneyingIndexList[NPCHandle] nil" );
cNPCVanish( NPCHandle )
return
end
if gHoneyingList[nHoneyingInx] == nil
then
cAssertLog( "Honeying_NPCAction:gHoneyingList[nHoneyingInx] nil" );
cNPCVanish( NPCHandle )
return
end
-- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if gPlayerList[PlyCharNo] == nil
then
-- cAssertLog( "SnowMan_NPCAction:gPlayerList[PlyCharNo] nil" );
return
end
cSetAbstate( PlyHandle, HONEYING_INFO["AbsIndex"], HONEYING_INFO["AbsStr"], HONEYING_INFO["AbsKeepTime"], NPCHandle )
cSkillBlast( NPCHandle, NPCHandle, HONEYING_INFO["SkillIndex"] )
end
------------------------------------------------------------------------------------------------------
--
-- FUNCTION : LUA -> LUA
--
------------------------------------------------------------------------------------------------------
function Season_Start( nCurSec )
cExecCheck( "Season_Start" )
-- <EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> Ȯ<EFBFBD><EFBFBD>
if nCurSec < gSeasonTime["StartSec"]
then
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for i = 1, #FLAG_DOOR_INFO["Location"]
do
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><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 nTypeInx = cRandomInt( 1, #FLAG_DOOR_INFO["Type"] )
local nLocationInx = cRandomInt( 1, #FLAG_DOOR_INFO["Location"][i] )
-- <EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local TypeInfo = FLAG_DOOR_INFO["Type"][nTypeInx]
local LocationInfo = FLAG_DOOR_INFO["Location"][i][nLocationInx]
-- <EFBFBD><EFBFBD><EFBFBD>ȯ
local FlagHandle = cMobRegen_XY( EVENT_INFO["MapIndex"], TypeInfo["Index"], LocationInfo["x"], LocationInfo["y"], 0 )
if FlagHandle ~= nil
then
gFlagDoorList[i] = {}
gFlagDoorList[i]["Handle"] = FlagHandle
gFlagDoorList[i]["TypeInfo"] = TypeInfo
gFlagDoorIndexList[FlagHandle] = i
cAIScriptSet( FlagHandle, gEventMain["NPCHandle"] )
cAIScriptFunc( FlagHandle, "Entrance", "DummyFunction" )
cAIScriptFunc( FlagHandle, "NPCAction", "FlagDoor_NPCAction" )
else
cAssertLog( "FlagDoor regen fail : "..i.." X : "..LocationInfo["x"].." Y : "..LocationInfo["y"] )
end
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȯ
for i = 1, #HONEYING_INFO
do
local HoneyingHandle = cMobRegen_XY( EVENT_INFO["MapIndex"], HONEYING_INFO["Index"], HONEYING_INFO[i][1]["x"], HONEYING_INFO[i][1]["y"], 0 )
if HoneyingHandle ~= nil
then
gHoneyingList[i] = {}
gHoneyingList[i]["Handle"] = HoneyingHandle
gHoneyingList[i]["MoveInfo"] = HONEYING_INFO[i]
gHoneyingList[i]["MoveCheckSec"] = nCurSec
gHoneyingList[i]["MoveIndex"] = 1
gHoneyingList[i]["MoveBack"] = false
gHoneyingIndexList[HoneyingHandle] = i
cAIScriptSet( HoneyingHandle, gEventMain["NPCHandle"] )
cAIScriptFunc( HoneyingHandle, "Entrance", "Honeying_Routine" )
cAIScriptFunc( HoneyingHandle, "NPCAction", "Honeying_NPCAction" )
else
cAssertLog( "Honeying regen fail : "..i.." X : "..HONEYING_INFO[i][1]["x"].." Y : "..HONEYING_INFO[i][1]["y"] )
end
end
-- <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gPreviousankingList = gRankingList
gRankingList = nil
gRankingList = {}
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>
gSeasonTime["EndSec"] = nCurSec + EVENT_INFO["SeasonProcressSec"]
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cScriptMsg_World( nil, MSG_INFO["Season_Start"] )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ܰ<EFBFBD> <EFBFBD>Լ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gEventMain["Function"] = Season_Doing
end
function Season_Doing( nCurSec )
cExecCheck( "Season_Doing" )
-- <EFBFBD>̺<EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> Ȯ<EFBFBD><EFBFBD>
if nCurSec >= gSeasonTime["EndSec"]
then
gEventMain["Function"] = Season_End
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Player_Manager()
SnowMan_Manager()
end
function Season_End( nCurSec )
cExecCheck( "Season_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>ȭ
for nPlyInx, PlyValue in pairs( gPlayerList )
do
cEffectMsg( PlyValue["Handle"], EFFECT_MSG_TYPE["EMT_FAIL"] )
cScriptMsg( PlyValue["Handle"], MSG_INFO["Error_SeasonEnd"] )
cTimerEnd( PlyValue["Handle"], EVENT_INFO["TimerDeleteSec"] )
cSendGameLogDataType_4( EVENT_INFO["GameResultLogType"], PlyValue["CharNo"], "", 0, 0, EVENT_INFO["GameResultType"]["GRT_SeasonEnd"],
0, 0, PlyValue["Score"] )
end
gPlayerCnt = 0
gPlayerList = nil
gPlayerList = {}
-- 1, 2, 3 <EFBFBD><EFBFBD> <EFBFBD≯<EFBFBD>
local TopPlayerNameList = {}
-- <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
for i = 1, #gRankingList
do
local nRanking = gRankingList[i]["nRanking"]
local RewardInfo = GAME_INFO["RankingReward"][nRanking]
if RewardInfo ~= nil
then
cAddCharacterTitle( gRankingList[i]["nCharNo"], RewardInfo["TitleType"], RewardInfo["ElementNo"] )
cSendGameLogDataType_4( EVENT_INFO["SeasonbRewardLogType"], gRankingList[i]["nCharNo"], "", 0, 0, 0, nRanking, RewardInfo["TitleType"], RewardInfo["ElementNo"] )
if TopPlayerNameList[nRanking] == nil
then
TopPlayerNameList[nRanking] = gRankingList[i]["sCharID"]
end
end
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FlagDoor_Delete()
SnowMan_Delete()
Honeying_Delete()
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cScriptMsg_World( nil, MSG_INFO["Season_End"] )
if #gRankingList > 0
then
for i = 1, 3
do
if TopPlayerNameList[i] == nil
then
TopPlayerNameList[i] = " "
end
end
cScriptMsg_World( nil, MSG_INFO["Season_Ranking"], TopPlayerNameList[1], TopPlayerNameList[2], TopPlayerNameList[3] )
else
cScriptMsg_World( nil, MSG_INFO["Season_RankingEmpty"] )
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gSeasonTime["StartSec"] = nCurSec + EVENT_INFO["SeasonRestSec"]
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ܰ<EFBFBD> <EFBFBD>Լ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gEventMain["Function"] = Season_Start
end
function Player_Manager()
cExecCheck( "Player_Manager" )
-- <EFBFBD>ȳ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><EFBFBD>α<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local GameGuideInfo = MSG_INFO["Game_Guide"]
local nGameGuideCnt = #MSG_INFO["Game_Guide"]
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> ó<EFBFBD><EFBFBD>
for nPlyInx, PlyValue in pairs( gPlayerList )
do
-- <EFBFBD>÷<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 cPlayerExist( PlyValue["Handle"] ) == nil
then
gPlayerList[nPlyInx] = nil
gPlayerCnt = gPlayerCnt - 1
else
local nCurSec = cCurSec()
local PlyMapIndex = cGetCurMapIndex( PlyValue["Handle"] )
local PlyCharNo = cGetCharNo( PlyValue["Handle"] )
-- <EFBFBD>ʿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD> ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD> <EFBFBD>ٸ<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if PlyMapIndex ~= EVENT_INFO["MapIndex"] or
PlyCharNo ~= PlyValue["CharNo"]
then
gPlayerList[nPlyInx] = nil
gPlayerCnt = gPlayerCnt - 1
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
elseif PlyValue["StartSec"] == 0
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD>ѱ<EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD>ǰ<EFBFBD> ó<EFBFBD><EFBFBD>
if (nCurSec - PlyValue["RegistSec"]) >= GAME_INFO["StanbyTimeout"]
then
gPlayerList[nPlyInx] = nil
gPlayerCnt = gPlayerCnt - 1
cScriptMsg( PlyValue["Handle"], nil, MSG_INFO["Error_StanbyTimeout"] )
cEffectMsg( PlyValue["Handle"], GAME_INFO["FailEffectMsg"] )
cSendGameLogDataType_4( EVENT_INFO["GameResultLogType"], PlyValue["CharNo"], "", 0, 0, EVENT_INFO["GameResultType"]["GRT_StanbyTimeout"],
0, (nCurSec - PlyValue["RegistSec"]), PlyValue["Score"] )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD>
else
-- StartLine <EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if cIsInArea( PlyValue["Handle"], EVENT_INFO["MapIndex"], GAME_INFO["StartLineArea"] ) == true
then
PlyValue["StartSec"] = nCurSec
cEffectMsg( PlyValue["Handle"], GAME_INFO["StartEffectMsg"] )
cTimerStart( PlyValue["Handle"] )
else
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if nCurSec >= PlyValue["GuideSec"] and PlyValue["GuideIndex"] <= nGameGuideCnt
then
local GameGuideMsg = GameGuideInfo[PlyValue["GuideIndex"]]
cScriptMsg( PlyValue["Handle"], nil, GameGuideMsg["Index"] )
PlyValue["GuideSec"] = nCurSec + GameGuideMsg["Interval"]
PlyValue["GuideIndex"] = PlyValue["GuideIndex"] + 1
end
end
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
else
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD>ѱ<EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD>ǰ<EFBFBD> ó<EFBFBD><EFBFBD>
if (nCurSec - PlyValue["StartSec"]) >= GAME_INFO["RunTimeout"]
then
gPlayerList[nPlyInx] = nil
gPlayerCnt = gPlayerCnt - 1
cEffectMsg( PlyValue["Handle"], GAME_INFO["FailEffectMsg"] )
cScriptMsg( PlyValue["Handle"], nil, MSG_INFO["Error_RunTimeout"] )
cTimerEnd( PlyValue["Handle"], EVENT_INFO["TimerDeleteSec"] )
cSendGameLogDataType_4( EVENT_INFO["GameResultLogType"], PlyValue["CharNo"], "", 0, 0, EVENT_INFO["GameResultType"]["GRT_RunTimeout"],
0, (nCurSec - PlyValue["StartSec"]), PlyValue["Score"] )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD>
else
-- <EFBFBD>̵<EFBFBD><EFBFBD>ӵ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
for i = 1, #SLOW_AREA
do
if cIsInArea( PlyValue["Handle"], EVENT_INFO["MapIndex"], SLOW_AREA[i]["AreaName"] ) == true
then
cSetAbstate( PlyValue["Handle"], SLOW_AREA[i]["AbsIndex"], SLOW_AREA[i]["AbsStr"], SLOW_AREA[i]["AbsKeepTime"], PlyValue["Handle"] )
end
end
-- GoalLine <EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if cIsInArea( PlyValue["Handle"], EVENT_INFO["MapIndex"], GAME_INFO["GoalLineArea"] ) == true
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ɸ<EFBFBD> <EFBFBD>ð<EFBFBD>
local nRunSec = (nCurSec - PlyValue["StartSec"])
local TimeScore = 0
-- <EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if nRunSec < GAME_INFO["PointTimeout"]
then
TimeScore = ((GAME_INFO["PointTimeout"] - nRunSec) * GAME_INFO["PointIncPerSec"])
TimeScore = ((TimeScore * TimeScore) * 4)
elseif nRunSec > GAME_INFO["PointTimeout"]
then
TimeScore = ((GAME_INFO["PointTimeout"] - nRunSec) * GAME_INFO["PointIncPerSec"])
TimeScore = (TimeScore * 20)
end
PlyValue["Score"] = PlyValue["Score"] + TimeScore
if PlyValue["Score"] < 0
then
PlyValue["Score"] = 0
end
-- <EFBFBD>߰<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local InsertRanking = {}
InsertRanking["nRanking"] = 0
InsertRanking["nCharNo"] = PlyValue["CharNo"]
InsertRanking["sCharID"] = cGetPlayerName( PlyValue["Handle"] )
InsertRanking["nScore"] = PlyValue["Score"]
cScriptMsg( PlyValue["Handle"], nil, MSG_INFO["GoalMsg_Point"], InsertRanking["sCharID"], tostring(InsertRanking["nScore"]) )
-- <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD>߰<EFBFBD>
local nRankingInx, nRankingScore = GetPlayerRankingScore( PlyValue["CharNo"], -1 )
if nRankingScore < PlyValue["Score"]
then
-- <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if nRankingInx ~= 0
then
PlayerRankingDelete( nRankingInx )
end
-- <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>߰<EFBFBD>
if PlayerRankingInsert( InsertRanking ) == true
then
cScriptMsg( PlyValue["Handle"], nil, MSG_INFO["GoalMsg_RankingSuc"], tostring(InsertRanking["nRanking"]) )
else
cScriptMsg( PlyValue["Handle"], nil, MSG_INFO["GoalMsg_RankingFail1"] )
end
else
cScriptMsg( PlyValue["Handle"], nil, MSG_INFO["GoalMsg_RankingFail2"] )
end
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cSetAbstate( PlyValue["Handle"], GAME_INFO["GoalReward"]["AbsIndex"], GAME_INFO["GoalReward"]["AbsStr"], GAME_INFO["GoalReward"]["AbsKeepTime"], PlyValue["Handle"] )
-- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gPlayerList[nPlyInx] = nil
gPlayerCnt = gPlayerCnt - 1
cEffectMsg( PlyValue["Handle"], GAME_INFO["GoalEffectMsg"] )
cTimerEnd( PlyValue["Handle"], EVENT_INFO["TimerDeleteSec"] )
cSendGameLogDataType_4( EVENT_INFO["GameResultLogType"], InsertRanking["nCharNo"], "", 0, 0, EVENT_INFO["GameResultType"]["GRT_Goal"],
InsertRanking["nRanking"], nRunSec, InsertRanking["nScore"] )
end
end
end
end
end
end
function SnowMan_Manager()
cExecCheck( "SnowMan_Manager" )
for i = 1, #SNOWMAN_INFO
do
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>(<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
local nCurSec = cCurrentSecond()
local SnowManInfo = SNOWMAN_INFO[i]
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if gSnowManList[i] == nil
then
gSnowManList[i] = {}
gSnowManList[i]["Handle"] = nil
gSnowManList[i]["RegenSec"] = nCurSec + SnowManInfo["RegenInterval"]
gSnowManList[i]["LifeTime"] = 0
end
-- SnowMan<EFBFBD><EFBFBD> <EFBFBD>׾<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if gSnowManList[i]["Handle"] ~= nil
then
if cIsObjectDead( gSnowManList[i]["Handle"] )
then
local SnowManHandle = gSnowManList[i]["Handle"]
gSnowManList[i]["Handle"] = nil
gSnowManList[i]["RegenSec"] = nCurSec + SnowManInfo["RegenInterval"]
gSnowManList[i]["LifeTime"] = 0
gSnowManIndexList[SnowManHandle] = nil
end
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if gSnowManList[i]["LifeTime"] ~= 0 and
gSnowManList[i]["LifeTime"] <= nCurSec
then
local SnowManHandle = gSnowManList[i]["Handle"]
cNPCVanish( SnowManHandle )
gSnowManList[i]["Handle"] = nil
gSnowManList[i]["RegenSec"] = nCurSec + SnowManInfo["RegenInterval"]
gSnowManList[i]["LifeTime"] = 0
gSnowManIndexList[SnowManHandle] = nil
end
-- SnowMan <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if gSnowManList[i]["RegenSec"] ~= 0 and
gSnowManList[i]["RegenSec"] <= nCurSec
then
local SnowManHandle = cMobRegen_Circle( EVENT_INFO["MapIndex"], SnowManInfo["Index"], SnowManInfo["x"], SnowManInfo["y"], SnowManInfo["Range"] )
if SnowManHandle ~= nil
then
gSnowManList[i]["Handle"] = SnowManHandle
gSnowManList[i]["LifeTime"] = nCurSec + cRandomInt( SnowManInfo["LifeTime_Min"], SnowManInfo["LifeTime_Max"] )
gSnowManList[i]["RegenSec"] = 0
gSnowManIndexList[gSnowManList[i]["Handle"]] = i
cAIScriptSet( gSnowManList[i]["Handle"], gEventMain["NPCHandle"] )
cAIScriptFunc( gSnowManList[i]["Handle"], "Entrance", "DummyFunction" )
cAIScriptFunc( gSnowManList[i]["Handle"], "NPCAction", "SnowMan_NPCAction" )
end
end
end
end
function FlagDoor_Delete()
cExecCheck( "FlagDoor_Delete" )
for i = 1, #FLAG_DOOR_INFO["Location"]
do
if gFlagDoorList[i] ~= nil
then
if gFlagDoorList[i]["Handle"] ~= nil
then
cNPCVanish( gFlagDoorList[i]["Handle"] )
end
end
end
gFlagDoorList = nil
gFlagDoorIndexList = nil
gFlagDoorList = {}
gFlagDoorIndexList = {}
end
function SnowMan_Delete()
cExecCheck( "SnowMan_Delete" )
for i = 1, #SNOWMAN_INFO
do
if gSnowManList[i] ~= nil
then
if gSnowManList[i]["Handle"] ~= nil
then
cNPCVanish( gSnowManList[i]["Handle"] )
end
end
end
gSnowManList = nil
gSnowManIndexList = nil
gSnowManList = {}
gSnowManIndexList = {}
end
function Honeying_Delete()
cExecCheck( "Honeying_Delete" )
for i = 1, #HONEYING_INFO
do
if gHoneyingList[i] ~= nil
then
if gHoneyingList[i]["Handle"] ~= nil
then
cNPCVanish( gHoneyingList[i]["Handle"] )
end
end
end
gHoneyingList = nil
gHoneyingIndexList = nil
gHoneyingList = {}
gHoneyingIndexList = {}
end
------------------------------------------------------------
-- GetPlayerRankingScore( CharNo, DefaultValue )
-- gRankingList <EFBFBD><EFBFBD> <EFBFBD>ִ<EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>(nIndex), <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(nScore) <EFBFBD><EFBFBD>ȯ
-- <EFBFBD>÷<EFBFBD><EFBFBD>̾ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DefaultValue <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȯ
------------------------------------------------------------
function GetPlayerRankingScore( CharNo, DefaultValue )
cExecCheck( "GetPlayerRankingScore" )
local nScore = DefaultValue
local nIndex = 0
for i = 1, #gRankingList
do
if gRankingList[i]["nCharNo"] == CharNo
then
nScore = gRankingList[i]["nScore"]
nIndex = i
break
end
end
return nIndex, nScore
end
------------------------------------------------------------
-- PlayerRankingDelete( nIndex )
-- gRankingList <EFBFBD><EFBFBD> <EFBFBD>ִ<EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------------------------------------------------------------
function PlayerRankingDelete( nIndex )
cExecCheck( "PlayerRankingDelete" )
if nIndex == nil
then
return
end
if nIndex > #gRankingList
then
return
end
local bSameRanking = false
-- gRankingList <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ranking <EFBFBD><EFBFBD> <EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
for i = 1, #gRankingList
do
if i ~= nIndex
then
if gRankingList[i]["nRanking"] == gRankingList[nIndex]["nRanking"]
then
bSameRanking = true
break
end
end
end
-- gRankingList <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if nIndex == #gRankingList
then
gRankingList[nIndex] = nil
else
for i = (nIndex + 1), #gRankingList
do
if bSameRanking == false
then
gRankingList[i]["nRanking"] = gRankingList[i]["nRanking"] - 1
end
gRankingList[i - 1] = gRankingList[i]
end
gRankingList[#gRankingList] = nil
end
end
------------------------------------------------------------
-- PlayerRankingInsert( RankingInfo )
-- gRankingList <EFBFBD><EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD>߰<EFBFBD>
-- <EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD>
-- true : <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD>߰<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- false : <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD>߰<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------------------------------------------------------------
function PlayerRankingInsert( RankingInfo )
cExecCheck( "PlayerRankingInsert" )
local nInsertInx = 1
local nRankingCnt = #gRankingList
local nRankingPlus = 1
RankingInfo["nRanking"] = 0
-- gRankingList <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>߰<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ġ ã<EFBFBD><EFBFBD>
for i = 1, nRankingCnt
do
-- <EFBFBD>߰<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD> RankingInfo <EFBFBD>߰<EFBFBD>
if gRankingList[i]["nScore"] < RankingInfo["nScore"]
then
-- <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ȵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if RankingInfo["nRanking"] == 0
then
RankingInfo["nRanking"] = gRankingList[i]["nRanking"]
end
nInsertInx = i
break
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִ<EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
if gRankingList[i]["nScore"] == RankingInfo["nScore"]
then
RankingInfo["nRanking"] = gRankingList[i]["nRanking"]
nRankingPlus = 0
end
nInsertInx = i + 1
end
-- nInsertInx Ȯ<EFBFBD><EFBFBD>
if nInsertInx > EVENT_INFO["MaxRanking"]
then
-- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>߰<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return false
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 nRankingCnt == nInsertInx
then
if nInsertInx < EVENT_INFO["MaxRanking"]
then
gRankingList[nInsertInx]["nRanking"] = gRankingList[nInsertInx]["nRanking"] + nRankingPlus
gRankingList[nInsertInx + 1] = gRankingList[nInsertInx]
end
elseif nRankingCnt > nInsertInx
then
for i = nRankingCnt, nInsertInx, -1
do
if (i + 1) <= EVENT_INFO["MaxRanking"]
then
gRankingList[i]["nRanking"] = gRankingList[i]["nRanking"] + nRankingPlus
gRankingList[i + 1] = gRankingList[i]
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>
if RankingInfo["nRanking"] == 0
then
if nRankingCnt == 0
then
RankingInfo["nRanking"] = 1
else
RankingInfo["nRanking"] = gRankingList[nInsertInx - 1]["nRanking"] + 1
end
end
-- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>߰<EFBFBD>
gRankingList[nInsertInx] = RankingInfo
return true
end