NewRoomEx

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Neunmalkluger Noob

NewRoomEx

Beitrag von Neunmalkluger Noob »

hallo.
Wenn ich NewRoomEx benutze dann wird die figur an
der richtigen Stelle in einem anderen bild ja transportiert.
das problem ist nur, wenn ich eine animation nach NewRoomEx
im neuen Bild
starten will funktioniert das nicht.

Beispiel:

NewRoomEx(EGO, 120, 140);
Playsound(3);
ObjectOn(0);
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Hallo, dass liegt daran, dass New RoomEx immer erst am Ende der Funktion aufgerufen wird.
(Siehe Hilfe:

Code: Alles auswählen

IMPORTANT: This command does not change the room immediately; instead, it will perform the actual room change once your script function has finished (This is to avoid problems with unloading the script while it is still running). This means that you should not use any other commands which rely on the new room (object positionings, and so on) after this command within the same function.
)

Du musst alles was im neuen Raum passieren soll auch in den neuen Raum setzen, also entweder bei Player Enters Screen (After FadeIn) oder bei First Time Player Enters Screen, je nachdem ob es nur beim ersten mal, oder jedes Mal wenn der Charakter in den Raum geht passieren soll
Neunmalkluger Noob

Beitrag von Neunmalkluger Noob »

OK. Aber was ist wenn das ein Raum ist
der oft vom Player Charakter betreten wird und wo erst etwas passieren soll, wenn man den NewRoomEx Code verwendet. Wo sollte man in diesem Raum den befehl ambesten einfügen?
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Dann mußt Du mit globalen Variablen arbeiten. Du setzt die Variable im alten Raum auf 1, wenn das entsprechende Ereignis geschehen ist und im neuen Raum checkst Du dann über IF, ob die Variable 1 oder 0 ist. Ist sie 1, dann wird Dein Object animiert, bzw. dann läßt Du halt das geschehen, was geschehen soll, bei 0 passiert halt ncihts.
Totoro
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 915
Registriert: 26.07.2003, 19:10
Wohnort: Osaka

Beitrag von Totoro »

Fightmeyer war schneller :)
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Totoro hat geschrieben:Ich versteh deine Erklärung nicht...
Ist das Dein Ernst? Noch einfacher kann man es ja kaum formulieren.
Totoro
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 915
Registriert: 26.07.2003, 19:10
Wohnort: Osaka

Beitrag von Totoro »

Du warst schon wieder schneller. Mein Satz "Ich versteh deine Erklärungen nicht" bezog sich auf das geschilderte Problem. Da ich aber nach der Lektüre deiner Ausfürhungen (die vor meinem Posting erfolgten) auch das Grundproblem verstand, habe ich meine Bemerkung weg-editiiert.
Neunmalkluger Noob

Globalen Variablen

Beitrag von Neunmalkluger Noob »

Wie benutzt man die Globalen variablen

Mein Problem ist, das die animationen nach dem Code
NewRoomEx nicht in dem gewünschten Raum funktionieren.
:oops: :?: Ich hoffe, ich nerve mit diesen noob-fragen nicht.
Totoro
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 915
Registriert: 26.07.2003, 19:10
Wohnort: Osaka

Beitrag von Totoro »

Die Variablen kannst du auch über den Editor auf bestimmte Werte setzen und auch dazu abfragen, wenn dir das mit dem Scripten anfangs noch zu schwer ist.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Du machst in dem Raum, in dem es passieren soll, eine RunScript-Interaction unter Player enters screen (after fadein).
Da schreibst Du rein:

Code: Alles auswählen

if (GetGlobalInt(1)==1) {
  PlaySound(3);
  ObjectOn(0);
  SetGlobalInt(1,0);    // Global Int Nr. 1 wieder auf den Wert 0 setzen.
}
Dieses Script wird ab jetzt immer durchlaufen, wenn der Charakter den Raum betreten hat. Da die GlobalInt Nr. 1 normalerweise 0 ist, passiert auch nix.

Wenn Du jetzt das spezielle Ereignis auslösen möchtest, benutzt Du diesen Code:

Code: Alles auswählen

SetGlobalInt(1,1);
NewRoomEx(...);
Der Spieler landet im Raum, das Script wird durchlaufen, doch diesmal ist die Global Int Nr. 1 nicht 0, sondern 1, d.h. die drei Befehle in den { Klammern } werden ausgeführt.
Damit das Ganze nur einmal passiert, wird am Ende die Global Int Nr. 1 wieder auf 0 zurückgesetzt.
Alles klar?
Use gopher repellent on funny little man
Neunmalkluger Noob

Beitrag von Neunmalkluger Noob »

Danke. Habs jetzt geschafft! :D 8)
Antworten