Klar geht das, ein Monster ist de Fakto auch nur eine Unit, genauso wie etwa eine Kiste oder ein NPC in der Stadt, welche man ja auch anklickt.
Die zu verwendende Funktion hat den folgenden Prototyp:
Code:
NTC_DoClick(button, shift, x, y)
Dabei entspricht button dem zu verwenden Mausbutton und Shift dem Zustand der Shift Taste beim Klicken.
Die hierfür zu verwendenden Werte sind in der common library als Konstanten definiert:
Code:
const NTC_CLICK_LDOWN = 0;
const NTC_CLICK_LHOLD = 1;
const NTC_CLICK_LUP = 2;
const NTC_CLICK_RDOWN = 3;
const NTC_CLICK_RHOLD = 4;
const NTC_CLICK_RUP = 5;
const NTC_SHIFT_NONE = 0;
const NTC_SHIFT_HOLD = 1;
Im Zuge der Code Nachvollziehbarkeit sollten beim Aufruf darum auch immer nur diese Konstanten verwendet werden, niemals absolute Werte!
Der dritte und vierte Parameter entspricht den Koordinaten, die angeklickt werden sollen. Schaut man sich die Implementierung der Funktion an, stellt man aber fest, dass es verschiedene Möglichkeiten für den Aufruf gibt. Wenn man so will Überladungen, auch wenn das definitiv der falsche Begriff ist.
So lässt sich für den Parameter
x auch eine Unit übergeben, welche dann angeklickt wird - also genau das, was du suchst.
Hier noch ein Beispiel für den Rechtsklick auf irgendeine in der nähe befindliche Monster Unit:
Code:
var _monster = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_monster)
NTC_DoClick(NTC_CLICK_RDOWN, NTC_SHIFT_NONE, _monster);
LG
Muddy