AddOn-Befehl zum Einsatz bei einem Serienrennen.
Befehl | CSerie.SetPunkte( Fahrername : String, Punkte :Extended ) |
---|---|
Funktion | Setzt zusätzliche Punkte für einen Fahrer im aktuellen Durchgang. Die Punkte werden in Summe gesetzt, nicht addiert!. Daher vorher mit CSerie.GetPunkte den Stand abfragen und neuen Wert selbst berechnen. |
Typ | Boolean |
ab | 3.0.6 build 340 |
Veranschaulicht die Verwendung und Wirkung der neuen AddOn-Befehle zum Abfragen, Setzen und Löschen vergebener Zusatzpunkte im Serienrennen.
var message : String; slot : Integer; punkteFahrer : Extended; sFahrerName : String; begin // Session ist gestartet worden if Cockpit.Parameter = 4 then begin // Meldung initialisieren message := ''; // alle Slots durchlaufen for slot := 1 to CpCountOfSlots do begin // Slot einstellen Cockpit.Slot := slot; // Sieger gefunden if Cockpit.Position = 1 then begin // Den Namen des Siegers speichern sFahrerName := Cockpit.FahrerName; message := message + sFahrerName + 'hat gewonnen.'; message := message + Chr(13) + Chr(10); // die aktuelle Punkte des Siegers holen punkteFahrer := CSerie.GetPunkte(sFahrerName); message := message + 'Punkte IST: ' + FormatFloat('#0.0', punkteFahrer); message := message + Chr(13) + Chr(10); // der initiale Wert ist negativ. if punkteFahrer < 0 then begin // In dem Fall auf '0' setzen punkteFahrer := 0; message := message + 'Punkte SOLL: ' + FormatFloat('#0.0', punkteFahrer); message := message + Chr(13) + Chr(10); end; // 2,5 Zusatzpunkte für den Sieger setzen CSerie.SetPunkte(sFahrerName, punkteFahrer + 2.5); punkteFahrer := CSerie.GetPunkte(sFahrerName); message := message + 'Punkte NEU: ' + FormatFloat('#0.0', punkteFahrer); message := message + Chr(13) + Chr(10); // alle Punkte aller Fahrer löschen, aber nur den Sieger anzeigen CSerie.ClrPunkte; punkteFahrer := CSerie.GetPunkte(sFahrerName); message := message + 'Punkte CLR: ' + FormatFloat('#0.0', punkteFahrer); // Meldung anzeigen cpShowMessage(message); // weitere Abfragen überflüssig. Raus hier exit; end; // END if - position end; // END for - slot end; // END if - parameter end.
Dieses Beispiel zeigt an, wie sich die Befehle auf den Punktestand auswirken. Der initiale Wert ist -1
, also negativ. Weil es nicht ideal wäre, gleich mit negativen Punkte zu starten, wird die Variable auf den Wert 0
gesetzt.
Im nächsten Schritt erhält der Fahrer für den Sieg in diesem Einzelrennen 2,5
Zusatzpunkte über den AddOn-Befehl.
Zum Schluß löscht der Befehl CSerie.ClrPunkte
die Punkte aller Fahrer wieder. Damit hat die Variable wieder den negativen Ausgangswert -1
.