[D2BS] Necro Skript

11/15/2011 14:39 Tyon#1
Hallo,
der ein oder andere mag es vielleicht schon bemerkt haben aber das akutelle Necro Skript des NTBots was mit dem D2BS ausgeliefert wird ist ziemlich großer Mist was auch kein Wunder ist, da es nach Marke Copy & Paste aus YAMB aussieht.

Da muss was neues her.
Zurzeit bin ich noch am überlegen wie sich der Bot verhalten soll um das Maximum aus dem Necro rauszuholen.
Ein bisschen gewildert wurde auch schon so finde ich die Idee von Muddy, Decrypt auf gefährliche Monster zu casten, ziemlich nützlich (vor allem in Hardcore) und werde die wohl übernehmen. Das D2BS Skript passt dagegen den Fluch an die Anzahl der Minions an. Hat den Sinn, dass bei Kämpfen wo die Minions reihenweise sterben und keine Leichen in der Nähe sind statt bspw. AD Decrypt zu nehmen um den Kampf sicher nach Hause zu bringen.

Weiter stellt sich die Frage ob man Telestomp benutzt und wenn ja an welche Gegebenheiten anpasst. Denkbar wäre hier erst Telestomp zu benutzen, wenn die Armee steht und bei Akt Bossen grundsätzlich immer Telestomp zu benutzen.(Bei Baal knüppeln die Minions gerne mal auf den Klon oder die Tentakel.)

Am wichtigsten ist aber wohl in welcher Kombination der Bot die Armee hochzieht. Beim D2BS ist das zurzeit in der Attack Sequenz verankert und zwar (ganz ganz schlecht) nachdem CE gecastet wird. Dazu habe ich mir gedacht, dass man entweder CE komplett deaktiviert bis die Armee steht oder aber Minions hochzieht sobald eine solide Anzahl an Leichen vorhanden sind. (Die mit CE vorher geschaffen wurden)
In beiden Fällen kommt man wohl nicht drum herum den Bot in einem einfachen Skript (bei meinen Tests hat sich die Gräfin gut verkauft) die Chance zu geben die Armee aufzubauen.

Dabei habe ich bisher den Boner und den Poison Nekro komplett außer Acht gelassen. Beim Boner denke ich tut es das simple universelle Attack Script mit dem Zusatz der CE aber vom Poison Nekro habe ich gar keine Ahnung.

Habt ihr euch schon mit dem Skript befasst oder Ideen dazu wie so ein Nekro optimal agieren sollte?
Über Hilfe, Ideen und Vorschläge bin ich dankbar bevor ich die Gedanken in Javascript umsetze.

Grüße
11/15/2011 15:09 Muddy Waters#2
Nette Idee, würde dir auch bei der Umsetzung helfen, wobei ich frühestens am Wochenende wieder Zeit für sowas habe - erstmal muss die Hausarbeit fertig und abgegeben sein. :(

Das was ich in D2NT als fixe Idee umgesetzt hatte, könnte man in D2BS deutlich schöner gestalten. Dadurch dass sich die jeweiligen Verzauberungen eines Bossmonsters auslesen lassen, kann man sehr viel präziser sagen, ob ein Monster tatsächlich gefährlich ist oder nicht.
Generell lässt sich das alles besser und vom Aufbau her einfacher gestalten, allein schon, weil sich die Anzahl der vorhandenen Minions bequem über eine Core Funktion in Erfahrung bringen lässt, sodass eine geeignete, intelligente Funktion zum Beschwören der Minions sehr viel übersichtlicher ausfallen kann als mit D2NT. :)

Im Angriffsalgorithmus würde ich wie gehabt vorgehen und zunächst nach der nächstgelegenen geeigneten Leiche suchen, dann abhängig von der aktuellen Anzahl an Skeletten entweder letztere beschwören, oder aber zu CE bzw. der Vollständigkeit halber Poison Explosion greifen.

Danach sollte eine Fallunterscheidung folgen, aus der hervorgeht, ob etwaige aktive Angriffsskills gesetzt wurden. Ist dies der Fall, sollten die üblichen Reichweiten und Kollisionsbetrachtungen folgen und - sofern die derzeitige Position suboptimal ist - eine Berechnung der optimalen Angriffsposition zum Ziel erfolgen.
Ist dies nicht der Fall, sollte die derzeitige Position geprüft werden, um festzustellen, ob die Minions derzeit günstig stehen und sofern dies nicht der Fall ist, eine bessere Position eingenommen werden.

Alles in allem eigentlich sehr simpel und vom Aufwand her sehr überschaubar - ich denke das sollte sich machen lassen. :)

LG
Muddy

P.S.: Für die Hausfrauen unter uns: was genau meint Telestomp? :o
11/15/2011 15:30 Tyon#3
Telestomp bezeichnet eine Art des Teleports. Vergleichbar mit dem Hammerdin versucht der Charakter immer per Teleport auf dem aktuellen Ziel zu bleiben.
11/16/2011 08:24 kothie#4
ich hab zwar wenig ahnung vom programmieren, aber eine idee könnte ich evtl mit einbringen

hab grad nen necro leechfighter am laufen (muddys d2nt <3)
(mit dem ich übrigens keine probs hab bei eldritch zu starten und mit ner soliden anzahl summons in die town zu kommen, merc regelt)

ein prob (das du denke ich mit telestomp lösen willst) - sind die revives die verursachen das der necro mitsamt summons und merc wie ein fetter knödel auf einer stelle stehen bleiben, und nur angreifen was direkt vor die füße läuft

wenns möglich wäre könnte man ja evtl einbauen, das er nur bestimmte (meistens ziemlich schnelle) monster revive´d - sodass dieses prob gefixt wird, solang die minions sich bewegen können brauchste garkein telestomp (wobei das natürlich bei bossen trotzdem sinn macht)

edit: hoffe das kommt einigermassen verständlich rüber^^

würde natürlich auch gucken welche monster am besten als revives sind - spontan fallen mir nur die wraith viecher aus cs ein
11/16/2011 10:17 Tyon#5
Den Bug habe ich ganz vergessen, da ich keine Revives nutze.
Ab welcher Größe tritt der Bug denn auf?
Mir ist bekannt, dass die kleinen Viecher im Schinder und alles was fliegt den Bug nicht verursacht.
11/16/2011 21:10 Diablofarmer#6
wird meineswissens durch n schrittchen in eine beliebige Richtung oder shift+norm.attacke unterbunden, spiele aber für gewöhnlich keine Necros
11/16/2011 22:16 Muddy Waters#7
Ist doch egal, ich würde den Schritt zur Seite grundsätzlich einplanen, weil es einfach auch sicherer für den Char ist. Die Minions können schließlich besser einstecken, als das werte Herrchen. :)

Ob die Minions hängen kann man auch extrem leicht feststellen, indem man einfach die durchschnittliche Distanz dieser zum Char berechnet, oder alternativ das Kollisions Bitmuster der aktuellen Char Position mit 0x2100 (eventuell auch nur 0x2000, das müsste man testen) maskiert.

LG
Muddy
11/17/2011 08:00 D2_sid#8
Ich habe schon die letzte Ladder mit einem Necro gebottet, und auch in dieser Ladder habe ich einen. Wie auch kothi sind meine Programmiererfahrungen eher begrenzt (d.h. gar nicht vorhanden), aber ich denke, dass mir ein paar Sachen aufgefallen sind, die ich hier auf jeden Fall mit einbringen sollte.

Zu den Curses:
Egal mit welcher Skillung, der richtigen Curse zur richtigen Zeit kann wunder wirken. Mit meinem Summoner in der alten Ladder habe ich es bevorzugt große Gegnermengen mit Amplify Damage zu bearbeiten. In der Therorie sollte Decrepify grundsätzlich besser sein, aber, und das ist nicht zu unterschätzen, der Radius von AD ist bei weitem größer und somit effektiver, um schnell größere Mengen an Monstern zu beseitigen. Bei Bossen sollte natürlich Decprepify verwendet werden.
In dieser Ladder habe ich einen Poison Necro. Hier ist der main Curse natürlich Lower Resist. Und gegen Bosse wie gehabt Decrepify. Es ist allerdings so, dass Act1 Bosse, wie Blood Raven, schneller fallen, wenn ich sie mit Lower Resist curse, da meine Poison Nova noch start genug ist. Gegen Mephisto und Diablo hat die Poison Nova dann kaum noch sinn.

Zu dem Telebug:
Dieser kann natürlich extrem hilfreich sein. Zum einen, da sichergestellt wird, das alle Minions den Precast erhalten, und zum anderen für das Telestomping. Allerdings ist es, wie Muddy schon erwähnt hat, enorm wichtig, dass sich der Necro, nachdem er sich auf einen Gegner teleportiert hat, einen Schritt zurück machen. Sonst werden nicht alle Melee Minions angreifen. So etwas kann m.M.n. super mit einer "keep distance to monsters" Funktion verbunden werden. Hier muss man eben darauf achten, dass sich der Necro dann nicht wegportet, um die Distanz zu wahren, sondern zurück geht. Andernfalls können die Minions ihren Job nicht machen.

Zun den Revives:
Revives ganz außer acht zu lassen ist ein großer Nachteil. Denn egal welche Skillung ein Necro hat, um die Bosse zu legen sind die Minions einfach notwendig. Und Revives sind dabei eine große Hilfe. Mit nur einem Punkt in Revive erreicht man meißtens schon um die 15-20 Monster.
Was mir hierzu noch einfällt ist, dass es super wäre, wenn der Bot beim riveven Prioritäten setzt. Zum Beispiel ist es viel Sinnvoller im CS die Venom Lords zu reviven, als sich mit den Sturmcastern einzudecken. Die höchste Priorität sollten natürlich die Udars haben, da sie den Gegner stunnen und Crushing Blow haben. Ich hoffe, dass sich so etwas umsetzten ließe.
Mit der Mischung aus CE und Revive hatte ich übrigens bisher nie Probleme, es waren immer genug Corpses da.
11/17/2011 14:45 kothie#9
yo das mit dem schritt hab ich mir auch gedacht, is wohl die beste lösung

tritt übrigens schon mit einem einzigen revive auf, und auch die stormcaster in cs sind betroffen^^

außerdem gibts gewisse revives die lags / gamecrashes verursachen, keine ahnung welche und ab welcher anzahl atm :P