PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keypatch: MidiTick-Problem



MagicMaker
20.07.2008, 18:14
Ich rätsel heute schon ne ganze Weile dran warum an einer Stelle in meinem
Project immer der MidiTick spinnt (setzt sich auf -1). Also folgendes passiert/soll
passieren:

Ein externes Programm prüft die Existenz einer Datei (Sprachsample eines
Chars) und schreibt dann eine script.wav (Einfall von Cherry). Wenn die Datei
existiert wird eine 1 in die "Value="-Zeile geschrieben. Sollte sie nicht
vorhanden sein, ist es eine 0... Soweit klappt alles. Die Datei wird erstellt
sieht immer so aus wie sie soll.

(MidiTick-Funktion ist auf Output gesetzt)

In etwa so, bis auf die Kommentare, sieht es bei mir so aus:


<>Sound spielen: TP_Probavi.script <-- Existenzprüfer; Wait=True
<>Kommentar: Das folgende Script benutzt AddOutput um einen Wert zu
: übermitteln zumindest hab ich keinen anderen Befehl dafür gesehen.
<>Sound spielen: TP_VoiceMaster.script <-- das erstellte Script
<>Variable ändern: [0019:Voice-Ergebnis] = MidiTick-Pos.
<>Bedingung: Var [0019:Voice-Ergebnis] == 0
<>Kommentar : Prozess falls Datei fehlt.
<>
: Ansonsten
<>Bedingung: Var [0019:Voice-Ergebnis] == 1
<>Kommentar : Prozess falls Datei vorhanden ist.
<>
: Ende
<>

FAQ-im-Voraus:

Sind Harmony.dll und Oldharmony.dll vorhanden?
Ja, das merk ich schon dran dass das SecondSound, die Maus und das
Prüferprogramm gehen.

Wie oft wird der Code ausgeführt?
Einmal, am Schluss wird mindestens ein Switch aktiviert der auf eine leere
Seite im Event wechselt.

Wird der Code durch die Maus blockiert?
Sogar wenn das passieren kann, ist es egal, ich lasse alle Mausevents erst
nachher starten um sicherzugehen.

Nemica
20.07.2008, 20:26
Und was ist dein Problem? xD

Btw, wie sieht die 2. script.wav aus?

MagicMaker
20.07.2008, 21:11
Der MidiTick setzt sich nicht auf den Wert den er soll, bzw nicht 0 oder 1,
sondern die Variable wird in beiden Fällen zu -1...


Die zweite Script.wav

Erstes Aussehen


[Execute]
Action = AddOutput
Value = 0
Next=
Zweites Aussehen


[Execute]
Action = AddOutput
Value = 1
Next=

PS: Habe nochmal die externe exe ausgebessert, was nur das Problem nich gelöst hat xD.

Was ich inzwischen sonst noch geändert hab ist, die exe beim Spielstart schon
auszuführen, das ändert nur auch nix am Problem. xD

The Best Isaac
20.07.2008, 21:14
Liegt's vielleicht an den unnötigen Leerzeichen vor und nach dem Gleichheitszeichen? Schon mal ausprobiert?

tarrox
20.07.2008, 21:19
Wenn er bei einer gefundenen Datei -1 setzt, aendere das doch im Makertext um, sollte eigentlich nicht stoeren.

Ansonsten faellt mir nur ein, dass die Exe statt 1, -1 setzt. Kannst das vieleicht mal ohne Maker testen?

Nemica
20.07.2008, 22:47
@tarrax: Das gäbe insofern ein Problem, da -1 ein Standardrückgabewert ist.

Kann es sein, dass der Maker deine exe "überholt", also die Datei schneller
abfragt, als dein Programm sie zur Verfügung stellt?

Pack doch nen Wait rein und probiers.

MagicMaker
21.07.2008, 11:24
Liegt's vielleicht an den unnötigen Leerzeichen vor und nach dem Gleichheitszeichen? Schon mal ausprobiert?
1. nein
2. nein

@Nemica:
Dass er sie Überholt kann ich mir nicht grad vorstellen weil ich extra dafür
den Wait=True in das Script für die EXE gepackt habe, womit eigentlich das
ganze Event angehalten werden müsste bis das Programm geschlossen ist.

R.D.
21.07.2008, 14:00
Dürfte es eigentlich nich egal sein?

Soweit ich weiß ist es dem Maker doch egal ob die wav.script-Datei da ist, ist sie nich vorhanden, dann spielt er sie halt nicht, wenn doch dann halt ja, eine Abfrage brauchste doch da gar nicht.

MagicMaker
04.08.2008, 18:07
Bevor der Thread von der ersten Seite verschwindet melde ich mich nochmal
besser hier drin.

Nochmal zusammengefasst was passiert

- Spiel wird geöffnet
- Titel überspringen
- Ein Programm wird ausgeführt
- Dieses schreibt eine script.wav deren Inhalt davon abhängig ist ob eine andere Datei existiert (Voice-2-06.wav)
- Wenn sie da ist, schreibt er in den AddOutput 1, wenn nicht, 0
- Der Maker liest die Script.wav ein, sobald das Nebenprogramm geschlossen ist (Wait=True)
- Eine Variable übernimmt den Wert des MidiTicks
- Statt 0 oder 1 kommt hier "-1"
- Wenn ich die Script.wav überprüfe, steht immer der korrekte Wert drin (0 oder 1, jenachdem was zutrifft)

MagicMaker
06.08.2008, 17:34
---------------------------------------------------------------------------
***es sei mal gesagt dass ich immernoch mit ungelöstem Problem dastehe***
---------------------------------------------------------------------------

Die Script.wav wird immer korrekt erzeugt, das Project empfängt aber den
falschen Wert vom Output.

R.D.
06.08.2008, 18:14
Ich verstehe nich warum du soweiso ein Externes Prog dafür haben willst oO

Du willst doch das dateien abgespielt werden sollen, wenn man das passende Soundpaket oder?

Weil dann machts du einfach alle Sounddateien rein, schreibst sie in den Code, oder löschst sie wider raus. fertig.
Der Maker spielt sie dann nich ab und zeigt auch keinen Fehler an.