------------------------------------------------------------------------------------------ -- ÆÀ ³ª´©±â ´ë±â -- ------------------------------------------------------------------------------------------ function SF_DIVIDE_TEAM_WAIT( KSMemory, nCurSec ) cExecCheck "SF_DIVIDE_TEAM_WAIT" if KSMemory == nil then -- Å·´ý Äù½ºÆ® ¹öÆÛ È®ÀÎ return false end if nCurSec == nil then -- ½Ã°£ È®ÀÎ return false end if #KSMemory["PLAYER_LIST"] >= KQ_MAX_PLAYER then -- °ÔÀÓ Âü¿© Àοø È®ÀÎ KSMemory["STEP_NEXT_TIME"] = nCurSec -- ´ÙÀ½ ´Ü°è(ÆÀ ³ª´©±â)·Î ÁøÇàÇϱâ À§ÇØ ½Ã°£ ¼³Á¤ end if KSMemory["STEP_NEXT_TIME"] <= nCurSec then -- ÇöÀç ´Ü°è ÁøÇà ½Ã°£ È®ÀÎ for i = 1, #KSMemory["PLAYER_LIST"] do -- ¸ðµç Ç÷¹À̾î ÆÄƼ ÇØÁ¦ cPartyLeave( KSMemory["PLAYER_LIST"][i]["PHND"] ) end if #KQ_STEP >= (KSMemory["STEP_NO"] + 1) then -- ´ÙÀ½ ´Ü°è È®ÀÎ -- ´Ü°è ¼³Á¤ KSMemory["STEP_NO"] = KSMemory["STEP_NO"] + 1 -- ´ÙÀ½ ´Ü°è KSMemory["STEP_NEXT_TIME"] = nCurSec + KQ_STEP[KSMemory["STEP_NO"]]["KS_NEXT_TIME"] -- ´ÙÀ½ ´Ü°è ÁøÇà ½Ã°£ local MsgIndex = KQ_STEP[KSMemory["STEP_NO"]]["KS_MSG"] -- ¸Þ¼¼Áö Á¤º¸ if MsgIndex ~= nil then -- ¸Þ¼¼Áö À妽º È®ÀÎ local MsgData = KQ_MSG[MsgIndex] -- ¸Þ¼¼Áö Á¤º¸ if MsgData ~= nil then -- ¸Þ¼¼Áö Á¤º¸ ÇÐÀÎ KSMemory["MSG_NO"] = 1 -- ¸Þ¼¼Áö ´Ü°è KSMemory["MSG_NEXT_TIME"] = nCurSec + MsgData[1]["KM_TIME"] -- ¸Þ¼¼Áö Ãâ·Â ½Ã°£ end end end end -- ¸Þ½ÃÁö Ãâ·Â KF_MESSAGE( KSMemory, nCurSec ) return true end ------------------------------------------------------------------------------------------ -- ÆÀ ³ª´©±â -- ------------------------------------------------------------------------------------------ function SF_DIVIDE_TEAM( KSMemory, nCurSec ) cExecCheck "SF_DIVIDE_TEAM" if KSMemory == nil then -- Å·´ý Äù½ºÆ® ¹öÆÛ È®ÀÎ return false end if nCurSec == nil then -- ½Ã°£ È®ÀÎ return false end if KSMemory["STEP_NEXT_TIME"] <= nCurSec then -- ÇöÀç ´Ü°è ÁøÇà ½Ã°£ È®ÀÎ local nConnectNum = #KSMemory["PLAYER_LIST"] -- Å·´ý Äù½ºÆ® ¸Ê¿¡ Á¢¼ÓÇØÀÖ´Â Ç÷¹ÀÌ¾î ¼ö -- °ÔÀÓ Âü°¡ Ç÷¹À̾î È®ÀÎ for i = 1, nConnectNum do if cIsInMap( KSMemory["PLAYER_LIST"][i]["PHND"], KSMemory["FIELD_NAME"] ) == nil then -- Å·´ý Äù½ºÆ® ¸Ê¿¡ Á¢¼ÓÇØÀÖ´ÂÁö È®ÀÎ nConnectNum = nConnectNum - 1 KSMemory["PLAYER_LIST"][i]["PIS_MAP"] = false end end if nConnectNum <= 1 then -- Å·´ý Äù½ºÆ®¸Ê¿¡ Á¢¼ÓÇØÀÖ´Â Ç÷¹ÀÌ¾î ¼ö È®ÀÎ return false end -- ¹® ´Ý±â for i = 1, #KSMemory["DOOR_LIST"] do cDoorAction( KSMemory["DOOR_LIST"][i], KQ_DOOR[i]["KD_BLOCK"], "close" ) end for i = 1, #KQ_NPC do -- NPC ¼Òȯ cNPCRegen( KSMemory["FIELD_NAME"], KQ_NPC[i] ) end local TeamInfo = KSMemory["TEAM_LIST"] -- ÆÀ Á¤º¸ local nTeamNo = KQ_TEAM_NO["KTN_DEFAULT"] -- ÆÀ ¹øÈ£ local nTeamMemberMaxNum = nConnectNum / 2 -- ÆÀ ¸â¹ö ÃÖ´ë¸É¼ö if TeamInfo == nil then -- ÆÀ Á¤º¸ È®ÀÎ return false end -- °ÔÀÓ Âü°¡ Ç÷¹À̾î ÆÀ ³ª´©±â for i = 1, #KSMemory["PLAYER_LIST"] do if KSMemory["PLAYER_LIST"][i]["PIS_MAP"] == true then -- Å·´ý Äù½ºÆ®¸Ê¿¡ Á¢¼ÓÇØÀÖ´Â Ç÷¹À̾î -- 50% È®·ü·Î ÆÀ ¼³Á¤ if cPermileRate( 500 ) == 1 then -- ·¹µå ÆÀ nTeamNo = KQ_TEAM_NO["KTN_RED"] if #TeamInfo[KQ_TEAM_NO["KTN_RED"]]["TMEMBER_LIST"] >= nTeamMemberMaxNum then -- ·¹µå ÆÀ ¸â¹ö ¼ö È®ÀÎ if #TeamInfo[KQ_TEAM_NO["KTN_BLUE"]]["TMEMBER_LIST"] < nTeamMemberMaxNum then -- ºí·ç ÆÀ ¸â¹ö ¼ö È®ÀÎ nTeamNo = KQ_TEAM_NO["KTN_BLUE"] end end else -- ºí·ç ÆÀ nTeamNo = KQ_TEAM_NO["KTN_BLUE"] if #TeamInfo[KQ_TEAM_NO["KTN_BLUE"]]["TMEMBER_LIST"] >= nTeamMemberMaxNum then -- ºí·ç ÆÀ ¸â¹ö ¼ö È®ÀÎ if #TeamInfo[KQ_TEAM_NO["KTN_RED"]]["TMEMBER_LIST"] < nTeamMemberMaxNum then -- ·¹µå ÆÀ ¸â¹ö ¼ö È®ÀÎ nTeamNo = KQ_TEAM_NO["KTN_RED"] end end end local nIndex = (#TeamInfo[nTeamNo]["TMEMBER_LIST"] + 1) -- ÆÀ ¸â¹ö ¸®½ºÆ® À妽º TeamInfo[nTeamNo]["TMEMBER_LIST"][nIndex] = KSMemory["PLAYER_LIST"][i]["PHND"] -- ÆÀ ¸â¹ö ¸®½ºÆ® KSMemory["PLAYER_LIST"][i]["PTEAM_NO"] = nTeamNo -- Ç÷¹À̾î ÆÀ ¹øÈ£ if nIndex > 1 then -- ÆÄƼ Âü°¡ cPartyJoin( TeamInfo[nTeamNo]["TMEMBER_LIST"][1], TeamInfo[nTeamNo]["TMEMBER_LIST"][nIndex] ) end -- for j = 1, #KQ_TEAM[nTeamNo]["KT_UNIFORM"] -- do -- À¯´ÏÆû ¼³Á¤ -- cViewSlotEquip( TeamInfo[nTeamNo]["TMEMBER_LIST"][nIndex], KQ_TEAM[nTeamNo]["KT_UNIFORM"][j] ) -- end end end -- °ÔÀÓ Âü°¡ÀÚ ÆÀ À§Ä¡·Î À̵¿ for i = 1, #KSMemory["PLAYER_LIST"] do nTeamNo = KSMemory["PLAYER_LIST"][i]["PTEAM_NO"] if nTeamNo ~= KQ_TEAM_NO["KTN_DEFAULT"] then -- ÆÀ ¹øÈ£ È®ÀÎ cLinkTo( KSMemory["PLAYER_LIST"][i]["PHND"], KSMemory["FIELD_NAME"], KQ_TEAM[nTeamNo]["KT_POINT_X"], KQ_TEAM[nTeamNo]["KT_POINT_Y"] ) end end if #KQ_STEP >= (KSMemory["STEP_NO"] + 1) then -- ´ÙÀ½ ´Ü°è È®ÀÎ -- ´Ü°è ¼³Á¤ KSMemory["STEP_NO"] = KSMemory["STEP_NO"] + 1 -- ´ÙÀ½ ´Ü°è KSMemory["STEP_NEXT_TIME"] = nCurSec + KQ_STEP[KSMemory["STEP_NO"]]["KS_NEXT_TIME"] -- ´ÙÀ½ ´Ü°è ÁøÇà ½Ã°£ local MsgIndex = KQ_STEP[KSMemory["STEP_NO"]]["KS_MSG"] -- ¸Þ¼¼Áö Á¤º¸ if MsgIndex ~= nil then -- ¸Þ¼¼Áö À妽º È®ÀÎ local MsgData = KQ_MSG[MsgIndex] -- ¸Þ¼¼Áö Á¤º¸ if MsgData ~= nil then -- ¸Þ¼¼Áö Á¤º¸ ÇÐÀÎ KSMemory["MSG_NO"] = 1 -- ¸Þ¼¼Áö ´Ü°è KSMemory["MSG_NEXT_TIME"] = nCurSec + MsgData[1]["KM_TIME"] -- ¸Þ¼¼Áö Ãâ·Â ½Ã°£ end end end end -- ¸Þ½ÃÁö Ãâ·Â KF_MESSAGE( KSMemory, nCurSec ) return true end ------------------------------------------------------------------------------------------ -- ½ÃÀÛ ´ë±â -- ------------------------------------------------------------------------------------------ function SF_START_WAIT( KSMemory, nCurSec ) cExecCheck "SF_START_WAIT" if KSMemory == nil then -- Å·´ý Äù½ºÆ® ¹öÆÛ È®ÀÎ return false end if nCurSec == nil then -- ½Ã°£ È®ÀÎ return false end if KSMemory["STEP_NEXT_TIME"] <= nCurSec then -- ÇöÀç ´Ü°è ÁøÇà ½Ã°£ È®ÀÎ if KSMemory["FLAG_INFO"] == nil then -- ±ê¹ß Á¤º¸ È®ÀÎ return false end cStartMsg_AllInMap( KSMemory["FIELD_NAME"] ) -- Å·Äù ½ÃÀÛ Ä«¿îÆ® ´Ù¿î -- ¾ÆÀÌÅÛ ¸ó½ºÅÍ ¼Òȯ for i = 1, #KQ_ITEM_MOB do KSMemory["MOB_LIST"][i] = {} KSMemory["MOB_LIST"][i]["MHND"] = cMobRegen_XY( KSMemory["FIELD_NAME"], KQ_ITEM_MOB[i]["KIM_INDEX"], KQ_ITEM_MOB[i]["KIM_X"], KQ_ITEM_MOB[i]["KIM_Y"], KQ_ITEM_MOB[i]["KIM_DIR"] ) KSMemory["MOB_LIST"][i]["MREGEN_TIME"] = 0 end local nNextStep = KSMemory["STEP_NO"] + 1 -- ´ÙÀ½ ´Ü°è -- ±ê¹ß ¼Òȯ KSMemory["FLAG_INFO"]["FHND"] = cMobRegen_XY( KSMemory["FIELD_NAME"], KQ_FLAG_POINT["KFP_INDEX"], KQ_FLAG_POINT["KFP_X"], KQ_FLAG_POINT["KFP_Y"], KQ_FLAG_POINT["KFP_DIR"] ) if KSMemory["FLAG_INFO"]["FHND"] == nil then nNextStep = 10 -- SF_END_WAIT else KSMemory["FLAG_INFO"]["FINDEX"] = KQ_FLAG_POINT["KFP_INDEX"] -- ±ê¹ß ·ç¾Æ ½ºÅ©¸³Æ® ¼³Á¤ cSetAIScript( KQ_SCRIPT_NAME, KSMemory["FLAG_INFO"]["FHND"] ) cAIScriptFunc( KSMemory["FLAG_INFO"]["FHND"], "Entrance", "KF_FLGAG_OBJECT" ) end if #KQ_STEP >= nNextStep then -- ´ÙÀ½ ´Ü°è È®ÀÎ -- ´Ü°è ¼³Á¤ KSMemory["STEP_NO"] = nNextStep -- ´ÙÀ½ ´Ü°è KSMemory["STEP_NEXT_TIME"] = nCurSec + KQ_STEP[KSMemory["STEP_NO"]]["KS_NEXT_TIME"] -- ´ÙÀ½ ´Ü°è ÁøÇà ½Ã°£ local MsgIndex = KQ_STEP[KSMemory["STEP_NO"]]["KS_MSG"] -- ¸Þ¼¼Áö Á¤º¸ if MsgIndex ~= nil then -- ¸Þ¼¼Áö À妽º È®ÀÎ local MsgData = KQ_MSG[MsgIndex] -- ¸Þ¼¼Áö Á¤º¸ if MsgData ~= nil then -- ¸Þ¼¼Áö Á¤º¸ ÇÐÀÎ KSMemory["MSG_NO"] = 1 -- ¸Þ¼¼Áö ´Ü°è KSMemory["MSG_NEXT_TIME"] = nCurSec + MsgData[1]["KM_TIME"] -- ¸Þ¼¼Áö Ãâ·Â ½Ã°£ end end end end -- ¸Þ½ÃÁö Ãâ·Â KF_MESSAGE( KSMemory, nCurSec ) return true end ------------------------------------------------------------------------------------------ -- ½ÃÀÛ -- ------------------------------------------------------------------------------------------ function SF_START( KSMemory, nCurSec ) cExecCheck "SF_START" if KSMemory == nil then -- Å·´ý Äù½ºÆ® ¹öÆÛ È®ÀÎ return false end if nCurSec == nil then -- ½Ã°£ È®ÀÎ return false end if KSMemory["STEP_NEXT_TIME"] <= nCurSec then -- ÇöÀç ´Ü°è ÁøÇà ½Ã°£ È®ÀÎ -- ¹® ¿­±â for i = 1, #KSMemory["DOOR_LIST"] do cDoorAction( KSMemory["DOOR_LIST"][i], KQ_DOOR[i]["KD_BLOCK"], "open" ) end if #KQ_STEP >= (KSMemory["STEP_NO"] + 1) then -- ´ÙÀ½ ´Ü°è È®ÀÎ -- ´Ü°è ¼³Á¤ KSMemory["STEP_NO"] = KSMemory["STEP_NO"] + 1 -- ´ÙÀ½ ´Ü°è KSMemory["STEP_NEXT_TIME"] = nCurSec + KQ_STEP[KSMemory["STEP_NO"]]["KS_NEXT_TIME"] -- ´ÙÀ½ ´Ü°è ÁøÇà ½Ã°£ -- ŸÀÌ¸Ó Ç¥½Ã cTimer( KSMemory["FIELD_NAME"], KQ_STEP[KSMemory["STEP_NO"]]["KS_NEXT_TIME"] ) local MsgIndex = KQ_STEP[KSMemory["STEP_NO"]]["KS_MSG"] -- ¸Þ¼¼Áö Á¤º¸ if MsgIndex ~= nil then -- ¸Þ¼¼Áö À妽º È®ÀÎ local MsgData = KQ_MSG[MsgIndex] -- ¸Þ¼¼Áö Á¤º¸ if MsgData ~= nil then -- ¸Þ¼¼Áö Á¤º¸ ÇÐÀÎ KSMemory["MSG_NO"] = 1 -- ¸Þ¼¼Áö ´Ü°è KSMemory["MSG_NEXT_TIME"] = nCurSec + MsgData[1]["KM_TIME"] -- ¸Þ¼¼Áö Ãâ·Â ½Ã°£ end end end end -- ¸Þ½ÃÁö Ãâ·Â KF_MESSAGE( KSMemory, nCurSec ) end ------------------------------------------------------------------------------------------ -- ÁøÇà -- ------------------------------------------------------------------------------------------ function SF_ROUTINE( KSMemory, nCurSec ) cExecCheck "SF_ROUTINE" if KSMemory == nil then -- Å·´ý Äù½ºÆ® ¹öÆÛ È®ÀÎ return false end if nCurSec == nil then -- ½Ã°£ È®ÀÎ return false end local TeamInfo = KSMemory["TEAM_LIST"] local FlagInfo = KSMemory["FLAG_INFO"] if TeamInfo == nil then return false end if FlagInfo == nil then return false end -- ±ê¹ß µé°í ÀÖ´Â Ç÷¹À̾î È®ÀÎ FLAG_PLAYER_CHECK( KSMemory, nCurSec ) if FlagInfo["FREGEN_TIME"] ~= 0 then -- ±ê¹ß Æ÷ÀÎÆ® ¸®Á¨ ´ë±â Áß if nCurSec >= FlagInfo["FREGEN_TIME"] then -- ±ê¹ß ¸®Á¨ ½Ã°£ È®ÀÎ -- ±ê¹ß ¼Òȯ FlagInfo["FHND"] = cMobRegen_XY( KSMemory["FIELD_NAME"], KQ_FLAG_POINT["KFP_INDEX"], KQ_FLAG_POINT["KFP_X"], KQ_FLAG_POINT["KFP_Y"], KQ_FLAG_POINT["KFP_DIR"] ) if FlagInfo["FHND"] == nil then FlagInfo["FHND"] = KQ_INVALID_HANDLE else -- ±ê¹ß ·ç¾Æ ½ºÅ©¸³Æ® ¼³Á¤ cSetAIScript( KQ_SCRIPT_NAME, FlagInfo["FHND"] ) cAIScriptFunc( FlagInfo["FHND"], "Entrance", "KF_FLGAG_OBJECT" ) -- ±ê¹ß Á¤º¸ ÃʱâÈ­ FlagInfo["FPHND"] = KQ_INVALID_HANDLE FlagInfo["FINDEX"] = KQ_FLAG_POINT["KFP_INDEX"] FlagInfo["FPICK_TIME"] = 0 FlagInfo["FREGEN_TIME"] = 0 FlagInfo["FREGEN_X"] = KQ_FLAG_POINT["KFP_X"] FlagInfo["FREGEN_Y"] = KQ_FLAG_POINT["KFP_Y"] -- ±ê¹ß ¼Òȯ ¾Ë¸² cScriptMessage( KSMemory["FIELD_NAME"], KQ_FLAG_SCRIPT_MSG["KFSM_REGEN02"] ) end end end if FlagInfo["FHND"] == KQ_INVALID_HANDLE and -- ±ê¹ß ÇÚµé FlagInfo["FPHND"] == KQ_INVALID_HANDLE and -- ±ê¹ß ȹµæ Ç÷¹À̾î ÇÚµé FlagInfo["FREGEN_TIME"] == 0 -- ±ê¹ß ¸®Á¨ ŸÀÓ then -- Å·´ý Äù½ºÆ® ¸Ê¿¡ ±ê¹ßÀÌ Á¸ÀçÇÏÁö´Â È®ÀÎ FlagInfo["FREGEN_TIME"] = KQ_FLAG_POINT["KFP_REGEN_TIME"] + nCurSec end if KSMemory["WORK_TICK"] <= nCurSec then -- ÀÏÁ¤ ½Ã°£¸¶´Ù 󸮵Ǵ ÀÛ¾÷(1ÃÊ¿¡ Çѹø) if FlagInfo["FHND"] ~= KQ_INVALID_HANDLE or -- ±ê¹ß FlagInfo["FPHND"] ~= KQ_INVALID_HANDLE -- ±ê¹ß ȹµæ Ç÷¹À̾î then local MapMarkTable = {} local mmData = {} mmData["Group"] = 0 mmData["x"] = FlagInfo["FREGEN_X"] mmData["y"] = FlagInfo["FREGEN_Y"] mmData["KeepTime"] = 1000 mmData["IconIndex"] = KQ_FLAG_ICON MapMarkTable[mmData["Group"]] = mmData -- ±ê¹ß ¸¶Å· Á¤º¸ ¾Ë¸² cMapMark( KSMemory["FIELD_NAME"], MapMarkTable ) end -- °ÔÀÓ Âü°¡ Ç÷¹À̾î Å·´ý Äù½ºÆ®¸Ê Á¢¼Ó ¿©ºÎ È®ÀÎ local nLogOut_RedTeam = 0 -- ·¹µå ÆÀ Á¢¼ÓÇÏÁö ¾ÊÀº ¸â¹ö ¼ö local nLogOut_BlueTeam = 0 -- ºí·ç ÆÀ Á¢¼ÓÇÏÁö ¾ÊÀº ¸â¹ö ¼ö for i = 1, #KSMemory["PLAYER_LIST"] do if KSMemory["PLAYER_LIST"] [i]["PIS_MAP"] == true then -- Å·´ý Äù½ºÆ®¸Ê¿¡ Á¢¼ÓÇØÀÖ´Â Ç÷¹À̾î if cIsInMap( KSMemory["PLAYER_LIST"][i]["PHND"], KSMemory["FIELD_NAME"] ) == nil then -- Å·´ý Äù½ºÆ®¸Ê¿¡ Á¢¼ÓÇØÀÖ´ÂÁö È®ÀÎ KSMemory["PLAYER_LIST"][i]["PIS_MAP"] = false end end if KSMemory["PLAYER_LIST"][i]["PIS_MAP"] == false then -- Å·´ý Äù½ºÆ®¸Ê¿¡ Á¢¼ÓÇÏÁö ¾ÊÀº ÆÀ¿ø if KSMemory["PLAYER_LIST"][i]["PTEAM_NO"] == KQ_TEAM_NO["KTN_RED"] then nLogOut_RedTeam = nLogOut_RedTeam + 1 elseif KSMemory["PLAYER_LIST"][i]["PTEAM_NO"] == KQ_TEAM_NO["KTN_BLUE"] then nLogOut_BlueTeam = nLogOut_BlueTeam + 1 end end end if nLogOut_RedTeam >= #TeamInfo[KQ_TEAM_NO["KTN_RED"]]["TMEMBER_LIST"] or -- ·¹µå ÆÀ nLogOut_BlueTeam >= #TeamInfo[KQ_TEAM_NO["KTN_BLUE"]]["TMEMBER_LIST"] -- ºí·ç ÆÀ then -- Å·´ý Äù½ºÆ®¸Ê¿¡ Á¢¼ÓÇÏÁö ¾ÊÀº ¸â¹ö ¼ö È®ÀÎ TeamInfo[KQ_TEAM_NO["KTN_RED"]]["TSCORE"] = 0 TeamInfo[KQ_TEAM_NO["KTN_BLUE"]]["TSCORE"] = 0 KSMemory["GAME_TYPE"] = KQ_GAME_TYEP["KGT_EXTRATIME"] KSMemory["STEP_NEXT_TIME"] = 0 end -- ¸ó½ºÅÍ È®ÀÎ( ¾ÆÀÌÅÛ ¸ó½ºÅÍ ) for i = 1, #KSMemory["MOB_LIST"] do if cIsObjectDead( KSMemory["MOB_LIST"][i]["MHND"] ) ~= nil then -- ¸ó½ºÅÍ Á×¾ú´ÂÁö È®ÀÎ if KSMemory["MOB_LIST"][i]["MREGEN_TIME"] == 0 then -- ¸®Á¨ ½Ã°£ ¼³Á¤ KSMemory["MOB_LIST"][i]["MREGEN_TIME"] = KQ_ITEM_MOB[i]["KIM_REGEN_TICK"] + nCurSec else -- ¸®Á¨ ½Ã°£ È®ÀÎ if KSMemory["MOB_LIST"][i]["MREGEN_TIME"] <= nCurSec then -- ¸ó½ºÅÍ ¸®Á¨ KSMemory["MOB_LIST"][i]["KSMM_HND"] = cMobRegen_XY( KSMemory["FIELD_NAME"], KQ_ITEM_MOB[i]["KIM_INDEX"], KQ_ITEM_MOB[i]["KIM_X"], KQ_ITEM_MOB[i]["KIM_Y"], KQ_ITEM_MOB[i]["KIM_DIR"] ) KSMemory["MOB_LIST"][i]["MREGEN_TIME"] = 0 end end end end -- ´ÙÀ½ ½Ã°£ ¼³Á¤ KSMemory["WORK_TICK"] = nCurSec + 1 end if KSMemory["STEP_NEXT_TIME"] <= nCurSec then -- ÇöÀç ´Ü°è ÁøÇà ½Ã°£ È®ÀÎ if FlagInfo["FPHND"] ~= KQ_INVALID_HANDLE then -- ±ê¹ß »óÅÂÀÌ»ó ÇØÁ¦ for k = 1, #KQ_FLAG_ABSTATE do cResetAbstate( FlagInfo["FPHND"], KQ_FLAG_ABSTATE[k]["KFA_INDEX"] ) end end if FlagInfo["FHND"] ~= KQ_INVALID_HANDLE then -- ±ê¹ß ¿ÀºêÁ§Æ® »èÁ¦ cNPCVanish( FlagInfo["FHND"] ) end -- ±ê¹ß Á¤º¸ ÃʱâÈ­ FlagInfo["FHND"] = KQ_INVALID_HANDLE FlagInfo["FPHND"] = KQ_INVALID_HANDLE FlagInfo["FINDEX"] = "" FlagInfo["FPICK_TIME"] = 0 FlagInfo["FREGEN_TIME"] = 0 FlagInfo["FREGEN_X"] = KQ_FLAG_POINT["KFP_X"] FlagInfo["FREGEN_Y"] = KQ_FLAG_POINT["KFP_Y"] -- ¸ó½ºÅÍ »èÁ¦( ¾ÆÀÌÅÛ ¸ó½ºÅÍ ) for i = 1, #KSMemory["MOB_LIST"] do cNPCVanish( KSMemory["MOB_LIST"][i]["MHND"] ) KSMemory["MOB_LIST"][i] = nil end -- ÆÀº° µæÁ¡ Æ÷ÀÎÆ® »èÁ¦ for i = 1, #TeamInfo do if TeamInfo[i]["TPOINT_HND"] ~= KQ_INVALID_HANDLE then -- µæÁ¡ Æ÷ÀÎÆ® ÇÚµé È®ÀÎ cNPCVanish( TeamInfo[i]["TPOINT_HND"] ) TeamInfo[i]["TPOINT_HND"] = KQ_INVALID_HANDLE end end cTimer( KSMemory["FIELD_NAME"], 0 ) local nNextStep = 10 -- SF_END_WAIT if KSMemory["GAME_TYPE"] == KQ_GAME_TYEP["KGT_NORMAL"] and -- ÀÏ¹Ý °æ±â TeamInfo[KQ_TEAM_NO["KTN_RED"]]["TSCORE"] == TeamInfo[KQ_TEAM_NO["KTN_BLUE"]]["TSCORE"] -- ¹«½ÂºÎ then nNextStep = KSMemory["STEP_NO"] + 1 -- SF_EXTRATIME_INIT else for i = 1, #KSMemory["PLAYER_LIST"] do cSetAbstate( KSMemory["PLAYER_LIST"][i]["PHND"], KQ_STUN_ABSTATE["KSA_INDEX"], KQ_STUN_ABSTATE["KSA_STR"], KQ_STUN_ABSTATE["KSA_KEEPTIME"] ) end end if KSMemory["STEP_NEXT_TIME"] ~= 0 then cScriptMessage( KSMemory["FIELD_NAME"], KQ_MSG["KM_GAME_TIME"][1]["KM_INDEX"] ) end if #KQ_STEP >= nNextStep then -- ´ÙÀ½ ´Ü°è È®ÀÎ -- ´Ü°è ¼³Á¤ KSMemory["STEP_NO"] = nNextStep -- ´ÙÀ½ ´Ü°è KSMemory["STEP_NEXT_TIME"] = nCurSec + KQ_STEP[KSMemory["STEP_NO"]]["KS_NEXT_TIME"] -- ´ÙÀ½ ´Ü°è ÁøÇà ½Ã°£ local MsgIndex = KQ_STEP[KSMemory["STEP_NO"]]["KS_MSG"] -- ¸Þ¼¼Áö Á¤º¸ if MsgIndex ~= nil then -- ¸Þ¼¼Áö À妽º È®ÀÎ local MsgData = KQ_MSG[MsgIndex] -- ¸Þ¼¼Áö Á¤º¸ if MsgData ~= nil then -- ¸Þ¼¼Áö Á¤º¸ ÇÐÀÎ KSMemory["MSG_NO"] = 1 -- ¸Þ¼¼Áö ´Ü°è KSMemory["MSG_NEXT_TIME"] = nCurSec + MsgData[1]["KM_TIME"] -- ¸Þ¼¼Áö Ãâ·Â ½Ã°£ end end end end -- ¸Þ½ÃÁö Ãâ·Â KF_MESSAGE( KSMemory, nCurSec ) return true end ------------------------------------------------------------------------------------------ -- ¿¬ÀåÀü ÁøÇàÀ» À§ÇÑ ÃʱâÈ­ -- ------------------------------------------------------------------------------------------ function SF_EXTRATIME_INIT( KSMemory, nCurSec ) cExecCheck "SF_EXTRATIME_INIT" if KSMemory == nil then -- Å·´ý Äù½ºÆ® ¹öÆÛ È®ÀÎ return false end if nCurSec == nil then -- ½Ã°£ È®ÀÎ return false end if KSMemory["STEP_NEXT_TIME"] <= nCurSec then -- ÇöÀç ´Ü°è ÁøÇà ½Ã°£ È®ÀÎ -- ¹® ´Ý±â for i = 1, #KSMemory["DOOR_LIST"] do cDoorAction( KSMemory["DOOR_LIST"][i], KQ_DOOR[i]["KD_BLOCK"], "close" ) end -- ÆÀÀ§Ä¡·Î À̵¿ for i = 1, #KSMemory["PLAYER_LIST"] do local nTeamNo = KSMemory["PLAYER_LIST"][i]["PTEAM_NO"] -- ÆÀ ¹øÈ£ if KSMemory["PLAYER_LIST"][i]["PIS_MAP"] == true then -- Å·´ý Äù½ºÆ®¸Ê¿¡ Á¢¼ÓÇØÀÖ´ÂÁö È®ÀÎ cLinkTo( KSMemory["PLAYER_LIST"][i]["PHND"], KSMemory["FIELD_NAME"], KQ_TEAM[nTeamNo]["KT_POINT_X"], KQ_TEAM[nTeamNo]["KT_POINT_Y"] ) end end -- ¿¬ÀåÀü ¼³Á¤ KSMemory["GAME_TYPE"] = KQ_GAME_TYEP["KGT_EXTRATIME"] if #KQ_STEP >= (KSMemory["STEP_NO"] + 1) then -- ´ÙÀ½ ´Ü°è È®ÀÎ -- ´Ü°è ¼³Á¤ KSMemory["STEP_NO"] = KSMemory["STEP_NO"] + 1 -- ´ÙÀ½ ´Ü°è KSMemory["STEP_NEXT_TIME"] = nCurSec + KQ_STEP[KSMemory["STEP_NO"]]["KS_NEXT_TIME"] -- ´ÙÀ½ ´Ü°è ÁøÇà ½Ã°£ local MsgIndex = KQ_STEP[KSMemory["STEP_NO"]]["KS_MSG"] -- ¸Þ¼¼Áö Á¤º¸ if MsgIndex ~= nil then -- ¸Þ¼¼Áö À妽º È®ÀÎ local MsgData = KQ_MSG[MsgIndex] -- ¸Þ¼¼Áö Á¤º¸ if MsgData ~= nil then -- ¸Þ¼¼Áö Á¤º¸ ÇÐÀÎ KSMemory["MSG_NO"] = 1 -- ¸Þ¼¼Áö ´Ü°è KSMemory["MSG_NEXT_TIME"] = nCurSec + MsgData[1]["KM_TIME"] -- ¸Þ¼¼Áö Ãâ·Â ½Ã°£ end end end end -- ¸Þ½ÃÁö Ãâ·Â KF_MESSAGE( KSMemory, nCurSec ) return true end ------------------------------------------------------------------------------------------ -- °ÔÀÓ ³¡ ´ë±â -- ------------------------------------------------------------------------------------------ function SF_END_WAIT( KSMemory, nCurSec ) cExecCheck "SF_END_WAIT" if KSMemory == nil then -- Å·´ý Äù½ºÆ® ¹öÆÛ È®ÀÎ return false end if nCurSec == nil then -- ½Ã°£ È®ÀÎ return false end if KSMemory["STEP_NEXT_TIME"] <= nCurSec then -- ÇöÀç ´Ü°è ÁøÇà ½Ã°£ È®ÀÎ local TeamInfo = KSMemory["TEAM_LIST"] -- ÆÀ Á¤º¸ local RedTeamResult = nil -- ·¹µå ÆÀ °á°ú Á¤º¸ local BlueTeamResult = nil -- ºí·ç ÆÀ °á°ú Á¤º¸ local PlayerReward = nil -- Ç÷¹ÀÌ¾î °á°ú Á¤º¸ if TeamInfo == nil then -- ÆÀ Á¤º¸ È®ÀÎ return false end if TeamInfo[KQ_TEAM_NO["KTN_RED"]]["TSCORE"] == TeamInfo[KQ_TEAM_NO["KTN_BLUE"]]["TSCORE"] then -- ¹«½ÂºÎ RedTeamResult = KQ_RESULT["KR_DRAW"] BlueTeamResult = KQ_RESULT["KR_DRAW"] elseif TeamInfo[KQ_TEAM_NO["KTN_RED"]]["TSCORE"] > TeamInfo[KQ_TEAM_NO["KTN_BLUE"]]["TSCORE"] then -- ·¹µåÆÀ ½Â¸® RedTeamResult = KQ_RESULT["KR_WIN"] BlueTeamResult = KQ_RESULT["KR_LOSE"] else -- ºí·çÆÀ ½Â¸® RedTeamResult = KQ_RESULT["KR_LOSE"] BlueTeamResult = KQ_RESULT["KR_WIN"] end -- °ÔÀÓ °á°ú ó¸® for i = 1, #KSMemory["PLAYER_LIST"] do if KSMemory["PLAYER_LIST"][i]["PIS_MAP"] == true then -- Å·´ý Äù½ºÆ®¸Ê¿¡ Á¢¼ÓÇØÀÖ´ÂÁö È®ÀÎ if KSMemory["PLAYER_LIST"][i]["PTEAM_NO"] == KQ_TEAM_NO["KTN_RED"] then -- ·¹µå ÆÀ PlayerReward = RedTeamResult elseif KSMemory["PLAYER_LIST"][i]["PTEAM_NO"] == KQ_TEAM_NO["KTN_BLUE"] then -- ºí·ç ÆÀ PlayerReward = BlueTeamResult end cPartyLeave( KSMemory["PLAYER_LIST"][i]["PHND"] ) -- ÆÄƼ ÇØÁ¦ cViewSlotUnEquipAll( KSMemory["PLAYER_LIST"][i]["PHND"] ) -- ÄÚ½ºÆ¬ ÇØÁ¦ cResetAbstate( KSMemory["PLAYER_LIST"][i]["PHND"], KQ_MAPLOGIN_ABSTATE["KMA_INDEX"] ) -- À̵¿ ¼Óµµ Áõ°¡ »óÅÂÀÌ»ó Á¦°Å cKQRewardIndex( KSMemory["PLAYER_LIST"][i]["PHND"], PlayerReward["KRE_REWAED"] ) -- º¸»ó cEffectMsg( KSMemory["PLAYER_LIST"][i]["PHND"], PlayerReward["KRE_EFFECT_MSG"] ) -- ÀÌÆåÆ® ¸Þ¼¼Áö cEmoticon( KSMemory["PLAYER_LIST"][i]["PHND"], PlayerReward["KRE_EMOTICON"] ) -- À̸ð¼Ç end -- ÆÀ ¹øÈ£ ÃʱâÈ­ KSMemory["PLAYER_LIST"][i]["PTEAM_NO"] = KQ_TEAM_NO["KTN_DEFAULT"] end -- ÆÀ Á¤º¸ ÃʱâÈ­ for i = 1, #KSMemory["TEAM_LIST"] do KSMemory["TEAM_LIST"][i]["TSCORE"] = 0 KSMemory["TEAM_LIST"][i]["TPOINT_HND"] = KQ_INVALID_HANDLE KSMemory["TEAM_LIST"][i]["TMEMBER_LIST"] = nil KSMemory["TEAM_LIST"][i]["TMEMBER_LIST"] = {} end -- ŸÀÌ¸Ó ÃʱâÈ­ cTimer( KSMemory["FIELD_NAME"], 0 ) if #KQ_STEP >= (KSMemory["STEP_NO"] + 1) then -- ´ÙÀ½ ´Ü°è È®ÀÎ -- ´Ü°è ¼³Á¤ KSMemory["STEP_NO"] = KSMemory["STEP_NO"] + 1 -- ´ÙÀ½ ´Ü°è KSMemory["STEP_NEXT_TIME"] = nCurSec + KQ_STEP[KSMemory["STEP_NO"]]["KS_NEXT_TIME"] -- ´ÙÀ½ ´Ü°è ÁøÇà ½Ã°£ local MsgIndex = KQ_STEP[KSMemory["STEP_NO"]]["KS_MSG"] -- ¸Þ¼¼Áö Á¤º¸ if MsgIndex ~= nil then -- ¸Þ¼¼Áö À妽º È®ÀÎ local MsgData = KQ_MSG[MsgIndex] -- ¸Þ¼¼Áö Á¤º¸ if MsgData ~= nil then -- ¸Þ¼¼Áö Á¤º¸ ÇÐÀÎ KSMemory["MSG_NO"] = 1 -- ¸Þ¼¼Áö ´Ü°è KSMemory["MSG_NEXT_TIME"] = nCurSec + MsgData[1]["KM_TIME"] -- ¸Þ¼¼Áö Ãâ·Â ½Ã°£ end end end end -- ¸Þ½ÃÁö Ãâ·Â KF_MESSAGE( KSMemory, nCurSec ) end ------------------------------------------------------------------------------------------ -- °ÔÀÓ ³¡ -- ------------------------------------------------------------------------------------------ function SF_END( KSMemory, nCurSec ) cExecCheck "SF_END" if KSMemory == nil then -- Å·´ý Äù½ºÆ® ¹öÆÛ È®ÀÎ return false end if nCurSec == nil then -- ½Ã°£ È®ÀÎ return false end if KSMemory["STEP_NEXT_TIME"] <= nCurSec then -- ÇöÀç ´Ü°è ÁøÇà ½Ã°£ È®ÀÎ -- ¸¶À»·Î À̵¿ cLinkToAll( KSMemory["FIELD_NAME"], KQ_RETURN_MAP["KRM_INDEX"], KQ_RETURN_MAP["KRM_X"], KQ_RETURN_MAP["KRM_Y"] ) -- Å·´ý Äù½ºÆ® Á¾·á cEndOfKingdomQuest( KSMemory["FIELD_NAME"] ) -- ´ÙÀ½ ´Ü°è ¼³Á¤ KSMemory["STEP_NO"] = nil KSMemory["STEP_NEXT_TIME"] = nil return true end -- ¸Þ½ÃÁö Ãâ·Â KF_MESSAGE( KSMemory, nCurSec ) return true end ------------------------------------------------------------------------------------------ -- Ç÷¹ÀÌ¾î ±ê¹ß È®ÀÎ -- ------------------------------------------------------------------------------------------ function FLAG_PLAYER_CHECK( KSMemory, nCurSec ) cExecCheck "FLAG_PLAYER_CHECK" if KSMemory == nil then -- Å·´ý Äù½ºÆ® ¹öÆÛ È®ÀÎ return false end if nCurSec == nil then -- ½Ã°£ È®ÀÎ return false end local TeamInfo = KSMemory["TEAM_LIST"] local FlagInfo = KSMemory["FLAG_INFO"] if TeamInfo == nil then -- ÆÀ Á¤º¸ È®ÀÎ return end if FlagInfo == nil then -- ±ê¹ß Á¤º¸ È®ÀÎ return end if FlagInfo["FREGEN_TIME"] ~= 0 then -- ±ê¹ß ¸®Á¨ ŸÀÓ È®ÀÎ return end if FlagInfo["FPHND"] == KQ_INVALID_HANDLE then -- ±ê¹ß ȹµæ Ç÷¹À̾î È®ÀÎ return end local PlayerInfo = nil -- Ç÷¹À̾î Á¤º¸ local PlayerMaxNum = #KSMemory["PLAYER_LIST"] -- °ÔÀÓ Âü°¡ Ç÷¹ÀÌ¾î ¼ö -- ±ê¹ß ȹµæ Ç÷¹À̾î ã±â for i = 1, PlayerMaxNum do if FlagInfo["FPHND"] == KSMemory["PLAYER_LIST"][i]["PHND"] then PlayerInfo = KSMemory["PLAYER_LIST"][i] end end if PlayerInfo == nil then -- Ç÷¹À̾î Á¤º¸ È®ÀÎ return end if cIsInMap( PlayerInfo["PHND"], KSMemory["FIELD_NAME"] ) == nil then -- Å·´ý Äù½ºÆ®¸Ê¿¡ Á¢¼ÓÇØÀÖÁö ¾ÊÀ» °æ¿ì -- ¸¶Áö¸· À§Ä¡¿¡ ±ê¹ß ¼Òȯ FlagInfo["FHND"] = cMobRegen_XY( KSMemory["FIELD_NAME"], KQ_FLAG["KF_INDEX"], FlagInfo["FREGEN_X"], FlagInfo["FREGEN_Y"], 0 ) if FlagInfo["FHND"] == nil then FlagInfo["FHND"] = KQ_INVALID_HANDLE else -- ±ê¹ß ·ç¾Æ ½ºÅ©¸³Æ® ¼³Á¤ cSetAIScript( KQ_SCRIPT_NAME, FlagInfo["FHND"] ) cAIScriptFunc( FlagInfo["FHND"], "Entrance", "KF_FLGAG_OBJECT" ) -- ±ê¹ß µå¶ø ¾Ë¸² cScriptMessage( KSMemory["FIELD_NAME"], KQ_FLAG_SCRIPT_MSG["KFSM_DROP"], PlayerInfo["PNAME"] ) -- ±ê¹ß Á¤º¸ ¼³Á¤ FlagInfo["FPHND"] = KQ_INVALID_HANDLE FlagInfo["FINDEX"] = KQ_FLAG["KF_INDEX"] FlagInfo["FPICK_TIME"] = nCurSec + KQ_FLAG["KF_PICK_DELAY"] FlagInfo["FREGEN_TIME"] = 0 -- µæÁ¡ Æ÷ÀÎÆ® »èÁ¦ if TeamInfo[PlayerInfo["PTEAM_NO"]]["TPOINT_HND"] ~= KQ_INVALID_HANDLE then cNPCVanish( TeamInfo[PlayerInfo["PTEAM_NO"]]["TPOINT_HND"] ) TeamInfo[PlayerInfo["PTEAM_NO"]]["TPOINT_HND"] = KQ_INVALID_HANDLE end end else -- ±ê¹ß »óÅÂÀÌ»ó Áö¼Ó½Ã°£ local RestTime = cAbstateRestTime( PlayerInfo["PHND"], KQ_FLAG_ABSTATE[1]["KFA_INDEX"] ) if RestTime == nil then -- ±ê¹ß »óÅÂÀÌ»ó Áö¼Ó½Ã°£ È®ÀÎ -- ±ê¹ß È­»ìÇ¥ »óÅÂÀÌ»ó Á¦°Å cResetAbstate( FlagInfo["FPHND"], KQ_FLAG_ABSTATE[2]["KFA_INDEX"] ) -- ±ê¹ß ¼Òȯ FlagInfo["FHND"] = cMobRegen_Obj( KQ_FLAG["KF_INDEX"], PlayerInfo["PHND"] ) if FlagInfo["FHND"] == nil then FlagInfo["FHND"] = KQ_INVALID_HANDLE else -- ±ê¹ß ·ç¾Æ ½ºÅ©¸³Æ® ¼³Á¤ cSetAIScript( KQ_SCRIPT_NAME, FlagInfo["FHND"] ) cAIScriptFunc( FlagInfo["FHND"], "Entrance", "KF_FLGAG_OBJECT" ) -- ±ê¹ß µå¶ø ¾Ë¸² cScriptMessage( KSMemory["FIELD_NAME"], KQ_FLAG_SCRIPT_MSG["KFSM_DROP"], PlayerInfo["PNAME"] ) -- ±ê¹ß Á¤º¸ ¼³Á¤ FlagInfo["FPHND"] = KQ_INVALID_HANDLE FlagInfo["FINDEX"] = KQ_FLAG["KF_INDEX"] FlagInfo["FPICK_TIME"] = nCurSec + KQ_FLAG["KF_PICK_DELAY"] FlagInfo["FREGEN_TIME"] = 0 -- ±ê¹ß À§Ä¡ ¼³Á¤ FlagInfo["FREGEN_X"], FlagInfo["FREGEN_Y"] = cObjectLocate( PlayerInfo["PHND"] ) if FlagInfo["FREGEN_X"] == nil or FlagInfo["FREGEN_Y"] == nil then -- Ç÷¹À̾î À§Ä¡ Á¤º¸ È®ÀÎ FlagInfo["FREGEN_X"] = KQ_FLAG_POINT["KFP_X"] FlagInfo["FREGEN_X"] = KQ_FLAG_POINT["KFP_Y"] end -- µæÁ¡ Æ÷ÀÎÆ® »èÁ¦ if TeamInfo[PlayerInfo["PTEAM_NO"]]["TPOINT_HND"] ~= KQ_INVALID_HANDLE then cNPCVanish( TeamInfo[PlayerInfo["PTEAM_NO"]]["TPOINT_HND"] ) TeamInfo[PlayerInfo["PTEAM_NO"]]["TPOINT_HND"] = KQ_INVALID_HANDLE end end else if TeamInfo[PlayerInfo["PTEAM_NO"]] ~= nil then -- Ç÷¹À̾î Á¤º¸ È®ÀÎ -- Ç÷¹À̾î À§Ä¡ FlagInfo["FREGEN_X"], FlagInfo["FREGEN_Y"] = cObjectLocate( PlayerInfo["PHND"] ) if FlagInfo["FREGEN_X"] == nil or FlagInfo["FREGEN_Y"] == nil then -- Ç÷¹À̾î À§Ä¡ Á¤º¸ È®ÀÎ FlagInfo["FREGEN_X"] = KQ_FLAG_POINT["KFP_X"] FlagInfo["FREGEN_X"] = KQ_FLAG_POINT["KFP_Y"] end -- ½ºÄÚ¾î Æ÷ÀÎÆ® °Å¸® local Dist = cDistanceSquar( KQ_TEAM[PlayerInfo["PTEAM_NO"]]["KT_POINT_X"], KQ_TEAM[PlayerInfo["PTEAM_NO"]]["KT_POINT_Y"], FlagInfo["FREGEN_X"], FlagInfo["FREGEN_Y"] ) local CheckDist = ( KQ_TEAM_POINT_CHECK_DIST * KQ_TEAM_POINT_CHECK_DIST ) if Dist <= CheckDist then -- ½ºÄÚ¾î Æ÷ÀÎÆ® °Å¸® È®ÀÎ -- ±ê¹ß ÇØÁ¦ for k = 1, #KQ_FLAG_ABSTATE do cResetAbstate( PlayerInfo["PHND"], KQ_FLAG_ABSTATE[k]["KFA_INDEX"] ) end -- ±ê¹ß Á¤º¸ ÃʱâÈ­ ¹× ¸®Á¨ ½Ã°£ ¼³Á¤ FlagInfo["FHND"] = KQ_INVALID_HANDLE FlagInfo["FPHND"] = KQ_INVALID_HANDLE FlagInfo["FINDEX"] = "" FlagInfo["FPICK_TIME"] = 0 FlagInfo["FREGEN_TIME"] = nCurSec + KQ_FLAG_POINT["KFP_REGEN_TIME"] FlagInfo["FREGEN_X"] = KQ_FLAG_POINT["KFP_X"] FlagInfo["FREGEN_Y"] = KQ_FLAG_POINT["KFP_Y"] -- µæÁ¡ TeamInfo[PlayerInfo["PTEAM_NO"]]["TSCORE"] = TeamInfo[PlayerInfo["PTEAM_NO"]]["TSCORE"] + 1 -- ÆÀ Á¤º¸ ¾Ë¸² cScoreInfo_AllInMap( KSMemory["FIELD_NAME"], #KQ_TEAM , TeamInfo[KQ_TEAM_NO["KTN_RED"]]["TSCORE"], TeamInfo[KQ_TEAM_NO["KTN_BLUE"]]["TSCORE"] ) -- µæÁ¡ Æ÷ÀÎÆ® »èÁ¦ if TeamInfo[PlayerInfo["PTEAM_NO"]]["TPOINT_HND"] ~= KQ_INVALID_HANDLE then cNPCVanish( TeamInfo[PlayerInfo["PTEAM_NO"]]["TPOINT_HND"] ) TeamInfo[PlayerInfo["PTEAM_NO"]]["TPOINT_HND"] = KQ_INVALID_HANDLE end -- ¿¬ÀåÀü¿¡¼­ µæÁ¡½Ã, ¹Ù·Î °æ±â Á¾·á if KSMemory["GAME_TYPE"] == KQ_GAME_TYEP["KGT_EXTRATIME"] then KSMemory["STEP_NEXT_TIME"] = 0 else -- µæÁ¡ ¾Ë¸² if PlayerInfo["PTEAM_NO"] == KQ_TEAM_NO["KTN_RED"] then -- ·¹µå ÆÀ cScriptMessage( KSMemory["FIELD_NAME"], KQ_FLAG_SCRIPT_MSG["KFSM_POINT_RED"], PlayerInfo["PNAME"] ) elseif PlayerInfo["PTEAM_NO"] == KQ_TEAM_NO["KTN_BLUE"] then -- ºí·ç ÆÀ cScriptMessage( KSMemory["FIELD_NAME"], KQ_FLAG_SCRIPT_MSG["KFSM_POINT_BLUE"], PlayerInfo["PNAME"] ) end -- µæ,½ÇÁ¡ »ç¿îµå for i = 1, #KSMemory["PLAYER_LIST"] do if KSMemory["PLAYER_LIST"][i]["PTEAM_NO"] == PlayerInfo["PTEAM_NO"] then cPlaySound( KSMemory["PLAYER_LIST"][i]["PHND"], KQ_SOUND["KS_GETPOINT"] ); else cPlaySound( KSMemory["PLAYER_LIST"][i]["PHND"], KQ_SOUND["KS_LOSEPOINT"] ); end end -- ±ê¹ß »ý¼º °ü·Ã ¸Þ¼¼Áö ¾Ë¸² cScriptMessage( KSMemory["FIELD_NAME"], KQ_FLAG_SCRIPT_MSG["KFSM_REGEN01"] ) end end end end end end -- Å·´ý Äù½ºÆ® ´Ü°èº° µ¥ÀÌÅÍ KQ_STEP = { -------------------------------------------------------------------------------------------- -- ÁøÇà ÇÔ¼ö, ´ÙÀ½ ÁøÇà ½Ã°£, ¸Þ½ÃÁö µ¥ÀÌÅÍ( KDSpring_Data ) -------------------------------------------------------------------------------------------- { KS_FUNC = SF_DIVIDE_TEAM_WAIT, KS_TIMER = false, KS_LINKTO_TEAM = false, KS_NEXT_TIME = 30, KS_MSG = nil }, -- 1 ÆÀ ³ª´©±â ´ë±â { KS_FUNC = SF_DIVIDE_TEAM, KS_TIMER = false, KS_LINKTO_TEAM = false, KS_NEXT_TIME = 5, KS_MSG = "KM_DIVIDE_TEAM" }, -- 2 ÆÀ ³ª´©±â { KS_FUNC = SF_START_WAIT, KS_TIMER = false, KS_LINKTO_TEAM = true, KS_NEXT_TIME = 55, KS_MSG = "KM_START_WAIT" }, -- 3 °ÔÀÓ ½ÃÀÛ ´ë±â { KS_FUNC = SF_START, KS_TIMER = false, KS_LINKTO_TEAM = true, KS_NEXT_TIME = 5, KS_MSG = nil }, -- 4 °ÔÀÓ ½ÃÀÛ { KS_FUNC = SF_ROUTINE, KS_TIMER = true, KS_LINKTO_TEAM = true, KS_NEXT_TIME = 600, KS_MSG = nil }, -- 5 °ÔÀÓ ÁøÇà -- ¿¬ÀåÀü { KS_FUNC = SF_EXTRATIME_INIT, KS_TIMER = false, KS_LINKTO_TEAM = true, KS_NEXT_TIME = 10, KS_MSG = "KM_EXTRA_TIME_WAIT" }, -- 6 ¿¬ÀåÀü ½ÃÀÛÀ» À§ÇÑ ÃʱâÈ­ { KS_FUNC = SF_START_WAIT, KS_TIMER = false, KS_LINKTO_TEAM = true, KS_NEXT_TIME = 10, KS_MSG = nil }, -- 7 ¿¬ÀåÀü °ÔÀÓ ½ÃÀÛ ´ë±â { KS_FUNC = SF_START, KS_TIMER = false, KS_LINKTO_TEAM = true, KS_NEXT_TIME = 5, KS_MSG = nil }, -- 8 ¿¬ÀåÀü °ÔÀÓ ½ÃÀÛ { KS_FUNC = SF_ROUTINE, KS_TIMER = true, KS_LINKTO_TEAM = true, KS_NEXT_TIME = 180, KS_MSG = nil }, -- 9 ¿¬ÀåÀü °ÔÀÓ ÁøÇà { KS_FUNC = SF_END_WAIT, KS_TIMER = false, KS_LINKTO_TEAM = false, KS_NEXT_TIME = 2, KS_MSG = nil }, -- 10 °ÔÀÓ Á¾·á ´ë±â { KS_FUNC = SF_END, KS_TIMER = false, KS_LINKTO_TEAM = false, KS_NEXT_TIME = 60, KS_MSG = "KM_END" }, -- 11 °ÔÀÓ Á¾·á }