Variablen

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Gast

Variablen

Beitrag von Gast »

Hey alle!
Ich hab mal eine programmier Frage:
Mein Charakter geht aus einem Raum raus. Wenn er draußen ist, sagt er automatisch "Da ist ein Brief im Birefkasten", und nimmt ihn. Wenn ich jetzt aber nochmal ins Zimmer zurückgehe und wieder raus, sagt und macht er wieder das gleiche. Kann man irgendwie Variablen setzten, so das er das nur einmal sagt und macht??

MFG Fabs
LucasFan
Tastatursteuerer
Tastatursteuerer
Beiträge: 535
Registriert: 02.03.2002, 14:40
Wohnort: Ronville

Re:Variablen

Beitrag von LucasFan »

Schau mal hier. Norman hat das schön erklärt. Das Zauberwort heißt GlobalInt. :)
Benutzeravatar
Fabs
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 27
Registriert: 24.09.2003, 18:45
Wohnort: Graz
Kontaktdaten:

Re:Variablen

Beitrag von Fabs »

aja, danke vielmals! ;)

MFG Fabs
Totoro
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 915
Registriert: 26.07.2003, 19:10
Wohnort: Osaka

Re:Variablen

Beitrag von Totoro »

Geht sogar noch einfacher: Im Befehlsberecih des Room-Editors gibt es als eine feste Aktion "der Spieler betritt den Raum zum ersten Mal", da kann man dann die Briefkastenaktion mit verketten.
Benutzeravatar
Fabs
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 27
Registriert: 24.09.2003, 18:45
Wohnort: Graz
Kontaktdaten:

Re:Variablen

Beitrag von Fabs »

Ich hab noch eine frage:
Wenn mein Charakter die Tür öffnet, sollte er zuerst hingehen und sie dann erst aufmachen und dann in den nächsten Raum gehen. Stattdessen geht er aber wenn ich auf "öffne Tür" klicke gleich in den nächsten raum.
Das script sieht so aus:

MoveCharakter(EGO,x,y); //ich weiß jetzt grad die koordinaten nicht auswendig ;)
Wait(10);
NewRoomEx(3,x,y); // weiß ich auch nicht genau auswendig


Bitte um Hilfe
MFG Fabs
Apo
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 85
Registriert: 07.09.2003, 22:39
Wohnort: Magdeburg
Kontaktdaten:

Re:Variablen

Beitrag von Apo »

Ich mach das meistens mit
MoveCharacterBlocking(EGO,x,y,0);
ObjectOff(0); // damit man sieht das die Tür aufgeht!
Wait(10);
NewRoomEx(3,x,y);

klappt wunderbar bei mir ...
Benutzeravatar
Fabs
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 27
Registriert: 24.09.2003, 18:45
Wohnort: Graz
Kontaktdaten:

Re:Variablen

Beitrag von Fabs »

Ah!
Danke!
Bei mir ist die Tür schon geschlossen.
Ich mach einfach ein animiertes Objekt, damit sie aufgeht ;)

Danke, nochmal
MFG FAbs
Benutzeravatar
Fabs
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 27
Registriert: 24.09.2003, 18:45
Wohnort: Graz
Kontaktdaten:

Re:Variablen

Beitrag von Fabs »

Ich hab da noch ein Problem:
Immer wenn ich mein SPiel teste und ESC oder rechte Maustaste drücke, hängt sich alles auf.

BItte um Hilfe!
MFG Fabs
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Re:Variablen

Beitrag von a-v-o »

[quote author=LuttiArts link=board=7;threadid=1735;start=0#msg22901 date=1064743815]Immer wenn ich mein SPiel teste und ESC oder rechte Maustaste drücke, hängt sich alles auf.[/quote]
Ohne genauere Infos vermute ich, dass durch diese Ereignisse jeweils eine Endschleife aufgerufen wird.

Beispiel:
MoveCharacter (EGO, 10, 20);
while (character [EGO].x != 10) { }

Da in der Schleife kein Wait-Befehl verwendet wird, bewegt sich EGO nicht von der Stelle und die x-Koordinate wird nie 10, wenn sie es nicht schon vorher war.

Also Schleifen prüfen.

Ansonsten:
Gesamten Code für ESC auskommentieren und testen. Jetzt sollte es zu keinem Hänger kommen, weil ja nichts besonderes ablaufen soll. Nach und nach die einzelnen Teile des Scripts wieder freigeben und so die problematische Stelle eingrenzen.
Entsprechend für Rechtsklick.
Benutzeravatar
Fabs
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 27
Registriert: 24.09.2003, 18:45
Wohnort: Graz
Kontaktdaten:

Re:Variablen

Beitrag von Fabs »

Also bei mir steht das bei rechter Maustaste:

function on_mouse_click(int button) {
if (IsGamePaused() == 1) {
}
else if (button==LEFT) {
ProcessClick(mouse.x, mouse.y, GetCursorMode() );
SetCursorMode(MODE_WALK);

}
else if (button==RIGHT) {
if (GetLocationType(mouse.x, mouse.y)==2)
{ SetGlobalInt(80,9);
ProcessClick(mouse.x, mouse.y, MODE_TALK);
SetGlobalInt(80,0); }
else
{ FaceLocation(GetPlayerCharacter(), mouse.x, mouse.y );
ProcessClick(mouse.x, mouse.y, MODE_LOOK);
SetCursorMode(MODE_WALK);
}
}


Einen Befehl für ESC gibt es gar nicht.

Bitte um Hilfe
MFG Fabs
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Re:Variablen

Beitrag von a-v-o »

Die rechte Maustaste hat also 2 Funktionen:
1. auf character geklickt, soll mit denen gesprochen werden
2. ansonsten soll dort hingeschaut werden, wo du hingeklickt hast.

Du kannst testen, ob das Spiel sich in beiden Fällen aufhängt.

Du kannst // vor die ProcessClick-Zeilen setzen und testen, ob es sich bei Rechtsklick weiterhin aufhängt.

Schau dir die "unhandled_event"-Funktion an. Diese wird aufgerufen, wenn keine Interaction definiert wurde (bspw. für Look At).

Wenn alles nichts hilft, kannst du es mir per eMail zum Testen schicken.
Benutzeravatar
Fabs
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 27
Registriert: 24.09.2003, 18:45
Wohnort: Graz
Kontaktdaten:

Re:Variablen

Beitrag von Fabs »

Ich hab vor der ganzen rechten Maustasten funktion "//" hingemacht, also so, dass es keinerlei bedeutung hat. Trotzdem hängt sich das spiel auf.
Ich habe den Monkey island1 Gui gezogen und einfach das spiel geladen, andere räume reinkopiert und andere sprites... dann hab ich es halt als mein spiel gespeichert. Vielleicht hat das damit irgendwas zu tun!?

Find ich voll nett von dir, dass ich dir mein game über e-mail schicken kann, ist aber leider etwas zu groß. Es hat 8 MB.

MFG
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Re:Variablen

Beitrag von a-v-o »

Du hast das Spiel doch sicherlich zwischendurch getestet und es gab keinen Hänger, oder?

Du könntest die einzelnen Schritte, wie du das Spiel aufgebaut hast noch einmal nachvollziehen. Nach jedem Schritt testen, dann den Ordner als Backup kopieren, bevor du den nächsten Schritt machst.

Ach ja, welche AGS-Version verwendest du?

Du kannst mir das Spiel (Quelldateien gezippt) auch per ftp zukommen lassen, wenn du kannst. Näheres per eMail oder PM.
Benutzeravatar
Fabs
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 27
Registriert: 24.09.2003, 18:45
Wohnort: Graz
Kontaktdaten:

Re:Variablen

Beitrag von Fabs »

Ich benutz version 2.56d.
Hmm ich glaub der fehler hängt gar nicht mit den scripts zusammen. Ich habe ja wie gesagt den Monkey island gui gezogen, da einfach meine hintergründe u. sprites eingefügt. Die scripts hab ich natürlich auch umgeändert, aber nicht das main script. hmm keine ahnung woran der fehler liegt.

Hmm gezippt ist es trotzdem ganz schön groß. Brauchst du den Compiled Ordner auch??

MFG FAbs

EDIT: Ich habe auch gerade mein global script, mit dem von Monkey island 1 gui verglichen. Da ist alles identisch!
Keine ahnung woran das liegen könnte...
Benutzeravatar
Fabs
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 27
Registriert: 24.09.2003, 18:45
Wohnort: Graz
Kontaktdaten:

Re:Variablen

Beitrag von Fabs »

Ich hab noch was herausgefunden:
Das Spiel hat zwei Räume bevor man zum Spielen kommt.
Raum 1 ist nur schwarz
Raum 2 beinhaltet ein Intro, wo man die Raumstation sieht, inder man spielt.
Im dritten Raum spielt man halt.

Maustaste 2 hat ja die Funktion "Look at"

Nach dem Intro in Raum drei startet man aber nicht mit der funktion "Walk to" sondern "Look at".
Vielleicht liegt es daran??

Ich habe aber die scripts von Raum 1 und 2 überprüft. Da konnte ich keinerlei Fehler finden.

MFG
Antworten