Frage zum GUI und den Grafiken und Skrips

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Frage zum GUI und den Grafiken und Skrips

Beitrag von Rayman »

Ich habe eine Frage,

wenn man z.B. bei AGS unter der Auflösung 640x480 ein Spiel erstellen will, kann man da immer noch die Sierra-Classic-Funktion programmieren?

2. Frage:

Wenn man das Default von AGS hat, mit der enthaltenen Sierra-Steuerung, wie muss man das skripen, dass man z.B. einen Gegenstand nehmen will und das Object ist weg und der Gegenstand ist im Inventar?

3 Frage:

Wie muss man skripen, dass bei AGS die Lucasstyle-Funktion aktiviert ist mit dem Verben-GUI?
Benutzeravatar
Kaktus
Tastatursteuerer
Tastatursteuerer
Beiträge: 658
Registriert: 17.02.2006, 01:45
Wohnort: Wüstä
Kontaktdaten:

Beitrag von Kaktus »

2. Ich nehme an bei "Pick up Object" einfach:
ObjectOff(x);
AddInventory(y);

3.
Entweder hier das GUI-Scripting Tutorial runterladen und durcharbeiten oder das Verben Interface z.B. aus einem MMM-Starterpack exportieren.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

skripTTTTTTTTTT. arg. skripT. Mit T wie Theodor am Ende.

1. Das GUI hat nix mit der Auflösung zu tun. Also: ja.

2. Prinzipell so wie Kaktus gesagt hat.

oGegenstand.Visible=false;
player.AddInventory(iGegenstand);

3. Das 9-Verben-GUI ist kein Bestandteil von AGS. Du musst ein template, etc. verwenden.
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 »

Danke für die Hinweise! :D

Werd mal schauen, ob ich was auf die Reihe bringen kann! :wink:
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Hallo, ich habe ein neues Problem.
Ich habe programmiert, dass der Spielercharakter das Telefon benutzt und dabei eine Person anruft und wenn er fertig telefoniert hat, dann wird der GlobalInt-Code sofort aktiviert und der soll erst aktiviert werden, wenn man erneut das Telefon benutzt. Der Charakter sagt sofort nach Ende des Gesprächs "Ich wüsste nicht wen ich anrufen soll." und das soll er erst sagen, wenn man erneut das Telefon benutzt.

Habe ich hier was falsch gemacht?

Code: Alles auswählen

if (UsedAction(A_USE)) {
 if (MovePlayer(382, 125)) {
   FaceDirection(GetPlayerCharacter(), DIR_UP);
 if (GetGlobalInt(480)== 0) {  
   PlaySound(88);
   Wait(50);
   PlaySound(88);
   Wait(50);
   DisplaySpeech(MAN,"Bla, bla, bla!");
   DisplaySpeech(EGO,"Bla, bla, bla!");
   DisplaySpeech(MAN,"Bla, bla, bla!");
   DisplaySpeech(EGO,"Bla, bla, bla!");
   DisplaySpeech(MAN,"Bla, bla, bla!");
   DisplaySpeech(EGO,"Bla, bla, bla!");
   DisplaySpeech(MAN,"Bla, bla, bla!");
   DisplaySpeech(EGO,"Bla, bla, bla!");
   DisplaySpeech(MAN,"Bla, bla, bla!");
   DisplaySpeech(MAN,"Bla, bla, bla!");
   DisplaySpeech(EGO,"Bla, bla, bla!");
   DisplaySpeech(MAN,"Bla, bla, bla!");
   DisplaySpeech(EGO,"Bla, bla, bla!"); 
   DisplaySpeech(EGO,"Bla, bla, bla!");
   PlaySound(89);
   SetGlobalInt(480, 1);
} else 
   DisplaySpeech(EGO,"Ich wüsste nicht wen ich anrufen soll.");  
  }   
}
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Hab den Code getestet, bei mir funktioniert er, wie er soll.
Use gopher repellent on funny little man
Tribble
Tastatursteuerer
Tastatursteuerer
Beiträge: 593
Registriert: 22.10.2004, 13:15

Beitrag von Tribble »

Dass er bei khrismuc funktioniert wundert mich jetzt etwas. Aber ich glaub, ich weis wo der Fehler liegt.

Du sagst AGS erst, was es machen soll wenn GlobalInt 480 0 ist, und dann was es machen soll wenn sie es nicht ist.
Wenn else aber abgefragt wird, hast du die Variable bereits auf 1 gesetzt (und ist somit logischerweise nicht mehr 0).

Der Code sollte wahrscheinlich besser so aussehen:
if (UsedAction(A_USE)) {
if (MovePlayer(382, 125)) {
FaceDirection(GetPlayerCharacter(), DIR_UP);
if (GetGlobalInt(480)== 1) {
DisplaySpeech(EGO,"Ich wüsste nicht wen ich anrufen soll.");
} else
PlaySound(88);
Wait(50);
PlaySound(88);
Wait(50);
DisplaySpeech(MAN,"Bla, bla, bla!");
PlaySound(89);
SetGlobalInt(480, 1);
}
}
Sollte auch dies nicht klappen, dann frag einfach beide male den genauen Zustand ab (ist meiner Meinung nach sowieso die sicherste Methode)
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

@Tribble: Ich habe deinen Rat befolgt, aber es hat nichts gebracht, das Telefon will ums verecken nicht den Skript-Befehl ausführen. :(

@Khrismuc: Ich benutze den Skript für das Telefon im Eingangsflur aus Sandys-Starterpack mit AGS 2.71.
Warum funktioniert bei dir der Skript und nur nicht bei mir?
Smiley
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 163
Registriert: 28.04.2005, 16:26
Wohnort: Mönchengladbach

Beitrag von Smiley »

Hab den Code, der unter "script for Hotspot 6 (Telefon): Any click on hotspot" stand durch deinen ersetzt, und es funktioniert...
Tribble hat geschrieben: Du sagst AGS erst, was es machen soll wenn GlobalInt 480 0 ist, und dann was es machen soll wenn sie es nicht ist.
Wenn else aber abgefragt wird, hast du die Variable bereits auf 1 gesetzt (und ist somit logischerweise nicht mehr 0).
"Else" überprüft nicht noch einmal die Variabeln, sondern wird nur ausgeführt, wenn die Wenn-Bedingung falsch ist.
Beispiel:

Code: Alles auswählen

if (a==0){
  Display("IF");
  a=1;
  }
  else Display("ELSE");
zeigt nur "IF" an.
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Ich versteh die Welt nicht mehr! 8-[
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Jetzt finde ich alles eigenartig!
Nachdem ich den Skript neu eingetragen habe geht es jetzt! :o

Ich glaub ich spinne?! :roll:
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Ich habe jetzt ein neues Problem:

Wenn der Spielercharakter mit einem anderen Charakter sprechen soll, also die Dialoge fangen an, dann schaut der Spielercharakter den Gesprächspartner vorher nicht in die entsprechende Richtung an.

Nicht mal FaceDirection, FaceLocation und FaceCharacter können helfen. Was könnte da der Fehler sein?
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Setz nach das FaceCharacter ein Wait(1); das müsste das Problem im Grunde lösen. Der "Fehler" besteht darin, dass das Bild nicht direkt aktualisiert wird.
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
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Danke, Sinitrena! :D
Benutzeravatar
Jogel
Frischling
Frischling
Beiträge: 5
Registriert: 10.09.2006, 21:17

Beitrag von Jogel »

Hey ich hab ein Ptoblem und zwar,
ich möchte das der Charakter einen neuen Raum betritt und gib in der Leiste Go to a different room (at specific co-ordinates) ein!
wenn ich dann im Spiel versuchen möchte, das ich in den 2. Raum gehen will, dann geht das nicht! ich hab das unter player stands on hotspot (obsolete, use regions) eingegeben und weiß nicht, wie ich jetzt in den anderen Raum komme! Klick ich auf den Hotspot passiert nichts! :(
Die besten Spiele, sind die alten Spiele!!
Antworten