Allgemeine Fragen (Questions)

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 69770Post Baelavay
25 Dec 2007, 17:26

Fragen bezüglich Speicherständen:
  • Durch den Befehl "loadgame()" werden alle Objekte und Charakter, Bools und Variablen auf den Wert gesetzt, der im angegebenen Slot gespeichert ist. Ich befürchte dass das mit einmal ausgegebenen Textzeilen nicht so funktioniert, also dass sie durch "loadgame()" nicht mitgeladen werden.
  • Ein "textout()"-Befehl in einer Textscene unmittelbar nach einem "loadgame()"-Befehl funktioniert nicht. Gebe ich, nachdem das Spiel geladen ist, den Befehl in die Konsole ein, so wird der Text wohl angezeigt. Ich kann mir das so vorstellen, dass das Spiel nach dem Laden nicht "wait" auf folgende Befehle wartet, dass also das Laden zu spät eintritt.
Kannst du mir meine Beobachtungen erklären?

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

Post: # 69771Post Zimond
25 Dec 2007, 22:50

Ich befürchte dass das mit einmal ausgegebenen Textzeilen nicht so funktioniert, also dass sie durch "loadgame()" nicht mitgeladen werden.
Doch, wird mit gespeichert und nach dem laden sofort angezeigt, gerade noch mal getestet.

Zum zweiten : versteh ich noch nich so ganz, lädts du innerhlab einer textscene ein spiel? oder davor? Erklär am besten mal ne kleine SchrittfürSchritt Anleitung wie ich das nachstellen kann.
Image

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 69772Post Baelavay
25 Dec 2007, 23:03

Danke dass du das gleich getestet hast. Seltsam, dann kann ich mir nicht erklären wieso die vor dem Abspeichern ausgegebene Textzeile später nicht mehr geladen wird. Im Grunde ist das ganze Problem ja ein Punkt: Es handelt sich nämlich in meinem Fall um eine Textzeile im Überallraum (gebunden mit "bindtext()"), auf den Screens ist das die Score-Anzeige. Das ist übrigens die einzige Textzeile im Überallraum.

Also, der Reihe nach: Beim Starten eines neues Spiels wird die Textzeile ausgegeben und gibt ab dann die Punktanzahl an (Variablen). Das Spiel wird nun abgespeichert und beendet. Nach erneutem Spielstart wird über das Startmenü (eine Textscene) der Speicherstand geladen. Ergebnis: Man gelangt zur abgespeicherten Szene, im Überallraum sind alle Objekte zurückgesetzt (korrekt), doch die zuvor ausgegebene Textzeile wird nicht angezeigt. Erst durch manuellen Aufruf durch die Konsole ist die Score-Anzeige zu sehen.
...nun habe ich eben, weil ich dachte, Text würde nicht mitgespeichert, im Lademenü nach den "loadgame()"-Befehl noch selbst den Textout-Befehl gesetzt - geändert hat das nichts.


Übrigens: Kann es sein, dass einige im Editor vorgenommene Änderungen am Projekt nicht in Spielständen integriert sind, sodass man ein neues Spiel starten muss, damit z.B. geänderte Startzoomwerte im Charakterfenster übernommen werden?

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

Post: # 69773Post Zimond
26 Dec 2007, 00:47

Werde ich zu der Todo Liste setzen, hat bestimmt irgendwas mit der bindtext funktion zu tun, glaub nicht das es an der textscene liegt. Aber das könntest du noch kurz abtesten, einfach aus der konsole raus manuell mit loadgame den spielstand laden ohne die textscene dabei, damit wir wissen das es daran nicht liegt.
Übrigens: Kann es sein, dass einige im Editor vorgenommene Änderungen am Projekt nicht in Spielständen integriert sind, sodass man ein neues Spiel starten muss, damit z.B. geänderte Startzoomwerte im Charakterfenster übernommen werden?
Das ist richtig, trifft auf Charzoomwerte wie auch auf die walkmap zu (begehbar, blockiert).. das ist auch so nicht zu verhindern. Beide Sachen sind nun mal Werte die während eines Spiels verändert werden können daher müssen sie mit abgespeichert werden. Selbst wenn ich jetzt einbauen würde das der gespeicherte Wert mit dem Startwert verglichen wird, woher soll man wissen ob dieser Unterschied im Savegame an einer bestimmten Stelle nicht gewollt ist?

Es ist daher beim entwicklen (und ich kann dir bei alühn und später alühn2 auch ein Lied von Singen) unvermeidlich immer mal wieder komplett von vorne zu spielen, wenn in einem Save zu viele Diskrepanzen drin sind.
Image

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 69774Post Baelavay
26 Dec 2007, 09:55

Zimond wrote:Aber das könntest du noch kurz abtesten, einfach aus der konsole raus manuell mit loadgame den spielstand laden ohne die textscene dabei, damit wir wissen das es daran nicht liegt.
Habe ich soeben getan. Das verblüffende Ergebnis ist:
  • Start des Spiels, Textzeile an Überall-Raum gebunden, Laden des Speicherstands über eigenes Menü (Textscene): Textzeile wird nicht angezeigt.
  • Start des Spiels, Textzeile nicht an Überall-Raum gebunden, Laden des Speicherstands über eigenes Menü (Textscene): Textzeile wird nicht angezeigt.
  • Start des Spiels, Textzeile an Überall-Raum gebunden, Laden des Speicherstands über Konsole: Textzeile wird angezeigt.
  • Start des Spiels, Textzeile nicht an Überall-Raum gebunden, Laden des Speicherstands über Konsole: Textzeile wird angezeigt.
    aber:
  • Start des Spiels, Laden des Speicherstands über eigenes Menü (Textscene), dann Neuladen des Speicherstands über Konsole: Text wird immer noch nicht angezeigt.
Kleine Anmerkung noch: Nach Laden des Spiels über mein Startmenü erscheint der Text zunächst ganz kurz und verschwindet dann (wg. Timer).

Kann ich daraus schließen dass das Problem am Textscene-Menü liegt? Das Skript des Lademenüs lautet wie folgt:

Code: Select all

level(1)
 {
 row(1;OK;true)
  {
  stopmusic()
  playsound(splat12)
  stopeffect (all)
  hidealltext()
  if_num(slot;1)
    {
    loadgame(1)
    timer(10)
    textout(49)
    break()
    endscene()
    }
  if_num(slot;2)
    {
    loadgame(2)
    timer(10)
    textout(49)    
    break()
    endscene()
    }
  (...)
  }
 row(2;Abbrechen;true)
  {
  (...)
  }
 }
Ich habe dann mal den Timer und auch den Textout weggelassen, geändert hat das aber nichts - nur das kurzzeitige Auftreten der Textzeile blieb ganz weg.

Zimond wrote:Es ist daher beim entwicklen (und ich kann dir bei alühn und später alühn2 auch ein Lied von Singen) unvermeidlich immer mal wieder komplett von vorne zu spielen, wenn in einem Save zu viele Diskrepanzen drin sind.
Im Ernst? :shock:
Dann muss ich mir früher oder später wohl ein Büroäffchen zulegen, das das für mich erledigt :P

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

Post: # 69778Post Zimond
27 Dec 2007, 10:05

also doch die Textscene.. ok.. ist schon der todo liste notiert, werd ich dann mal sehen.
Image

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

Post: # 69976Post Zimond
12 Feb 2008, 16:39

Ich bin gerade an diesem Fehler dran und hab auf anhieb nichts gefunden, du könntest aber vielleicht folgenden Workaround testen :

vor dem loadgame Befehl einfach

timer (0.5)

so wird die textscene zuerst geschlossen und dann der slot geladen, könnte klappen
Image

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 69978Post Baelavay
12 Feb 2008, 20:01

Vielen Dank für die Arbeit, die du dir wieder einmal machst, Zimond.
Zimond wrote:
Ich befürchte dass das mit einmal ausgegebenen Textzeilen nicht so funktioniert, also dass sie durch "loadgame()" nicht mitgeladen werden.
Doch, wird mit gespeichert und nach dem laden sofort angezeigt, gerade noch mal getestet.
...nun habe ich eben, weil ich dachte, Text würde nicht mitgespeichert, im Lademenü nach den "loadgame()"-Befehl noch selbst den Textout-Befehl gesetzt - geändert hat das nichts.
Daraus folgt, dass ich in keinem Fall im Textscene-Lademenü nach den "loadgame()"-Befehl noch extra einen "textout()"-Befehl setzen muss. Stimmt's?
Ich ahbe jetzt mal ausprobiert was du mir vorgeschlagen hast. Bisher hatte ich ja in der betreffenden Textscene-Row die Befehlsabfolge "loadgame(#)" --> "endscene()". Nun habe ich vor das "loadgame(#)" noch einen "timer(0,5)" gesetzt. Resultat: Die Textscene wird nicht beendet, der Speicherstand wird nicht geladen. Das Spiel springt wieder zum Textscene-Level.

Ich möchte anmerken, dass es hier und dort in meinem Projekt mehrere Bugs gibt, die ich mir nicht erklären kann (bspw. Objektverschiebungen im Spiel) - ich denke, ich mache die geplante Version mit dem Umfang erst einmal so fertig und kümmere mich, wenn sonst alles steht, also zum Schluss, um die Fehlerchen, sofern sie nicht vorher den Spielablauf grundlegend stören.

Zimond wrote:
Übrigens: Kann es sein, dass einige im Editor vorgenommene Änderungen am Projekt nicht in Spielständen integriert sind, sodass man ein neues Spiel starten muss, damit z.B. geänderte Startzoomwerte im Charakterfenster übernommen werden?
Das ist richtig, trifft auf Charzoomwerte wie auch auf die walkmap zu (begehbar, blockiert).. das ist auch so nicht zu verhindern.
Gilt das auch für die Tiefenmap? Das wäre überaus ärgerlich, da die Einstellung gerade der Tiefenmap häufig nachgebessert werden muss.

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

Post: # 69981Post Zimond
13 Feb 2008, 15:41

mmh.. ok muss ich wegen der Textscene sache noch weiter schauen.

Nein, die Tiefenmap kann man nicht im Spiel ändern daher wird sie nicht abgespeichert.
Image

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

Post: # 69982Post Zimond
13 Feb 2008, 19:29

könntest du mir nen Gefallen tun und noch mal versuchen eine kleines test projekt zu erstellen das den Fehler nachstellt? Ich hab mal probiert irgendwas ähnliches zu erhalten aber das muss irgendeinen anderen Grund haben...

Eine Idee hätt ich vielleicht noch : In dem Raum der geladen ist wo die Textscene ausgeführt wird.. gibt es dort ein on(exit) skript? Ich hab nämlich folgendes beim testen gesehen. In Alühn2 lass ich den Screen mit dem SFX Fog nebelig werden wenn ich das Hauptmenü aufrufe. Da auch die SpecialFX im Savegame landen ist nun auch diese Effekteinstellung darin.

Erst aber als ich mittels einer Textscene den Save geladen hab war diese Einstellung auch auf einmal da, sonst wenn man per Menü lädt ist sie das nicht.. der Grund ist (auch wenn ich jetzt so klinge als hätt ichs nich selber gecoded, kommt öfter vor das die Engine was macht was ich gar nicht wusste) das wohl nach dem Laden das on(exit) des Hauptmenu Raums noch ausgeführt wird indem steht das der Fog effekt ausgeschaltet wird.

Wenn du also im on(exit) ein texthide drin hast (weil im Intro der Text nicht da sein soll) könnte das der Grund sein. Wenn ja hätte ich gerne 3 tanzende Bananen.
Image

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 69984Post Baelavay
13 Feb 2008, 20:58

Das Raumskript in dem die Textscene läuft ist leer.

Natürlich würde ich dir (und damit mir selbst) einen Gefallen tun und aus meinem Projekt eine Demo schneiden, indem ich alles unnötige rauswerfe,
allerdings ist der Fehler, der beim Laden die Textzeile nicht anzeigt, ja doch recht komplex, deshalb schlage ich vor, dass ich mir diesen Fehler merke, aber erst einmal die erste Version des Spiels soweit fertig erstelle, wenn das okay ist. Dann können wir uns immer noch an die Beta ransetzen und Fehler ausmerzen. Ich denke, ich komme schneller voran, wenn ich mich noch während der Erstellung nur um Fehler kümmere, die den Spielablauf stören oder leicht zu beseitigen sind, und erst wenn ich durch bin, mich um den Feinschliff kümmere.
Wenn du aber bereits fest Fehlerquellen am Suchen bist, dann gib Bescheid damit ich dir einen Projektausschnitt zukommen lassen kann.

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

Post: # 69990Post Zimond
14 Feb 2008, 16:09

mist, wär so schön gewesen... ok, dann schauen wir später mal wieder.
Image

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 69994Post Baelavay
14 Feb 2008, 19:39

Wie gesagt, ich möchte mich zwar um die besonders hartnäckigen Bugs erst intensiv kümmern, wenn ansonsten das Spiel steht - aber wenn dir das jetzt schon hilft, den Fehler auszumerzen, schicke ich dir das Projekt, in dem der Fehler auftritt. Ich sende dir eine PM.

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 70334Post Baelavay
21 Mar 2008, 11:40

Lässt sich die Ordnerstruktur des Mediapools extern vom PaCDK bearbeiten?
Anders: Gibt es eine Datei, in der die importierten Dateinamen und die erstellten Unterordner gespeichert sind?

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

Post: # 70342Post Zimond
22 Mar 2008, 00:58

wenn du manuell dran must, einfach die adv datei mit winrar bzw winzip öffnen. Dort sind drei dateien. Die erste enthält die Ordnerstruktur.
Image

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 70344Post Baelavay
22 Mar 2008, 13:21

Danke, funktioniert wunderbar. So kann ich die importierten Dateien angenehm nachträglich in Ordner gliedern, im Mediapool lassen sich die Dateien nämlich nur einzeln verschieben.

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 70437Post Baelavay
08 Apr 2008, 12:40

Ist es gewollt, dass die Kamera in einem Raum, der größer als Bildschirmgröße ist, im Spiel bei erstmaligem Laden an der Stelle angezeigt wird, an der im PaCDK zur Zeit des Spielerstellens der Ausschnitt des Raumfensters gewählt war, bis die Kamera dann nachträglich zum Charakter hinschwenkt?

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

Post: # 70439Post Zimond
08 Apr 2008, 16:00

Die Raumposition wird natürlich mitgespeichert und erstmal behalten. Wird ein Raum mit einem Char im normalen Spielbetrieb betreten setzt sich der Blickwinkel sofort auf den Char drauf ohne zu scrollen. Wenn du allerdings innerhalb einer Cutscene (welcher Form auch immer) den Raum lädst und kurz darauf die Cutscene verläßt, kann es zu so einem Schwenken kommen.

Wenn du eben mit so einer Cutscene einen Raum wechselst (weil du vielleicht noch ein paar Animationen zum Rausgehen einbauen willst) brauchst du nur noch in diese Cutscene einen setpos Befehl einbauen um das Schwenken zu verhindern.
Image

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 70441Post Baelavay
08 Apr 2008, 17:54

...oder gleich im Raumfenster beim Spielerstellen den richtigen Ausschnitt wählen. Danke für die schnelle Hilfe! :)

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 70506Post Baelavay
21 Apr 2008, 21:27

Für dasselbe Minispiel habe ich zu Beginn eine Variable mit dem Wert z.B. 3. Dieser wird immer wieder durch 2 geteilt mit "setnum(name;/2)". Was ich aber erhalte, sind der Reihe nach die Werte 2, 1 und 0. Was mache ich falsch?
Ich meine zwar, schon einmal gelesen zu haben, dass Kommawerte bei Variablen nur intern gültig sind, aber das mit den Kommastellen hat aber auch schon mal funktioniert.

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

Post: # 70508Post Zimond
22 Apr 2008, 13:20

das hat so mit sicherheit noch nie funktioniert, die ergebnisse sind schon richtig.Wozu brauchst du denn diese Werte?

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 70512Post Baelavay
22 Apr 2008, 17:03

Im Minigame wird Gegenständen ausgewichen. Das Intervall der nahenden Fässer nimmt ständig ab. In der Function hängt die Länge des Intervalls ab von "wait([minigame-time])". Pro Function-Durchlauf wird diese Variable halbiert, sodass der Schwierigkeitsgrad des Minigames steigt. Momentan wird der Wert halbiert, ich hatte aber auch schon mal Werte wie "setnum(minigame-time;*3/4)" oder so drin, da hat das tatsächlich funktioniert, dass das Intervall immer kürzer wurde. (An den genauen Wert kann ich mich nicht erinnern, *3/4 wars nicht)

Unter den "1" Wert muss ich deshalb gehen, weil alles über 1 zu einfach ist auszuweichen.

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 70517Post Baelavay
23 Apr 2008, 21:16

Okay also das Problem hat sich jetzt selbst gelöst, von dem her können wir das erstmal belassen, es sei denn, es treten später doch Fehler auf.

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

Post: # 70540Post Zimond
25 Apr 2008, 00:16

du kannst einen wait befehl auch folgender maßen benutzen :

wait ([ganzezahl],[bruch])

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 70543Post Baelavay
25 Apr 2008, 16:32

Danke, das Minigame funktioniert jetzt wunderbar.

Ich warte nur noch auf meinen Musiker, ansonsten ist das Spiel fertig. :)

Locked