Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Thema gestartet von: Timer am 20. Mai 2007, 12:36:33

Titel: Geben von Gegenständen
Beitrag von: Timer am 20. Mai 2007, 12:36:33
Ich habe ein Problem (AGS 2.72). Ich habe in meiner Episode einen Charakter eingebaut, dem man auch etwas geben können sollte... Nur bereitet das Probleme. Wenn ich das Script in "Use Inventory on Charakter" reinschreibe, funktioniert es soweit, dass der Spielercharakter seinen Kommentar bei "gib" und bei "benutze...mit" sagt. Allerdings geht er dann zur Person hin und sagt einen Stardardkommentar. Wenn ich das Script unter "any click on Charakter" reinschreibe, reagiert der Spielercharakter nur auf "benutze...mit". Ich hätte aber gerne, dass man beides verwenden kann und dass er nur einmal einen Kommentar abgibt. Hat jemand eine Lösung für mich?
Titel: Re: Geben von Gegenständen
Beitrag von: Mister L am 20. Mai 2007, 13:46:50
Jepp, dann darfst du bei "any click on character" kein "else unhandled ();" mehr verweden.  8)
Titel: Re: Geben von Gegenständen
Beitrag von: Timer am 20. Mai 2007, 18:25:29
Ah, danke! Denke, die Episode ist nun bald bereit zur Veröffentlichung. 8) :)
Titel: Re: Geben von Gegenständen
Beitrag von: Mister L am 20. Mai 2007, 19:10:11
Na, dann rückt ja das Ende der 6. Staffel langsam aber sicher näher!  ;D
Titel: Re: Geben von Gegenständen
Beitrag von: Timer am 20. Mai 2007, 20:34:33
Dann schreib ich hier doch gleich nochmal eine Frage rein: Um zu überprüfen, ob der Spielercharakter einen Gegenstand hat, kann man das mit player.inv == 3 bzw. player.inv[3] == true machen?

Edit: Erledigt...
Titel: Re: Geben von Gegenständen
Beitrag von: KhrisMUC am 21. Mai 2007, 05:06:30
Für den Fall, das jemand anderes das mal braucht/liest:

if (player.InventoryQuantity[iZeug.ID]>0) ...
Titel: Re: Geben von Gegenständen
Beitrag von: Siel am 24. August 2007, 14:46:38
Habe auch eine Frage zum Thema Gegenstände geben:
Was muss ich ins Skript eines Charakters schreiben, damit er nur dann einen Gegenstand annimmt, wenn man denn Befehl (Gib x an y) gibt und nicht allgemein wenn man ihm etwas zu geben versucht. Habs nämlich in keinem Tutorial oder in der Anleitung für das AGS gefunden. Wenn ich das nur blöde Übersehen habe bitte ich um Nachsicht, da ich das Programm erst seit lurzem haben und mich auch in den unendlichen weiten dieses Forums noch nicht so aus kenne.

Wäre nett wen mir jemand helfen könnte.
Titel: Re: Geben von Gegenständen
Beitrag von: KhrisMUC am 24. August 2007, 19:41:58
Das ist leider ein etwas kompliziertes Thema, da die Starterpacks nach wie vor so ausgelegt sind, dass die Charaktere 0-6 Gegenstände kommentarlos austauschen.

Folgendes sollte klappen:

1. Ersetze im global script in der Funktion on_mouse_click den Code für den linken Mausbutton durch dieses hier:
  else if (button == LEFT)
  {
    if (GlobalCondition (2) || GlobalCondition (3) || GlobalCondition (4))
    {
      // SetMode("default");
    }
    else if (GSagsusedmode == 9)
    {
      // walk to
      SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
      if (IsInteractionAvailable (mouse.x, mouse.y, GSagsusedmode)) ProcessClick (mrx - GetViewportX (), mry - GetViewportY (), GSagsusedmode);
      else ProcessClick (mrx - GetViewportX (), mry - GetViewportY (), MODE_WALK);
    }
    else if ((GSagsusedmode == MODE_TALK) && (IsInteractionAvailable (mouse.x, mouse.y, GSagsusedmode) == 1) && (GetCharacterAt (mouse.x, mouse.y) < 7))
    {
      SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
      if (GoToCharacter (GSlocid, 0, 1, 2)) RunCharacterInteraction (GSlocid, GSagsusedmode);
      SetAction (A_DEFAULT);
    }
    else
    {
      UpdateActionBar ();
      SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
      ProcessClick (mrx - GetViewportX (), mry - GetViewportY (), GSagsusedmode);
      SetAction (A_DEFAULT);
    }
  }

2. Dann wie mit den anderen Verben in "any click on character":
    else if (UsedAction(A_GIVE_TO)) {
      if (player.ActiveInventory==iItem) {
        // bla
      }
      else Unhandled();
    }
Titel: Re: Geben von Gegenständen
Beitrag von: Siel am 24. August 2007, 20:17:44
Danke sehr!
Damit hats funktioniert!
Damit steht meinem eigenen MMM-Adventure nichts mehr im Wege!