Autor Thema: Abfrage bei Rechtsklick  (Gelesen 2648 mal)

Kruttan

  • Dott-MMM-Entwickler
  • Teenie Tentakel
  • **
  • Beiträge: 260
  • Geschlecht: Männlich
    • Profil anzeigen
Abfrage bei Rechtsklick
« am: 26. Januar 2013, 16:48:08 »
Ich habe eine Prozedur, die immer dann durchlaufen soll, wenn der Spieler etwas macht - es sei denn, er schaut einen Gegenstand an.

Meine Idee war, das einfach mit

[ags]if (UsedAction(A_LOOK_AT) == false) { [/ags]

zu überprüfen. Es klappt auch soweit, allerdings nur beim Linksklick. Wenn ich ein Objekt per Rechtsklick anschaue, gilt anscheinend (UsedAction(A_LOOK_AT) == false)...
Was muss ich da abprüfen? Habs jetzt schon mit UsedAction(A_DEFAULT) probiert, aber auch das funzt nicht (und sollte auch nicht sein, da die DEFAULT-ACTION ja auch was anderes als A_LOOK_AT sein kann).

Bin da gerade etwas ratlos...


JackLD

  • Tentakelschleim
  • *
  • Beiträge: 4
  • LD steht für Qualität
    • Profil anzeigen
Re: Abfrage bei Rechtsklick
« Antwort #1 am: 27. Januar 2013, 10:59:49 »
Mal ein ganz einfacher Gedanke, vielleicht isses das ja schon: Vielleicht macht AGS keine silent conversion, wenn die Funktion nicht "false" sondern "0" zurück liefert. Dann wäre dieses Verhalten nachvollziehbar, denn "0"!="false". (muss zugeben, ich habe die Formulierung "x==False" auch noch nie gelesen geschweige denn benutzt. AGS kann das aber durchaus als "x ist GENAU false" interpretieren).

Daher der Vorschlag, ersetz es doch mal mit

[ags]if(!UsedAction(A_LOOK_AT)) {[/ags]

AGS prüft dann nicht die (zugegeben logisch äquivalente) Behauptung, ob der Ausdruck genau False ist, sondern nur, ob er irgendwas Anderes als True (bzw. mit True gleichwertiges, wie "1") ist.

Ist wie gesagt einfach mal ins Blaue geraten, anders kann ich mir nicht erklären.

Gruß
JackLD

Kruttan

  • Dott-MMM-Entwickler
  • Teenie Tentakel
  • **
  • Beiträge: 260
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Abfrage bei Rechtsklick
« Antwort #2 am: 27. Januar 2013, 13:19:41 »
Ne, das liefert genau das gleiche hab es eben ausprobiert. Es muss irgendwie am Klick liegen.

Wenn ich mit links auf "Schau an" klicke und dann auf das Objekt dann gilt (!UsedAction(A_LOOK_AT)) nicht, wie es ja auch zu erwarten wäre.
Wenn ich mit rechts auf das Objekt klicke und "Schau an" ausgeführt wird, dann tritt (!UsedAction(A_LOOK_AT)) ein. Vielleicht ist der Rechtklick eine andere Aktion... ich habe keine Ahnung...

--edit--

Ich hab jetzt folgendes Herausgefunden: Wenn ich mit einem Rechtsklick etwas anschaue, gilt (UsedAction(A_LOOK_AT)) nicht. Stattedessen liefert (UsedAction(A_WALK_TO)) eine wahre Bedingung. Das ist allerdings nur im Global Script der Fall, in der Hotspot-Abfrage im Raum sind die Werte dann wieder richtig... Da ich meine Abfrage aber im Global-Script mache, ist das immer noch ein Problem...
« Letzte Änderung: 31. Januar 2013, 10:25:26 von Kruttan »

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Abfrage bei Rechtsklick
« Antwort #3 am: 04. Februar 2013, 19:30:17 »
Interessant wäre, WO Du die Abfrage machst.
Wenn es am Anfang von on_mouse_click ist, funktioniert es mittels UsedAction nicht, da bei einem Rechtsklick die Variable used_action erst unmittelbar vor ProcessClick() gesetzt wird.

Kruttan

  • Dott-MMM-Entwickler
  • Teenie Tentakel
  • **
  • Beiträge: 260
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Abfrage bei Rechtsklick
« Antwort #4 am: 04. Februar 2013, 20:12:26 »
Interessant wäre, WO Du die Abfrage machst.
Wenn es am Anfang von on_mouse_click ist, funktioniert es mittels UsedAction nicht, da bei einem Rechtsklick die Variable used_action erst unmittelbar vor ProcessClick() gesetzt wird.

Genau daran liegt es wohl. Danke! Ist halt ne Funktion im GlobalScript, die vor on_mouse_click kommt. Der der Links-Klick trotzdem funktioniert hat, hab ich mir dabei jetzt gedacht.