Logging: Name des laufenden Players

Hey zusammen,

leider hat mein googlen nichts gebracht. Gibt es eine Variable um den Namen des aktuell laufenden Players zu loggen?
Sprich läuft Player A -> logge player_a oder ähnlich

Ich kann mir vorstellen, daß es mit

// Called when RuntimeData (global variables shared among scripts) change.
// Set data with SetRuntimData(key, value);
procedure OnRuntimeDataChange(Key, Value: string);
begin
end;

in Verbindung mit

// Called when (playlist) player is started
procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
begin
end;

klappen könnte. Zum eigentlichen Loggen verwendest Du dann

%R{Key}

(Hinweis: der Code ist aus der Background Script Template.mls kopiert. Ich bin mir ziemlich sicher, daß die Funktion zum Setzen des Wertes [tt]SetRuntimeData(key, value);[/tt] heißen muß.)

Korrigierte Grüße

TSD

Gute Idee!

Nur hab ich dazu eine Frage: Welchen Key kann ich denn für so etwas nutzen? Wenn ich es richtig sehe kann man nur vorhandene dafür benutzen. Ist irgendwo zusammengefasst welche Keys es gibt?

Versuche ich es mit einem eigenen komm im Log “Unknown identifier”.
Habe sogar %R{PlayerIndex} im Log versucht, bekomme da nur leider nichts raus.

Ich verstehe das so, daß Du Dir einen beliebigen eigenen ausdenken kannst/mußt. Dieser wird zum Transportbehälter für den Namen des Players, also etwa:

procedure OnRuntimeDataChange(PlayerInfo, Value: string);
begin
end;

procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
begin
if PlayerIndex = 0 then begin
  SetRuntimeData(PlayerInfo, 'Es spielt Player A.');
  end
else if PlayerIndex = 1 then begin
  SetRuntimeData(PlayerInfo, 'Es spielt Player B.');
  end;
end;

Und schließlich loggen mit:

%R{PlayerInfo}

Ob [tt]PlayerIndex[/tt] tatsächlich 0 oder 1 ist, mußt Du mal an anderer Stelle prüfen, mit der Prozedur hatte ich es noch nicht so.

Man korrigiere mich bitte, falls ich hier Blödsinn verzapfe!

Geloggte Grüße

TSD

[quote=“Tondose, post:4, topic:12059”][code]
procedure OnRuntimeDataChange(PlayerInfo, Value: string);
begin
end;

procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
begin
if PlayerIndex = 0 then begin
SetRuntimeData(PlayerInfo, ‘Es spielt Player A.’);
end
else if PlayerIndex = 1 then begin
SetRuntimeData(PlayerInfo, ‘Es spielt Player B.’);
end;
end;
[/code][/quote]

Bis auf andere Namen hatte ich es so geschrieben, nur kommt dann leider der Fehler:

16.02.2019 15:32:33 Fehler       Fehler beim Laden des Hintergrund-Scripts [Error] (8:18): Unknown identifier 'PlayerInfo'

Dann muß [tt]PlayerInfo[/tt] dem Programm noch beigebracht werden. Füge ganz am Anfang

var
  PlayerInfo: string;

hinzu.

Deklarierte Grüße

TSD

Top, das Script als solches scheint zu laufen. mAirlist lädt das Script ohne Fehler.

Allerdings wird im Log weiterhin kein Player mitgeschickt, die Ausgabe bleibt nur leer.

Ahh ich habs :smiley:

[code]var
Player: string;

procedure OnRuntimeDataChange(Player, Value: string);
begin
end;

procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
begin
if PlayerIndex = 0 then begin
SetRuntimeData(‘Player’, ‘A’);
end
else if PlayerIndex = 1 then begin
SetRuntimeData(‘Player’, ‘B’);
end;
end;[/code]

Da haben noch Apostrophe gefehlt bei “player”

Ich danke dir für die Hilfe :slight_smile:

-> dankende Grüße
Kevin :slight_smile:

Mit Anführungszeichen ist richtig. Auf die Variablendefinition oben kannst du dann verzichten, die ist überflüssig.