Ich glaube, das ist gar kein Fehler, No Change heisst: keine Veränderung.
Also weder Success, noch failure. Also: interrupted = abgebrochen oder over.
Bau dir diesen Trigger in deine Qsb ein, dann gehts ohne Zusatzquest!!
Ist getestet!!
Code:
-- Trigger_OnQuestOverWait
-- User Generated Wolfi
------------------------------------------------------------------------------------------------------------------------------
Trigger_OnQuestOverWait = {
Name = "Trigger_OnQuestOverWait",
Description = {
en = "Trigger: Starts a quest after another quest has been finished and a given time has passed",
de = "Ausloeser: Startet eine Quest nachdem eine andere Quest beendet wurde und die eingestellte Zeit vergangen ist",
},
Parameter = {
{ ParameterType.QuestName, en = "Quest name", de = "Questname" },
{ ParameterType.Number, en = "Waiting time", de = "Wartezeit"},
},
}
function Trigger_OnQuestOverWait:GetTriggerTable()
return { Triggers.Custom2,{self, self.CustomFunction} }
end
function Trigger_OnQuestOverWait:AddParameter(_Index, _Parameter)
if (_Index == 0) then
self.QuestName = _Parameter
elseif (_Index == 1) then
self.WaitingTime = _Parameter*1
end
end
function Trigger_OnQuestOverWait:CustomFunction()
if IsValidQuest(self.QuestName) then
local QuestID = GetQuestByName(self.QuestName)
if (Quests[QuestID].State == QuestState.Over) or (Quests[QuestID].Result == QuestResult.Interrupted) then
if self.WaitingTime and self.WaitingTime > 0 then
self.TimerStartTime = self.TimerStartTime or Logic.GetTime()
if Logic.GetTime() >= (self.TimerStartTime + self.WaitingTime) then
return true
end
end
end
end
return false
end
function Trigger_OnQuestOverWait:DEBUG(_Quest)
if not IsValidQuest(self.QuestName) then
yam(_Quest.Identifier .. ": Error in " .. self.Name .. ": Quest: ".. self.QuestName .. " does not exist")
return true
elseif self.WaitingTime < 0 then
yam(_Quest.Identifier .. ": Error in " .. self.Name .. ": Waiting time is negative")
return true
end
end
function Trigger_OnQuestOverWait:Reset()
self.TimerStartTime = nil
end
AddQuestBehavior(Trigger_OnQuestOverWait)
Funktioniert bei Over und auch bei Interrupted!
Lesezeichen