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