Inhaltsverzeichnis
cpAddStrafkatalog
Einleitung
Dieser Befehl fügt Strafpunkte zum aktuellen Punktestand eines Fahrers hinzu. Mit dem Parameer BestrafungStrafkatalog lässt sich festlegen, ob bei Überschreiten des eingestellten Limits automatisch eine Strafe verhängt wird (True) oder nicht (False).
Neu in der kommenden Version ist die Addition mehrerer Strafen, wenn das Punktelimit mehrfach überschritten ist.
Ist das Limit bis zum Verhängen einer Strafe beispielsweise 10 Punkte und erhält der Teilnehmer 25 Strafpunkte auf einmal, wird gegen ihn die doppelte Strafe ausgesprochen. Bei einer Rundenstrafe von z.B. 2 Runden pro Strafe, zählen bei diesem Fahrer die nächsten 4 Runden nicht.
Sein neuer Kontostand beträgt nach der Bestrafung noch 5 Punkte.
Syntax
| Befehl | cpAddStrafkatalog(Fahrername:String, Punkte:Integer, BestrafungStrafkatalog:Boolean) |
|---|---|
| Funktion | Addiert die angegebenen Strafpunkte zum aktuellen Punktestand eines Fahrers hinzu und vergibt ggfs. die eingestellte Strafe aus dem Strafkatalog. |
| Typ |
Codebeispiel
var
slot : Integer;
sFahrerName : String;
strafPunkte1 : Integer;
strafPunkte2 : Integer;
msg : String;
mitStrafe : Boolean;
begin
// Variablen initialisieren
msg := '';
// Fahrernamen speichern
sFahrerName := 'slot-xtreme';
// Mit Bestrafung bei Erreichen Punktelimit
// abhängig vom Fahrernamen :-)
if sFahrerName = 'Ralph525' then
mitStrafe := True
else
mitStrafe := False;
// Strafpunkte vergeben
cpSetStrafkatalog(sFahrerName, 2);
// Aktuellen Punktestand abfragen
strafPunkte1 := cpGetStrafkatalog(sFahrerName);
// Meldung erweitern
msg := msg + 'Fahrer ' + sFahrerName + ' - ';
msg := msg + IntToStr(strafPunkte1) + ' Punkte';
msg := msg + Chr(13) + Chr(10);
// Fahrer bekommt weitere Punkte und ggfs. Strafe
cpAddStrafkatalog(sFahrerName, 11, mitStrafe);
// Neuen Punktestand abfragen
strafPunkte2 := cpGetStrafkatalog(sFahrerName);
// Meldung erweitern
msg := msg + 'Fahrer ' + sFahrerName + ' - ';
msg := msg + IntToStr(strafPunkte2) + ' Punkte';
msg := msg + Chr(13) + Chr(10);
cpShowMessage(msg);
end.
Zeigt die folgende Meldung. Mit cpSetStrafkatalog erhält der Fahrer erst einmal 2 Strafpunkte. Der Punktestand wird fest gesetzt. Sollte der Fahrer z.B. 5 Punkte auf dem Konto haben, ist der Kontostand nachher 2 Punkte!
Der Befehl cpGetStrafkatalog fragt den aktuellen Punktestand ab. Möchte man mit cpSetStrafkatalog Punkte addieren, müsste man im ersten Schritt den Punktestand abfragen, anschließend Strafpunkte addieren und dann den errechneten neuen Wert setzen.
Einfacher ist das per cpAddStrafkatalog möglich, da dieser Befehl Punkte zum aktuellen Stand addiert.
Hinweis
Sollte der Befehl auf Anhieb NICHT wie erwartet funktionieren, bitte unbedingt im Race-Control-Center prüfen, ob die Bestrafung nach Strafkatalog auch korrekt konfiguriert ist.
Es muss zum einen ein Strafpunktelimit eingetragen sein, bei dessen Erreichen über Überschreiten eine Strafe verhängt wird.
In der Standardeinstellung ist dort zwar die Rundenstrafe ausgewählt. Allerdings mit 0 Runden Strafe. Entsprechend sieht es so aus, als würde keine Strafe bei Erreichen des eingestellten Strafpunkte-Limits aktiviert.
Sobald die 0 Runden auf 1 Runde oder mehr geändert werden, funktioniert der Befehl wie gewünscht.
