Autor Thema: Mehrfachdialoge Deluxe :-)  (Gelesen 2834 mal)

blount

  • volljähriger Tentakel
  • *****
  • Beiträge: 563
    • Profil anzeigen
    • Maniac Wiki
Mehrfachdialoge Deluxe :-)
« am: 13. April 2010, 00:55:21 »
Ich wüsste gerne wie ich Mehrfachdialoge anlege. Konkret meine ich damit:

- Schau an "Radio" - Antwort: Es ist ein altes Radio ohne Funktion
- Schau an "Radio" - Antwort: Wie gesagt es ist ein altes Radio
- Schau an "Radio" - Antwort: Es ist und bleibt ein altes Radio
- Schau an "Radio" - Antwort: Ich sag dazu nix mehr!
- Benutze Lichtschalter (Licht geht aus (weiß wie das geht))
- Schau an "Radio" - Antwort: Es ist zu Dunkel um etwas zu sehen, aber ich denke das müsste das Radio sein.

im AT Forum steht etwas in der Art, das aber nicht wirklich Mehrfach Dialoge darstellt (da werden objekte an und abgeschlatet, aber ich will ja für ein Objekt bzw. Hotspot mehrere Dialoge machen).

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2682
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: Mehrfachdialoge Deluxe :-)
« Antwort #1 am: 13. April 2010, 08:06:58 »
mach dir eine globale int variable deren wert die anzahl der ausgeführten "schau an radio" speichert
beim A_LOOK_AT überprüfst du dann ganz einfach diese variable mit if else auf alle möglichen zustände und gibst je nach wert einen anderen kommentar
und für das licht machst du eine globale bool oder überprüfst irgendwie sonst den zustand des lichts

zB
if(gl_bLightOff)    // ist das licht ausgeschaltet?
  player.Say("Es ist zu Dunkel um etwas zu sehen, aber ich denke das müsste das Radio sein.");
else if(gl_iLookAtRadio == 0)    // erstes mal schau an
  player.Say("Es ist ein altes Radio ohne Funktion.");
else if(gl_iLookAtRadio == 1)   // zweites mal schau an
  player.Say("Wie gesagt es ist ein altes Radio.");
else if(gl_iLookAtRadio == 2)   // drittes mal schau an
  player.Say("Es ist und bleibt ein altes Radio.");
else if(gl_iLookAtRadio >= 3)   // alle schau an ab dem dritten mal
player.Say("Ich sag dazu nix mehr!");
gl_iLookAtRadio++;

ich weiß jetzt nicht, ob AGS den switch-befehl unterstützt, aber wenn, dann kommt gleich ein post von jemand anders der sich über den if-else code beschwert :P ;)
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

rulaman

  • Moderator
  • Teenie Tentakel
  • *****
  • Beiträge: 356
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Mehrfachdialoge Deluxe :-)
« Antwort #2 am: 18. April 2010, 21:56:14 »
AGS kann noch keinen switch-Befehl, von daher...

Ich persönlich würde noch die Befehle klammern.

if(gl_bLightOff)    // ist das licht ausgeschaltet?
{
  player.Say("Es ist zu Dunkel um etwas zu sehen, aber ich denke das müsste das Radio sein.");
}
else if(gl_iLookAtRadio == 0)    // erstes mal schau an
{
  player.Say("Es ist ein altes Radio ohne Funktion.");
}
else if ...

Fügt man später noch einen Befehl hinzu, läuft man nicht Gefahr den Zweiten nicht wie gewünscht ausgeführt zu bekommen, besonders beim letzten else.
Außerdem erhöht es die Übersichtlichkeit. Aber das muss jeder selber wissen.
Baden ist die einzige Möglichkeit, den Dreck der Füße an den Hals zu bekommen.

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Mehrfachdialoge Deluxe :-)
« Antwort #3 am: 20. April 2010, 09:11:47 »
Da gabs auch mal ein praktisches Modul:
http://www.bigbluecup.com/yabb/index.php?topic=27947.0