Bestenliste – Mappedia

Bestenliste

Aus Mappedia
(Weitergeleitet von Leaderboard)
Wechseln zu: Navigation, Suche


Variablentyp: leaderboard
extends handle
Funktionen mit leaderboard als Rückgabewert
Funktionen mit leaderboard als Parameter

Eine Bestenliste ist ein Fenster in der rechten oberen Ecke des Bildschirms, in der während des Spiels Punktestände, Kills o.ä. angezeigt werden kann. Gesteuert wird die Bestenliste dabei mit Triggern, die die Punktzahlen ständig aktuell halten müssen.

Eine Bestenliste bietet nicht soviele Funktionen wie ein Multiboard, kann dafür aber parallel zu diesem laufen und reicht für einfache Zwecke aus, für die sie auch leichter zu bedienen ist. Im Gegensatz zum Multiboard greift man in einer Bestenliste über Spieler auf die Einträge zu und nicht über Zeilen und Spalten.

Beispiel

In diesem Beispiel wollen wir eine Bestenliste erstellen, die die Kills aller Spieler anzeigt, also für jede von diesem Spieler getötete Einheit.

Dazu brauchen wir zuerst eine Integer-Variable namens "Kills" mit einer der Anzahl an Spielern entsprechenden Arraygröße (hier 12). Dann noch eine Bestenlisten-Variable, die ich hier mit "Killboard" benenne.

Eine Bestenliste kann nicht bei Map Initialization angezeigt werden, weshalb ich als Ereignis eine sehr geringe Elapsed Game Time wähle.

Bestenliste erstellen
Ereignisse
Zeit - Elapsed game time is 0.05 seconds
Bedingungen
Aktionen
Bestenliste - Create a leaderboard for (All players) titled Kills
Set Killboard = (Last created leaderboard)
For each (Integer A) from 1 to 12, do (If (((Player((Integer A))) slot status) Gleich Spielt) then do (Bestenliste - Add (Player((Integer A))) to Killboard with label (Name of (Player((Integer A)))) and value 0) else do (Do nothing))
Bestenliste - Zeigen Killboard

Die Schleife geht nacheinander jede Spielernummer durch und überprüft in einer If-Abfrage, ob der Spieler mit der momentanen Nummer auch spielt. Wenn ja, so wird er mit seinem Namen und dem Wert 0 in die Bestenliste hinzugefügt.


Nun brauchen wir noch einen Auslöser, der die Bestenliste immer dann aktualisiert, wenn ein Spieler eine Einheit tötet:

Bestenliste aktualisieren
Ereignisse
Einheit - A unit Stirbt
Bedingungen
Aktionen
Set Kills[(Player number of (Owner of (Killing unit)))] = (Kills[(Player number of (Owner of (Killing unit)))] + 1)
Bestenliste - Change the value for (Owner of (Killing unit)) in Killboard to Kills[(Player number of (Owner of (Killing unit)))]
Bestenliste - Sort Killboard by Wert in Absteigend order

Wenn eine Einheit stirbt, wird der Array-Teil mit der Spielernummer des tötenden Spielers um 1 erhöht. Dann wird noch der zugehörige Wert in der Bestenliste aktualisiert, indem er auf die eben veränderte Variable gesetzt wird. Zum Schluss sortieren wir die Bestenliste anhand der Werte. Dieser Trigger beachtet aber nicht, ob man seine eigene Einheit getötet hat. Diese werden hier ebenfalls als Kill angerechnet.

Weblinks

Kill-Bestenliste als Beispiel auf inWarCraft.de

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Warcraft-Mapping
Werkzeuge

Notice: Memcache::get() [memcache.get]: Server 85.13.160.44 (tcp 11212) failed with: Connection refused (111) in /www/htdocs/global/live/codecraft/classes/cache/cache.class.php on line 56