Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Zähler und Zeitlimits
Für manche Quests möchte man dem Spieler eine gewisse Zeit vorgeben, in der eine Aufgabe zu erledigen ist, zum Beispiel das Erreichen einer bestimmten Forschung oder das Errichten einer Verteidigung vor einem Angriff. Dazu sind Zähler/Counter notwendig, die beim Erreichen eines vorgegebenen Limits ein Ereignis auslösen.
Die einfachste Variante davon, mit bereits bekannten Mitteln umgesetzt, sähe die Definition zweier globaler Variablen vor: Eine Zählvariable mit dem Startwert 0 und eine Limit-Variable n, die den Höchstwert für diesen Counter angibt. In einem SimpleJob
soll diese Variable immer um 1 erhöht werden (also pro Sekunde 1 mal), sodass nach n Sekunden ein Ereignis ausgelöst werden kann:
function MyCounterInit() MyCounter = 0 MyCounterLimit = 240 StartSimpleJob("MyCounterCount") end function MyCounterCount() MyCounter = MyCounter + 1 if MyCounter >= MyCounterLimit then -- hier geschehen Dinge MyCounterEvent() -- Job beenden return true end end
Hinweis: Die Variable MyCounter
könnte man beim Erreichen des Limits auch auf 0 zurücksetzen. Wenn der Job an der Stelle nicht beendet wird, wird das Ereignis wiederholt nach jeweils 240
Sekunden ausgelöst.
Der Nachteil hierbei ist, dass jedes Mal zwei globale Variablen benötigt werden, über die man einen Überblick behalten muss. Deshalb gibt es bereits vorgefertigt ein Counter
-Modul, das das Zählen und Verwalten der Variablen übernimmt.
Counter.SetLimit
Counter.Tick
Counter.Reset
Counter.Tick2
Zeitanzeige am Rand des Bildschirms
- MapLocal_StartCountDown
- MapLocal_StopCountDown