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

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
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: # 78063Post japanhonk
19 Mar 2011, 04:36

Das mit den Cutscenes und Funktionen kann man nicht in diesem Sinne verallgemeinern. Bei einer Cutscene wird der restliche Skriptablauf ja
gestoppt, auch der Mauszeiger ist solange ja weg, bei einer Funktion nicht.

Das macht im Spiel ja dann Unterschiede aus,aus denen man schauen muss,
was man am sinnvollsten macht.

Aber was Du sagst, hatte mich auch mal sehr beschäftigt. Im Grunde hatte ich den selben Ärger wie Du, dass etwas in einer Cutscene absolut nicht
so lief, wie es sein sollte - nach dem Umwandeln in eine Funktion ging es dann. Habe dann den Editor neu entpackt und alles war gut...

Hast Du denn mal versucht, die Cutscene manuell, also per Dev-Mode zu starten, statt aus der Textscene heraus ? Dann kannst du den Bool auch
manuell mal umsetzen und testen. Ich könnte mir denken, dass es dann geht.
Ich würde auch mal den timer rausnehmen und durch ein wait in der Funktion ersetzen, auch das endscene-Kommando würde ich mal in
die Funktion schreiben.
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: # 78075Post Novel
21 Mar 2011, 23:02

Moin,

ich habe das Problem gelöst! Ich denke mal, dass es mit der Verwechslung von wait und timer zu tun hatte. Nach timer darf ja nur ein Befehl kommen. Meine Annahme war irrenderweise, dass bei wait auch alles andere angehalten wird. Jetzt klappt alles und ich kann endlich weiterkommen. Danke, Japanhonk!

Zwischendurch wurden übrigens meine in Kommentar-Form ausgeblendeten Skriptteile mit kompiliert und im Spiel wiedergegeben. Abhilfe schaffte hier, das Spiel und die adv-Datei unter neuem Namen abzuspeichern. Ich halte fest: Wenn etwas, dass richtig erscheint, parout nicht funktionieren will, kann (abgesehen vom Nachlesen des Befehls im Handbuch) helfen:

- Skript und Spiel unter neuen Namen abspeichern
- Editor neu entpacken
- Savegames löschen

Noch weitere Tipps dieser Art?

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: # 78078Post japanhonk
21 Mar 2011, 23:26

Editor neu entpacken reicht meistens, tritt vermehrt auf, je umfangreicher ein Projekt wird.

Auch ein Upgrade der Editorversion, während eines laufenden Projektes
ist meiner Erfahrung nach NICHT ratsam. Wenn man mit einer Version beginnt, sollte man auch mit dieser Version weiterarbeiten.

Nach einem timer dürfen schon mehrere Befehle kommen. Ggf kannst Du
ein wait aber auch in ein minicut () packen, z.B. in einem Objektskript.
Ohne sowas, wird es nicht beachtet.
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: # 78271Post Novel
13 Jun 2011, 12:50

Moin,

nächstes Problem. Folgender Code:

function Zeiter (funktioniert soweit):

Code: Select all

wait (10)
return ()
speech (Browallia;Attention!)
speech (Browallia;Where?! Left? Right!?)
setnum (navizaehler;1) (*Richtungsknöpfe auf Karte einschalten*)
speech (Browallia;Aaaah!?)
wait (10) (*10 Sek. Zeit, Anweisung zu geben.*)
(*folgendes passiert nur, wenn man nicht rechtzeitig klickt*)
return () (*Falls man noch die Karte anguckt, wird diese jetzt geschlossen.*)
(*Wenn man nichts auf der Karte gewählt hat, kommt folgendes:*)
speech (Browallia;Aaah!? I'm just going straight now.)
speech (Browallia;Could you please concentrate on your job!)
function (irrfahrt)
stopfunction (zeiter)
function Irrfahrt (hier ist der Wurm drin):

Code: Select all

setnum (navizaehler;0)(*Richtungsknöpfe auf Karte ausschalten*)
setnum (irrfahrt;+1)
speech (Browallia;Irrfahrten: [irrfahrt])
if_num (irrfahrt;3)
  {
  speech (Browallia;I'm heading for that gas station over there.)
  loadroom (Tanke)
  beamto (Kareem;Tanke;10;22;1)
  setnum (irrfahrt;0)
  break ()
  stopfunction (irrfahrt)
  }
function (zeiter)
stopfunction (irrfahrt)
Hat mal funktioniert, aber irgendwann, nachdem ich mehrere verschachtelte Funktionen erstellt hatte, wurde das Ergebnis hier zu Brei. Folgendes passiert:

Sobald Variable "irrfahrt" auf 3 liegt, wird die If-Schleife ausgeführt, soweit so korrekt. Kurz bevor der "beamto"-Befehl kommt, wird aber der obere Teil wiederholt, "irrfahrt" also um einen erhöht und Browallia sagt entsprechend: "irrfahrten: 1". Dann kommt der neue Raum.

Sowas ähnliches habe ich auch in anderen Script-Teilen, also dass Teile des Scripts ungefragt wiederholt werden. Habe schon alles in diesem Thread vorher genannte probiert (editor neu entpacken, alles löschen und neu kompilieren etc.). Mit/ohne stopfunction, mit/ohne break() an verschiedenen Stellen etc.

Irgendwelche Ideen? Ich wünschte, ich könnte endlich mal größere Schritte machen... :(

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: # 78272Post japanhonk
13 Jun 2011, 12:55

hi,


also break () und stopfunction hintereinander ergibt doch keinen Sinn.

Beschränke dich doch mal auf ein break () und führe das Ganze mal als Cutscene aus, statt als Funktion...Das Problem hatte ich auch schonmal.
Wenn das klappt, aber eine Funktion bleiben soll, wüsste ich allerdings im Moment auch keine Lösung...

Wird die Funktion vielleicht auch nochmal ausgeführt, weil es Probleme mit
loadroom und beamto in der Reihenfolge gibt ? ( Fokusproblem ? )

Ich persönlich setze auch gerne (unscheinbare) Objekte auf einen neuen Zustand um und frage diesen ab - wäre das ne Möglichkeit für Dich ?
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: # 78273Post Novel
13 Jun 2011, 13:20

Danke dir!

Das mit der Stopfunction war eine Verzweiflungstat. :oops:

Der Aufruf als Cutscene hat funktioniert. Werde das jetzt auch bei den anderen Problemzonen probieren. Irritiert hatte mich, dass der Function-Befehl ja vorher funktioniert hat, deswegen erkenne ich keine Logik. Aber egal, hauptsache es läuft.

Prinzipiell habe ich kein Problem mit Cutscene als Alternative zu Function. Aber wenn das Script im Hintergrund gestoppt wird, kann ich dann trotzdem noch objekte im Hintergrund bewegen? Die aktuelle Scene spielt auf einer Autobahn, wo später im Hintergrund immer ein Baum vorbeilaufen soll - das wäre doof, wenn der dann plötzlich stehenbliebe.

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: # 78274Post japanhonk
13 Jun 2011, 13:29

das grösste Problem bei Cutscenes ist die Tatsache, dass der Mauszeiger weg ist und das Spiel unterbrochen wird, solange sie läuft.

Du hast nicht zufällig irgendwo im raumskript noch einen aufruf der funktion irrfahrt ?
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: # 78275Post Novel
13 Jun 2011, 13:41

Hm, ich verstehe gerade deine Frage nicht. Also all das, was ich wollte, funktioniert jetzt gut. Nur die Funktion "Zeiter" musste als Function aufgerufen werden, da man zwischendurch 10 sek Zeit haben soll, um zu reagieren (und sie damit zu unterbrechen). Das funktioniert.

Momentan wird die "irrfahrt" noch aufgerufen, wenn man auf einem Subroom "Karte" auf eine Richtung klickt und diese Falsch ist. Und das funktioniert - was war deine Idee dazu?

Was ich wohl bräuchte, wären ein paar loopende movobj-Befehle im Raumskript. Falls das bei cutscenes nicht geht, könnte man das beschriebene ja auch durch eine große Animation faken... was natürlich auf die Performance ginge.

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: # 78276Post japanhonk
13 Jun 2011, 13:56

da würde ich dir empfehlen, ein Objekt zu nutzen

Erstelle ein Objekt im Hintergrund und bewege doch die sichtbaren Objekte
, indem du die Skriptzeilen nutzt.
Je nach Zustand lässt du es unterschiedlich schnell ablaufen.

Willst du die Bewegung stoppen, setzt du das Objekt, das die Befehle auslöst, einfach wieder auf 0... Dadurch brauchst du keine Loop Befehle einbauen.
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