Quote:
Originally Posted by Medix
NTAttack
Code:
function NTA_IsValidMonster(monster)
{
var _classid;
if(monster.hp <= 0 || monster.mode == 0 || monster.mode == 12)
return false;
_classid = monster.classid;
if(((_classid >= 110 && _classid <= 113) || _classid == 608) && monster.mode == 8) // ignore flying scavengers
return false;
if(_classid == 68 && monster.mode == 14) // ignore burrowing maggots
return false;
if(_classid >= 258 && _classid <= 263 && monster.mode == 14) // ignore submerged WaterWatchers
return false;
if(monster.GetState(53) || monster.GetState(96)) // Conversion, Revive
return false;
return true;
}
so jetzt einfach die id von den ghosts raussuchen und adden
|
Irgendwie löst das aber das eigentliche Problem nicht, es umgeht es einfach.
Das mit dem Timer sollte auch leicht umzusetzen sein. Irgendwo in der NTAttack.ntj müsstest du mal die entsprechende Attack Funktion suchen.
Typischerweise wird dort ein Monster Objekt instantiiert, danach kommt in irgend einer Weise eine While-Schleife, in der dann als Schleifenbedingung sowas wie
monsterunit.GetNext() steht. du musst dir im Grunde nur anschauen wie nun die einzelnen Monster angegriffen werden, vermutlich auch in einer While-Schleife, wobei vermutlich vermutlich solange angegriffen wird, solange das Monster ein gültiges Ziel ist (also beispielsweise noch lebt).
Genau vor dieser Schleife speicherst du nun den aktuellen Tick Count in einer Variable. In die Bedingung der "Angriffs"-While-Schleife kommt nun eine zusätzliche Bedingung, nämlich ganz einfach die Differenz von aktuellem Tick Count und dem zuvor gespeicherten Wert.
Dies ist dann die Schleifenlaufzeit in Millisekunden, die du dann nach belieben mit einem vorher definiertem Referenzwert (z.B. 10 Sekunden) vergleichen kannst.
Das war einmal die Kurzform, ich hoffe die Umsetzung schaffst du selbst, ich habe gerade weder Zeit noch Lust das zu implementieren.
Lg
Muddy