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.
 
 

198 lines
3.5 KiB

--------------------------------------------------------------------------------
-- Mara Pirate Sub Functions --
--------------------------------------------------------------------------------
function DummyFunc( Var )
cExecCheck "DummyFunc"
end
function GoToNextStep( Var )
cExecCheck "GoToNextStep"
if Var == nil
then
ErrorLog( "GoToNextStep::Var == nil" )
return
end
if KQ_StepsList == nil
then
ErrorLog( "GoToNextStep::KQ_StepsList == nil" )
return
end
local nNumofSteps = #KQ_StepsList
if nNumofSteps < 1
then
ErrorLog( "GoToNextStep::nNumofSteps < 1" )
return
end
-- 첫 호출에는 첫번째 스텝을 적용
if Var["StepIndexNo"] == nil
then
Var["StepIndexNo"] = 1
-- 마지막 스텝 이후에는 아무것도 없음
elseif Var["StepIndexNo"] >= nNumofSteps
then
Var["StepIndexNo"] = nil
-- 퀘스트 성공 혹은 실패 이후에는 ReturnToHome 단계를 실행
elseif KQ_StepsList[ Var["StepIndexNo"] ]["Name"] == "QuestSuccess" or KQ_StepsList[ Var["StepIndexNo"] ]["Name"] == "QuestFailed"
then
Var["StepIndexNo"] = KQ_StepsIndexList["ReturnToHome"]
-- 그 외 케이스에는 다음단계로 이동
else
Var["StepIndexNo"] = Var["StepIndexNo"] + 1
end
-- 최초 스텝
if Var["StepFunc"] == nil
then
Var["StepFunc"] = DummyFunc
end
if Var["StepFunc"] == DummyFunc
then
Var["StepFunc"] = KQ_StepsList[1]
end
if Var["StepIndexNo"] ~= nil
then
local nIndex = Var["StepIndexNo"]
if nIndex < 1 or nIndex > nNumofSteps
then
ErrorLog( "GoToNextStep::Var[\"StepIndexNo\"](="..nIndex..") is out of range(from 1 to "..nNumofSteps..")." )
return
end
Var["StepFunc"] = KQ_StepsList[ nIndex ]["Function"]
DebugLog( "GoToNextStep::ResultStepName("..nIndex..") : "..KQ_StepsList[ nIndex ]["Name"] )
else
-- 최종 스텝 이후 호출 시
Var["StepFunc"] = DummyFunc
DebugLog( "GoToNextStep::ResultStepName : KQ_Finish" )
end
end
function GoToSuccess( Var )
cExecCheck "GoToSuccess"
if Var == nil
then
ErrorLog( "GoToSuccess::Var == nil" )
return
end
Var["KQLimitTime"] = nil
Var["StepIndexNo"] = KQ_StepsIndexList["QuestSuccess"]
local nIndex = Var["StepIndexNo"]
if nIndex > 0
then
Var["StepFunc"] = KQ_StepsList[ nIndex ]["Function"]
else
ErrorLog( "GoToSuccess::nIndex is negative." )
return
end
DebugLog( "GoToSuccess::ResultStepName : "..KQ_StepsList[ nIndex ]["Name"] )
end
function GoToFail( Var )
cExecCheck "GoToFail"
if Var == nil
then
ErrorLog( "GoToFail::Var == nil" )
return
end
Var["KQLimitTime"] = nil
Var["StepIndexNo"] = KQ_StepsIndexList["QuestFailed"]
local nIndex = Var["StepIndexNo"]
if nIndex > 0
then
Var["StepFunc"] = KQ_StepsList[ nIndex ]["Function"]
else
ErrorLog( "GoToSuccess::nIndex is negative." )
return
end
DebugLog( "GoToFail::ResultStepName : "..KQ_StepsList[ nIndex ]["Name"] )
end
function IsKQTimeOver( Var )
if Var == nil
then
ErrorLog( "IsKQTimeOver::Var == nil" )
return
end
if Var["KQLimitTime"] == nil
then
ErrorLog( "IsKQTimeOver::Var[\"KQLimitTime\"] == nil" )
return
end
if Var["CurSec"] == nil
then
ErrorLog( "IsKQTimeOver::Var[\"CurSec\"] == nil" )
return
end
if Var["KQLimitTime"] < Var["CurSec"]
then
return true
else
return false
end
end
function DebugLog( String )
if String == nil
then
cAssertLog( "DebugLog::String == nil" )
return
end
-- cAssertLog( "Debug - "..String )
end
function ErrorLog( String )
if String == nil
then
cAssertLog( "ErrorLog::String == nil" )
return
end
cAssertLog( "Error - "..String )
end