Neuer Raum [aus Inv.] und zurück...

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
hansa_export
Süßwasserpirat
Süßwasserpirat
Beiträge: 314
Registriert: 17.02.2005, 15:46

Neuer Raum [aus Inv.] und zurück...

Beitrag von hansa_export »

Hallo,

habe folgendes Problem. Ich habe im Inventar einen Gegenstand. Wenn man ihn benutzt dann soll zu einem bestimmten Raum gesprungen werden. Nach einer gwissen Zeit soll dann wieder in den urpsrünglichen Raum zurückgesprungen werden.

[So wie bei Indy 4 & Platos Verlorener Dialog!]

Wie stelle ich das an? Habe ein wenig das Forum durchsucht und auch die Hilfe von AGS, habe dort nix gefunden!

mfg steffen :)
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Du möchtest praktisch ein Close Up eines Inventory-Items, richtig?

Ich nenne die beiden Räume mal Indy-Raum (Hauptfigur ist zu sehen und kann herumlaufen) und Plato-Raum (Nahansicht des Inventargegenstands).

Im Inventory Interaction editor bei "Interact inventory item" brauchst Du nur die momentane location in einer GlobalInt speichern. "SetGlobalInt(1,character[EGO].location);"
Dann ein "NewRoom(...)".

Im Plato-Raum bei den Interactions:
"Player enters screen (before fadein)" sollte dann sowas enthalten wie SetCharacterView(EGO, x), wobei x eine View mit einem einzigen leeren sprite oben links ist. Der Charakter ist dann nicht zu sehen.
Außerdem musst du mit DisableCursorMode einige Modes ausschalten (gehen, sprechen, ...).

Zum Verlassen benutzt du "Any click on hotspot" im Plato-Raum beim Hotspot des exit-Buttons und fügst ein "NewRoom(GetGlobalInt(1));" ein.
Jetzt musst Du noch dafür sorgen, dass die CursorModes wieder enabled werden und ein "ReleaseCharacterView();" macht deine Hauptfigur wieder sichtbar. Das packst Du in "Player enters screen (before fadein)" in jedem anderen Raum. Es gibt elegantere Möglichkeiten, aber so sollte es ersteinmal zuverlässig fungunieren :)
Use gopher repellent on funny little man
hansa_export
Süßwasserpirat
Süßwasserpirat
Beiträge: 314
Registriert: 17.02.2005, 15:46

Beitrag von hansa_export »

Vielen Dank...

dachte mir schon das ich den Raum in der globalen speichern muss, wusste bloß nicht wie ich das bewerkstellige! Damit hast du mir sehr geholfen!

mfg steffen :)
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Ich hab gerade gesehen, dass es character[EGO].room heißen muss.

Eine Liste gibt's im helpfile unter Reference -> Text script global variables
Use gopher repellent on funny little man
strazer

Beitrag von strazer »

Statt dem Spieler einen leeren View zuzuweisen, den man dann auch wieder releasen muss, kann man auch einfach ein Häkchen bei "Hide player character" in den Room settings machen.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Hey, sehr gut, das war nicht klar, ist natürlich viel einfacher.

Man lernt nie aus :)
Use gopher repellent on funny little man
hansa_export
Süßwasserpirat
Süßwasserpirat
Beiträge: 314
Registriert: 17.02.2005, 15:46

Beitrag von hansa_export »

khrismuc hat geschrieben:Ich hab gerade gesehen, dass es character[EGO].room heißen muss.

Eine Liste gibt's im helpfile unter Reference -> Text script global variables
Das sind genau die Befehle die ich gesucht habe!
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Nur eine kleine Anmerkung: Es ist nicht nötig, den vorherigen Raum in einem GlobalInt zu speichern, schließlich gibt es die Globale Variable character[CHARID].prevroom; damit werden Raum und x und y Koordinaten automatisch gespeichert
http://www.sinitrena.de.vu Meine Spiele: "A very special dog", "A magic stone", "James Bond - Who wants to live again?", "Lonely Night", "Death of an Angel", "The Witch, the Wizard and the Blue Cup", "Emerald Eyes"
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Ich glaube, mit strazer's Methode braucht man nicht einmal das. Beim Raumwechsel ohne Koordinaten bleibt die Figur, wo sie ist, d.h. wenn man aus dem Close Up zurückkommt, ist sie wieder da, wo sie vorher war.
Use gopher repellent on funny little man
strazer

Beitrag von strazer »

Ich glaube das meinte Sinitrena.
Und die .prevroom-Variable ist die beste Methode.

Also:

Beim Plato-Raum "Hide player character" anwählen.

Bei Klick auf Inventargegenstand:
NewRoom(PLATORAUM);

Bei Klick auf Exit-Hotspot im Plato-Raum:
NewRoom(character[GetPlayerCharacter].prevroom);
strazer

Beitrag von strazer »

Muss natürlich GetPlayerCharacter() heissen.
Antworten