Hallo miteinander
Bisher komm ich ganz gut voran, ABER:
Bei den Kommandos wie Türe öffnen, etwas nehmen, oder benützen macht das mein kleiner Held schon aus der Ferne, bevor er hingeht.
Obwohl ich im Skript immer zuerst ein waltkto habe, wird die Aktion schon ausgeführt, während der Char zum Objekt hingeht.
-Die tür ist schon offen, wenn er dort ist, oder ein Gegenstand liegt schon im Inventar, ehe er ihn erreicht hat .
Mit wait() funktionierts auch nicht
Wo bitte liegt mein bug?
Danke im voraus und
Problem: Charakter agiert schon aus der Ferne
Problem: Charakter agiert schon aus der Ferne
Last edited by allph on 03 Jan 2016, 21:59, edited 1 time in total.
Beste Grüße aus Wien
Re: Problem: Charakter agiert schon aus der Ferne
Hi,
jetzt kenne ich Deine Skripte ja nicht, aber ich vermute mal Folgendes :
Setze Dich mal mit dem Befehl MINICUT () auseinander.
EIne CUTSCENE ist ein Programmteil, der ERST abgearbeitet wird, bevor es weitergeht.
(Anders, als eine Funktion, da läuft alles weiter. )
Wenn man aber kein ganzes Skript anlegen muss, sondern erst zu etwas hingehen muss, um etwas zu erledigen, gibt es - als eine von mehreren Möglichkeiten - den Befehl Minicut.
on ( look)
{
minicut()
walkto (self;22;11;2)
speech (self; Aha;true)
}
Das minicut gibt jetzt an, dass der Befehl direkt dahinter ( oder - falls vorhanden - der in geschweiften Klammern eingefasste Programmcode direkt dahinter ) ERST abgearbeitet wird, bevor der Speech Befehl abgearbeitet wird.
Soweit das Einfachste.
Als Einblick in die zukünftigen Möglichkeiten :
Walkmapskripte
Klicke einen Walkmappunkt an und schreibe dort das gewünschte Skript rein.
Das kann so aussehen, dass das Türobjekt , wenn man durchlaufen soll,z.B. den Befehl enthält :
on (walk)
walkto (self;22;11;2)
Wenn Du dann auf diesem Punkt ankommst, steht im Skript dieses Punktes :
on (walk)
if_obj (Tür;1)
setobj (Tür;2)
Sofern die Tür zu ist, wird sie erst beim Betreten des Punktes geöffnet.
Im einfachsten Fall kann dort für einen Raumwechsel stehen :
on (walk)
{
if_obj (Tür;1)
setobj (Tür;2)
minicut ()
wait (1)
beamto (self;raum2;22;15;1)
}
wenn Du auf dem Punkt vor der Tür ankommst , geht sie auf, sofern sie zu ist, das minicut sorgt dafür, dass ERST eine sekunde gewartet wird ( damit die Tür auch zu sehen ist, wenn sie aufgeht ) und dann in den nächsten Raum gebeamt wird.
Ich mache es außerdem so, dass die Tür aus vier Zuständen besteht , da ich wirklich in die Türen reingehen kann
Zustand 1 : geschlossene Tür
Zustand 2 : Animation der sich öffnenden Tür
Zustand 3 : offene Tür
Zustand 4 : Animation der sich schließenden Tür
Dazu nutze ich sog Frameskripts. Das sind befehle, die ich in die Grafiken der Objekte schreibe.
Das erreichst Du, wenn Du ein Bild im Objekt doppelt anklickst. Dann geht ein kleines Fester auf, da kann man einen Befehl reinschreiben.
Somit ist folgendes möglich :
Du klickst die Tür an, dort wird der Char den Befehl kriegen, an einen bestimmten Punkt zu gehen.
An diesem Punkt wird dann der Befehl zum Türöffnen gegeben - wenn sie nicht schon offen ist.
Der Zustand der Tür wechselt dann von 1 ( geschlossen ) auf 2 ( Animation öffnen )
im ersten Bild steht dann meist playsound (knarren;30)
im zweiten Bild steht z.B. setwalkmap (raum1;23;11;true)
dieser Befehl gibt einen Walkmappunkt in der Tür frei, der nur dann den Raumwechsel auslöst ( beamto Befehl im walkmapslript ) , wenn er betreten werden kann - was bei geschlossener Tür nicht geschieht
Der walkmappunkt wird also von false ( kann nicht betreten werden ) auf true ( kann betreten werden ) gesetzt werden.
Im dritten Bild steht dann walkto (self;23;11;2)
Damit geht der Char vom "Auslösepunkt" in Richtung der sich öffnenden Tür weiter - quasi hindurch.
Im einfachsten Fall steht dann in diesem Punkt der beamto Befehl
Bei mir kommt aber noch das 4. Bild. Dort steht , dass die Tür auf Zustand 3 wechseln soll - nämlich dauerhaft offen.
Wenn ich wieder zurückkomme, ist die Tür noch offen. Wenn ich sie schließen will, drehe ich das Ganze dann um.
Animation auslösen, walkmappunkt sperren, Char von der Tür in den Raum gehen lassen.
Aber mach erstmal mit Minicut , das Andere ist erstmal zu aufwädig im Moment.
Gruß
Manni
jetzt kenne ich Deine Skripte ja nicht, aber ich vermute mal Folgendes :
Setze Dich mal mit dem Befehl MINICUT () auseinander.
EIne CUTSCENE ist ein Programmteil, der ERST abgearbeitet wird, bevor es weitergeht.
(Anders, als eine Funktion, da läuft alles weiter. )
Wenn man aber kein ganzes Skript anlegen muss, sondern erst zu etwas hingehen muss, um etwas zu erledigen, gibt es - als eine von mehreren Möglichkeiten - den Befehl Minicut.
on ( look)
{
minicut()
walkto (self;22;11;2)
speech (self; Aha;true)
}
Das minicut gibt jetzt an, dass der Befehl direkt dahinter ( oder - falls vorhanden - der in geschweiften Klammern eingefasste Programmcode direkt dahinter ) ERST abgearbeitet wird, bevor der Speech Befehl abgearbeitet wird.
Soweit das Einfachste.
Als Einblick in die zukünftigen Möglichkeiten :
Walkmapskripte
Klicke einen Walkmappunkt an und schreibe dort das gewünschte Skript rein.
Das kann so aussehen, dass das Türobjekt , wenn man durchlaufen soll,z.B. den Befehl enthält :
on (walk)
walkto (self;22;11;2)
Wenn Du dann auf diesem Punkt ankommst, steht im Skript dieses Punktes :
on (walk)
if_obj (Tür;1)
setobj (Tür;2)
Sofern die Tür zu ist, wird sie erst beim Betreten des Punktes geöffnet.
Im einfachsten Fall kann dort für einen Raumwechsel stehen :
on (walk)
{
if_obj (Tür;1)
setobj (Tür;2)
minicut ()
wait (1)
beamto (self;raum2;22;15;1)
}
wenn Du auf dem Punkt vor der Tür ankommst , geht sie auf, sofern sie zu ist, das minicut sorgt dafür, dass ERST eine sekunde gewartet wird ( damit die Tür auch zu sehen ist, wenn sie aufgeht ) und dann in den nächsten Raum gebeamt wird.
Ich mache es außerdem so, dass die Tür aus vier Zuständen besteht , da ich wirklich in die Türen reingehen kann
Zustand 1 : geschlossene Tür
Zustand 2 : Animation der sich öffnenden Tür
Zustand 3 : offene Tür
Zustand 4 : Animation der sich schließenden Tür
Dazu nutze ich sog Frameskripts. Das sind befehle, die ich in die Grafiken der Objekte schreibe.
Das erreichst Du, wenn Du ein Bild im Objekt doppelt anklickst. Dann geht ein kleines Fester auf, da kann man einen Befehl reinschreiben.
Somit ist folgendes möglich :
Du klickst die Tür an, dort wird der Char den Befehl kriegen, an einen bestimmten Punkt zu gehen.
An diesem Punkt wird dann der Befehl zum Türöffnen gegeben - wenn sie nicht schon offen ist.
Der Zustand der Tür wechselt dann von 1 ( geschlossen ) auf 2 ( Animation öffnen )
im ersten Bild steht dann meist playsound (knarren;30)
im zweiten Bild steht z.B. setwalkmap (raum1;23;11;true)
dieser Befehl gibt einen Walkmappunkt in der Tür frei, der nur dann den Raumwechsel auslöst ( beamto Befehl im walkmapslript ) , wenn er betreten werden kann - was bei geschlossener Tür nicht geschieht
Der walkmappunkt wird also von false ( kann nicht betreten werden ) auf true ( kann betreten werden ) gesetzt werden.
Im dritten Bild steht dann walkto (self;23;11;2)
Damit geht der Char vom "Auslösepunkt" in Richtung der sich öffnenden Tür weiter - quasi hindurch.
Im einfachsten Fall steht dann in diesem Punkt der beamto Befehl
Bei mir kommt aber noch das 4. Bild. Dort steht , dass die Tür auf Zustand 3 wechseln soll - nämlich dauerhaft offen.
Wenn ich wieder zurückkomme, ist die Tür noch offen. Wenn ich sie schließen will, drehe ich das Ganze dann um.
Animation auslösen, walkmappunkt sperren, Char von der Tür in den Raum gehen lassen.
Aber mach erstmal mit Minicut , das Andere ist erstmal zu aufwädig im Moment.
Gruß
Manni
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: Problem: Charakter agiert schon aus der Ferne
Hi, Manni!
Danke für die schnelle und sehr informative Antwort
minicut() funktioniert super
Jetzt probier ich framescripts aus.
Viel Spass macht auch charzoom wenn er aus der Flasche trinkt und manche Dinge nur nützen kann, wenn er 50% groß ist.
Eine Frage noch: take - pickup : wann nehm ich was ?
Der Editor ist super
Aber die Stunden verrennen wie im Flug....
Danke für die schnelle und sehr informative Antwort
minicut() funktioniert super
Jetzt probier ich framescripts aus.
Viel Spass macht auch charzoom wenn er aus der Flasche trinkt und manche Dinge nur nützen kann, wenn er 50% groß ist.
Eine Frage noch: take - pickup : wann nehm ich was ?
Der Editor ist super
Aber die Stunden verrennen wie im Flug....
Last edited by allph on 03 Jan 2016, 22:01, edited 1 time in total.
Beste Grüße aus Wien
Re: Problem: Charakter agiert schon aus der Ferne
Hi,
take kenn ich nicht, man kann Befehle ja selber definieren. ( hab aber auch nicht die allerneuste Version drauf )
pickup führt eine - falls vorhanden - Bewegung aus.
Sofern ich eine Charanimation erstellt habe, führt ein pickup Befehl dazu, dass diese Animation damit ausgeführt wird.
Theoretisch kannst Du auch eine eigene Animation kreieren und mit einem selber definierten Befehl ausführen. Ist aber unnötige Arbeit.
Wenn Du in den Chareinstellungen mal schaust, was es dort gibt ( gehen vorn, stehen vorn usw ) steht da auch pickup / aufheben
Ist also vordefiniert. Die Blickrichtung wird automatisch angepasst.
Gruß
Manni
take kenn ich nicht, man kann Befehle ja selber definieren. ( hab aber auch nicht die allerneuste Version drauf )
pickup führt eine - falls vorhanden - Bewegung aus.
Sofern ich eine Charanimation erstellt habe, führt ein pickup Befehl dazu, dass diese Animation damit ausgeführt wird.
Theoretisch kannst Du auch eine eigene Animation kreieren und mit einem selber definierten Befehl ausführen. Ist aber unnötige Arbeit.
Wenn Du in den Chareinstellungen mal schaust, was es dort gibt ( gehen vorn, stehen vorn usw ) steht da auch pickup / aufheben
Ist also vordefiniert. Die Blickrichtung wird automatisch angepasst.
Gruß
Manni
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: Problem: Charakter agiert schon aus der Ferne
moment... minicut() ist aber nicht für solche normalen Dinge gedacht.
Hast du vielleicht alles in das on(click) ereignis gepackt? Dann wird alles sofort ausgeführt.
Das Tür Öffnen muss in ein Befehlereigniss wie on (open) damit gewartet wird bis der Charakter sein walkto Ziel erreicht hat.
Poste auch immer bitte Skripte von besagten Objekten. Meistens sieht man so auf Anhieb worans liegt.
Hast du vielleicht alles in das on(click) ereignis gepackt? Dann wird alles sofort ausgeführt.
Das Tür Öffnen muss in ein Befehlereigniss wie on (open) damit gewartet wird bis der Charakter sein walkto Ziel erreicht hat.
Poste auch immer bitte Skripte von besagten Objekten. Meistens sieht man so auf Anhieb worans liegt.
Re: Problem: Charakter agiert schon aus der Ferne
Aber funktioniert ganz gutmoment... minicut() ist aber nicht für solche normalen Dinge gedacht.
Denn ich habe das auch schon oft gehbt, dass bei on (use) z.B. der Char die Bewegung dann mitten im Raum , dort, wo er stand, gemacht hat, anstatt erst zum Objekt zu laufen.
Darum hab ich das Minicut benutzt. Dass der Zeiger solange weg ist, war mir egal, kann ja auch deaktiviert werden, das Ausblenden , glaube ich.
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