Rechtsklick auf Inventar

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
AlphaBolley
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 53
Registriert: 07.03.2006, 15:52
Wohnort: Iserlohn
Kontaktdaten:

Rechtsklick auf Inventar

Beitrag von AlphaBolley »

Wie der Titel schon sagt:
Ich würde im Script gerne den rechten Mausklick auf ein Inventar-Item abhandeln.
In den General Game Settings ist dafür ja auch extra ein Schalter vorhanden, doch selbst nach der Lektüre der Hilfe verstehe ich nicht, wo und wie ich im Script dann auf den Mausklick reagieren kann.
100,5% Sinnlos
Benutzeravatar
Campusanis
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 108
Registriert: 06.01.2003, 13:22
Kontaktdaten:

Beitrag von Campusanis »

Du schreibst einfach in die Funktion "on_mouse_click"

Code: Alles auswählen

else if (button == eMouseRightInv){
...
}
Vorausgesetzt, du hast das Häkchen aktiviert. ;)
Meintest du das?
Benutzeravatar
AlphaBolley
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 53
Registriert: 07.03.2006, 15:52
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von AlphaBolley »

Aso. Natürlich.

Irgendwo war mir nicht klar, dass das Event eMouseRightInv dann in Button gespeichert ist.

Werd's gleich mal ausprobieren, aber sollte klappen.

Und noch was:
Wie registiere ich, dass der Mauszeiger gerade über einem Inventar-Symbol ist, damit ich auch entsprechendes Button-Highlighting beim "Schaue"-GUI-Button durchführen kann?

EDIT:
Und noch was zum ursprünglichen Problem:
Wenn ich die Inventar-Klicks im Script handle, funktioniert dann der Aufruf

Code: Alles auswählen

ProcessClick(mouse.x, mouse.y, MODE_LOOK);
eigentlich nicht, so wie es bei Hotspots etc. gehandhabt wird?

Muss ich entsprechend das Inventar-Handling nun komplett selber schreiben?
100,5% Sinnlos
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

1.

Code: Alles auswählen

function repeatedly_execute() {

  InventoryItem inv=InventoryItem.GetAtScreenXY(mouse.x, mouse.y);

  if (inv!=null) {
    // Maus befindet sich über inv
  }
}
2.ProcessClick verhält sich so, als hätte man "durch alle GUIs durch" direkt auf den screen geklickt. Wenn Du trotzdem AGS ein InvItem anklicken lassen willst, geht das so:

Code: Alles auswählen

iBuch.RunInteraction(eModeLookAt);
Use gopher repellent on funny little man
Benutzeravatar
AlphaBolley
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 53
Registriert: 07.03.2006, 15:52
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von AlphaBolley »

Danke für die Lösungen.

Punkt 2) hab ich gestern abend schon mit ner eigenen Click-Implementierung gelöst.
Hat mich zwar mehrere Stunden gekostet, alles umzuwerfen, dafür ist es übersichtlicher und einfacher als der Weg über RunInteraction.
Aber immer schön zu wissen, dass es trotzdem gegangen wäre.
100,5% Sinnlos
Antworten