Türen!

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
clEmon
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 11
Registriert: 11.11.2002, 16:18

Türen!

Beitrag von clEmon »

Hallo!

(1)
Ich möchte, dass mein Charakter von einem ins nächste Zimmer geht.

Hab das GUI-Menü von LucasArts genommen.

Wenn ich eine Tür öffne, klappt das wunderbar. Aber der "schließen"-Befehl klappt net, wie ruf ich den denn übers script auf.

(2)
Mein Charakter kann durch den Hotspot (Tür) durchlaufen, kann ich das irgendwie verhindern, dass das erst geht, wenn er die Tür geöffnet hat?

Danke im vorraus
LucasFan
Tastatursteuerer
Tastatursteuerer
Beiträge: 535
Registriert: 02.03.2002, 14:40
Wohnort: Ronville

Re:Türen!

Beitrag von LucasFan »

1.

Genauso wie das Öffnen, nur das der GlobalInt(80) eine andere Nummer haben muss.

2.

Für die Tür eine extra Walkable-Area machen und diese bei Bedarf an und abschalten. (RestoreWalkableArea & RemoveWalkableArea)
clEmon
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 11
Registriert: 11.11.2002, 16:18

Re:Türen!

Beitrag von clEmon »

[quote author=LucasFan link=board=7;threadid=775;start=0#msg10364 date=1037037494]
1.

Genauso wie das Öffnen, nur das der GlobalInt(80) eine andere Nummer haben muss.

[/quote]

ja gut, aber wie mache ich dass, ich hab ja unter interaction nur die möglichkeit zwischen den sachen auszuwählen, ich kann da ja nicht selbst scripten
LucasFan
Tastatursteuerer
Tastatursteuerer
Beiträge: 535
Registriert: 02.03.2002, 14:40
Wohnort: Ronville

Re:Türen!

Beitrag von LucasFan »

Wieso benutzt du nicht das Script, welches der Hotspot (Kanone) im Monkey Island-Demo enthält? Dieses benutzt man für alle Aktionen in Lucas-Spielen.
Benutzeravatar
Sylana voisin
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 18
Registriert: 10.10.2002, 15:53
Wohnort: ganz tief drin in AGS!!

Re:Türen!

Beitrag von Sylana voisin »

Hier meine Lösung:

Mach das script bei roomsettings - interactionseditor -repeatedlyexecute rein:
// abfrage ob ein bestimmtes objekt auf einer bestimmten stelle ist

if (GetObjectAt(x,y)==2) // für 2 die nummer deines geschlossenen türobjekts
   {RemoveWalkableArea(5); // für die 5 deine walkableareaNr. an der Türschwelle
   }


// So, nun noch für die Tür das passende script:
// dieses trägst du im interaktionseditor von deiner geschlossenen tür unter user1 ein:

// USER1-Tasten abfragen: 5=ziehe, 4=drücke, 1=schliesse, 3=öffne

int taste;
taste = GetGlobalInt(299); // 299 ist meine globalint für die gui

if (taste == 3) {
MoveCharacterToObject (CHARID, 7); // die 7 ist meine objektnr. der geschlossenen tür

ObjectOff(7);
ObjectOn(6); // die 6 ist meine objektnr. der geöffneten tür
RestoreWalkableArea(8); // die 8 ist meine Türschwelle, die ich mit obigem script abfrage
}
else Display("Was soll ich?");




// für die geöffnete türe :

// USER1-Tasten abfragen: 5=ziehe, 4=drücke, 1=schliesse, 3=öffne

int taste;
taste = GetGlobalInt(299);

if (taste == 1) {
MoveCharacterToObject (CHARID, 7);
ObjectOff(7); //offene tür aus
ObjectOn(6); //geschlossenen tür ein
RemoveWalkableArea(8); // türschwelle wieder ausschalten
}
else Display("Was soll ich?");


Das sollte ja nun ausführlich genug sein ;)
Nur ein Genie
kann meinem geistigen Wirrwar folgen ;)
clEmon
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 11
Registriert: 11.11.2002, 16:18

Re:Türen!

Beitrag von clEmon »

erstmal herzlichen dank für die tolle hilfe.

aber er sagt mir unexpected taste, bevor ich überhaupt speichern kann
Benutzeravatar
Sylana voisin
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 18
Registriert: 10.10.2002, 15:53
Wohnort: ganz tief drin in AGS!!

Re:Türen!

Beitrag von Sylana voisin »

deshalb wird die variable taste ja mit int taste erst initialisiert, dann erst nimmt er taste = getglobalint(xxx)
Nur ein Genie
kann meinem geistigen Wirrwar folgen ;)
Benutzeravatar
WDATA
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 149
Registriert: 23.03.2002, 22:31
Wohnort: Castrop Rauxel
Kontaktdaten:

Re:Türen!

Beitrag von WDATA »

LucasFan hat geschrieben:Wieso benutzt du nicht das Script, welches der Hotspot (Kanone) im Monkey Island-Demo enthält? Dieses benutzt man für alle Aktionen in Lucas-Spielen.
woher bekommt man diese demo?
Äktschn...Das PCA ADVENTURE! http://www.wdata-software.de
Benutzeravatar
WDATA
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 149
Registriert: 23.03.2002, 22:31
Wohnort: Castrop Rauxel
Kontaktdaten:

Beitrag von WDATA »

// script for hotspot5: Any click on hotspot
if (GetGlobalInt(80)==1) Display("Ich will das nicht schließen."); // close
else if (GetGlobalInt(80)==2) Display("Ich will nichts geben."); // give
else if (GetGlobalInt(80)==3) Display ("Auf gehts!"); NewRoomEx(161,157, 126); // hier ist open! aber irgendwie geht das nicht? der charakter soll was sprechen und dann im nächsten Raum

else if (GetGlobalInt(80)==4) Display("Ich will das nicht drücken."); // push
else if (GetGlobalInt(80)==5) Display("Ich will das nicht ziehen."); // pull
else if (GetGlobalInt(80)==6) Display("Ich will das nicht nehmen."); // pick up
else if (GetGlobalInt(80)==7) Display("Ich will das nicht benutzen.");// use
else if (GetGlobalInt(80)==9) Display("Ich will damit nicht reden."); // talk
else // look at
{

}
SetGlobalInt(80,0);



ich beziehe mich nur auf diese Zeile: "else if (GetGlobalInt(80)==3) Display ("Auf gehts!"); NewRoomEx(161,157, 126); // hier ist open! aber irgendwie geht das nicht? der charakter soll was sprechen und dann im nächsten Raum"
Äktschn...Das PCA ADVENTURE! http://www.wdata-software.de
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Beitrag von Rocco »

WDATA hat geschrieben:
ich beziehe mich nur auf diese Zeile: "else if (GetGlobalInt(80)==3) Display ("Auf gehts!"); NewRoomEx(161,157, 126); // hier ist open! aber irgendwie geht das nicht? der charakter soll was sprechen und dann im nächsten Raum"
also in diesem statement gehört nur der DISPLAY befehl zum if
wenn du zwei befehle ausführen willst musst du das ganze klammern:

else if (GetGlobalInt(80)==3)
{
Display ("Auf gehts!");
NewRoomEx(161,157, 126);
}

ansonsten wird nur der erste befehl ausgeführt
Benutzeravatar
WDATA
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 149
Registriert: 23.03.2002, 22:31
Wohnort: Castrop Rauxel
Kontaktdaten:

Beitrag von WDATA »

thx ;)
Äktschn...Das PCA ADVENTURE! http://www.wdata-software.de
Benutzeravatar
WDATA
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 149
Registriert: 23.03.2002, 22:31
Wohnort: Castrop Rauxel
Kontaktdaten:

Beitrag von WDATA »

thx ;)
Äktschn...Das PCA ADVENTURE! http://www.wdata-software.de
Antworten