Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Thema gestartet von: Mister L am 18. Oktober 2007, 15:16:46

Titel: GUI-Button ausschalten?
Beitrag von: Mister L am 18. Oktober 2007, 15:16:46
Ich möchte im Verben-GUI einen Button zeitweilig abschalten. (Etwa so wie der 'Fight'-Button bei Indy3, der nur bei Bedarf auftaucht.)
Gibt es eine solchen Befehl? Hab schon die AGS-Hilfe durchsucht, aber nix passendes gefunden...  :-\
Titel: Re: GUI-Button ausschalten?
Beitrag von: Timer am 18. Oktober 2007, 16:29:20
Wenn du dem Button einen Scriptnamen gibst, müsste es eigentlich ganz einfach mit "ButtonScriptName.Enabled = false;" gehen.
Komplizierter wird es allerdings, wenn man die Funktion per Rechtsklick aufrufen kann...
Titel: Re: GUI-Button ausschalten?
Beitrag von: KhrisMUC am 18. Oktober 2007, 18:36:25
Eventuell wäre GUIButton.Visible besser geeignet; es kommt drauf an, wie der abgeschaltete Button aussehen soll.
Um den Button auch MMM-technisch abzuschalten, reicht das aber nicht. Ich z.B. spiele ausschließlich mit den Shortcuts; die Buttons klicke ich fast nie an.

Entweder muss man also auch in on_key_press (am Ende in der while-Schleife) den Tastendruck abfangen, oder man baut gleich eine entsprechende Abfrage an den Anfang der Funktion SetAction ein:

function SetAction (int new_action){
  if (player_stumm && new_action==A_TALK_TO) return;
  ...
Titel: Re: GUI-Button ausschalten?
Beitrag von: Rayman am 28. Dezember 2008, 22:03:44
Wie kann ich in einer Episode die Tasten F1, F5, F8, Leertaste und Strg + C deaktivieren,
bzw die Options-GUIs? Ich will das die Speicher-, Lade-, Neustart-, und Pausen-Funktion zeitweilig ausbleibt.
Titel: Re: GUI-Button ausschalten?
Beitrag von: KhrisMUC am 28. Dezember 2008, 23:10:20
Anfang von on_key_press:

  int k = keycode;
  if (keys_disabled && (k == 3 || k == 32 || k == 363 || k == 366)) return;

Einfach keys_disabled auf true setzen, danach wieder auf false.