Problem: Charakter agiert schon aus der Ferne

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
allph
PaC-DK Newby
Posts: 23
Joined: 01 Jan 2016, 15:05

Problem: Charakter agiert schon aus der Ferne

Post: # 82833Post allph
03 Jan 2016, 19:42

Hallo miteinander :D
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 :cry:

Wo bitte liegt mein bug? :oops: :oops:

Danke im voraus und
Last edited by allph on 03 Jan 2016, 21:59, edited 1 time in total.
Beste Grüße aus Wien
Image

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

Re: Problem: Charakter agiert schon aus der Ferne

Post: # 82834Post japanhonk
03 Jan 2016, 20:19

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
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

allph
PaC-DK Newby
Posts: 23
Joined: 01 Jan 2016, 15:05

Re: Problem: Charakter agiert schon aus der Ferne

Post: # 82836Post allph
03 Jan 2016, 21:39

Hi, Manni!

Danke für die schnelle und sehr informative Antwort :thumbup:

minicut() funktioniert super :banana:
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 :D :D :D
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
Image

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

Re: Problem: Charakter agiert schon aus der Ferne

Post: # 82837Post japanhonk
03 Jan 2016, 21:45

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
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

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

Re: Problem: Charakter agiert schon aus der Ferne

Post: # 82838Post Zimond
04 Jan 2016, 10:15

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.
Image

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

Re: Problem: Charakter agiert schon aus der Ferne

Post: # 82840Post japanhonk
04 Jan 2016, 12:37

moment... minicut() ist aber nicht für solche normalen Dinge gedacht.
Aber funktioniert ganz gut :mrgreen:

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

Post Reply