Hallo,
zurzeit arbeite ich an einem etwas größeren Spiel, was aus Ordnungs- und Anpassungsgründen sehr auf eine .ini-Datei zurückgreift.
Eigentlich sollte nur das Dialogsystem dadrüber laufen, die Section und Key sind dabei Zahlenstrings (Damit man leicht weiterblättern kann). Eine Beispielzeile könnte also so aussehen:
So wurde der Text direkt als String übernommen.
Lief soweit so gut, aber jetzt soll die .ini der gm6 auch mal Funktionen ansagen. Eine Funktion, bei der es hakt, ist die Bezahlfunktion SPEND, Beispiel hier :
SPEND sagt dem Programm "Hey, GM6 ich will was ausgeben.", die Zahl sagt, wie viel. Die Abfrage, ob SPEND vorkommt funktioniert einwandfrei
Allerdings führt der GM hier beide Situationen durch. Wahrscheinlich liegt der Fehler nicht im hier beschriebenen Code, muss ich mir also selber noch mal ansehen.
Hauptproblem: Die Funktion "SET: Beispiel:
SET wird im großen "Was passiert bis zum ":" switch abgefragt, klappt wohl.
Jetzt soll Set die Variable, die bis zur Leerstelle beschrieben ist, auf die Zahl im Script setzen.
So sieht das aus:
Problem: Die Variable bleibt nicht gesetzt. Was tun?
Gibt es im vorliegenden Code keine Fehler und ich muss mir das Gesamtgefüge nochmal anschauen? Konnte da nichts finden, deshalb frag ich euch.
Danke im Vorraus,
woku
zurzeit arbeite ich an einem etwas größeren Spiel, was aus Ordnungs- und Anpassungsgründen sehr auf eine .ini-Datei zurückgreift.
Eigentlich sollte nur das Dialogsystem dadrüber laufen, die Section und Key sind dabei Zahlenstrings (Damit man leicht weiterblättern kann). Eine Beispielzeile könnte also so aussehen:
So wurde der Text direkt als String übernommen.
Lief soweit so gut, aber jetzt soll die .ini der gm6 auch mal Funktionen ansagen. Eine Funktion, bei der es hakt, ist die Bezahlfunktion SPEND, Beispiel hier :
SPEND sagt dem Programm "Hey, GM6 ich will was ausgeben.", die Zahl sagt, wie viel. Die Abfrage, ob SPEND vorkommt funktioniert einwandfrei
GML-Quellcode
- if global.Geld < real(string_digits(i)) //Wenn man zuwenig Geld hat...
- dialog[global.dialog_laeuft] += 5 //...wird im Dialogsystem fünf Zeilen weitergesprungen. (Im Beispiel geht es zur Zeile 35)
- else
- {
- global.C -= real(string_digits(i)) //Sonst wird die Menge bezahlt,
- dialog[global.dialog_laeuft] += 1 //und es geht 1 weiter.
- }
Allerdings führt der GM hier beide Situationen durch. Wahrscheinlich liegt der Fehler nicht im hier beschriebenen Code, muss ich mir also selber noch mal ansehen.
Hauptproblem: Die Funktion "SET: Beispiel:
SET wird im großen "Was passiert bis zum ":" switch abgefragt, klappt wohl.
Jetzt soll Set die Variable, die bis zur Leerstelle beschrieben ist, auf die Zahl im Script setzen.
So sieht das aus:
GML-Quellcode
- i = string_delete(i,0,string_pos(":",i)); //Erst mal das "SET:" entfernen, stört nur
- temp = real(string_digits(i)) //Die gute alte Temp-Variable merkt sich die Zahl
- i = string_copy(i,0,string_pos(" ",i)-1) //Die ausgediente String-Variable merkt sich die Variable
- variable_local_set(i,temp); //Die Variable (i) wird auf den Wert temp gesetzt
- dialog[global.dialog_laeuft] += 1 ; //Dialog läuft eins weiter, soll ja nur einmal gesetzt werden.
- break;//UND CUT
Problem: Die Variable bleibt nicht gesetzt. Was tun?
Gibt es im vorliegenden Code keine Fehler und ich muss mir das Gesamtgefüge nochmal anschauen? Konnte da nichts finden, deshalb frag ich euch.
Danke im Vorraus,
woku