German Karte mit 'decisionwin' wechseln [Gelöst]

8 replies
Goto Page
To the start Previous 1 Next To the start
Up
Topicranger
User
Offline Off
Guten Tag us - Community,

Ich arbeite zurzeit an einer Map, bei der man, nachdem man ein Haus benutzt hat, ein Dialogfenster mit "Ja" und "Nein" erscheint. Wenn man "Ja" drückt, ändert sich die Karte, bei "Nein" tut sich nichts.

s2 cmd decisionwin stellte sich als Lösung heraus, doch hier befindet sich das Problem:
• Ich weiß nicht, wie man das richtig macht !

Wie kann ich einstellen, dass man bei dem Button "Ja" die Karte wechseln kann?
Ich habe etwas herumprobiert und ein Skript erstellt:
Code:
1
2
3
4
5
6
7
on:use {
     decisionwin "In mein Haus gehen?",4,"Nein","Ja"; (Das Dialogfenster öffnet sich einwandfrei)
     --Hier das Problem--
     if ($decisionwin==1) {
          msg "Mache ich."; (Das Skript mit der Map habe ich hier mal ausgetauscht)
     }
}

Funktioniert das so ähnlich mit s2 cmd decisionwin oder muss man dies mit s2 cmd on machen?

Ich würde mich über eine Antwort sehr freuen !

PS: Ich habe auch die alten Skript-Hilfen Foren durchgeblättert, doch stand dort nichts über s2 cmd decisionwin.
edited 1×, last 20.11.15 11:55:09 pm
Alles fing mit der c't an...
20.11.15 07:17:03 am
Up
ohaz
User
Offline Off
Habe zwar keine Ahnung von S2script, aber das hier sollte gehen:
Code:
1
2
3
4
5
6
7
on:use {
     $antwort = decisionwin "In mein Haus gehen?",4,"Nein","Ja"; (Das Dialogfenster öffnet sich einwandfrei)
     --Hier das Problem--
     if ($antwort==1) {
          msg "Mache ich."; (Das Skript mit der Map habe ich hier mal ausgetauscht)
     }
}
https://ohaz.engineer - Software Engineering
20.11.15 12:56:17 pm
Up
Topicranger
User
Offline Off
Schade, funktioniert nicht richtig .
Jetzt wird die Konsole mit einer Fehlermeldung geöffnet:
Code:
1
2
3
4
5
6
7
>SCRIPT ERROR:
>Expecting Semicolon
>Script: Object 57 (Haus type 194)
>Event: use
>Row: 2
>Col: 45
>Script: $antwort = decisionwin "In mein Haus gehen?",4,"Nein","Ja";

Die Klammern mit dem Text habe ich gelöscht, aber
es scheint so, als ob er die Variable als Skript erkennt.

Edit:
Das Semicolon steht für ";", bin gerade erst darauf gekommen.
Doch hilft dies nicht weiter, nun steht die Variable auf "decisionwin".
Alles fing mit der c't an...
20.11.15 01:07:11 pm
Up
A Mad Bro
User
Offline Off
der fehler sagt nur aus dass ein Semikolon ; fehlt.

Warum benutzt du nicht dialogue?
On the outside I may appear like an emotionless sarcastic piece of shit but just like an onion when you peel off more layers you find the exact same thing every single time and you start crying.
20.11.15 01:21:40 pm
Up
Topicranger
User
Offline Off
user A Mad Bro has written:
Warum benutzt du nicht dialogue?

Weil ich auch mal andere Skripte ausprobieren möchte, s2 cmd dialogue ist ein bisschen Umständlich wegen der externen Datei .
Alles fing mit der c't an...
20.11.15 01:32:47 pm
Up
A Mad Bro
User
Offline Off
Ich hab auch keine große ahnung von s2script, aber decisionwin sollte entweder 1 oder 0 ausgeben. Wo? Keine ahnung. Jedenfalls kannst du dann einer Variable den ausgegebenen Wert zuweisen und die map bei diesem Wert ändern lassen.

Edit:
So, habe mir kurz S2 runtergeladen und mir das angesehen:

Code:
1
2
3
4
on:use {
     decisionwin "In mein Haus gehen?",4,"Nein","Ja";
     msg "Mache ich.";  
}


So geht's egal was du klickst

Das macht dann 2,50€ bitte
edited 2×, last 20.11.15 01:46:46 pm
On the outside I may appear like an emotionless sarcastic piece of shit but just like an onion when you peel off more layers you find the exact same thing every single time and you start crying.
20.11.15 03:11:48 pm
Up
Topicranger
User
Offline Off
Das ist ja eigentlich nicht Sinn der Sache.
Das Skript s2 cmd decisionwin sollte bei "Nein" nichts tun und bei "Ja" etwas schreiben.
Trotzdem sind hier deine 2,50€. Habe viel Spaß damit .

Ich habe das Problem vorerst mit s2 cmd msgbox gelöst, jedoch kann hier
gerne noch einer ein funktionierendes s2 cmd decisionwin - Skript posten.
Alles fing mit der c't an...
20.11.15 08:38:28 pm
Up
Klirkz
User
Offline Off
user ohaz hatte eigentlich schon das Hauptproblem gelöst: Du brauchst eine Variable als Zwischenspeicher, wie hier $antwort. Das einzige Problem ist die Klammer, die man immer bei Befehlen braucht, die etwas zurückgeben sollen:

Code:
1
2
3
4
5
6
on:use {
     $antwort = decisionwin("In mein Haus gehen?",4,"Nein","Ja");
     if ($antwort==1) {
          msg "Mache ich.";
     }
}
Truth is not an opinion.
20.11.15 11:52:18 pm
Up
Topicranger
User
Offline Off
Danke für den Beitrag, user Klirkz!
Das Skript funktioniert nun einwandfrei!
Alles fing mit der c't an...
To the start Previous 1 Next To the start