Frage zu "Türen"

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
BlueDeath
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 157
Registriert: 31.10.2005, 20:26

Beitrag von BlueDeath »

anscheinend ist activeint eine integervariable und ikey ein inventoryitem, und so kannst du sie nicht vergleichen.
Deswegen musst du es wie folgt machen:

Code: Alles auswählen

if (player.ActiveInventory == iKey.ID) {
....
}
Die Macht sei mit dir.
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Du kannst auch so scripen, dass man Global|nts für die Türen verwenden kann, um sie zu öffnen. 8)
Benutzeravatar
leChuck93
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 55
Registriert: 13.05.2006, 18:01

Beitrag von leChuck93 »

reicht nicht: if (player.ActiveInventory == 9) {

und was ist mit den pünktchen was kommt da hin damits funzt
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

leChuck93 hat geschrieben:reicht nicht: if (player.ActiveInventory == 9) {
Nein, das reicht nicht. Wenn du die Item-Nummer angeben willst, muss es etwas anders aussehen:

Code: Alles auswählen

if (player.activeinv == 9) {
leChuck93 hat geschrieben:und was ist mit den pünktchen was kommt da hin damits funzt
Die kommen nur, wenn du eine FUNKTION benutzt, kein Statement. Auf mich machst du weniger den Eindruck, als hättest du intensiv das Handbuch gelesen. Eher überflogen.
Zuletzt geändert von [ZENSIERT] am 21.05.2006, 12:42, insgesamt 2-mal geändert.
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Benutzeravatar
leChuck93
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 55
Registriert: 13.05.2006, 18:01

Beitrag von leChuck93 »

Mal ne andere frage. Rayman du hast doch schon einige MMM Episoden gemacht oder? Und bestimmt auch türen verschlossen. was hast du denn eingegeben?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Versuch doch lieber mal, die Skriptsprache zu VERSTEHEN, anstatt darauf zu hoffen, dass irgendjemand irgendwann exakt den Code postet, den du brauchst.

In MMM-Starterpacks ist eine Funktion enthalten, mit der man sowas in einer Zeile skripten kann. Wenn Du kein Pack benutzt, kannst Du diese Funktion folglich nicht nutzen.

Wenn Du eine Fehlermeldung erhältst, poste erstens die Meldung und zweitens dein Skript, dann können wir dir helfen.
Use gopher repellent on funny little man
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

leChuck93 hat geschrieben:Mal ne andere frage. Rayman du hast doch schon einige MMM Episoden gemacht oder? Und bestimmt auch türen verschlossen. was hast du denn eingegeben?
Bei meiner Episode "Verflixte Türen" habe ich es bei der einen Schublade so gemacht:

Code: Alles auswählen

else if (UsedAction (A_OPEN))
{
 if (MovePlayer (160,123))
 {
  FaceDirection(GetPlayerCharacter(), DIR_UP); 
   if (GetGlobalInt(33)==0) {
    SetGlobalInt(33, 0);
    DisplaySpeech(GetPlayerCharacter(),"Verschlossen."); 
    }
     if (GetGlobalInt(32)==1) {
      SetGlobalInt(32, 1); 
      FaceDirection(GetPlayerCharacter(),DIR_UP);
      PlaySound(1);
      ObjectOn(2);   
  }
 }
}
Der Hotspot muss auch mit einem >o markiert sein und das Object der Tür muss mit >c markiert sein.

Dann folgt:

Code: Alles auswählen

else if (GetGlobalInt(35)==0) {
 if (UsedAction (A_USE_INV))
 {
  if (MovePlayer (160,123))
  { 
   if (character[GetPlayerCharacter()].activeinv == 4) 
   {
    FaceDirection(GetPlayerCharacter (),DIR_UP);
      PlaySound(51);
      SetGlobalInt(35,1);
      SetGlobalInt(34,1);
      SetGlobalInt(33,1);
      SetGlobalInt(32,1);
      DisplaySpeech(GetPlayerCharacter(),"So, die Schublade müsste jetzt offen sein.");
   }  
  }
 }
} 
else if (UsedAction (A_USE_INV))
{
 if (MovePlayer (160,123))
 { 
  if (character[GetPlayerCharacter()].activeinv == 4) 
  {
   FaceDirection(GetPlayerCharacter (),DIR_UP);
    if (GetGlobalInt(34)==1) {
     PlaySound(51);
     SetGlobalInt(35,0); 
     SetGlobalInt(34,0);  
     SetGlobalInt(33,0); 
     SetGlobalInt(32,0); 
     DisplaySpeech(GetPlayerCharacter(),"Jetzt ist sie wieder verschlossen.");
   }
  }
 }
} 
else Unhandled ();  
Die Nummer 4 ist der Schlüssel.
Das ist der Skrip um eine Tür nicht nur zu öffnen, man kann sie auch wieder verschließen. :wink:
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

DAS SkripT. Englisch: script.

Viel zu kompliziert. 4 Global Ints? Eine reicht.
Und

Code: Alles auswählen

if (GetGlobalInt(33)==0) { 
    SetGlobalInt(33, 0); 
ist auch nicht gerade effektiv... ;)
Use gopher repellent on funny little man
Benutzeravatar
leChuck93
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 55
Registriert: 13.05.2006, 18:01

Beitrag von leChuck93 »

danke :D und wie sähe das dann für ne tür aus?
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Also ich machs mir da immer ganz einfach:

Ich lege einfach ein neues Tür-Objekt über den Tür-Hotspot. Sobald dann der Schlüssel mit der Tür benutzt wird, wird das Tür-Objekt entfernt und die Tür dahinter kann ganz normal benutzt werden... :wink:

Ich umgehe Variablen gerne wo ich kann. :D
My MMM-Episodes: #7 "Right said Fred", #32 "Secret of Maniac Mansion", # 33 "Carry on Smiley", H05 "Escape from Maniac Mansion", #45 "Maniac Monday", #54 "CSI:RONVILLE", #58 "The People's Court", #70 "Maniac Mansion Begins", #74 "The Curse of King RootenTooten", #93 "Murder a.t. Moonshine Mansion"
Benutzeravatar
Campusanis
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 108
Registriert: 06.01.2003, 13:22
Kontaktdaten:

Beitrag von Campusanis »

So wollte ich das auch machen, schön, dass es funktioniert. ;)
Benutzeravatar
leChuck93
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 55
Registriert: 13.05.2006, 18:01

Beitrag von leChuck93 »

Mister L hat geschrieben:Also ich machs mir da immer ganz einfach:

Ich lege einfach ein neues Tür-Objekt über den Tür-Hotspot. Sobald dann der Schlüssel mit der Tür benutzt wird, wird das Tür-Objekt entfernt und die Tür dahinter kann ganz normal benutzt werden... :wink:

Ich umgehe Variablen gerne wo ich kann. :D

was für einen Script hast du benutzt?
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Du musst nur das erwähnte Objekt mit object[x].Visible = false; ausschalten, wobei x für die Nummer des jeweiligen Objekts steht. Ansonsten geht das ziemlich genauso wie mit einer Variable, nur das du dir eine if-Abfrage sparen kannst.
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"
Antworten