mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!)

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!)

Post: # 77962Post JDR
04 Mar 2011, 17:55

HI nochmal!
Eigentlich wollte ich eine Demo von meinem (ganz gut laufenden) Projekt veröffentlichen aber ich habe ein Problem!!!
Es kann sein das ich in den ersten Basicstutorials ürgentwas ZIEMLICH falsch verstanden habe den das Problem ist meiner Ansicht Simpel zu lösen!aber ich weiß nicht wie :roll:

Also:
Einer meiner Quests im anfangsraum ist Unkraut aufzusammeln. Nachdem man das Unkraut aufgesammelt hat erscheint im Tagebuch bei dem Quest 1/5!,2/5 usw.
nur das der Spieler ürgentein Unkraut nehmen kann und dann AUCH 1/5 erscheinen soll !!!!
verstehen??(ich erkläre das zu komplitiert :D !)
ich habe das objekt das dies anzeigt mit 5 Zuständen ausgestatten,1.Zu. 1/5, 2.Zu. 2/5 usw. griege aber nicht den gescheiten Script fürs Unkraut hin!!!

kann mir jemand helfen??
habs erst mit dem Script versucht es geht aber nicht (total falsch!!!!!)
on (mouse)
showinfo (Unkraut;true)
on (pickup)
setobj (Unkraut;0)
setobj (Liste;2)

if_obj (Liste;2)
setobj (Liste;3)

if_obj (Liste;3)
setobj (Liste;4)

usw....
es will aber nicht GEHEN!!!
(was sit falsch??)

wahrscheinlich fehlen die } { Klammern!!
man ich poste hier einen kompletten Anfängerscheiß!! :thumbdown:
Meine Webseite:
JDRWorks.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77963Post japanhonk
04 Mar 2011, 19:17

Sooo...nun komm erstmal wieder runter.... :wink:

Aaaalso

In einem Punkt hast Du recht - du erklärst das echt ziemlich undeutlich.
Dennoch habe ich vielleicht eine Lösung :

Erstmal : Es fehlen tatsächlich Klammern , Du musst definieren, bei WELCHER Aktion etwas passieren soll, also müssen deine Abfragen mit in Klammern.

Dann das Wichtigste : Denk mal nach, was genau hier passiert :

Du fragst ab, ob die Liste auf 2 steht und setzt sie auf 3 und fragst
dann SOFORT danach Zustand 3 ab - der dann sofort auf 4 umspringt.

Die Lösung : BREAK ()

on (pickup)
{
setobj (Unkraut;0)
setobj (Liste;2) ---------> Du fragst jetzt DIREKT diesen Zustand ab ??
if_obj (Liste;2) ---------> Zustand ist IMMER 2 hier - selbstverarschung !
{
setobj (Liste;3)
break()
}
if_obj (Liste;3)
{
setobj (Liste;4)
break()
}}

Alternativ kannst Du die Reihenfolge der Abfrage umkehren, sofern das Sinn macht ( z.B. bei festgelegten Abläufen )
Dasselbe gilt auch, wenn Du bools umsetzt.

Bsp: ( FALSCH ! )

if_bool (music;true)
setbool (music;false)

if_bool (music;false)
setbool (music;true)

Jetzt sag mir mal, wie der Bool Music steht, wenn diese 4 Zeilen abgearbeitet wurden ? Na ? Warum klappt ein EINMALIGES Umschalten hier wohl nicht ?

Ich vermute, du weisst, worum es geht...
Last edited by japanhonk on 13 Mar 2011, 18:41, edited 1 time in total.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77964Post JDR
04 Mar 2011, 20:18

sorry wegen meiner Art und Weiße die Dinge hier zu posten! :oops:

und Danke!!! du bist der Beste, es hat mal wieder alles geklappt!!
Meine Webseite:
JDRWorks.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77965Post japanhonk
04 Mar 2011, 20:25

Ich bin auf diese Sache damals auch erst reingefallen :doh:
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77966Post JDR
06 Mar 2011, 20:28

hmmm!!.. :shock:
ich verstehe wieder etwas nicht!!!

die sache ist die:
der Spieler hat die Aufgabe Unkraut zusammeln!
auf den Gelände sind 5 davon verteilt!
nimmt er eines springt der Zustand auf 2 nimmt er das nächste auf 3 usw.
dabei kann der Spieler jedes Unkraut nehmen:
also ein ungeregelter ablauf!
ich habe es mit deinem Scrtipt probiert und anfangs ging es super!! :banana:

aber trotzdem gab es 2 probleme !:
1.der Zustand geht auf 3 (warum auch immer?!)
2. wenn ich den gleichen script bei einem anderen einsetzte geht es nicht!
(der Zustand belässt sich auf 3!!9

Why? :roll:
Last edited by JDR on 06 Mar 2011, 20:32, edited 1 time in total.
Meine Webseite:
JDRWorks.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77967Post japanhonk
06 Mar 2011, 20:31

Vielleicht, weil dein erstes Skript im Post DAS hier enthält ?

on (pickup)
setobj (Unkraut;0)
setobj (Liste;2)

Definiere den ersten Zustand der Liste
Versuch doch mal DAS

on (pickup)
{
if_obj (Liste;1)
{
setobj (Liste;2)
setobj (Unkraut;0)
break()
}}
Last edited by japanhonk on 06 Mar 2011, 20:36, edited 2 times in total.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77968Post JDR
06 Mar 2011, 20:33

japanhonk wrote:Vielleicht, weil dein erstes Skript im Post DAS hier enthält ?

on (pickup)
setobj (Unkraut;0)
setobj (Liste;2)
sorry hatte mmich vertippt !! :? :lol:
Meine Webseite:
JDRWorks.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77969Post japanhonk
06 Mar 2011, 20:42

Habe mich schon gewundert, wie Du ein Objekt anklicken willst, dass den Zustand 0 hat...

Ich gehe davon aus, dass ein aufgesammeltes Objekt verschwindet, also
brauchst du in jedem noch aktiven Objekt ein entsprechendes Skript zur abfrage der Liste - wozu auch immer die dienen soll.

Ich würde es so machen:

Skript Unkraut 1 :

on (pickup)
{
setobj (Unkraut_1;0)
if_obj (Liste,1)
{
setobj (Liste;2)
break()
}
if_obj (Liste,2)
{
setobj (Liste;3)
break()
}
usw
}

Skript Unkraut 2 :

on (pickup)
{
setobj (Unkraut_2;0)
if_obj (Liste,1)
{
setobj (Liste;2)
break()
}
if_obj (Liste,2)
{
setobj (Liste;3)
break()
}
usw
}

usw.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77977Post JDR
08 Mar 2011, 17:13

ein fettes danke!
(es hat Natürlich funktioniert!!)
aber ich habe noch eine Frage!!!
das mit den Klammern habe ich noch nicht richtig verstanden({})
die werden benutzt um eine weitere Option festzulegen oder bzw. eine Option zu makieren wenn die erste nicht gehen kann(wegen nicht vorhandener (bsp.) objekte)??!!
aber was sind die Effekte der Kombinationen??
{{
}}
{}
}{

Ich habe den gleichen Aufbau des scripts von japanhonk für einen link befehl verwendet!
der aber nicht klappen will!!
Meine Webseite:
JDRWorks.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77978Post japanhonk
08 Mar 2011, 18:17

Die geschweiften Klammern fassen eine Gruppe von Befehlen zusammen, die
gemeinsam ausgfeührt werden, wenn ein bestimmter Fall eintritt. Sie treten IMMER paarweise auf - machst du eine Gruppe mit { auf, wird sie auch mit }
wieder geschlossen.
Darum gibt es {{ nicht ohne Befehle dazwischen. Auch {} gibt es so nicht - jedenfalls nicht sinnvoll. }} bedeutet, 2 Gruppen werden abgeschlossen.

if_obj (irgendwas;3)
{
setobj (irgendwas;4)
playsound (Radau;50)
jiggle (2;1)
break()
}

Ohne Klammern würde bei zutreffender Bedingung (irgendwas=3)
nur der erste Befehl hinter der If Anweisung ausgeführt werden,
trifft die Bedingung dagegen NICHT zu, wird das Skript mit dem übernächsten Befehl ausgeführt :

if_obj (irgendwas;3)
setobj (irgendwas;4)
-----------------> Obj. irgendwas wird auf 4 gesetzt, wenn es auf 3 stand
und es geht mit dem nächsten Befehl weiter.
Wurde Irgendwas auf 4 gesetzt, geht es auch
mit dem nächsten Befehl weiter.
playsound (Radau;50)
jiggle (2;1)
break()

Hast Du mehrere Bedingungen, die abgefragt werden, schachtelst du sie ineinander :
on (link)
{
if_link (Schraubenschlüssel)
{
playsound (quietsch)
setobj (schraube;2)
setobj (Loch;1)
}
if_link (Hupe)
{
playsound (tüt)
setobj (hupe;2)
}
}
----Ich schreibe die letzten beiden Klammern direkt hintereinander, das
bleibt aber jedem selbst überlassen - so kommen dann meine }} zustande.

Die eckigen Klammern dienen dazu, den Inhalt eines Strings oder einer Variablen auszulesen :
setstring (Texteingabe;blablabla)
textout (1;[texteingabe];100;100;1;255;255;255)

Mit Klammern enthält der String "texteingabe" das angegebene
blablabla, und wird auch dann angezeigt. (z.B. wenn du etwas über die Tastatur eingeben willst, kannst du die Eingaben in einem String speichern und den Inhalt des Strings dann so ausgeben.
ohne die eckigen Klammern würde der Befehl folgendes ausgeben:
texteingabe

Bei Variablen :
setnum (Mausposition_x;[mousex])

mousex ist vordefiniert (siehe Befehlsreferenz ), das System schreibt
die x-Position der Maus automatisch in diese Variable. Wenn du sie
auf diese Art ausliest, hast du immer den aktuellen Wert, der ändert sich mit.
Das ist sher nützlich, wenn du Werte nutzt, die sich ändern.
Ich definiere z.B. die Bewegungsgeschwindigkeit im Startskript setnum (speed;9)
Dann bewege ich ein Objekt im Level 1 z.B. :
moveobj (objekt;20;20;[speed])
Im Level 2 setze ich per Skript den Wert Speed auf 5

Der Moveobj Befehl bleibt derselbe, aber das Objekt bewegt sich jetzt schneller, d.h. es kann ein und die selbe Funktion ohne Änderung benutzt werden.
Ich rate dir, die Skript Referenz ( Per klick auf Hilfe des Editors) im Punkt Variablen mal anzusehen, um die Vordefinierten zu sehen.

:comp:

Noch Fragen ?
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77995Post JDR
12 Mar 2011, 14:33

Erstmal ein FETTES Danke für deine Erklärung!! :thumbup:
das bringt Licht ins Dunkel!!

Aber mit einem link Befehl wills bei mir immer noch nicht klappen!!
das Prinzip ist das gleiche wie beim Unkraut dabei gibt es aber nur zwei Gegenstände!
Der Player bekommt ein Feuerzeug und soll damit die Fakeln entzünden benutzt er den Gegenstand mit einer der 2 Fakeln springt das Licht das oberhalb der Fakel auf Zustand 0 plaziert ist auf 1 und die Questliste springt auf Zustand 2. Wie beim Unkraut auch ist die Reihenfolge ungleichmässig!(Das Script poste ich eins drunter!)

Ansonsten hat alles geklappt!
Merci :mrgreen:
Meine Webseite:
JDRWorks.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 77997Post japanhonk
12 Mar 2011, 19:22

hmm, also bis jetzt sehe ich da kein Skript....

Aber den grundsätzlichen Ablauf eines Link Befehls habe ich ja oben gepostet.
Kann es nicht eher sein, dass das Skript des Gegenstandes falsch ist ?

Hier nochmal der grundsätzliche Aufbau :

Objekt aufsammeln und auggf auf 0 setzen,
Gegenstand zum Inventar hinzufügen,ggf bestimmten Zustand setzen (setitem)
Skript Gegenstand : on (click) -> link (mein_Gegenstand)
Objekt, auf das dieser Gegenstand angewendet werden kann ,
bekommt ins Skript : on (link)->if_link (mein_Gegenstand)-> { Befehle }
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78000Post JDR
13 Mar 2011, 12:56

japanhonk wrote:hmm, also bis jetzt sehe ich da kein Skript....

Aber den grundsätzlichen Ablauf eines Link Befehls habe ich ja oben gepostet.
Kann es nicht eher sein, dass das Skript des Gegenstandes falsch ist ?

Hier nochmal der grundsätzliche Aufbau :

Objekt aufsammeln und auggf auf 0 setzen,
Gegenstand zum Inventar hinzufügen,ggf bestimmten Zustand setzen (setitem)
Skript Gegenstand : on (click) -> link (mein_Gegenstand)
Objekt, auf das dieser Gegenstand angewendet werden kann ,
bekommt ins Skript : on (link)->if_link (mein_Gegenstand)-> { Befehle }
on (link)
{
if_link (Feuer)
{
setobj (Licht;1)
setobj (Fakelliste;2)
break()
}
if_obj (Fakelliste;2)
{
setobj (Fakelliste;3)
break()
}
}

So oder?? :oops:
Last edited by JDR on 13 Mar 2011, 16:13, edited 1 time in total.
Meine Webseite:
JDRWorks.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78001Post japanhonk
13 Mar 2011, 13:09

Schon besser, aber noch nicht ganz richtig :

on (link)
{ -------------------->Befehlsgruppe für ALLE LINK Befehle, Hauptgruppe
if_link (Feuer)
{-------------------->Befehlsgruppe für Link Feuer öffnen, Untergruppe 1
setobj (Licht;1)
setobj (Fakelliste;2)
break()------->Break, damit Skript hier endet, bis neuer Aufruf kommt
if_obj (Fakelliste;2)
{ -------------------->Befehlsgruppe für Link Feuer , Untergruppe 2
setobj (Fakelliste;3)
break()--------------->Break nur nötig, wenn noch etwas folgt
} -------------------->Untergr. 2 ( Fackelliste=2) abschliessen
} -------------------->Untergr. 1 ( Link=Feuer) abschliessen
} -------------------->Hauptgruppe für LINK-Befehl abschliessen
Last edited by japanhonk on 14 Mar 2011, 16:32, edited 5 times in total.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78002Post JDR
13 Mar 2011, 16:10

japanhonk wrote:Wot heiv ick deer... über den Umgang von BREAK () gesagt... junger Caravan?

GUCKEN !!!! :ugly:

Dein Skript ist falsch und den Fehler machst Du anscheinend gerne !
Deine Fackelliste wird nicht REIN zufällig SOFORT auf 3 gesetzt, oder ??

sorry! :oops: :oops: :oops:
( :doh: :doh: :doh: :doh: :doh: :doh:NATÜRLICH!!!! )
Meine Webseite:
JDRWorks.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78004Post japanhonk
13 Mar 2011, 16:52

AHHAAAAAAA....DAS ist doch jetzt mal ein Lernerfolg, oder ? :mrgreen: :mrgreen:
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78006Post JDR
13 Mar 2011, 18:05

Aber da hab ich wieder ein problem wie mit dem Unkraut!!müsste doch eigentlic so zu lößen sein!!
will sich aber nicht zuendeklammern!!

on (link)
{
if_link (Feuer)
{
setobj (Fackel licht 1;1)
setobj (Fackel Liste;2)
if_obj (Fackel Liste;2)
}
setobj (Fackel Liste;3)
break()

Wie klammer ich aus?
es gibt keine weiteren Aktionen!! :pcprob:

(Ich habs mit dem link nicht kapischt!!! :rant: )
Meine Webseite:
JDRWorks.de

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78007Post Zimond
13 Mar 2011, 18:14

on (link)
{
if_link (Feuer)
{
setobj (Fackel licht 1;1)
setobj (Fackel Liste;2)
if_obj (Fackel Liste;2)
}
setobj (Fackel Liste;3)
break()

Wie soll das denn so funktionieren? Erstmal die Klammern... für jede Klammer auf musst du auch eine zumachen... nach einem IF Befehl eine Klammer zu bringt schon mal gar nichts. Richtig sieht das so aus.

Code: Select all

on (link)
{
if_link (Feuer)
  {
  setobj (Fackel licht 1;1)
  setobj (Fackel Liste;2)
  if_obj (Fackel Liste;2)
   {
   setobj (Fackel Liste;3)
   break()
   }
  }
}
Und jetzt hast du mal wieder das gleiche Problem was man dir hier schon öfters versucht hat zu erklären. Du nutzt den Break Befehl völlig falsch. So wird Fackelliste immer 3 sein! Richtig ist :

Code: Select all

on (link)
{
if_link (Feuer)
  {
  setobj (Fackel licht 1;1)
  if_obj (Fackel Liste;2)
   {
   setobj (Fackel Liste;3)
   break()
   }
  setobj (Fackel Liste;2)
  }
}
Nur so funktionierst zwei mal.. erst wird Fackelliste auf 2 gesetzt und beim zweiten Linkversuch dann auf 3. Wenn der Spieler diesen Link Befehl danach nochmal machen kann ist es nötig das du auch den Befehl Fackelliste auf 2 zu setzen per if_obj abfragst weil sonst der Wert wieder von 3 zu 2 geändert wird beim dritten Versuch.
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78008Post japanhonk
13 Mar 2011, 18:26

japanhonk wrote:Wot heiv ick deer... über den Umgang von BREAK () gesagt... junger Caravan?

GUCKEN !!!! :ugly:

Dein Skript ist falsch und den Fehler machst Du anscheinend gerne !
Deine Fackelliste wird nicht REIN zufällig SOFORT auf 3 gesetzt, oder ??

Hatten wir das nicht schon mal ? Oder zweimal ?...Dreimal ? :rant:
Ab jetzt bitte drauf achten - ich glaube, nochmal erklären bringt nix.
Ab hier gilt - learning by doing - oder Lernen durch Schmerzen.... :mmh:
Mal eine Klammer umsetzen und zu sehen, was passiert, ist ja wohl keine grosse Sache. ( Dev Modus benutzen bei laufendem Spiel )
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78009Post JDR
13 Mar 2011, 20:04

ohhhhh man...... :oops:
tut mir ja so leid das ich hier dauernt nachfrage..!
ich hake das Thema von meiner Seite ab!!
Material gibt es ja genug :lol:

Dankeschön für die ganzen Tipps :thumbup:
Jetzt heißt es anschauen und verstehen!!!! :book:

Servus!
Meine Webseite:
JDRWorks.de

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78011Post japanhonk
13 Mar 2011, 20:19

Vielleicht noch ein Tip für die Zukunft :

Fragen ist natürlich okay, aber die Lösung steht ja direkt vor Deinen Augen jetzt.
Manchmal versteht man vielleicht auch die Erklärung selbst nicht - dann bitte
Bescheid sagen, damit wir anders erklären können.

Kleiner Tip : break () oder ein auffälliger Sound sind sehr hilfreich, um einen
Skriptablauf zu testen. Wenn ein Skript nicht korrekt ausgeführt wird, baue ich
gerne mal ein Geräusch ein, um zu erkennen, ob eine bestimmte Funktion auch ausgeführt wird oder bis wohin es noch klappt. Das wird Dir sicher auch mal helfen, um Fehler zu erkennen.

Ach ja - "Anschauen und verstehen" - warum erst jetzt diese Erkenntnis ?
:wink:
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78014Post JDR
14 Mar 2011, 13:25

:mrgreen:
Meine Webseite:
JDRWorks.de

Novel
PaC-DK Newby
Posts: 16
Joined: 05 Feb 2011, 23:06
Contact:

Problem mit if_bool

Post: # 78051Post Novel
16 Mar 2011, 23:13

Ich habe auch ein Problem mit mehreren Befehlen in einem Skript. Meine Cutscene sieht so aus:

Code: Select all

if_string (wolang;links)
    {
    speech (Browallia;Ok! I'm going left.)
    setstring (wolang;null)
    
    if_bool (geheimnis_bekannt;true)
        {
        speech (Browallia;Ich kenne das Geheimnis!)
        break()
        }
    speech (Browallia;Ich kenne das Geheimnis nicht.)
    break ()
    }   
speech (Browallia;ES KLAPPT NICHT! ARGL!)
Wenn ich den Bool auf true habe, wird der entsprechende Bereich sauber bis zum Break ausgeführt. Habe ich ihn aber auf false, wird bei dem, was nach dem if_bool kommt ("Ich kenne das Geheimnis nicht"), nichts ausgeführt. Stattdessen springt er aus der ganzen If-Geschichte raus und der Speech-Befehl ganz unten wird abgespielt.
Es hat auch nichts gebracht, zwei if-schleifen zu setzen (also die 2. mit if_bool...false).

Ich kapiere es nicht... ;-(

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78053Post japanhonk
17 Mar 2011, 06:23

Hmmm...da sehe ich jetzt so auf Anhieb auch keinen Fehler drin...
Der letzte Speech Befehl soll ja nur dann ausgeführt werden, wenn
der string wolang nicht auf links steht....
Andernfalls wird ein break angesprungen...scheint schon richtig zu sein...
Ich probiere das nachher mal aus bei mir.

Kann mich aber dran erinnern, dass speech und break eine Eigenart hatten.
Wenn ich ein break hinter einem speech Befehl hatte, wurden bei
mir die Textfenster ausgeblendet, obwohl ich das nicht so geschrieben hatte.
Ohne break klappte es wieder. Hab ich auch nie kapiert....
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Novel
PaC-DK Newby
Posts: 16
Joined: 05 Feb 2011, 23:06
Contact:

Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!

Post: # 78061Post Novel
19 Mar 2011, 00:14

Vielleicht hilft zu wissen, dass ich das Script aus einer Textscene heraus starte. Das sieht so aus:

speech (Browallia;Aaaah!?)
endscene ()
timer (10)
function (zeiter)
break ()

Das script weiter oben hat den Namen "zeiter".
Interessant: Seit ich die zeile "cutscene (zeiter)" in "function (zeiter)" umbenannt habe, wird der zweite Teil in der if-routine berücksichtigt. Allerdings schafft er es weiterhin nicht, danach den Break auszuführen. Argl!
Soll man tendenziell alles in eine Cutscene stopfen und höchstens kleinere, schnelle Berechnungen in Funktionen auslagern? Kann das mein Problem lösen?

Post Reply