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.

898 lines
24 KiB

--------------------------------------------------------------------------------
-- Promote Job2_Gamb Progress Func --
--------------------------------------------------------------------------------
------------------------------------------------------
-- InitDungeon : <EFBFBD>ʱ<EFBFBD>ȭ<EFBFBD>Լ<EFBFBD>( <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>귿, <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD>, npc <EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
------------------------------------------------------
function InitDungeon( Var )
cExecCheck "InitDungeon"
-- DebugLog( "==========================InitDungeon_Start==========================" )
if Var == nil
then
ErrorLog("InitDungeon::Var == nil")
return
end
-- <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD><EFBFBD><EFBFBD> ù <EFBFBD>α<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD><EFBFBD><EFBFBD>.
if Var["PlayerHandle"] == INVALID_HANDEL
then
-- DebugLog("<EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD>α<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
if Var["InitialSec"] + WAIT_PLAYER_MAP_LOGIN_SEC_MAX <= cCurrentSecond()
then
ErrorLog("<EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD> <EFBFBD>ʿ<EFBFBD> <EFBFBD>α<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
Var["StepFunc"] = QuestFailed
return
end
return
end
-- Door Regen
for i = 1, #RegenInfo["Door"]
do
local CurRegenDoor = RegenInfo["Door"][i]
local CurDoorHandle = cDoorBuild( Var["MapIndex"], CurRegenDoor["MobIndex"], CurRegenDoor["X"], CurRegenDoor["Y"], CurRegenDoor["Dir"], CurRegenDoor["Scale"] )
if CurDoorHandle == nil
then
GoToFail( Var, "InitDungeon::Door was not created. : " )
return
end
if Var["Door"]["Handle"] == nil
then
Var["Door"]["Handle"] = {}
end
cDoorAction( CurDoorHandle, CurRegenDoor["DoorBlock"], "close" )
Var["Door"]["Handle"][i] = CurDoorHandle
end
-- DebugLog( "<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ϸ<EFBFBD>")
-- NPC Regen
local RegenNPC = RegenInfo["NPC"]
local NPCHandle = cMobRegen_XY( Var["MapIndex"], RegenNPC["MobIndex"], RegenNPC["X"], RegenNPC["Y"], RegenNPC["Dir"] )
if NPCHandle == nil
then
GoToFail( Var, "InitDungeon:: NPC Regen Fail" )
return
end
Var["NPC"]["Handle"] = NPCHandle
-- DebugLog( "npc <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ϸ<EFBFBD>" )
-- Roullet Regen
local CurRoulette = RegenInfo["Roulette"]
local RouletteHandle = cMobRegen_XY( Var["MapIndex"], CurRoulette["MobIndex"], CurRoulette["X"], CurRoulette["Y"], CurRoulette["Dir"] )
if RouletteHandle == nil
then
GoToFail( Var, "InitDungeon:: Roullet Regen Fail" )
return
end
cSetAIScript ( MainLuaScriptPath, RouletteHandle )
cAIScriptFunc ( RouletteHandle, "Entrance", "DummyRoutineFunc" )
cAIScriptFunc ( RouletteHandle, "NPCClick", "Roulette_Click" )
Var["Roulette"]["Handle"] = RouletteHandle
-- DebugLog( "Roulette <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ϸ<EFBFBD>" )
-- Dice Regen
for i = 1, #RegenInfo["Dice"]
do
local CurRegenDice = RegenInfo["Dice"][i]
local CurDiceHandle = cMobRegen_XY( Var["MapIndex"], CurRegenDice["MobIndex"], CurRegenDice["X"], CurRegenDice["Y"], CurRegenDice["Dir"] )
if CurDiceHandle == nil
then
GoToFail( Var, "InitDungeon:: Dice was not created. : "..i )
return
end
cSetAIScript ( MainLuaScriptPath, CurDiceHandle )
cAIScriptFunc ( CurDiceHandle, "Entrance", "DummyRoutineFunc" )
cAIScriptFunc ( CurDiceHandle, "NPCClick", "Dice_Click" )
if Var["Dice"]["Handle"] == nil
then
Var["Dice"]["Handle"] = {}
end
Var["Dice"]["Handle"][i] = CurDiceHandle
end
-- DebugLog( "Dice <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ϸ<EFBFBD>" )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var["StepFunc"] = WelcomeGamble
Var["InitDungeon"] = nil
end
------------------------------------------------------
-- WelcomeGamble : <EFBFBD><EFBFBD>Ŀ ȯ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>
------------------------------------------------------
function WelcomeGamble( Var )
cExecCheck "WelcomeGamble"
-- DebugLog( "==========================WelcomeGamble_Start==========================" )
if Var == nil
then
ErrorLog( "WelcomeGamble : Var nil" )
return
end
-- WelcomeGamble <EFBFBD>ʱ<EFBFBD>ȭ
local WelcomeGambleInfo = Var["WelcomeGamble"]
if WelcomeGambleInfo == nil
then
-- DebugLog("WelcomeGamble :: <EFBFBD>ʱ<EFBFBD>ȭ")
Var["WelcomeGamble"] = {}
WelcomeGambleInfo = Var["WelcomeGamble"]
WelcomeGambleInfo["NextStepWaitTime"] = Var["CurSec"] + ( DelayTime["GapDialog"] * #ChatInfo["WelcomeGamble"] ) + DelayTime["WaitSeconds"]
WelcomeGambleInfo["DialogTime"] = Var["CurSec"] + DelayTime["GapDialog"]
WelcomeGambleInfo["DialogStep"] = 1
end
if WelcomeGambleInfo["DialogTime"] ~= nil
then
-- DebugLog("WelcomeGamble :: <EFBFBD><EFBFBD>ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
if WelcomeGambleInfo["DialogTime"] > Var["CurSec"]
then
return
end
local CurMsg = ChatInfo["WelcomeGamble"]
local DialogStep = WelcomeGambleInfo["DialogStep"]
local MaxDialogStep = #ChatInfo["WelcomeGamble"]
if DialogStep <= MaxDialogStep
then
cMobDialog( Var["MapIndex"], CurMsg[DialogStep]["SpeakerIndex"], ChatInfo["ScriptFileName"], CurMsg[DialogStep]["MsgIndex"] )
WelcomeGambleInfo["DialogTime"] = Var["CurSec"] + DelayTime["GapDialog"]
WelcomeGambleInfo["DialogStep"] = DialogStep + 1
end
if WelcomeGambleInfo["DialogStep"] > MaxDialogStep
then
WelcomeGambleInfo["DialogTime"] = nil
WelcomeGambleInfo["DialogStep"] = nil
end
end
if WelcomeGambleInfo["NextStepWaitTime"] > Var["CurSec"]
then
return
end
-- Ÿ<EFBFBD≯<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var["LimitTime"] == 0
then
Var["LimitTime"] = Var["CurSec"] + DelayTime["LimitTime"]
cTimer( Var["MapIndex"], DelayTime["LimitTime"] )
end
-- DebugLog( "LimitTime"..Var["LimitTime"] )
-- DebugLog("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>̵<EFBFBD>")
Var["StepFunc"] = HowToRouletteGame
Var["WelcomeGamble"] = nil
end
------------------------------------------------------
-- HowToRouletteGame : <EFBFBD>귿<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ģ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʱ<EFBFBD>ȭ
------------------------------------------------------
function HowToRouletteGame( Var )
cExecCheck "HowToRouletteGame"
-- DebugLog("==========================HowToRouletteGame_Start==========================")
if Var == nil
then
ErrorLog( "PlayRouletteGame : Var nil" )
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> <EFBFBD>ش<EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD> üũ
if IsFail( Var ) == true
then
return
end
local PlayRouletteGameInfo = Var["PlayRouletteGame"]
if PlayRouletteGameInfo == nil
then
Var["PlayRouletteGame"] = {}
PlayRouletteGameInfo = Var["PlayRouletteGame"]
PlayRouletteGameInfo["RouletteHandle"] = nil
PlayRouletteGameInfo["SelectedDiceHandle"] = nil
PlayRouletteGameInfo["SelectedDiceNum"] = nil
PlayRouletteGameInfo["ReadyToGame"] = false
PlayRouletteGameInfo["AnswerDiceNum"] = nil
PlayRouletteGameInfo["DialogTime"] = Var["CurSec"] + DelayTime["GapDialog"]
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> return, <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD>
if PlayRouletteGameInfo["DialogTime"] ~= nil
then
if PlayRouletteGameInfo["DialogTime"] > Var["CurSec"]
then
return
end
cMobDialog( Var["MapIndex"], ChatInfo["PlayRouletteGame"]["Roulette1"]["SpeakerIndex"], ChatInfo["ScriptFileName"], ChatInfo["PlayRouletteGame"]["Roulette1"]["MsgIndex"] )
PlayRouletteGameInfo["DialogTime"] = nil
Var["StepFunc"] = PlayRouletteGame
end
end
------------------------------------------------------
-- PlayRouletteGame : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>귿 <EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <EFBFBD>ܰ<EFBFBD>
------------------------------------------------------
function PlayRouletteGame( Var )
cExecCheck "PlayRouletteGame"
-- DebugLog("==========================PlayRouletteGame_Start==========================")
if Var == nil
then
ErrorLog( "PlayRouletteGame : Var nil" )
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> <EFBFBD>ش<EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD> üũ
if IsFail( Var ) == true
then
return
end
-- <EFBFBD>ʱ<EFBFBD>ȭ
local PlayRouletteGameInfo = Var["PlayRouletteGame"]
if PlayRouletteGameInfo == nil
then
ErrorLog( "PlayRouletteGame : PlayRouletteGameInfo nil" )
return
end
-- <EFBFBD>귿 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>غ<EFBFBD> X : return / <EFBFBD>귿 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>غ<EFBFBD> O : <EFBFBD>귿<EFBFBD><EFBFBD> <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SetAnswerDice() ȣ<EFBFBD><EFBFBD>
if PlayRouletteGameInfo["ReadyToGame"] == true
then
SetAnswerDice( Var )
local AnswerDiceNumber = PlayRouletteGameInfo["AnswerDiceNum"]
if AnswerDiceNumber == nil
then
ErrorLog( "PlayRouletteGame::AnswerDiceNumber == nil" );
return
end
Var["StepFunc"] = ResultRouletteGame
else
return
end
end
------------------------------------------------------
-- ResultRouletteGame : <EFBFBD>귿<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>( <EFBFBD>귿, <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> ó<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>귿<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>׿<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD> )
------------------------------------------------------
function ResultRouletteGame( Var )
cExecCheck "ResultRouletteGame"
-- DebugLog("==========================ResultRouletteGame_Start==========================")
if Var == nil
then
ErrorLog( "ResultRouletteGame : Var nil" )
return
end
if IsFail( Var ) == true
then
return
end
local PlayRouletteGameInfo = Var["PlayRouletteGame"]
if PlayRouletteGameInfo == nil
then
ErrorLog( "ResultRouletteGame : PlayRouletteGameInfo nil" )
return
end
-- <EFBFBD>ʱ<EFBFBD>ȭ
local ResultRouletteGameInfo = Var["ResultRouletteGame"]
if ResultRouletteGameInfo == nil
then
Var["ResultRouletteGame"] = {}
ResultRouletteGameInfo = Var["ResultRouletteGame"]
ResultRouletteGameInfo["AniStartTime"] = Var["CurSec"]
ResultRouletteGameInfo["NextStepWaitTime"] = Var["CurSec"] + DelayTime["WaitBeforeWinOrLose"]
local AnswerDiceNumber = PlayRouletteGameInfo["AnswerDiceNum"]
-- <EFBFBD><EFBFBD>Ŀ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>( <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.. )
cMobDialog( Var["MapIndex"], ChatInfo["PlayRouletteGame"]["Luck"]["SpeakerIndex"], ChatInfo["ScriptFileName"], ChatInfo["PlayRouletteGame"]["Luck"]["MsgIndex"] )
-- <EFBFBD>귿 <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cAnimate( PlayRouletteGameInfo["RouletteHandle"], "start", AnimationInfo["Roulette"][AnswerDiceNumber] )
-- <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD>( <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鸸 Animove<EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
for i =1, #Var["Dice"]["Handle"]
do
if Var["Dice"]["Handle"][i] ~= PlayRouletteGameInfo["SelectedDiceHandle"]
then
cAnimate( Var["Dice"]["Handle"][i], "start", AnimationInfo["Dice"]["AniMove"] )
end
end
-- <EFBFBD>귿 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
cEffectRegen_Object ( Var["MapIndex"], EffectInfo["Roullete_start"]["FileName"], PlayRouletteGameInfo["RouletteHandle"], EffectInfo["Roullete_start"]["PlayTime"] )
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
if ResultRouletteGameInfo["NextStepWaitTime"] > Var["CurSec"]
then
return
end
cAnimate( PlayRouletteGameInfo["RouletteHandle"], "stop" )
for i =1, #Var["Dice"]["Handle"]
do
if Var["Dice"]["Handle"][i] ~= PlayRouletteGameInfo["SelectedDiceHandle"]
then
cAnimate( Var["Dice"]["Handle"][i], "start", AnimationInfo["Dice"]["AniOff"] )
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 PlayRouletteGameInfo["SelectedDiceNum"] == PlayRouletteGameInfo["AnswerDiceNum"]
then
-- DebugLog("<EFBFBD>귿 <EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
cEffectRegen_Object ( Var["MapIndex"], EffectInfo["Roullete_Match_Success"]["FileName"], PlayRouletteGameInfo["RouletteHandle"], EffectInfo["Roullete_Match_Success"]["PlayTime"] )
Var["StepFunc"] = WinRouletteGame
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>귿<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٸ<EFBFBD><EFBFBD>ٸ<EFBFBD>
else
-- DebugLog("<EFBFBD>귿 <EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
cEffectRegen_Object ( Var["MapIndex"], EffectInfo["Roullete_Match_Fail"]["FileName"], PlayRouletteGameInfo["RouletteHandle"], EffectInfo["Roullete_Match_Fail"]["PlayTime"] )
Var["StepFunc"] = LoseRouletteGame
end
end
------------------------------------------------------
-- LoseRouletteGame : <EFBFBD>귿<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>н<EFBFBD>
------------------------------------------------------
function LoseRouletteGame( Var )
cExecCheck "LoseRouletteGame"
-- DebugLog("==========================LoseRouletteGame_Start==========================")
if Var == nil
then
ErrorLog( "LoseRouletteGame : Var nil" )
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> <EFBFBD>ش<EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD> üũ
if IsFail( Var ) == true
then
return
end
local LoseRouletteGameInfo = Var["LoseRouletteGame"]
if LoseRouletteGameInfo == nil
then
Var["LoseRouletteGame"] = {}
LoseRouletteGameInfo = Var["LoseRouletteGame"]
-- <EFBFBD>귿 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ƚ<EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var["RouletteCount"] = Var["RouletteCount"] + 1
LoseRouletteGameInfo["WaitMobRegen"] = Var["CurSec"] + DelayTime["WaitMobRegen"]
-- <EFBFBD>귿<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ֻ<EFBFBD><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 MobRegenNum = Var["PlayRouletteGame"]["AnswerDiceNum"]
for i = 1, #RegenInfo["Mob"][MobRegenNum]
do
if cGroupRegenInstance( Var["MapIndex"], RegenInfo["Mob"][MobRegenNum][i]) == nil
then
ErrorLog("LoseRouletteGame : <EFBFBD><EFBFBD><EFBFBD>׷<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> _ "..RegenInfo["Mob"][MobRegenNum][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><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if LoseRouletteGameInfo["WaitMobRegen"] < Var["CurSec"]
then
if cObjectCount( Var["MapIndex"], ObjectType["Mob"] ) <= 0
then
DiceLightOff( Var )
Var["LoseRouletteGame"] = nil
Var["PlayRouletteGame"] = nil
Var["ResultRouletteGame"] = nil
Var["StepFunc"] = HowToRouletteGame
end
end
end
------------------------------------------------------
-- WinRouletteGame : <EFBFBD>귿<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------------------------------------------------------
function WinRouletteGame( Var )
cExecCheck "WinRouletteGame"
-- DebugLog("==========================WinRouletteGame_Start==========================")
if Var == nil
then
ErrorLog( "WinRouletteGame : Var nil" )
return
end
if IsFail( Var ) == true
then
return
end
local WinRouletteGameInfo = Var["WinRouletteGame"]
if WinRouletteGameInfo == nil
then
Var["WinRouletteGame"] = {}
WinRouletteGameInfo = Var["WinRouletteGame"]
WinRouletteGameInfo["DialogTime"] = Var["CurSec"] + DelayTime["GapDialog"]
WinRouletteGameInfo["NextStepWaitTime"] = Var["CurSec"] + ( DelayTime["GapDialog"] * #ChatInfo["Roulette_Result"] ) + DelayTime["WaitSeconds"]
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> return, <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD>
if WinRouletteGameInfo["DialogTime"] ~= nil
then
if WinRouletteGameInfo["DialogTime"] > Var["CurSec"]
then
return
end
cMobDialog( Var["MapIndex"], ChatInfo["Roulette_Result"]["PlayerWin"]["SpeakerIndex"], ChatInfo["ScriptFileName"], ChatInfo["Roulette_Result"]["PlayerWin"]["MsgIndex"] )
WinRouletteGameInfo["DialogTime"] = nil
end
if WinRouletteGameInfo["NextStepWaitTime"] > Var["CurSec"]
then
return
else
Var["WinRouletteGame"] = nil
Var["PlayRouletteGame"] = nil
Var["ResultRouletteGame"] = nil
Var["StepFunc"] = BeforeBossBattle
end
end
------------------------------------------------------
-- BeforeBossBattle : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ư<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD>
------------------------------------------------------
function BeforeBossBattle( Var )
cExecCheck "BeforeBossBattle"
-- DebugLog("==========================BeforeBossBattle_Start==========================")
if Var == nil
then
ErrorLog( "BeforeBossBattle : Var nil" )
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> <EFBFBD>ش<EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD> üũ
if IsFail( Var ) == true
then
return
end
local BeforeBossBattleInfo = Var["BeforeBossBattle"]
if BeforeBossBattleInfo == nil
then
Var["BeforeBossBattle"] = {}
BeforeBossBattleInfo = Var["BeforeBossBattle"]
BeforeBossBattleInfo["DialogTime"] = Var["CurSec"] + DelayTime["GapDialog"]
BeforeBossBattleInfo["CameraTime"] = Var["CurSec"] + CameraMoveInfo["KeepTime"]
BeforeBossBattleInfo["bDoorOpen"] = false
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for i=1, #Var["Door"]["Handle"]
do
cDoorAction( Var["Door"]["Handle"][i], RegenInfo["Door"][i]["DoorBlock"], "open" )
end
end
-- ī<EFBFBD>޶<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
if BeforeBossBattleInfo["CameraTime"] ~= nil
then
if BeforeBossBattleInfo["bDoorOpen"] == false
then
local CurDoor = RegenInfo["Door"][1]
if CurDoor == nil
then
ErrorLog( "BeforeBossBattleInfo:: RegenInfo[\"Door\"][1] nil" )
end
cSetAbstate( Var["PlayerHandle"], CameraMoveInfo["AbstateIndex"], 1, CameraMoveInfo["AbstateTime"] )
cCameraMove( Var["MapIndex"], CurDoor["X"], CurDoor["Y"], ( CurDoor["Dir"] + 180 ) * (-1), CameraMoveInfo["AngleY"], CameraMoveInfo["Distance"], 1 )
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for i=1, #Var["Door"]["Handle"]
do
cDoorAction( Var["Door"]["Handle"][i], RegenInfo["Door"][i]["DoorBlock"], "open" )
end
BeforeBossBattleInfo["bDoorOpen"] = true
end
if BeforeBossBattleInfo["bDoorOpen"] == true
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>ٽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD>޶<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if BeforeBossBattleInfo["CameraTime"] > Var["CurSec"]
then
return
else
cCameraMove( Var["MapIndex"], 0, 0, 0, 0, 0, 0 )
cResetAbstate( Var["PlayerHandle"], CameraMoveInfo["AbstateIndex"] )
BeforeBossBattleInfo["CameraTime"] = nil
end
end
end
-- <EFBFBD><EFBFBD>Ŀ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
if BeforeBossBattleInfo["DialogTime"] ~= nil
then
if BeforeBossBattleInfo["DialogTime"] > Var["CurSec"]
then
return
else
cMobDialog( Var["MapIndex"], ChatInfo["BeforeBossBattle"]["Reward"]["SpeakerIndex"], ChatInfo["ScriptFileName"], ChatInfo["BeforeBossBattle"]["Reward"]["MsgIndex"] )
BeforeBossBattleInfo["DialogTime"] = nil
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> return / <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BossBattle<EFBFBD>Լ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if cGetAreaObject( Var["MapIndex"], AreaInfo["ToBossRoom"], Var["PlayerHandle"] ) == nil
then
return
else
-- DebugLog("BeforeBossBattle : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
Var["StepFunc"] = BossBattle
Var["BeforeBossBattle"] = nil
end
end
------------------------------------------------------
-- BossBattle : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------------------------------------------------------
function BossBattle( Var )
cExecCheck "BossBattle"
-- DebugLog("==========================BossBattle Start==========================")
if Var == nil
then
ErrorLog( "BossBattle : Var nil" )
return
end
if IsFail( Var ) == true
then
return
end
local BossBattleInfo = Var["BossBattle"]
if BossBattleInfo == nil
then
Var["BossBattle"] = {}
BossBattleInfo = Var["BossBattle"]
BossBattleInfo["DialogTime"] = Var["CurSec"]
BossBattleInfo["BossMob"] = nil
for i=1, #Var["Door"]["Handle"]
do
cDoorAction( Var["Door"]["Handle"][i], RegenInfo["Door"][i]["DoorBlock"], "close" )
end
end
if BossBattleInfo["DialogTime"] ~= nil
then
if BossBattleInfo["DialogTime"] > Var["CurSec"]
then
return
else
cMobDialog( Var["MapIndex"], ChatInfo["BossBattle"]["Betray"]["SpeakerIndex"], ChatInfo["ScriptFileName"], ChatInfo["BossBattle"]["Betray"]["MsgIndex"] )
BossBattleInfo["DialogTime"] = nil
end
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if BossBattleInfo["BossMob"] == nil
then
-- DebugLog("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
local CurBossMob = RegenInfo["BossMob"]
local BossMobHandle
if CurBossMob == nil
then
ErrorLog( "BossBattle:: RegenInfo[\"BossMob\"] nil" )
end
-- npc<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cNPCVanish( Var["NPC"]["Handle"] )
BossMobHandle = cMobRegen_XY( Var["MapIndex"], CurBossMob["MobIndex"], CurBossMob["X"], CurBossMob["Y"], CurBossMob["Dir"] )
if BossMobHandle == nil
then
ErrorLog( "BossBattle:: BossMob Regen Fail" )
return
end
BossBattleInfo["BossMob"] = {}
BossBattleInfo["BossMob"]["Handle"] = BossMobHandle
BossBattleInfo["BossMob"]["WaitTime"] = Var["CurSec"] + DelayTime["WaitMobRegen"]
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>
if BossBattleInfo["BossMob"]["WaitTime"] >= Var["CurSec"]
then
return
else
if BossBattleInfo["BossMob"]["WaitTime"] < Var["CurSec"]
then
if cObjectCount( Var["MapIndex"], ObjectType["Mob"] ) <= 0
then
if cDropItem( RegenInfo["RewardDropItem"]["Index"], Var["BossBattle"]["BossMob"]["Handle"], -1, RegenInfo["RewardDropItem"]["DropRate"] ) == nil
then
ErrorLog("BossBattle :: ItemDrop<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
end
Var["StepFunc"] = QuestSuccess
Var["BossBattle"] = nil
end
end
end
end
------------------------------------------------------
-- QuestSuccess : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------------------------------------------------------
function QuestSuccess( Var )
cExecCheck "QuestSuccess"
-- DebugLog("==========================QuestSuccess_Start==========================")
if Var == nil
then
ErrorLog( "QuestSuccess : Var nil" )
return
end
local QuestSuccessInfo = Var["QuestSuccess"]
if QuestSuccessInfo == nil
then
Var["QuestSuccess"] = {}
QuestSuccessInfo = Var["QuestSuccess"]
QuestSuccessInfo["NextStepWaitTime"] = Var["CurSec"] + ( DelayTime["GapDialog"] * #ChatInfo["QuestSuccess"] ) + DelayTime["WaitSeconds"]
QuestSuccessInfo["DialogTime"] = Var["CurSec"] + DelayTime["GapDialog"]
QuestSuccessInfo["DialogStep"] = 1
-- <EFBFBD>ʿ<EFBFBD> <EFBFBD>ִ<EFBFBD> Job2_CloverT, Job2_DiaT<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VanishMob( Var )
cEffectMsg( Var["PlayerHandle"], EFFECT_MSG_TYPE["EMT_SUCCESS"] )
--Ÿ<EFBFBD≯<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var["LimitTime"] = "NoLimit"
cTimer( Var["MapIndex"], 0 )
end
if IsFail( Var ) == true
then
return
end
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
if QuestSuccessInfo["DialogTime"] ~= nil
then
if QuestSuccessInfo["DialogTime"] > Var["CurSec"]
then
return
else
local CurMsg = ChatInfo["QuestSuccess"]
local DialogStep = QuestSuccessInfo["DialogStep"]
local MaxDialogStep = #ChatInfo["QuestSuccess"]
if DialogStep <= MaxDialogStep
then
cMobDialog( Var["MapIndex"], CurMsg[DialogStep]["SpeakerIndex"], ChatInfo["ScriptFileName"], CurMsg[DialogStep]["MsgIndex"] )
QuestSuccessInfo["DialogTime"] = Var["CurSec"] + DelayTime["GapDialog"]
QuestSuccessInfo["DialogStep"] = DialogStep + 1
end
if QuestSuccessInfo["DialogStep"] > MaxDialogStep
then
QuestSuccessInfo["DialogTime"] = nil
QuestSuccessInfo["DialogStep"] = nil
end
end
end
if QuestSuccessInfo["NextStepWaitTime"] > Var["CurSec"]
then
return
else
-- DebugLog( "ReturnToHome <EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>̵<EFBFBD>" )
Var["StepFunc"] = ReturnToHome
Var["QuestSuccess"] = nil
end
end
------------------------------------------------------
-- QuestFailed : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD>н<EFBFBD>
------------------------------------------------------
function QuestFailed( Var )
cExecCheck "QuestFailed"
-- DebugLog("==========================QuestFailed_Start==========================")
if Var == nil
then
ErrorLog( "QuestFailed : Var nil" )
return
end
local QuestFailedInfo = Var["QuestFailed"]
if QuestFailedInfo == nil
then
Var["QuestFailed"] = {}
QuestFailedInfo = Var["QuestFailed"]
QuestFailedInfo["NextStepWaitTime"] = Var["CurSec"] + DelayTime["WaitSeconds"]
-- <EFBFBD>ʿ<EFBFBD> <EFBFBD>ִ<EFBFBD> Job2_CloverT, Job2_DiaT<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VanishMob( Var )
cEffectMsg( Var["PlayerHandle"], EFFECT_MSG_TYPE["EMT_FAIL"] )
--Ÿ<EFBFBD≯<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var["LimitTime"] = "NoLimit"
cTimer( Var["MapIndex"], 0 )
end
if QuestFailedInfo["NextStepWaitTime"] > Var["CurSec"]
then
-- DebugLog("QuestFailedInfo _ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
return
else
Var["StepFunc"] = ReturnToHome
Var["QuestFailed"] = nil
end
end
------------------------------------------------------
-- ReturnToHome : <EFBFBD><EFBFBD>ȯ
------------------------------------------------------
function ReturnToHome( Var )
cExecCheck "ReturnToHome"
-- DebugLog("==========================ReturnToHome_Start==========================")
if Var == nil
then
ErrorLog( "ReturnToHome : Var nil" )
return
end
local ReturnToHomeInfo = Var["ReturnToHome"]
if ReturnToHomeInfo == nil
then
Var["ReturnToHome"] = {}
ReturnToHomeInfo = Var["ReturnToHome"]
ReturnToHomeInfo["ReturnStepSec"] = Var["CurSec"]
ReturnToHomeInfo["ReturnStepNo"] = 1
ReturnToHomeInfo["WaitSecReturnToHome"] = Var["CurSec"] + DelayTime["WaitReturnToHome"]
end
if ReturnToHomeInfo["WaitSecReturnToHome"] > Var["CurSec"]
then
-- DebugLog( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.." )
return
end
-- Return : return notice substep
if ReturnToHomeInfo["ReturnStepNo"] <= #NoticeInfo["IDReturn"]
then
if ReturnToHomeInfo["ReturnStepSec"] < Var["CurSec"]
then
-- Notice of Escape
if NoticeInfo["IDReturn"][ ReturnToHomeInfo["ReturnStepNo"] ]["Index"] ~= nil
then
cNotice( Var["MapIndex"], NoticeInfo["ScriptFileName"], NoticeInfo["IDReturn"][ ReturnToHomeInfo["ReturnStepNo"] ]["Index"] )
end
-- Go To Next Notice
ReturnToHomeInfo["ReturnStepNo"] = Var["ReturnToHome"]["ReturnStepNo"] + 1
ReturnToHomeInfo["ReturnStepSec"] = Var["CurSec"] + DelayTime["GapReturnNotice"]
end
return
end
-- Return : linkto substep
if ReturnToHomeInfo["ReturnStepNo"] > #NoticeInfo["IDReturn"]
then
-- DebugLog( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ϸ<EFBFBD>!" )
if ReturnToHomeInfo["ReturnStepSec"] <= Var["CurSec"]
then
-- DebugLog( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>" )
cLinkToAll( Var["MapIndex"], LinkInfo["ReturnMap"]["MapIndex"], LinkInfo["ReturnMap"]["X"], LinkInfo["ReturnMap"]["Y"] )
cVanishAll( Var["MapIndex"] )
--Var["StepFunc"] = TheEnd
Var["StepFunc"] = DummyFunc
Var["ReturnToHome"] = nil
-- 2014.12.23 <EFBFBD>߰<EFBFBD><EFBFBD>۾<EFBFBD>
cDropFilm( Var["MapIndex"], MainLuaScriptPath )
-- DebugLog( "End ReturnToHome" )
-- DebugLog("==========================TheEnd==========================")
end
return
end
end