Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:tutorials:level2:countdowns

Dies ist eine alte Version des Dokuments!


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
scripting/tutorials/level2/countdowns.1701342251.txt.gz · Zuletzt geändert: 2023/11/30 11:04 von fritz_98