einen Raum abspeichern (Erfolgsmenü)

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

einen Raum abspeichern (Erfolgsmenü)

Post: # 77996Post JDR
12 Mar 2011, 14:40

Meine Idee das Spiel noch auzubauen ist ein Erfolgsmenü!!
Im Spiel klappt natürlich alles Super aber da mein Spiel mehere Endvarianten hat und nach eine restartet werden die Erfolge ja nicht im Menü gespeichert!!
meine Frage ist:

Kann man Objekte in einem Raum speichern auch wenn man das Spiel beendet hat??
Wahrscheinlich nicht oder??!!
oder gibt es noch eine andere Variante Erfolge im Spiel freizuschalten und im Menü immer anzuschauen ohne den Spielstand zu speichern!!also Autmatische Speicherung die sich aber nur auf den Raum im Menü und die Objekte und nicht auf den Raum im Spiel mit dem Charakter bezieht!!!

Danke :lol:
Meine Webseite:
JDRWorks.de

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

Re: einen Raum abspeichern (Erfolgsmenü)

Post: # 77998Post japanhonk
12 Mar 2011, 19:36

Klar kann man das...nur nicht so,wie Du dir das vorstellst...

Wenn Du ein Objekt veränderst, behält es seinen Zustand auch bei, selbst,
wenn du nicht mehr im selben Raum bist.
Solltest Du da etwas Anderes vorhaben, könntest Du mit savestring oder savenum und den entsprechenden Ladebefehlen loadstring / loadnum arbeiten.

Die Werte, die Du damit angibst, werden dann in der von dir angegebenen Variablen abgespeichert und können jederzeit geladen werden und ein Objekt
umsetzen.

Du kannst auch mit Bools arbeiten.

Hatte ich für Dich nicht mal irgendwann was mit Kästchen ( leer und abgehakt ) geschrieben ?? DAS wäre eine Speichermöglichkeit.

Spielende 1 :
setbool (Spielende_1;true)

im Menüraum :
if_bool (spielende_1;true)
setobj (Ende_1;2) ----> Objekt "leerer Kasten" umsetzen auf "abgehakt"
if_bool (spielende_2;true)
setobj (Ende_2;2)

usw
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

parkiii
An Adventure Creator
Posts: 276
Joined: 30 Jun 2009, 13:58
Location: Austria

Re: einen Raum abspeichern (Erfolgsmenü)

Post: # 77999Post parkiii
13 Mar 2011, 01:01

er meint aber, dass die freigeschaltenen erfolge auch nach einem neustart ohne laden eines spieles sichtbar sind...

das kannst du mit hilfe von loadnum und savenum realisieren.
zb spielt man das spiel durch und erhält dadurch einen erfolg:

Code: Select all

setnum (spielende ; 1)
savenum (spielende)

setobj (erfolg_1 ; 1)
...andere befehle die den erfolg im menü sichtbar machen, zB textouts...
und ins startskript vom spiel schreibst du:

Code: Select all

loadnum (spielende)

if_num (spielende ; 1)
{
setobj (erfolg_1 ; 1)
...andere befehle die den erfolg im menü sichtbar machen, zB textouts...
}

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: einen Raum abspeichern (Erfolgsmenü)

Post: # 78003Post JDR
13 Mar 2011, 16:11

Super das mit dem Raum abspeichern geht (natürlich!!)
Danke!!
aber wie mach ich das bei mehreren Erfolgsobjekten??
(tschuldige das ich frage..)

Danke!
Meine Webseite:
JDRWorks.de

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

Re: einen Raum abspeichern (Erfolgsmenü)

Post: # 78005Post Zimond
13 Mar 2011, 16:53

für jeden Erfolg speicherst du per savenum einen eigenen Wert. Zusatz Tipp :

Nicht nur einmal beim Start des Spiels musst du alle Werte per Loadnum laden sondern auch nach jedem Laden eines Spielstandes da sonst die Werte im Savegame die aktuellen Erfolge wieder überschreiben, wenn diese im Savegame noch nicht erreicht waren.
Ich empfehl folgenden Trick.

Erstelle eine dauerhaft laufende Funktion mittels function (erfolgeladen ; inf) und dem Inhalt :

Code: Select all

if_num (ladeerfolge ; 99)
 {
 setnum (ladeerfolge ; 0)
 loadnum (erfolg1)
 setobj (erfolgobjekt1 ; [erfolg1])
 usw.
 }
In deinem Savemenü (du musst hier also ein eigenes Benutzen) für den Button (oder die Button) zum Saven kommt rein :

Code: Select all

on(click)
  {
 setnum (ladeerfolge ; 99)
 savegame (slot)
  }
Der Ablauf der Skripte intern sorgt dafür das das aktuelle Spiel erst gespeichert wird bevor die fortlaufende Funktion zum laden der Erfolge per loadnum anschlägt. Mit dem Ergebnis das sich diese nach jedem Laden eines Savegames automatisch akualisieren. Außerdem : In deinem Startskript brauchst du nur einmal die Variable "ladeerfolge" auf 99 setzen und hast so alle Erfolge übersichtlich in einem einzigen Skript.
Image

JDR
Adventure Enthusiast
Posts: 108
Joined: 15 Feb 2011, 14:35

Re: einen Raum abspeichern (Erfolgsmenü)

Post: # 78015Post JDR
14 Mar 2011, 13:31

Danke für die super Antworten !!
Mit den mehreren Erfolgen sieht kompliziert aus!! :shock:
Aber wenns fertig ist siehts gut aus :mrgreen:

wo setzte ich am besten den Befehl
"function" hin?
Meine Webseite:
JDRWorks.de

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

Re: einen Raum abspeichern (Erfolgsmenü)

Post: # 78018Post japanhonk
14 Mar 2011, 15:25

Zimond wrote: Erstelle eine dauerhaft laufende Funktion mittels function (erfolgeladen ; inf) und dem Inhalt :

Je nachdem, von wo aus bzw wann du das starten willst.

Willst Du das beim ersten Betreten des Erfolgsraumes starten, schreibst du das in dessen on (enter) Skript,
da du aber bei einem neuen Spiel noch keine Erfolge hast, kannst du das ggf
auch beim Erreichen des ersten Erfolges starten.
Sinvoll ist hier aber wohl am Ehesten ein Eintrag ins Startskript, dann rennt die Funktion sofort ab Spielbeginn mit.
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