Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Thema gestartet von: Chief_Wiggum44 am 20. August 2007, 00:24:26

Titel: Anderer Text statt "Benutze mit" bei A_USE
Beitrag von: Chief_Wiggum44 am 20. August 2007, 00:24:26
Hallo,

ich habe Maniac Mansion Mania gerade erst vor ein paar Tagen entdeckt und war ganz hinundweg. Wie konne ich das in den über 2 Jahr seitdem ich sowohl Adventure-Treff als auch AGS-Seite kenne und regelmäßig besuche nur übersehen? Ich möchte allen gratulieren, die es geschafft haben so etwas aus dem Nichts aufzuziehen und zu etablieren!

Natürlich habe ich auch sofort, nachdem ich ein paar Episoden gespielt habe, angefangen ein eigenes Spiel zu machen. (Ich fürchte allerdings, dass ich mir mit dem Thema meiner Episode ein bisschen zu viel aufgehalst habe.)

Ich bin jetzt auch schon das ein oder andermal beim programmieren vor einem Problem gestanden, hab es aber immer versucht selbst zu lösen.

Jetzt stehe ich allerdings vor dem Problem, dass ich bei bestimmten Hotspots statt dem "Benutze mit" Text im GUI-Textfeld etwas anderes stehen haben will zB.: statt "Benutze Fensterbank" "Häng dich an Fensterbank". Wahrscheinlich ist die Lösung für das Problem ganz einfach, aber ich habe jetzt irgendwie keine Lust mich mit dem vorprogrammierten GUI Text im Global Script zu befassen. Da muss man glaub ich viel Zeit investieren um das zu verstehen.
Kann mir bitte jemand bei meinem Problem behilflich sein? Der Helfer wird (hoffentlich einmal) mit einer Episode von mir belohnt.  ;)
Titel: Re: Anderer Text statt "Benutze mit" bei A_USE
Beitrag von: KhrisMUC am 20. August 2007, 19:30:13
Such im global script die Funktion "TranslateAction".

Dort stehen diese Zeilen:
  else if (action == A_USE)
  {
    if (StrLen (item) > 0)        StrCopy (result, "Benutze !s mit %s");
    else                          StrCopy (result, "Benutze %s");
  }
Stattdessen verwendest Du:
  else if (action == A_USE)
  {
    if (StrLen (item) > 0)        StrCopy (result, "Benutze !s mit %s");
    else {
      if (StrComp(objekt, "Fensterbank")==0) StrCopy(result, "Häng dich an %s");
      else StrCopy (result, "Benutze %s");
    }
  }
Titel: Re: Anderer Text statt "Benutze mit" bei A_USE
Beitrag von: Fatal B am 20. August 2007, 20:15:03
Und wie muss man das Skript verändern wenn man bei einen Inventargegenstand, was anderes zu stehen haben will?
Titel: Re: Anderer Text statt "Benutze mit" bei A_USE
Beitrag von: FrasierCrane am 20. August 2007, 20:56:58
Vielen Dank, funktioniert prächtig.
Aber diese vorprogrammierte GUI ist mir immer noch ein Rätsel. Gibt's dafür vielleicht ein Tutorial oder einen Text, der das Ganze erklärt?
Titel: Re: Anderer Text statt "Benutze mit" bei A_USE
Beitrag von: KhrisMUC am 20. August 2007, 21:05:24
@Fatal B:
Das geht ganz genauso. Komplizierter wirds, wenn zwei Sachen den gleichen Namen haben.

@FrasierCrane:
Speziell zum GUI nicht, aber viele der Funktionen sind hier erklärt:
http://www.adventure-treff.de/forum/viewtopic.php?t=7529
Titel: Re: Anderer Text statt "Benutze mit" bei A_USE
Beitrag von: LilaQ am 08. September 2007, 06:05:43
Wie geht das denn wenn die Objekte den gleichen Namen haben? Gibt es eine ObjectID zum eindeutigen identifizieren?

Mfg
LilaQ
Titel: Re: Anderer Text statt "Benutze mit" bei A_USE
Beitrag von: KhrisMUC am 08. September 2007, 16:28:15
Sowas ginge:
  int r=player.Room;
  Object*ob=Object.GetAtScreenXY(mouse.x, mouse.y);
  int o=-1;
  if (ob!=null) o=ob.ID;

  // Abfrage:
  if (r==2 && o==3)   // Objekt 3 in Raum 2
    StrCopy(result, "...");
Titel: Re: Anderer Text statt "Benutze mit" bei A_USE
Beitrag von: LilaQ am 10. September 2007, 00:37:21
Raffiniert :)