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
198 lines
3.5 KiB
--------------------------------------------------------------------------------
|
|
-- Emperor Slime 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 : "..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
|
|
|