Autor Thema: GUI-Button ausschalten?  (Gelesen 3071 mal)

Mister L

  • Boss der T.I.A.
  • Globaler Moderator
  • Ehrwürdiger Tentakel
  • *****
  • Beiträge: 3113
  • Geschlecht: Männlich
  • "R.I.P. Clever & Smart † 1958 -2023"
    • Profil anzeigen
    • Maniac Mansion - Night of the Meteor
GUI-Button ausschalten?
« 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...  :-\

Timer

  • volljähriger Tentakel
  • *****
  • Beiträge: 763
  • Geschlecht: Männlich
    • ICQ Messenger - 275798409
    • AOL Instant Messenger - commandertimer
    • Profil anzeigen
    • Meine Seite
    • E-Mail
Re: GUI-Button ausschalten?
« Antwort #1 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...

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: GUI-Button ausschalten?
« Antwort #2 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;
  ...

Rayman

  • Dott-MMM-Entwickler
  • Midlife Crisis Tentakel
  • **
  • Beiträge: 1580
    • Profil anzeigen
Re: GUI-Button ausschalten?
« Antwort #3 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.

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: GUI-Button ausschalten?
« Antwort #4 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.