Ein paar Fragen

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

Ein paar Fragen

Beitrag von Newbie20 »

Habe schon über die Suche versucht und auch sehr viele verschieden Worte benutzt aber nichts gefunden.

1. Wie mache ich es das der Charakter den Raum automatisch verlässt. Also er soll durch die Tür gehen und dann soll er im anderen raum sein.

2. Wie kann ich Dialoge so machen das wenn ich "Wie geht es dir?" angeklickt habe das es nach der Antwort nicht mehr dort steht.

3. Habe folgendes Script eingegeben aber der Spieler hat dann das Toll nicht im Inventar was ist falsch.

Code: Alles auswählen

MoveCharacter(BRITNEY,246,130);
while (character[BRITNEY]. walking) Wait (1);
FaceCharacter (BRITNEY,BERNARD);
FaceCharacter (BERNARD,BRITNEY);
LoseInventory(7);
DisplaySpeech(BRITNEY,  "Ich glaube das kannst du bei deiner Suche gebrauchen");
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Das sind alles extreme Anfängerfragen. Bitte arbeite erstmal verschiedene Tutorials und vor allem die Hilfedatei von AGS durch.

1. NewRoom() bzw. NewRoomEx()

2. option-off X

3. AddInventory()
(und MoveCharacterBlocking() spart dir den while-Kram)

Die Verwendung dieser Befehle wird in der AGS-Hilfedatei bestens erklärt.

PS: Da Du gerade erst angefangen hast, mit AGS zu arbeiten, solltest Du dir gleich die Schreibweise ab Version 2.7 angewöhnen.
(Aus MoveCharacter(x,y) wird z.B. cBernard.Walk(x,y)).
Use gopher repellent on funny little man
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

khrismuc hat geschrieben:Die Verwendung dieser Befehle wird in der AGS-Hilfedatei bestens erklärt..
Auf solche Fragen werde ich in Zukunft auch nicht mehr antworten... :?

Genauso wie hier. Hört bitte endlich damit auf und lest mehr in der Hilfe
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
Newbie20

Beitrag von Newbie20 »

khrismuc hat geschrieben:Das sind alles extreme Anfängerfragen. Bitte arbeite erstmal verschiedene Tutorials und vor allem die Hilfedatei von AGS durch.
Die Hilfe Datei habe ich gelesen aber nichts dazu gefunden.
khrismuc hat geschrieben: 1. NewRoom() bzw. NewRoomEx()
Dann geht er aber nicht aus dem Raum sondern der Raum wird neu geladen, aber ich will das er zur Tür läuft und dann erst der neue Raum kommt, indem er dann vor der Tür steht aus der er gerade kam.
khrismuc hat geschrieben: 2. option-off X
Wo muss ich das einfügen?
khrismuc hat geschrieben: 3. AddInventory()
(und MoveCharacterBlocking() spart dir den while-Kram)

Die Verwendung dieser Befehle wird in der AGS-Hilfedatei bestens erklärt.

PS: Da Du gerade erst angefangen hast, mit AGS zu arbeiten, solltest Du dir gleich die Schreibweise ab Version 2.7 angewöhnen.
(Aus MoveCharacter(x,y) wird z.B. cBernard.Walk(x,y)).
Also wenn ich das cBritney(x,y) eingebe läuft die nicht sondern bleibt stehen.
Newbie20

Beitrag von Newbie20 »

Also das mit Dialog habe ich nun rausgefunden.

Das einzigste was ich immer noch nicht rausgefunden habe ist das mit dem Raum wechsel (so wie im voherigen Beitrag erklärt).
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Da AGS 2.7.x die alten Befehle (noch) unterstützt, verwende sie meinetwegen. Aber gerade bei solchen Fragen wirst Du noch am ehesten eine Antwort bekommen, wenn du wenigstens die neue, objektorientierte Syntax benutzt.

Also: Welche AGS-Version benutzt Du? 2.6.2 oder 2.7.x?
Benutzt Du das MMM-Template?

Wann erfolgt der Raumwechsel? Wenn Dein Charakter auf eine Region läuft, oder über eine der gelben Linien? Oder willst Du, dass es in einer Zwischensequenz passiert?

In der Hilfedatei sind alle Befehle erklärt, es gibt auch eine Suchfunktion. (Gemeint ist die ags.chm bzw. ags-help.chm im AGS-Verzeichnis, oder drücke in AGS mal F1.)

Du brauchst NewRoomEx(), Zitat aus der Hilfedatei:
NewRoomEx (int room_number, int x, int y)

Identical to NewRoom, except that the player character is placed at co-ordinates (X,Y) in the new room.
Probier' einfach Verschiedenes aus, es ist immer besser, selber Erfolgserlebnisse zu haben, als alles vorgekaut zu kriegen.

EDIT: Es heisst EINZIGE. EINZIGE!!! Es gibt keine Steigerung, verdammt. EINZIGSTE ist falsch.
Use gopher repellent on funny little man
Sandy
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 166
Registriert: 14.08.2005, 11:04
Kontaktdaten:

Beitrag von Sandy »

Achja Newbie20 bin ich, nur ich wurde andauernd wieder ausgeloggt.
khrismuc hat geschrieben:Also: Welche AGS-Version benutzt Du? 2.6.2 oder 2.7.x?
Benutzt Du das MMM-Template?
Benutze 2.7 und das MMM-Template
khrismuc hat geschrieben:Wann erfolgt der Raumwechsel? Wenn Dein Charakter auf eine Region läuft, oder über eine der gelben Linien? Oder willst Du, dass es in einer Zwischensequenz passiert?
Dazu muss ich das erst mal erklären was passiert.

Bernard geht in das Zimmer von Britney, dann folgt ein Dialog, nach dem Dialog gibt Britney Bernard was und dann kommt der Raumwechsel.
Totoro
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 915
Registriert: 26.07.2003, 19:10
Wohnort: Osaka

Beitrag von Totoro »

Vor allem musst du deine Arbeitsschritte eben wirklich gliedern und für jeden einzelnen Schritt finden, wie es geht. Dass ein Mensch erst zur Tür geht bevor er im nächsten Raum geht, ist zwar im richtigen Leben logisch, für AGS aber nicht, wo man natürlich auch mit Teleportern in einen anderen Raum kommt oder einfach ein cut kommt.
Daher musst du eben sehen:

1.) Wie lasse ich den Charakter zu einem bestimmten Punkt auf den Bildschirm laufen.
cBernard.Walk(x,y)

2.) Wie sorge ich dann, wenn er an diesem Punkt ankommt, für den Raumwechseln.
NewRoomEx (int room_number, int x, int y)

Und wenn dir das mit dem scripten anfangs zu kompliziert ist, ist es wirklich nicht schlecht anfangs mit dem Event-Editor zu arbeiten, der dir ja die normalen Befehle schon als Popup anbietet (auch wenn ich anscheinend immer der einzige bin, der das hier immer empfiehlt). Ich finde später scripten zwar auch bequemer, aber mit dem Editor bekommt man ein gutes Gefühl, was man überhaupt für Befehle anwenden kann und wie man Befehlsketten gliedern muss.
Sandy
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 166
Registriert: 14.08.2005, 11:04
Kontaktdaten:

Beitrag von Sandy »

Totoro hat geschrieben: 1.) Wie lasse ich den Charakter zu einem bestimmten Punkt auf den Bildschirm laufen.
cBernard.Walk(x,y)

2.) Wie sorge ich dann, wenn er an diesem Punkt ankommt, für den Raumwechseln.
NewRoomEx (int room_number, int x, int y)
Das habe ich so schon gemacht, aber er läuft da nicht hin, es kommt gleich der Neue Raum.

Hier

cBernard.Walk(229, 129);
NewRoomEx(2,32,134);
FaceDirection(GetPlayerCharacter (),DIR_RIGHT);
Totoro
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 915
Registriert: 26.07.2003, 19:10
Wohnort: Osaka

Beitrag von Totoro »

Ich habe mich noch nicht in die neuen Befehle eingearbeitet und weiß leider nicht, wie der charakterbezogne Befehl aussieht.

Ich würde als Lösung vorschlagen, dort in der Tür, wo der Charakter hinläuft, eine Area zu legen. FÜr diese Area stellst du dann ein, dass der Raumwechsel erfolgen soll, wenn ein Charakter auf diese Area läuft. Das brauchst du ja auch außerhalb der Cut-Szene.

Andere Möglichkeit zum Ausprobieren: Den Walk Befehl in ein script. Den Raumbefehl in ein Script dahinter!
Sandy (nicht eingeloggt)

Beitrag von Sandy (nicht eingeloggt) »

Totoro hat geschrieben:Ich habe mich noch nicht in die neuen Befehle eingearbeitet und weiß leider nicht, wie der charakterbezogne Befehl aussieht.

Ich würde als Lösung vorschlagen, dort in der Tür, wo der Charakter hinläuft, eine Area zu legen. FÜr diese Area stellst du dann ein, dass der Raumwechsel erfolgen soll, wenn ein Charakter auf diese Area läuft. Das brauchst du ja auch außerhalb der Cut-Szene.
Habe jetzt mal eine Walkable Area an der Stelle erstellt, wie mache ich es dann aber wenn er da draufläuft das er den Raum wechselt.

Habe auch schon in der Hilfe von AGS nach Walkable Area gesucht aber dazu nichts gefunden.
Totoro
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 915
Registriert: 26.07.2003, 19:10
Wohnort: Osaka

Beitrag von Totoro »

Pardon, ich meine nicht "Area" sondern "Region". Bein einer Region kannst du direkt unter "Interactions" verschiedene Möglichkeiten aufrufen und dort den Raumwechsel reinscripten.
Sandy
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 166
Registriert: 14.08.2005, 11:04
Kontaktdaten:

Beitrag von Sandy »

Kein Wunder das ich es nicht gefunden habe wenn es "Ragion" ist.

Ok, dann schieb ich gelich mal noch eine Frage hinterher.

Wie geht es das wenn er den Raum verlassen hat die Tür dann zu ist und wenn ich sie öffnen will kommt dann "Abgeschlossen". Damit man nicht noch mal in dieses zimmer kann.

Muss ich dazu einen neuen Raum erstellen oder geht das auch anders?
Totoro
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 915
Registriert: 26.07.2003, 19:10
Wohnort: Osaka

Beitrag von Totoro »

Variable für die Tür einrichten. z.B.
Variable=0 bedetuet Tür ist verschlossen
Variable=1 bedeutet Tür ist nicht veschlossen.
Nach der Intaeraktion mit der Tür wird erst die Variable abgefragt und entsprechend reagiert.
Sandy
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 166
Registriert: 14.08.2005, 11:04
Kontaktdaten:

Beitrag von Sandy »

Also bei dem Hotspot für die Tür steht im Script

Code: Alles auswählen

if (any_click_on_door (4, 1, 45, 134, DIR_LEFT, 3, 271, 133, DIR_LEFT) == 0) Unhandled ();
Bei einer Schublade habe ich schon mal das mit den Variablen gemacht, glaube ich zumindest, also beim Object der Schublade.

Code: Alles auswählen

else if(UsedAction(A_LOOK_AT)) { 
	if(MovePlayer(120, 129)) { 
			FaceDirection(GetPlayerCharacter(),DIR_UP); 
			[color=red]if(!schublade) { [/color]
			DisplaySpeech(GetPlayerCharacter(), "Mein Portemonnaie, das sollte ich mitnehmen."); 
			AddInventory(1); 
			[color=red]schublade = 1;[/color] 
	} 
		else{ 
			DisplaySpeech(GetPlayerCharacter (),"Leer."); 
		} 
	} 
}
Müsste ich das dann so bei der der Offenen Tür machen?
Antworten