mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!)
mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!)
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
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 !)
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ß!!
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
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 !)
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ß!!
Meine Webseite:
JDRWorks.de
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
Sooo...nun komm erstmal wieder runter....
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...
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
sorry wegen meiner Art und Weiße die Dinge hier zu posten!
und Danke!!! du bist der Beste, es hat mal wieder alles geklappt!!
und Danke!!! du bist der Beste, es hat mal wieder alles geklappt!!
Meine Webseite:
JDRWorks.de
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
Ich bin auf diese Sache damals auch erst reingefallen
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
hmmm!!..
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!!
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?
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!!
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?
Last edited by JDR on 06 Mar 2011, 20:32, edited 1 time in total.
Meine Webseite:
JDRWorks.de
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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()
}}
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
sorry hatte mmich vertippt !!japanhonk wrote:Vielleicht, weil dein erstes Skript im Post DAS hier enthält ?
on (pickup)
setobj (Unkraut;0)
setobj (Liste;2)
Meine Webseite:
JDRWorks.de
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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.
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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!!
(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
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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.
Noch Fragen ?
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.
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
Erstmal ein FETTES Danke für deine Erklärung!!
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
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
Meine Webseite:
JDRWorks.de
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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 }
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
on (link)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 }
{
if_link (Feuer)
{
setobj (Licht;1)
setobj (Fakelliste;2)
break()
}
if_obj (Fakelliste;2)
{
setobj (Fakelliste;3)
break()
}
}
So oder??
Last edited by JDR on 13 Mar 2011, 16:13, edited 1 time in total.
Meine Webseite:
JDRWorks.de
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
japanhonk wrote:Wot heiv ick deer... über den Umgang von BREAK () gesagt... junger Caravan?
GUCKEN !!!!
Dein Skript ist falsch und den Fehler machst Du anscheinend gerne !
Deine Fackelliste wird nicht REIN zufällig SOFORT auf 3 gesetzt, oder ??
sorry!
( :doh:NATÜRLICH!!!! )
Meine Webseite:
JDRWorks.de
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
AHHAAAAAAA....DAS ist doch jetzt mal ein Lernerfolg, oder ?
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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!!
(Ich habs mit dem link nicht kapischt!!! )
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!!
(Ich habs mit dem link nicht kapischt!!! )
Meine Webseite:
JDRWorks.de
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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()
}
}
}
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)
}
}
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
japanhonk wrote:Wot heiv ick deer... über den Umgang von BREAK () gesagt... junger Caravan?
GUCKEN !!!!
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 ?
Ab jetzt bitte drauf achten - ich glaube, nochmal erklären bringt nix.
Ab hier gilt - learning by doing - oder Lernen durch Schmerzen....
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
ohhhhh man......
tut mir ja so leid das ich hier dauernt nachfrage..!
ich hake das Thema von meiner Seite ab!!
Material gibt es ja genug
Dankeschön für die ganzen Tipps
Jetzt heißt es anschauen und verstehen!!!!
Servus!
tut mir ja so leid das ich hier dauernt nachfrage..!
ich hake das Thema von meiner Seite ab!!
Material gibt es ja genug
Dankeschön für die ganzen Tipps
Jetzt heißt es anschauen und verstehen!!!!
Servus!
Meine Webseite:
JDRWorks.de
JDRWorks.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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 ?
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 ?
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
Meine Webseite:
JDRWorks.de
JDRWorks.de
Problem mit if_bool
Ich habe auch ein Problem mit mehreren Befehlen in einem Skript. Meine Cutscene sieht so aus:
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... ;-(
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!)
Es hat auch nichts gebracht, zwei if-schleifen zu setzen (also die 2. mit if_bool...false).
Ich kapiere es nicht... ;-(
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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....
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: mehrere Befehle in ein Script packen! (Hilfe! an Alle!!!
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?
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?