Mit D2NT Monster anklicken

12/13/2011 15:47 tonk1#1
Die Prozedur ist für nen Hammer mehr oder weniger:
1. Monster Position wird gesucht und gefunden.
2. Char wird auf diese Position +/- 1 gebracht.
3. Char greift an, oder das Monster ist schon auf ner anderen Position, dann gehe zu 1.

Für nen Hammer loht es sich doch meistens viel mehr, das Monster selbst für den tele anzuklicken, dann landet man auch in 99% der Fälle wirklich auf dem Monster und nicht auf der Position, auf der das Monster vor 2 Sekuden war.
Aber geht das?
12/13/2011 16:10 Muddy Waters#2
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
12/13/2011 18:10 cx23#3
kann man das auch nur für die bosse machen? dia ball etc
12/14/2011 09:06 Muddy Waters#4
Quote:
Originally Posted by cx23 View Post
kann man das auch nur für die bosse machen? dia ball etc
Warum nicht? Wie und wo du welche Funktionen aufruffst, ist doch ganz allein dir überlassen. Das ist ja gerade das schöne an frei zugänglichem JavaScript Code. ;)