umstieg auf 3.0

hey.

habe jetzt endlich die 3.0er und irgendwie gehen meine scripts nicht mehr. hier eins:

[code]procedure OnPlayerStop ( PlayerControl : IPlayerControl ; Duration : int64 ) ;

begin

if ((PlayerControl.GetState <> psPaused) and (PlayerControl.GetCaption = ‘MAL1’)) then begin
MidiOut ( 01, 176, 73, 00 ) ;
end;
if ((PlayerControl.GetState <> psPaused) and (PlayerControl.GetCaption = ‘MAL2’)) then begin
MidiOut ( 01, 176, 74, 00 ) ;
end;
if ((PlayerControl.GetState <> psPaused) and (PlayerControl.GetCaption = ‘EV’)) then begin
MidiOut ( 01, 176, 75, 00 ) ;
end;
end;

begin
end.[/code]

des weiteren zeigt mir mairlist das liedende beim fadeout punkt, obwohl ich das ausgeschaltet habe. scheint ein bug zu sein.

lg mike

Schau dir das neue Notification Script Template an, die Parameterlisten haben sich geändert. Dort bekommt man jetzt die Nummer der Playlist und die Nummer des Players übergeben anstelle des PlayerControl-Objektes. Auf das Objekt kann man sich mit Playlist(PlaylistIndex).GetPlayer(PlayerIndex) zugreifen. Anstelle der GetCaption-Vergleiche kannst du auch direkt mit PlayerIndex vergleichen (der erste Player hat die 0).

ah danke. die scipthelp scheint nicht mehr aktuell zu sein.

Die aktualisiere ich bei Gelegenheit.

ach ja. hast du das gelesen ?

des weiteren zeigt mir mairlist das Liedende beim fadeout punkt, obwohl ich das ausgeschaltet habe. scheint ein bug zu sein.

Oh, hatte ich überlesen. Stimmt, ein Bug. Ist korrigiert.

hiho.

habe fast alle scripten wieder zum laufen bekommen. hier aber eins, wo ich die parameter leider nocht weiß, da sie mit der scripthelp nicht mehr zusammenstimmen. und zwar möchte ich, dass beim starten des cartwall1 players alle anderen ausfaden.

[code]procedure OnCartPlayerStart(PlayerIndex: integer);
begin
if (Playerindex=0 ) then begin
//hier das fehlende Kommando ;
end;
end;

begin
end.[/code]

lg mike

Was stand denn vorher dort? In der Beziehung sollte sich eigentlich recht wenig geändert haben.

for i := 1 to Engine.GetCartwall.GetPlayerCount - 1 do
  Engine.GetCartwall.GetPlayer(i).FadeOut;

EDIT: nochmal Fehler korrigiert, so müsste es (hoffentlich) gehen. Kann gerade nicht testen.

das hab ich vorher auch schon probiert nur kommt dann:

26.06.2009 15:52:18 Fehler Fehler beim Laden von D:\mAirList-3.0.4\scripts\notification\CARTPLAYER_STOP_NEU.mls: [Fehler] (6:24): Unknown identifier ‘GETCARTWALL’

[code]var i : Integer;

procedure OnCartPlayerStart(PlayerIndex: integer);
begin
if (Playerindex=0 ) then begin
for i := 1 to Engine.GetCartwall.GetPlayerCount - 1 do
Engine.GetCartwall.GetPlayer(i).FadeOut;
end;
end;

begin
end.[/code]

mike

Probier mal GetCartwallControl.

das selbe:

26.06.2009 20:20:25 Fehler Fehler beim Laden von D:\mAirList-3.0.4\scripts\notification\CARTPLAYER_STOP_NEU.mls: [Fehler] (5:10): Unknown identifier ‘GETCARTWALL’

Hast du es auch an beiden Stellen geändert?

oh hatte ich übersehen. jetzt kommt aber die meldung:

27.06.2009 09:17:29 Fehler Fehler beim Laden von D:\mAirList-3.0.4\scripts\notification\CARTPLAYER_STOP_NEU.mls: [Fehler] (5:29): Unknown identifier ‘GETPLAYER’

[code]var i : Integer;
procedure OnCartPlayerStart(PlayerIndex: integer);
begin
for i := 1 to Engine.GetCartwallControl.GetPlayerCount - 1 do
Engine.GetCartwallControl.GetPlayer(i).FadeOut;
end;

begin
end.[/code]

Dann halt GetPlayerControl.

Aber an den Stellen hat sich wirklich nichts geändert gegenüber v2.2.

Herzlichen Dank !

Sry wenn ich nochmal nerv, aber bei diesem script soll mairlist ein midi signal senden, wenn der jeweilige player stoppt. das funktioniert auch.

NUR: Wenn ich einen PlayerA starte während playerB noch spielt und dann player b stoppe, dann werden beide player gestoppt ??? bitte um hilfe!

[code]procedure OnPlayerStop(PlaylistIndex: integer; PlayerIndex: integer; Duration: TTimeValue);
begin

if (PlayList(0).GetPlayer(0).GetState <> psPaused) then begin
MidiOut ( 02, 176, 73, 00 ) ;
end;
if (PlayList(0).GetPlayer(1).GetState <> psPaused) then begin
MidiOut ( 02, 176, 74, 00 ) ;
end;
end;

begin
end.[/code]

Guck dir dein Script genau an: Es wird aufgerufen, wenn irgendein Player gestoppt wird, und schickt dann für alle, die nicht im Pause-Zustand sind, ein entsprechendes MIDI-Signal. Wie kommt es nun, dass Player A gestoppt wird? Schickt das MIDI-Gerät etwas zurück?

kann ich leider nicht sagen, sollte es aber nicht. bei 2.2 ist das nicht passiert. was könnte ich dagegen machen?

ach ja: es schickt nur ein bestimmtes midisignal aus, wenn ein bestimmter player gestoppt wird. das fragt er ja ab mit playerindex. deshalb verstehe ich das nicht ???

Wo soll denn da die Abfrage nach dem entsprechenden Player sein? Die sehe ich nicht. Es werden immer beide Player behandelt. Vielleicht möchtest du noch ein “and (PlayerIndex=0)” bzw. “and (PlayerIndex=1)” dazubauen?