Ein paar Anfänger Fragen [AGS 3.0]

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
TheCze
Frischling
Frischling
Beiträge: 2
Registriert: 27.03.2008, 14:30

Ein paar Anfänger Fragen [AGS 3.0]

Beitrag von TheCze »

Servus Leute!
Ich hab mit früheren AGS Versionen schon ein wenig gearbeitet und jetzt hats mich mal wieder gepackt und ich hab AGS 3.0 installiert.

Ein bisschen schockiert war ich schon am Anfang dass es den Interaction Edtor nicht mehr gibt und man jetzt alles per Script regeln muss.
Da ich allerdings schon Erfahrung im Programmieren hab war das zum Glück kein Problem.

Nur ein paar Dinge erschließen sich mir noch nicht ganz.

1. Ich möchte gerne Sätze sagen lassen wenn der Charakter ItemX mit irgendeinen Hotspot/Objekt/Charakter benutzt im Stile von "ItemX hilft mir hier nicht weiter".
Alles was ich derzeitig gefunden habe ist das umgekehrte, also für jedes Objekt wenn das falsche Item damit benutzt wird immer den selben Satz (z.B. "Das möchte ich nicht nassmachen" bei der Spüle in meinem Spiel) auszugeben. Wie kriegich die Standart "Falsch" Sätze für Items
2. Was muss ich tun damit man mit jedem Mauszeiger laufen kann? Also dass mein Charakter jedesmal wenn man mit z.B. look oder interact Mauszeiger auf ein nicht-hotspot objekt klickt er sich dorthin bewegt (a 'la Lucasarts). Als Interface benutze ich derzeitig noch das Default Interface.
3. Gibt es eine Möglichkeit im Room Editor zu zoomen (um Walkable Areas etc. festzulegen)?
Ich arbeite mit einer sehr hohen Desktop Auflösung aber da mein Spiel 640x480 ist ist es schwer Details herauszuarbeiten. Eine Maske möchte ich nicht jedesmal Extra erstellen müssen.


So das wären alle meine Fragen fürs erste.
Sollte das ganze schon anderenorts beantwortet sein bitte ich zu entschuldigen, bin auf meiner Suche nur auf nicht 3.0 Erklärungen gestoßen.
Danke für die Hilfe im Voraus.

Cze
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Ein paar Anfänger Fragen [AGS 3.0]

Beitrag von KhrisMUC »

3. Ist am einfachsten zu beantworten: leider nein.

1. Du suchst nach unhandled_event. Schau in der Hilfe bei predefined global functions oder so ähnlich.
2. Du müsstest walkTo-Koordinaten für Objekte und Charaktere festlegen. Außerdem soll das Hinlaufen wahrscheinlich nicht blockend sein, oder? D.h. der Spieler klickt mit Interact auf die Tür, soll aber durch nochmaliges Klicken abbrechen können, nehme ich an (eben wie bei Lucasarts). Da wirds jetzt wirklich kompliziert.
Mein Vorschlag: falls Du irgendwann sowieso zum LA-9-Verben-GUI umsteigen willst, mach es lieber sofort und hol Dir ein aktuelles Starterpack auf maniac-mansion-mania.de.
Es gibt zwar noch keines speziell für 3.0, aber die einfacheren sollten problemlos laufen.
Dann hast Du nämlich die komplette Palette der Möglichkeiten, angefangen mit nicht-blockendem Hinlaufen zu Objekten über die bekannte Befehlszeile und fertige GUIs bis hin zu ausführlichen Tutorials und beantworteten Einsteigerfragen im Technik-Forum der Seite.

Alternativ: Frage 2 taucht immer wieder auf und wurde schon öfters im AGS-Forum behandelt. Es ist auch möglich, den Code für nicht-blockendes Hinlaufen aus den MMM-Starterpacks zu ziehen, das wird ebenfalls im AGS-Forum irgendwo erklärt.

Für den Anfang würde ich aber fast vorschlagen, dass Du einfach vor die "interact door"-Befehle ein "player.Walk(300, 140, eBlock);" setzt. Einarbeitung ist wichtig; sich als Anfänger an das Lösen komplexerer Programmierprobleme zu machen eher nicht zu empfehlen.
Use gopher repellent on funny little man
TheCze
Frischling
Frischling
Beiträge: 2
Registriert: 27.03.2008, 14:30

Re: Ein paar Anfänger Fragen [AGS 3.0]

Beitrag von TheCze »

Das mit dem walkto habe ich anders gemeint.
in LA kann man mit jedem Mauszeiger laufen, egal was für eine Interaktions Art (Ziehe, Benutze, Gib) angewählt ist sofern man nicht auf einen Hotspot klickt.

Somit entfällt dass nervige Wechseln zum Walk-To Mauszeiger (den es bei LA ja gar nicht gibt).

Ich habe mir die MMM Starterpacks bereits angeguggt, aber abgesehn davon dass die Auflösung falsch für mich ist möchte ich auch gern die Grafik komplett selbst machen.
Mein fertiges GUI soll vom Stil her wie bei Sam&Max sein. (Also ähnlich dem Default, nur eben das man mit jeder Zeigerart wie auch in S&M laufen kann).


Danke für die Hilfe, werde mir dass mit dem unhandled_event jetzt mal anguggen.


edit: noch ne Kleinigkeit.
Mir ist aufgefallen dass in den Tutorials player.AddInventory verwendet wird.
Ist player eine global gültige Variable die immer auf den aktuellen Spielcharakter zeigt und ich könnte z.B. auch player.Say schreiben?

edit2: wie genau muss ich das unhandled event den anwenden?
habe jetzt in die global asc reingeschrieben:

function unhandled_event(1, 3)
{
cEgo.Say("Das kann ich nicht damit benutzen");
}

funktioniert leider gar nicht, ist das ne String Variable die ich verändern kann und die Zahlen werden als Arrays gehandelt oder wie?
Benutzeravatar
gff
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 802
Registriert: 09.03.2004, 18:49
Wohnort: Ge
Kontaktdaten:

Re: Ein paar Anfänger Fragen [AGS 3.0]

Beitrag von gff »

Mir ist aufgefallen dass in den Tutorials player.AddInventory verwendet wird.
Ist player eine global gültige Variable die immer auf den aktuellen Spielcharakter zeigt und ich könnte z.B. auch player.Say schreiben?
Ja,das geht.Player steht für den Hauptcharakter.Du könntest stattdessen auch schreiben: character[ego].say(""BlaBla);
Je nachdem wie Deine Figur heißt^^
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Ein paar Anfänger Fragen [AGS 3.0]

Beitrag von KhrisMUC »

Achso, dann würde ich in der on_mouse_click im global script Folgendes machen:

Code: Alles auswählen

  if (button == eMouseLeft) {
    if (GetLocationType(mouse.x, mouse.y) == eLocationNothing &&
        (mouse.Mode == eModeInteract || mouse.Mode == eModeTalkto))
      player.Walk(mouse.x, mouse.y);

    ProcessClick(...)    // wie schon vorhanden
  ...
Ist player eine global gültige Variable die immer auf den aktuellen Spielcharakter zeigt
Ganz genau, deswegen kann man auch nicht stattdessen character[ego] (bzw. cEgo / character[EGO]) schreiben, da player jederzeit wechseln kann.

Unhandled_event wird so definiert:

Code: Alles auswählen

function unhandled_event(int what, int type) {
  if (what == 1 && type ==3) player.Say("Das kann ich nicht damit benutzen");
  ....
}
Use gopher repellent on funny little man
pikubik
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 76
Registriert: 09.04.2006, 17:51
Kontaktdaten:

Re: Ein paar Anfänger Fragen [AGS 3.0]

Beitrag von pikubik »

die 2. frage wird hier perfekt beantwortet ;)

(funktioniert auch unter ags 3.0, zumindest bei mir..)
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Ein paar Anfänger Fragen [AGS 3.0]

Beitrag von KhrisMUC »

Ach, das war ja sogar hier :D
Use gopher repellent on funny little man
Antworten