Autor Thema: Geben von Gegenständen  (Gelesen 3640 mal)

Timer

  • volljähriger Tentakel
  • *****
  • Beiträge: 763
  • Geschlecht: Männlich
    • ICQ Messenger - 275798409
    • AOL Instant Messenger - commandertimer
    • Profil anzeigen
    • Meine Seite
    • E-Mail
Geben von Gegenständen
« 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?

Mister L

  • Boss der T.I.A.
  • Globaler Moderator
  • Ehrwürdiger Tentakel
  • *****
  • Beiträge: 3106
  • Geschlecht: Männlich
  • "R.I.P. Clever & Smart † 1958 -2023"
    • Profil anzeigen
    • Maniac Mansion - Night of the Meteor
Re: Geben von Gegenständen
« Antwort #1 am: 20. Mai 2007, 13:46:50 »
Jepp, dann darfst du bei "any click on character" kein "else unhandled ();" mehr verweden.  8)

Timer

  • volljähriger Tentakel
  • *****
  • Beiträge: 763
  • Geschlecht: Männlich
    • ICQ Messenger - 275798409
    • AOL Instant Messenger - commandertimer
    • Profil anzeigen
    • Meine Seite
    • E-Mail
Re: Geben von Gegenständen
« Antwort #2 am: 20. Mai 2007, 18:25:29 »
Ah, danke! Denke, die Episode ist nun bald bereit zur Veröffentlichung. 8) :)

Mister L

  • Boss der T.I.A.
  • Globaler Moderator
  • Ehrwürdiger Tentakel
  • *****
  • Beiträge: 3106
  • Geschlecht: Männlich
  • "R.I.P. Clever & Smart † 1958 -2023"
    • Profil anzeigen
    • Maniac Mansion - Night of the Meteor
Re: Geben von Gegenständen
« Antwort #3 am: 20. Mai 2007, 19:10:11 »
Na, dann rückt ja das Ende der 6. Staffel langsam aber sicher näher!  ;D

Timer

  • volljähriger Tentakel
  • *****
  • Beiträge: 763
  • Geschlecht: Männlich
    • ICQ Messenger - 275798409
    • AOL Instant Messenger - commandertimer
    • Profil anzeigen
    • Meine Seite
    • E-Mail
Re: Geben von Gegenständen
« Antwort #4 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...
« Letzte Änderung: 20. Mai 2007, 20:49:52 von Timer »

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Geben von Gegenständen
« Antwort #5 am: 21. Mai 2007, 05:06:30 »
Für den Fall, das jemand anderes das mal braucht/liest:

if (player.InventoryQuantity[iZeug.ID]>0) ...

Siel

  • Teenie Tentakel
  • ****
  • Beiträge: 389
  • Maybe a miracle will occur...
    • Profil anzeigen
Re: Geben von Gegenständen
« Antwort #6 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.
Die Vergangenheit ist im Nachhinein meist eine schlechte Idee.

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Geben von Gegenständen
« Antwort #7 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();
    }

Siel

  • Teenie Tentakel
  • ****
  • Beiträge: 389
  • Maybe a miracle will occur...
    • Profil anzeigen
Re: Geben von Gegenständen
« Antwort #8 am: 24. August 2007, 20:17:44 »
Danke sehr!
Damit hats funktioniert!
Damit steht meinem eigenen MMM-Adventure nichts mehr im Wege!
Die Vergangenheit ist im Nachhinein meist eine schlechte Idee.