Inhaltsverzeichnis

CSerie.GetPunkte

AddOn-Befehl zum Einsatz bei einem Serienrennen.

Wichtig: Der Befehl fragt NICHT den aktuellen Punktestand der Serie ab, sondern liefert nur Punkte, die per CSerie.SetPunkte vorher vergeben wurden.

Syntax

Befehl CSerie.GetPunkte(Fahrername:String)
Funktion Fragt den Punktestand eines Fahrers im aktuellen Durchgang ab.
Typ Extended
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

 
cockpit-xp/addon/befehlsreferenz/cseriegetpunkte.txt · Zuletzt geändert: 2020/11/28 12:15 (Externe Bearbeitung)