Inhaltsverzeichnis

CSerie.SetPunkte

AddOn-Befehl zum Einsatz bei einem Serienrennen.

Syntax

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


Codebeispiel


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 .



Start - FAQ - Glossar - Sitemap - Impressum