Please note: development discontinued! / Bitte beachten: Entwicklung eingestellt!
English
I am discontinuing development of this version and will henceforth focus on bot development using D2BS.
According to this, there won't be any major updates, but merely smaller bug fixes at best.
Focusing on D2BS, I will decrease my efforts in supporting this project, since it has become way too time-consuming.
I might still check this topic every now and then and offer my support, but I will definitely not be doing it as frequently as I used to.
However, I
will not be available for individual support (i.e. personal counseling via PM and such) any longer, as this implies a huge workload for me for which I won't be getting anything in return.
Should you still feel the urge of asking me any D2NT related questions via PM, have some elite*gold ready, because otherwise I will just ignore your request.
This may sound a little rigorous at first, but I don't see a way of handling this any differently. Because receiving 5-15 PMs a day on D2NT related questions, even though I'm done with this matter, is not only quite annoying, but replying to such PMs day after day also consumes plenty of both time and energy which I am no longer willing to offer.
This approach is primarily meant to reduce the number of such PMs drastically.
All questions may be asked in this topic. Apart from myself, there are a lot of folks hanging around here who are well capable of answering your questions if being asked in a proper manner.

At this point, I'd like to point out once again, that there is a thanks button. Making use of it in order to thank folks who are helping yourself and other is really the least to ask.
A long time, labor intensive, but also informative and entertaining project which has been with me almost my entire time at this board, eventually comes to an end. Though I will probably be using several features and adding them to my D2BS version after improving them.
I would like to thank everyone who has supported this project, may it be by reporting bugs, suggesting improvements, or having helped and answered questions in this topic or continue doing so.
If you enjoy this project and like to give me something in return, feel free to do so by

.
A note for developers: you may use code from this project for your own projects, provided that you indicate the source of the code that you are using by giving proper credits.
Okay, this should do for a funeral eulogy, thanks for the great time!
__________________
Deutsch
Ich stelle die Entwicklung dieser Version ein und fokussiere mich fortan auf die Bot Entwicklung mit D2BS.
Es wird dementsprechend keine größeren Updates mehr geben, allenfalls kleinere Bugfixes.
Durch die Fokussierung auf D2BS werde ich mich hier im Bezug auf den Support künftig etwas zurückhalten, da dies einfach zu zeitaufwändig geworden ist.
Ich werde zwar noch in dieses Thema hier reinschauen, aber weniger regelmäßig als es bisher der Fall war und nur, wenn es mir gerade passt.
Für Individualsupport (i.e. persönliche Beratung per PM o.ä.) stehe ich hingegen
nicht mehr zur Verfügung, da der Arbeitsaufwand für mich viel zu hoch ist und ich effektiv keinen eigenen Nutzen davon habe.
Wenn ihr trotzdem der Meinung seid, ihr müsst mich irgendwelche D2NT bezogenen Dinge per PM fragen, dann haltet elite*gold bereit, denn ansonsten werde ich derartige Anfragen zukünftig ignorieren.
Das mag vielleicht zunächst mal etwas hart klingen, aber es ist für mich schlicht nicht anders handhabbar. Denn wenn ich 5-15 PMs pro Tag mit irgendwelchen D2NT bezogenen Fragen beantworten soll, obwohl ich dieses Thema für mich abgehakt habe, dann ist das nicht nur recht störend, es kostet auch einfach extrem viel Zeit und Kraft, so etwas jeden Tag aufs Neue zu beantworten, welche ich nicht länger bereit bin aufzubringen.
Diese Maßnahme soll also in erster Linie dazu dienen, die Anzahl derartiger PMs drastisch zu reduzieren.
Es können grundsätzlich alle Fragen hier im Thema gestellt werden. Neben mir treiben sich hier schließlich noch eine Menge anderer Leute herum, die in der Lage sind, eure Fragen zu beantworten, wenn ihr in angemessener Form fragt.
An dieser Stelle weise ich auch nochmal auf die Existenz des Thanks Buttons hin. Dass man diesen nutzt und sich bei Leuten, die euch und anderen helfen, bedankt, ist wirklich das mindeste.
Für mich geht hier ein langes, extrem arbeitsintensives, aber darüber hinaus lehrreiches und unterhaltsames Projekt zu Ende, welches mich fast meine gesamte Zeit hier über begleitet hat. Auch wenn ich wohl Vieles aufgreifen werde, um es in verbesserter Form in meine D2BS Version einzubinden.
Ich möchte mich hier nochmal auch nochmal bei allen bedanken, die bei diesem Projekt tatkräftig mitgeholfen haben, sei es nun durch das Melden von Bugs, durch das Einbringen von Verbesserungsvorschläge, oder indem sie sich hier im Thema hilfreich eingebracht haben oder immer noch einbringen.
Wenn euch das Projekt gefällt und ihr mir etwas dafür zurückgeben möchtet, so könnt ihr dies gerne durch

tun.
Ein Hinweis für Entwickler: die Verwendung von Code aus diesem Projekt für eigene Projekte ist von meiner Seite aus gestattet, sofern die Herkunft des verwendeten Codes durch entsprechende Credits kenntlich gemacht wird.
So, das soll als Grabrede genügen, danke für die tolle Zeit!

Inhalt
1. Vorwort
2. Features
3. Der Einstieg3.1 Allgemeines
3.2 Erstellung Eines Log Ordners
3.3 Die Charconfig
3.4 Die Globale Config
3.5 Erstellung Eines Profils
4. Sonstiges4.1 Bekannte Probleme
4.2 Changelog
4.3 Credits
Direkt Zum Download
1. Vorwort
->Zum Inhalt<-
Hallo zusammen,
im folgenden möchte ich auf die Features meiner modifizierten D2NT 3.1 Version eingehen, die ich mit Version 1.2 mittlerweise zum vierten mal in überarbeiteter und erweiterter Form veröffentliche.
Das ganze ist keine Modsammlung in dem Sinne, es ist mehr eine Sammlung von dem, was sich bei mir im Laufe der Zeit so alles angesammelt hat, darum sind viele Dinge etwas auf meine eigenen Bedürfnisse zugeschnitten.
Einige Features sollten aber auch so für den ein oder anderen ganz brauchbar sein, zumal das ganze natürlich beliebig durch Scripte von anderen Leuten erweiterbar ist.
Ich binde an dieser Stelle bewusst nicht massiv von Anderen ein, da ich nur das verwalten bzw. pflegen kann, was ich auch selber entsprechend gut kenne - aber selbst das ist mittlerweile schon eine ganze Menge geworden, um alles gut zu überblicken.
2. Features
->Zum Inhalt<-
Spiel Statistik in Tooltip Form
Für jedes erfolgreich beendete Spiel, derzeit enthaltene Daten: Spieldauer, Absolute Exp Ausbeute, Relative Exp Ausbeute, Anzahl der verwendeten Tränke, Ingesamt erwirtschaftetes Gold, Anzahl der Aufgehobenen Items, Anzahl der geplünderten Leichen, Anzahl eventueller Fehler, Anzahl geöffneter Kisten, Anzahl aktivierter Schreine, Füllstant des Inventars, Füllstand der Truhe.
Im übrigen richtet sich die Farbe des Log Eintrags im Falle eines erfolgreich beendeten Spiels nach dem Füllstand eurer Truhe.
Ist diese ganz leer erscheint der Eintrag in grün, ist diese halb voll in blau und für komplett volle Truhen in rot.
Füllstände dazwischen werden durch Farbwerte zwischen diesen drei Farben ausgedrückt.
Anmerkung: Durch die etwas unglücklissche Definition von Hexadezimalfraben im Manager war ich in der Farbwahl etwas eingeschränkt.
Ansonsten wären die zugrunde liegenden Farben grün, gelb und rot geworden, da ich aber durch oben genanntes Problem nur Rotwerte bis 190 verwenden kann, lässt sich kein ordentliches gelb darstellen.
Hier mal ein Bild:
Reaktion auf Soj Verkäufe und World Events
Erscheint eine Meldung über Verkaufte Sojs, beendet der Char das aktuelle Bot Script und wartet für eine gewisse Zeit.
Beim Warten wechsel er dabei alle paar Minuten den Akt, um nicht gekickt zu werden.
Im Falle eines World Events passiert genau dasselbe, allerdings kann die maximale Wartezeit festgelegt werden.
Die Idee für dieses Feature stammt übrigens von

, dem ich an dieser Stelle nochmal dafür danken möchte.
XML Itemlog
Wahlweise können sämtliche Funde auch in eine XML Datei geloggt werden, also sowohl gefundene Items, wie auch verkaufte Items.
Die XML Dateien können mit einem Browser angezeigt werden, wobei das derzeit nur mit Firefox richtig zu funktionieren scheint.
Die Darstellung sieht dann so aus:
Erfassen des Fundortes eines Items
Exakt allerdings nur innerhalb eines einzelnen Spiels, denn nur innerhalb eines Spiels, haben Items eine feste ID, durch die man sie eindeutig Identifizieren kann.
Ist der Fundort eines Items unsicher, weil etwa ein Item aus dem letztem Spiel erst im nächsten Spiel identifiziert wird, wird als FUndort einfach die letzte Ebene angezeigt, in der ein Item gefunden wird.
Diese wird dann allerdings mit einem "*" gekennzeichnet, um deutlich zu machen, dass der angegebene Fundort falsch sein könnte.
Erzeugen eines Stashlogs auf Knopfdruck
Im Stashlog werden sämtliche auf dem Char befindlichen Items mitsamt sämtlicher Eigenschaften erfasst.
Ein Stashlog kann für aktive Bots erzeugt werden, allerdings auch für beliebige Chars, ohne eigene Config, mithilfe des Entry Point Muddy's Tools.
Somit kann dieses Feature auch zur Verwaltung von Mulis genutzt werden, indem man TxT Stashlogs erzeugt und diese dann mit einem geeigneten Programm durchsucht.
Anmerkung: Ursprünglich funktionierte es auch, Stashlogs als XML Datei zu schreiben, dieses Feature habe ich aber nicht gepflegt und kann daher nicht sagen, ob es mit der jetzigen Version noch funktioniert.
Hier ein Beispiel eines solchen Stashlogs:
Code:
----------------------------------------
----------------------------------------
<Charname>'s Stashlog (Level 96 Paladin)
File created: Wed 03/02/11 21:18:07
Items carried: 73
Gold carried: 1956996
Free room: 30 of 96
----------------------------------------
----------------------------------------
Location: <Charname> (Stash)
Type: Quest Item
Quality: Normal
Item Level: 13
Amount carried: 1
Horadric Cube
Right Click to Open
----------------------------------------
Location: <Charname> (Inventory)
Type: Small Charm
Quality: Unique
Item Level: 99
Amount carried: 1
Annihilus
Small Charm
Keep in Inventory to Gain Bonus
Required Level: 70
+1 to All Skills
+20 to all Attributes
All Resistances +13
+5% to Experience Gained
----------------------------------------
Location: <Charname> (Inventory)
Type: Grand Charm
Quality: Unique
Item Level: 75
Amount carried: 1
Gheed's Fortune
Grand Charm
Keep in Inventory to Gain Bonus
Required Level: 62
101% Extra Gold from Monsters
39% Better Chance of Getting Magic Items
Reduces all Vendor Prices 15%
----------------------------------------
Location: <Charname> (Inventory)
Type: Large Charm
Quality: Unique
Item Level: 99
Amount carried: 1
Hellfire Torch
Large Charm
Keep in Inventory to Gain Bonus
Required Level: 75
5% Chance to cast level 10 Firestorm on striking
+3 to Paladin Skill Levels
+14 to all Attributes
All Resistances +18
+8 to Light Radius
Level 30 Hydra (10/10 Charges)
----------------------------------------
Location: <Charname> (Inventory)
Type: Small Charm
Quality: Magic
Item Level: 85
Amount carried: 1
Small Charm of Vita
Keep in Inventory to Gain Bonus
Required Level: 39
+20 to Life
----------------------------------------
Location: <Charname> (Inventory)
Type: Small Charm
Quality: Magic
Item Level: 88
Amount carried: 1
Ocher Small Charm of Vita
Keep in Inventory to Gain Bonus
Required Level: 39
+20 to Life
Lightning Resist +7%
----------------------------------------
Location: <Charname> (Inventory)
Type: Grand Charm
Quality: Magic
Item Level: 75
Amount carried: 1
Lion Branded Grand Charm of Sustenance
Keep in Inventory to Gain Bonus
Required Level: 53
+1 to Combat Skills (Paladin Only)
+31 to Life
----------------------------------------
Location: <Charname> (Inventory)
Type: Small Charm
Quality: Magic
Item Level: 85
Amount carried: 1
Burly Small Charm of Vita
Keep in Inventory to Gain Bonus
Required Level: 39
+15 Defense
+20 to Life
----------------------------------------
Location: <Charname> (Inventory)
Type: Grand Charm
Quality: Magic
Item Level: 84
Amount carried: 1
Lion Branded Grand Charm of Sustenance
Keep in Inventory to Gain Bonus
Required Level: 42
+1 to Combat Skills (Paladin Only)
+27 to Life
----------------------------------------
Location: <Charname> (Head)
Type: Shako
Quality: Unique
Item Level: 80
Amount carried: 1
Harlequin Crest
Shako
'Lem'
Defense: 138
Durability: 11 of 12
Required Strength: 50
Required Level: 62
+2 to All Skills
+2 to all Attributes
+144 to Life (Based on Character Level)
+144 to Mana (Based on Character Level)
Damage Reduced by 10%
50% Extra Gold from Monsters
50% Better Chance of Getting Magic Items
Socketed (1)
----------------------------------------
Location: <Charname> (Amulet)
Type: Amulet
Quality: Unique
Item Level: 88
Amount carried: 1
Mara's Kaleidoscope
Amulet
Required Level: 67
+2 to All Skills
+5 to all Attributes
All Resistances +29
----------------------------------------
Location: <Charname>
Type: Ring
Quality: Unique
Amount carried: 2
The Stone of Jordan
Ring
Required Level: 29
+1 to All Skills
Adds 1-12 lightning damage
+20 to Mana
Increase Maximum Mana 25%
----------------------------------------
Location: <Charname> (Left Ring)
Type: Ring
Quality: Unique
Item Level: 75
Amount carried: 1
Dwarf Star
Ring
Required Level: 45
+40 to Life
+40 Maximum Stamina
Heal Stamina Plus 15%
Fire Absorb 15%
Magic Damage Reduced by 13
100% Extra Gold from Monsters
----------------------------------------
Location: <Charname> (Belt)
Type: Spiderweb Sash
Quality: Unique
Item Level: 88
Amount carried: 1
Arachnid Mesh
Spiderweb Sash
Defense: 124
Durability: 9 of 12
Required Strength: 50
Required Level: 80
+1 to All Skills
+20% Faster Cast Rate
Slows Target by 10%
+98% Enhanced Defense
Increase Maximum Mana 5%
Level 3 Venom (11/11 Charges)
----------------------------------------
Location: <Charname> (Feet)
Type: Battle Boots
Quality: Unique
Item Level: 87
Amount carried: 1
War Traveler
Battle Boots
Defense: 127
Durability: 47 of 48
Required Strength: 95
Required Level: 42
+25% Faster Run/Walk
Adds 15-25 damage
+166% Enhanced Defense
+10 to Strength
+10 to Vitality
40% Slower Stamina Drain
Attacker Takes Damage of 7
50% Better Chance of Getting Magic Items
----------------------------------------
Location: <Charname> (Gloves)
Type: Chain Gloves
Quality: Unique
Item Level: 83
Amount carried: 1
Chance Guards
Chain Gloves
Defense: 28
Durability: 14 of 16
Required Strength: 25
Required Level: 15
+25 to Attack Rating
+30% Enhanced Defense
+15 Defense
200% Extra Gold from Monsters
40% Better Chance of Getting Magic Items
+2 to Light Radius
----------------------------------------
Location: <Charname> (Torso)
Type: Dusk Shroud
Quality: Superior
Item Level: 69
Amount carried: 1
Enigma
Dusk Shroud
'JahIthBer'
Defense: 1288
Durability: 17 of 20
Required Strength: 77
Required Level: 65
+2 to All Skills
+45% Faster Run/Walk
+1 to Teleport
+15% Enhanced Defense
+750 Defense
+72 to Strength (Based on Character Level)
Increase Maximum Life 5%
Damage Reduced by 8%
+14 Life after each Kill
15% Damage Taken Goes To Mana
96% Better Chance of Getting Magic Items (Based on Character Level)
Socketed (3)
----------------------------------------
Location: <Charname> (Stash)
Type: Rune
Quality: Normal
Item Level: 1
Amount carried: 1
Mal Rune
Can be Inserted into Socketed Items
Weapons: Prevent Monster Heal
Armor: Magic Damage Reduced by 7
Helms: Magic Damage Reduced by 7
Shields: Magic Damage Reduced by 7
Required Level: 49
----------------------------------------
Location: <Charname> (Stash)
Type: Rune
Quality: Normal
Item Level: 1
Amount carried: 1
Pul Rune
Can be Inserted into Socketed Items
Weapons: +75% Damage to Demons,
+100 to Attack Rating against Demons
Armor: +30% Enhanced Defense
Helms: +30% Enhanced Defense
Shields: +30% Enhanced Defense
Required Level: 45
----------------------------------------
Location: <Charname> (Stash)
Type: Ring
Quality: Magic
Item Level: 84
Amount carried: 1
Ring of Dim Vision
Required Level: 24
Level 4 Dim Vision (15/30 Charges)
----------------------------------------
Location: <Charname> (Stash)
Type: Heavy Bracers
Quality: Magic
Item Level: 87
Amount carried: 1
Tangerine Heavy Bracers
Defense: 37
Durability: 13 of 16
Required Strength: 58
Required Level: 25
Lightning Resist +6%
----------------------------------------
Location: <Charname> (Stash)
Type: Rune
Quality: Normal
Item Level: 1
Amount carried: 1
Ohm Rune
Can be Inserted into Socketed Items
Weapons: +50% Enhanced Damage
Armor: +5% to Maximum Cold Resist
Helms: +5% to Maximum Cold Resist
Shields: +5% to Maximum Cold Resist
Required Level: 57
----------------------------------------
Location: <Charname> (Stash)
Type: Gem
Quality: Normal
Item Level: 1
Amount carried: 1
Flawless Ruby
Can be Inserted into Socketed Items
Weapons: Adds 10-16 fire damage
Armor: +31 to Life
Helms: +31 to Life
Shields: Fire Resist +28%
Required Level: 15
----------------------------------------
Location: <Charname> (Inventory)
Type: Key
Quality: Normal
Item Level: 99
Amount carried: 1
Key
Quantity: 10
----------------------------------------
Location: <Charname>
Type: Gem
Quality: Normal
Amount carried: 2
Flawless Sapphire
Can be Inserted into Socketed Items
Weapons: Adds 6-10 cold damage
Armor: +31 to Mana
Helms: +31 to Mana
Shields: Cold Resist +28%
Required Level: 15
----------------------------------------
Location: <Charname> (Stash)
Type: Rune
Quality: Normal
Item Level: 1
Amount carried: 1
Ist Rune
Can be Inserted into Socketed Items
Weapons: 30% Better Chance of Getting Magic Items
Armor: 25% Better Chance of Getting Magic Items
Helms: 25% Better Chance of Getting Magic Items
Shields: 25% Better Chance of Getting Magic Items
Required Level: 51
----------------------------------------
Location: <Charname> (Stash)
Type: Amulet
Quality: Magic
Item Level: 85
Amount carried: 1
Amulet
Unidentified
----------------------------------------
Location: <Charname> (Stash)
Type: Rune
Quality: Normal
Item Level: 1
Amount carried: 1
Amn Rune
Can be Inserted into Socketed Items
Weapons: 7% Life stolen per hit
Armor: Attacker Takes Damage of 14
Helms: Attacker Takes Damage of 14
Shields: Attacker Takes Damage of 14
Required Level: 25
----------------------------------------
Location: <Charname> (Stash)
Type: Ring
Quality: Crafted
Item Level: 90
Amount carried: 1
Order Loop
Ring
Required Level: 82
+10% Faster Cast Rate
3% Life stolen per hit
+8 to Strength
+51 to Life
Fire Resist +14%
----------------------------------------
Location: <Charname> (Stash)
Type: Gem
Quality: Normal
Item Level: 1
Amount carried: 1
Flawless Diamond
Can be Inserted into Socketed Items
Weapons: +54% Damage to Undead
Armor: +80 to Attack Rating
Helms: +80 to Attack Rating
Shields: All Resistances +14
Required Level: 15
----------------------------------------
Location: <Charname> (Stash)
Type: Amulet
Quality: Magic
Item Level: 87
Amount carried: 1
Amulet of the Wolf
Required Level: 11
+16 to Life
----------------------------------------
Location: <Charname> (Cube)
Type: Grand Charm
Quality: Magic
Item Level: 94
Amount carried: 1
Grand Charm of Sustenance
Keep in Inventory to Gain Bonus
Required Level: 53
+32 to Life
----------------------------------------
Location: <Charname> (Stash)
Type: Ring
Quality: Magic
Item Level: 85
Amount carried: 1
Platinum Ring of the Giant
Required Level: 47
+110 to Attack Rating
+15 to Strength
----------------------------------------
Location: <Charname> (Stash)
Type: Jewel
Quality: Magic
Item Level: 86
Amount carried: 1
Jewel of Daring
Can be Inserted into Socketed Items
Required Level: 28
+8 to Dexterity
----------------------------------------
Location: <Charname> (Stash)
Type: Phase Blade
Quality: Superior
Item Level: 88
Amount carried: 1
Superior Phase Blade
One-Hand Damage: 35 to 40
Required Dexterity: 136
Required Strength: 25
Required Level: 54
Sword Class - Very Fast Attack Speed
+15% Enhanced Damage
+3 to Attack Rating
----------------------------------------
Location: <Charname> (Stash)
Type: Chain Gloves
Quality: Magic
Item Level: 85
Amount carried: 1
Godly Chain Gloves of Skill
Defense: 32
Durability: 9 of 9
Required Strength: 15
Required Level: 43
+117% Enhanced Defense
+5 to Dexterity
Ethereal (Cannot be Repaired)
----------------------------------------
Location: <Charname> (Stash)
Type: Ring
Quality: Magic
Item Level: 81
Amount carried: 1
Ocher Ring
Required Level: 9
Lightning Resist +11%
----------------------------------------
Location: <Charname> (Stash)
Type: Jewel
Quality: Magic
Item Level: 85
Amount carried: 1
Jewel of Virility
Can be Inserted into Socketed Items
Required Level: 42
+9 to Strength
----------------------------------------
Location: <Charname> (Stash)
Type: Ring
Quality: Magic
Item Level: 85
Amount carried: 1
Ring of the Titan
Required Level: 66
+16 to Strength
----------------------------------------
Location: <Charname> (Stash)
Type: Jewel
Quality: Magic
Item Level: 84
Amount carried: 1
Tin Jewel of Fire
Can be Inserted into Socketed Items
Required Level: 28
+38 to Attack Rating
Adds 9-22 fire damage
----------------------------------------
Location: <Charname>
Type: Gem
Quality: Normal
Amount carried: 2
Flawless Amethyst
Can be Inserted into Socketed Items
Weapons: +100 to Attack Rating
Armor: +8 to Strength
Helms: +8 to Strength
Shields: +24 Defense
Required Level: 15
----------------------------------------
Location: <Charname> (Stash)
Type: Jewel
Quality: Magic
Item Level: 86
Amount carried: 1
Eburine Jewel
Can be Inserted into Socketed Items
Required Level: 12
+11 Defense
----------------------------------------
Location: <Charname> (Stash)
Type: Gem
Quality: Normal
Item Level: 1
Amount carried: 1
Flawless Emerald
Can be Inserted into Socketed Items
Weapons: +60 poison damage over 6 seconds
Armor: +8 to Dexterity
Helms: +8 to Dexterity
Shields: Poison Resist +28%
Required Level: 15
----------------------------------------
Location: <Charname> (Stash)
Type: Rune
Quality: Normal
Item Level: 1
Amount carried: 1
Ral Rune
Can be Inserted into Socketed Items
Weapons: Adds 5-30 fire damage
Armor: Fire Resist +30%
Helms: Fire Resist +30%
Shields: Fire Resist +35%
Required Level: 19
----------------------------------------
Location: <Charname> (Right Hand II)
Type: Flail
Quality: Normal
Item Level: 85
Amount carried: 1
Call to Arms
Flail
'AmnRalMalIstOhm'
One-Hand Damage: 3 to 89
Durability: 30 of 30
Required Dexterity: 35
Required Strength: 41
Required Level: 57
Mace Class - Very Fast Attack Speed
+1 to All Skills
+40% Increased Attack Speed
+274% Enhanced Damage
Adds 5-30 fire damage
7% Life stolen per hit
+3 to Battle Command
+4 to Battle Orders
+4 to Battle Cry
Prevent Monster Heal
Replenish Life +12
30% Better Chance of Getting Magic Items
+50% Damage to Undead
Socketed (5)
----------------------------------------
Location: <Charname> (Left hand II)
Type: Sacred Targe
Quality: Normal
Item Level: 78
Amount carried: 1
Spirit
Sacred Targe
'TalThulOrtAmn'
Defense: 141
Chance to Block: 60%
Smite Damage: 22 to 70
Durability: 45 of 45
(Paladin Only)
Required Strength: 86
Required Level: 47
+2 to All Skills
+34% Faster Cast Rate
+55% Faster Hit Recovery
+250 Defense vs. Missile
+22 to Vitality
+95 to Mana
Cold Resist +41%
Lightning Resist +41%
Fire Resist +6%
Poison Resist +41%
+8 Magic Absorb
Attacker Takes Damage of 14
Socketed (4)
----------------------------------------
Location: <Charname> (Inventory)
Type: Legend Sword
Quality: Rare
Item Level: 87
Amount carried: 1
Legend Sword
Two-Hand Damage: 75 to 141
Durability: 23 of 23
Required Dexterity: 90
Required Strength: 165
Sword Class - Very Fast Attack Speed
Unidentified
Ethereal (Cannot be Repaired)
----------------------------------------
Location: <Charname> (Inventory)
Type: Ring
Quality: Rare
Item Level: 87
Amount carried: 1
Ring
Unidentified
----------------------------------------
Location: <Charname> (Inventory)
Type: Rune
Quality: Normal
Item Level: 1
Amount carried: 1
Shael Rune
Can be Inserted into Socketed Items
Weapons: +20% Increased Attack Speed
Armor: +20% Faster Hit Recovery
Helms: +20% Faster Hit Recovery
Shields: +20% Faster Block Rate
Required Level: 29
----------------------------------------
Location: <Charname> (Inventory)
Type: Cloudy Sphere
Quality: Normal
Item Level: 88
Amount carried: 1
Cloudy Sphere
One-Hand Damage: 11 to 29
Durability: 27 of 35
(Sorceress Only)
Required Level: 30
Staff Class - Fast Attack Speed
+2 to Thunder Storm (Sorceress Only)
+59 to Mana
Socketed (2)
----------------------------------------
Location: <Charname> (Right Hand I)
Type: Flail
Quality: Superior
Item Level: 82
Amount carried: 1
Heart of the Oak
Flail
'KoVexPulThul'
One-Hand Damage: 1 to 27
Durability: 33 of 33
Required Dexterity: 35
Required Strength: 41
Required Level: 55
Mace Class - Very Fast Attack Speed
+3 to All Skills
+40% Faster Cast Rate
+15% Enhanced Damage
+75% Damage to Demons
+100 to Attack Rating against Demons
Adds 3-14 cold damage
7% Mana stolen per hit
+10 to Dexterity
Replenish Life +20
Increase Maximum Mana 15%
All Resistances +40
Increase Maximum Durability 13%
Level 4 Oak Sage (25/25 Charges)
Level 14 Raven (60/60 Charges)
+50% Damage to Undead
Socketed (4)
----------------------------------------
Location: <Charname> (Left hand I)
Type: Zakarum Shield
Quality: Unique
Item Level: 75
Amount carried: 1
Herald of Zakarum
Zakarum Shield
'Lem'
Defense: 525
Chance to Block: 75%
Smite Damage: 46 to 46
Durability: 60 of 65
(Paladin Only)
Required Strength: 142
Required Level: 68
+2 to Combat Skills (Paladin Only)
+2 to Paladin Skill Levels
+30% Faster Block Rate
30% Increased Chance of Blocking
20% Bonus to Attack Rating
+195% Enhanced Defense
+20 to Strength
+20 to Vitality
All Resistances +50
50% Extra Gold from Monsters
Socketed (1)
----------------------------------------
Find Item Implementierung
Damit können Barbaren die Leichen erlegter Monster plündern und so mit etwa 50 prozentiger Wahrscheinlichkeit (je nach Skill Level) einen erneuten Drop auslösen.
Die Qualität dieses Drops ist dieselbe wie beim ersten Drop, es kommt also immernoch auf TC und Level des Monsters an, allerdings wirken MF und EG beim Einsetzen von Find Item.
Gambling Log
Das Gambling Log ermöglicht es relativ genau zu überwachen, wieviel Gold euer Char beim Gambling umsetzt.
Ausserdem seht ihr wieviele Items insgesamt gegamblet wurden oder wie lange die letzte Gambling Session zurückliegt.
Auch dazu ein Bildchen:
Überarbeitetes Town Management
Dies beinhaltet nicht nur das Identifizieren bei Cain, sondern auch Optimierungen in der Auswahl der besuchten NPCs.
Darüber hinaus können sämtliche nicht benötigten Items verkauft werden - auch wenn die Identifizierung bei Cain stattgefunden hat.
Schlüssel werden nurnoch gekauft, wenn ein NPC, der diese Verkauft, ohnehin besucht wird.
Ansonsten sammelt euer Char diese auch auf, sodass eigentlich recht selten Engpässe bestehen.
Ein Besuch bei einem Schmied zur Reperatur der Items findet nurnoch statt, wenn euer Char auch über das nötige Gold verfügt.
Das Einkaufen von Tränken läuft ausserdem effizienter und schneller ab.
Dateibackup gestützte Channel Announcements
Dabei ist anzumerken, dass der Name, sowie die Nummer des nächsten Spiels immer aus dem vorherigen Spiel abgeleitet werden.
Darum kann eine Ansage immer erst dann erfolgen, wenn zuvor mindestens ein Spiel mit gültigem Namen erstellt wurde.
Im Falle von Restarts, die leider immer mal wieder vorkommen, kann der Name des nächsten Spiels aber eventuell auch aus einem Dateibackup ausgelesen und somit trotzdem angezeigt werden.
Öffnen sämtlicher Kisten
Hierbei wird immer beim Säubern eines Bereiches oder eines Raumes kontrolliert, ob sich in der Nähe irgendwelche Kisten befinden.
Der Begriff Kisten ist hier etwas irreführend, denn es werden dabei sämtliche Formen von Containern geöffnet.
Intelligente Nutzung von in der Nähe befindlichen Schreinen
Schreine werden immer dann aktiviert, wenn die Aktivierung sinnvoll ist.
Auch hier findet die Überprüfung immer nach dem Säubern eines Bereiches oder eines Raumes statt.
Enigma Reset
Fehlt der Teleportskill, obwohl der Charakter eine Enigma trägt, wird einfach die Rüstung aus- und wieder angezogen.
Anmerkung: Man sollte vor aktivieren dieser Option sicherstellen, dass der Charakter genügen Stärke zum Wiederanlegen mitbringt.
Sammeln von Items nach Menge
Im Grunde ist es egal für welches Item dies umgesetzt wird, wichtig ist nur, dass das betroffene Item nur durch eine einzige Zeile in euren .nip Files abgedeckt wird.
Hier ein Beispiel für die Syntax beim setzen einer Maximalmenge:
Code:
[MaxQuantity] == 3 && [Name] = KeyOfDestruction
Das Schlüsselwort
MaxQuantity muss dabei am Anfang der Zeile stehen, andere Operatoren als
== sind unzulässig.
Ausweich Funktion
Ist diese aktiviert, wird eure Zauberin versuchen, einen gewissen Abstand zu Monstern zu halten.
Ihr solltet aber sicherstellen, dass sie dafür mindestens 105% FCR mitbringt, damit das Ausweichen auch zügig funktioniert.
Ansonsten würde es eher hindern, als helfen.
Reaktion auf Immune Gegner
Wobei ihr selbst definiert, wann ein Monster als Immun betrachtet wird.
Trifft euer Charakter dann auf ein nach eurer Definition immunes Monster, kann dieses wahlweise übersprungen werden, ihr könnt euch dem Monster nähern, damit euer Söldner den Rest erledigt, oder ihr könnt es mit einem ausgewähltem Skill angreifen.
Festlegen einer Maximalaufzeit für Bot Scripte
Dieses Feature dient in erster Linie dazu, Endlosschleifen jeglicher Art zu vermeiden, sollte euer Charakter wider erwarten festhängen oder aus anderen Gründen nich vorwärts kommen.
Dazu wird in der Config zu jedem Bot Script eine Maximallaufzeit in Minuten angegeben - bei Überschreitung bricht euer Char das laufende Bot Script ab und geht zum nächsten über.
Nip Debug Modus
Dieser erweitert die im Item Log des D2NT Managers einsehbaren Tooltips. Konkret werden dabei Informationen hinzugefügt, die Aufschluss darüber geben, warum ein Item aufgehoben wurde.
Auch dazu ein Bild:
Intelligentere Slot Wahl
Dazu wird nicht mehr angenommen, dass sich etwa in Slot I der Angriffsslot und in Slot II der Precast Slot befindet, sondern stattdessen eine Analyse der Items in den beiden Slots durchgeführt.
Als Ergebnis dieser Analyse wird dann der passende Slot ausgewählt. Das ermöglicht es beispielsweise auch Barbaren den effektiveren Slot auszuwählen, aber auch einfach Unabhängigkeit im bezug auf die Slotwahl.
Dies gilt übrigens nicht nur für den Precast Slot, sondern beispielsweise auch für die Wahl des Find Item Slots, oder eines eventuellen Teleport Slots bei Barbaren.
Interaktion mit Telekinese
Warum gehen, wenn man auch Telekinese verwenden kann?

Ist diese Option aktiviert, wird eure Zauberin mit den Objekten, die es erlauben, mithilfe von Telekinese interagieren.
Dazu gehören Wegpunkte, eure Truhe, oder Schreine und im Bereich der Items Gold, Tränke, Schriftrollen und Schlüssel.
Ordnung in der Truhe
Mit Version 1.2 veröffentliche ich auch meine Stash Klasse, die es unter anderem erlaubt, die eigene Truhe ordentlich zu halten.
Der Sortiertalgorithmus ist nicht unbedingt effizient, was heisst, dass teilweise Items mehrfach bewegt werden, bis sie ihre endgültige Position erreichen. Er erfüllt grundsätzlich aber seinen Zweck.
...Unordnung im Gürtel
Jedenfalls im Vergleich zu Vanilla D2NT. Ich habe fast sämtliche Dinge bezüglich des Gürtels in Form einer Belt Klasse neu implementiert.
Als Folge davon ist die Belegung eines Spalte im Gürtel jetzt nicht mehr vorgegeben, sogesehen ist es also etwas unordentlicher.
Vielmehr wird nurnoch angegeben, wieviele Spalten für jede Sorte von Trank verwendet werden sollen - die Position ergibt sich dann automatisch.
Des Weiteren erlaubt meine Klasse wie schon oben genannt ein schnelleres Einkaufen von Tränken, sowie das automatische Ersetzen von Tränken minderer Qualität.
Belegung des Numpads
Das Numpad lässt sich nun mit ein paar vorgegebenen Befehlen belegen, welche in erster Linie verschiedene Ausgaben umfassen.
So gibt es beispielsweise Befehle, die sich eher an Entwickler richten und die die Eigenschaften von in der Nähe befindlichen Objekten ausgeben, aber auch Befehle die sich an alle Richten, so zum Beispiels die Ausgabe des aktuellen Layouts eurer Truhe, um den verbliebenen Platz zu überprüfen.
Eine Übersicht der aktuellen Belegung wird mit Druck auf "Numpad +" ausgegeben.
Globalisierung der Configs
Da ich in einigen Punkten recht ähnliche Configs verwende, war ich es Leid, bei kleineren Änderungen immer direkt 8 Configs ändern zu müssen.
Daher habe ich eine globale Config eingeführt, die in sämtliche andere Char Configs eingebunden wird.
Hier können gewisse Einstellungen durchgeführt werden, die dann für sämtliche anderen Configs übernommen werden.
Natürlich steht es frei, einzelne Variablen wieder aus der globalen Config zu entfernen und in den einzelnen Charakter Configs unterzubringen.
Generierung von BBCode Ausgabetext
Hierzu wird einfach ein gewünschtes Item im Horadrimwürfel platziert und die passende Taste betätigt.
Die komplette Beschreibung des Items wird dann in ein forenfreundliches Format umgewandelt und in einer ausgewählten Textdatei gespeichert.
Aus dieser kann der Ausgabetext dann kopiert und in einem Forum gepostet werden.
Sowas sieht dann zum Beispiel so aus:
Chains of Honor
Dusk Shroud
'DolUmBerIst'
Defense: 865
Durability: 10 of 22
Required Strength: 77
Required Level: 63
+2 to All Skills
+200% Damage to Demons
+100% Damage to Undead
8% Life stolen per hit
+85% Enhanced Defense
+20 to Strength
Replenish Life +7
All Resistances +65
Damage Reduced by 8%
25% Better Chance of Getting Magic Items
Increase Maximum Durability 10%
Socketed (4)
Erweiterter Cubing Algorithmus
Mithilfe meines modifizierten und erweiterten Cubing Algorithmus ist es möglich, mehrere (identische) Rezepte gleichzeitig ausführen zu lassen.
Wollt ihr beispielsweise intensiv Caster Amulette craften, bietet es sich an, dieses Rezept doppelt einzufügen.
Das hat den Vorteil, dass Durststrecken ausbleiben, in denen eventuell am Boden liegende Zutaten ignoriert würden, weil kein Basis Item vorhanden ist.
Indem nun das Rezept doppelt eingefügt wird, kann Parallel ein zweites Basisitem (also hier ein magisches Amulett) gesammelt werden, sodass oben genannte Durststrecken gar nicht erst vorkommen.
Overhead Status Ausgaben
Ich wollte ja eigentlich versuchen das hier so Deutsch wie möglich zu halten, aber hierbei fällt es schwer.

Sind Overhead Status Ausgaben aktiviert, zeigt euer Char statig über seinem Kopf an, was er gerade tut.
Aber Vorsicht: Dies ist für Jedermann sichtbar, dies sollte man bei öffentlichen Spielen bedenken.
Auch dazu ein Bild:
Erweiterte Fehlerausgaben
Zugegeben, das ist eher für Entwickler interessant.
Fehlerausgaben enthalten nun Informationen über den Prototyp der aufgerufenen Funktion, sowie die beim Aufruf übergebenen Parameter.
Nachteil: Damit das funktioniert, müssen die Bot Scripte entsprechend angepasst sein.
Auch dazu ein Bildchen:
Common Log
Der Sinn dieses Features ist es, einen Überblick über die bisher gefundenen "zählbaren" Items zu geben.
Darunter verstehe ich: Runen, Gems, Keys, Organe und Essenzen
Es werden dabei zwei Arten von Log erzeugt:
- Ein allgemeines Log, in das alle Chars gemeinsam Schreiben, zu finden unter: "..\scripts\Logs\CommonLog.txt"
- Ein eigenes Log für jeden Charakter, zu finden unter: "..\scripts\Logs\<Charname>\MyCommonLog.txt"
So ein Common Log kann dann beispielsweise so aussehen:
Code:
// File Created: Thu 12/30/10 11:51:33 <> Last Update: Wed 03/02/11 20:30:26 (<Charname>: Ohm Rune)
// ###### Runes ######
El Rune: 10
Eld Rune: 8
Tir Rune: 27
Nef Rune: 25
Eth Rune: 7
Ith Rune: 8
Tal Rune: 217
Ral Rune: 2,088
Ort Rune: 1,243
Thul Rune: 133
Amn Rune: 718
Sol Rune: 1,026
Shael Rune: 621
Dol Rune: 427
Hel Rune: 376
Io Rune: 252
Lum Rune: 200
Ko Rune: 138
Fal Rune: 118
Lem Rune: 77
Pul Rune: 169
Um Rune: 126
Mal Rune: 137
Ist Rune: 85
Gul Rune: 73
Vex Rune: 33
Ohm Rune: 29
Lo Rune: 24
Sur Rune: 28
Ber Rune: 13
Jah Rune: 17
Cham Rune: 14
Zod Rune: 1
// ###### Gems ######
Chipped Amethyst: 0
Flawed Amethyst: 0
Amethyst: 108
Flawless Amethyst: 6,832
Perfect Amethyst: 102
Chipped Topaz: 0
Flawed Topaz: 0
Topaz: 98
Flawless Topaz: 4,866
Perfect Topaz: 63
Chipped Sapphire: 0
Flawed Sapphire: 0
Sapphire: 0
Flawless Sapphire: 6,799
Perfect Sapphire: 84
Chipped Emerald: 0
Flawed Emerald: 0
Emerald: 27
Flawless Emerald: 4,895
Perfect Emerald: 70
Chipped Ruby: 0
Flawed Ruby: 0
Ruby: 35
Flawless Ruby: 5,854
Perfect Ruby: 80
Chipped Diamond: 0
Flawed Diamond: 85
Diamond: 1
Flawless Diamond: 4,927
Perfect Diamond: 79
Chipped Skull: 1
Flawed Skull: 0
Skull: 0
Flawless Skull: 3,107
Perfect Skull: 41
// ###### Keys ######
Key Of Terror: 441
Key Of Hate: 448
Key Of Destruction: 373
// ###### Organs ######
Diablo's Horn: 158
Baal's Eye: 159
Mephisto's Brain: 160
// ###### Essences ######
Twisted Essence Of Suffering: 13
Charged Essence Of Hatred: 12
Burning Essence Of Terror: 9
Festering Essence Of Destruction: 10
Sonstige Features
Es folgt eine Auflistung von kleineren Features:
- Aufheben von Items höherer Priorität vor standard Items (Gold, Gems, Tränke, Keys, Schriftrollen)
- Angreifen von Monstern höherer Priorität vor sonstigen Monstern (Priorität haben z.B. Schamanen in Akt 1, Mumien in Akt2, ...)
- Freie Auswahl der verwendeten Precast Skills
- Erkennung von vorhandenen Dienern beim Precast (Golems, Grizzlies, Wölfe, Schatten, ...)
- Nutzung von in der Nähe befindlichen Wegpunkten, um in die Stadt zu gelangen
- Angabe von Absolutwerten als Chicken Schwellwert
- Identifikation von Items ausserhalb der Stadt
- Überarbeitete Party Einladung
- Aufsammeln von Items mit hohem Goldwert direkt vor dem Stadtbesuch
- Aufsammeln von Schriftrollen
- Einstellbares Zeitlimit für den Angriff auf ein einzelnen Monster
- Jede Menge sonstiger Kleinkram...
3. Der Einstieg
->Zum Inhalt<-
3.1 Allgemeines
Eine
englische D2 Installation ist Pflicht!
Ich empfehle euch auch zum Anpassen der Charconfigs einen Editor mit Syntaxhighlighting zu verwenden, um einen perfekten Überblick zu garantieren und Fehler zu vermeiden. Wie das mit Notepad++ geht könnt ihr

nachlesen.
Zum Anpassen der .nip Dateien könnt ihr Wahlweise

verwenden, oder auch hier zu Notepad++ greifen, wobei ihr in meinem oben genannten Guide dazu eine Syntaxvorlage findet.
Natürlich funktioniert auch eine entsprechend umgestellte Deutsche Version, wie das geht findet ihr

,

oder auch

.
Die eigentliche Installation besteht nur darin, das heruntergeladene Archiv an einen beliebigen Ort - ausser eurem D2 ordner - zu entpacken.
Die enthaltenen .nip Files sind auf meine Bedürfnisse abgestimmt, ich empfehle daher dringend, sie nach euren Wünschen anzupassen, oder komplett eigene zu verwenden.
Ich empfehle ausserdem die Verwendung vom RedVex FastMod. Eine schöne Anleitung dazu findet ihr in

.
Meine Version unterstützt derzeit folgende Charakterklassen:
| Klasse | Einschränkungen | Anmerkungen |
| Zauberin | - | - |
| Paladin | - | - |
| Barbar | - | - |
| Druide | - | - |
| Assassine | Trapsin | Unfertig |
| Totenbeschwörer | Summoner | Optimierungsbedürftig |
Das Kleingedruckte:
Ich versichere, dass die unten aufgeführte Version keinerlei von mir eingefügte Malware enthält.
Trotzdem weise ich darauf hin, dass die Benutzung auf eigenes Risiko geschieht. Ich komme nicht für Gegenstände auf, die durch etwaige Fehlfunktionen - welcher Art auch immer - abhanden kommen.
Darüber hinaus sollte klar sein, dass ihr hier ein Zusatzprogramm benutzt für das generell ein Banrisiko seitens Blizzard besteht.
3.2 Erstellung Eines Log Ordners
Da es gerne vergessen wird, starten wir direkt mal mit der Erstellung eines Ordners für XML Logs, Gambling Logs, sowie dem Charakterbezogenen Common Log.
Öffnet dazu den Ordner
"..\scripts\Logs\".
Dort befindet sich ein ordner Namens
"DEFAULT". Erstellt eine Kopie dieses Ordners und benennt diese Kopie dann nach dem Namen eures Charakters.
Im Ordner
"..\scripts\Logs\<Charname>\" sollten sich jetzt die folgenden Dateien befinden:
- mw_itemlog_v2.xsl
- tooltip.js
Ist das nicht der Fall, solltet ihr nochmal von vorne beginnen. Ansonsten solltet ihr für jeden eurer verwendeten Charaktere auf diese Weise einen Ordner erstellen.
3.3 Die Charconfig
Die Config Dateien befinden sich im Ordner:
"..\scripts\NTBot\char_configs\"
Wählt nun entsprechend eurer Charakterklasse die passende Datei aus.
Für eine Zauberin wäre dies beispielsweise
"..\scripts\NTBot\char_configs\NTConfig_Sorceress. ntl".
Erstellt nun eine Kopie dieser Datei und benennt diese entsprechend dem Namen eures Charakters nach dem Format
"NTConfig_<CharakterKlasse>_<Charname>.ntl" um.
Wichtig: Erstellt immer eine Kopie und arbeitet mit dieser weiter, die standard Config sollte nicht verändert werden.
Öffnet nun eure frisch umbennante Char Config und passt sie entsprechend der eigenen Wünsche an.
3.4 Die Globale Config
Die globale Config findet sich unter dem folgenden Pfad:
"..\scripts\NTBot\char_configs\MWConfig_GlobalSett ings.ntl".
Auch hier solltet ihr alles nach euren Wünschen anpassen, aber dabei im Hinterkopf behalten, dass die dortigen Einstellungen für sämtliche Chars übernommen werden.
3.5 Erstellung Eines Profils
Wie man ein Profil im Manager erstellt wurde aus meiner Sicht in hinreichend vielen Guides ausführlich beschrieben.
Darum verweise ich an dieser Stelle nur noch einmal auf die

, über die man recht zügig zu all diesen Guides gelangt.
4. Sonstiges
->Zum Inhalt<-
4.1 Bekannte Probleme
Einfrieren des D2 Fensters:
Es kommt hin und wieder vor, dass das D2 Fenster einfriert und nicht mehr reagiert. In der Regel tritt dies dann auf, wenn das Spiel nicht ordnungsgemäß verlassen wird. Wenn ihr selber das Spiel verlasst, dann nutzt dazu bitte
immer die dazu vorgesehene Tast (Entf/Del).
Erhöhte Restartquote bei Barbar und Summoner:
Leider ein recht unangenehmes Problem, für das ich noch keine Lösung parat habe. Es hängt definitiv mit der Analyse von toten Monstern zusammen, aber grobe Fehler diebezüglich kann ich mit hoher Wahrscheinlichkeit ausschließen, was die Fehlersuche extrem schwierig und vor allem Zeitintensiv macht.
4.2 Changelog
Code:
Muddy's D2NT Changelog:
1.12 - > 1.13
- Fixed a bug where the next script started when the current script's runtime exceeded while the bot was paused [MWBotGame.ntj]
- Corrected some classids within the Baal and Worldstone Keep script [NTBaal.ntj, MWWorldstoneKeep.ntj]
- Added Summon Necromancer attack pattern:
+ Added MWP_SummonGolem() function [NTPrecast.ntl]
+ Added MWC_GetMinionCount(type) function [NTCommon.ntl]
+ Added MWC_GetMaxMinionCount(type) function [NTCommon.ntl]
+ Added NTA_NecromancerAttackInt(target, firstorder) function [NTAttack.ntl]
+ Added NTA_NecromancerCastSkillInt(index, target) function [NTAttack.ntl]
+ Added MWA_CalcCorpseExplosionRadius() function [NTAttack.ntl]
+ Added MWA_GetClosestCorpseGID(x, y) function [NTAttack.ntl]
+ Added MWA_CalcAverageMinionDistance(unit) function [NTAttack.ntl]
+ Added MWA_RaiseMinions() function [NTAttack.ntl]
+ Added MWA_IsHazardousMonster(target) function [NTAttack.ntl]
+ Added MWA_GetCurseState(skillid, target) function [NTAttack.ntl]
+ Added config variables MWConfig_SkeletonMinionCount, MWConfig_MageMinionCount and MWConfig_ReviveMinionCount [NTConfig.ntl]
- Fixed various things regarding the XML itemlog:
+ Added updated XML Stylesheet mw_itemlog_v2.xsl
+ Added Folder: scripts\Logs\Temporary Data for temp logs and location logs [MWItemlogger.ntl]
+ Renamed simple drop location log file to "CHARNAME.sloc" and updated the affected functions [MWItemlogger.ntl]
+ Renamed drop location log file to "CHARNAME.loc" and updated the affected functions [MWItemlogger.ntl]
+ Renamed temp log files to "CHARNAME.ilog" and updated the affected functions [MWItemlogger.ntl]
+ Renamed gambling log files to "GamblingData.glog" and updated the affected functions [MWItemlogger.ntl]
+ Fixed MWI_WriteTempLogToXML() function [MWItemlogger.ntl]
+ Fixed MWI_IsLogged(item) function [MWItemlogger.ntl]
+ Added MWI_ReadDropTime(itemunit) function [MWItemlogger.ntl]
+ Added MWI_FormatColors(desc, item) function [MWItemlogger.ntl]
- Changed the effect of MWConfig_LowestRuneToLog; now it does only affect the manager log but not the XML log [NTSnagIt.ntl]
- Specified gambling locations by showing the actual name of the npc [NTTown.ntl]
- Extracted MWN_LeaveTown() function from MWWaypointCatcher.ntj [NTTownMove.ntl]
- Extracted MWA_GetEvasionVector(length, offset) function from MWA_MoveAwayFromMonster(target) function [NTAttack.ntl]
- Added isZero() method to the vector class [NTMove.ntl]
- Fixed MWC_GetItemColorInt(itemunit) function [NTCommon.ntl]
- Added dest "palacefront" for NTTM_TownMove() function [NTTownMove.ntl]
- Fixed NTM_FindPortalAreaInt(dest) function [NTMove.ntl]
- Added scroll pickup and config variables MWConfig_MinimumTpScrollCount and MWConfig_MinimumIdScrollCount [NTSnagIt.ntl, NTConfig.ntl]
- Added attack time limits for single targets:
+ Added MWA_AttackTimeLimitExceeded(target) function [NTAttack.ntl]
+ Added MWConfig_AttackTimeLimit array to specify time limits for each monster type [NTConfig.ntl]
- Moved all item log outputs to MWI_WriteManagerLog(item, mode, writeXML) function [MWItemlogger.ntl, NTCubing.ntl, MWLoot.ntl, NTSnagIt.ntl, NTTown.ntl, NTTownManager.ntl]
- Changed NTIPCheckItem(item, checkQuantity, nipDebug) function in NTItemParser.ntl to allow nip debug mode [NTItemParser.ntj]
- Added config variable MWConfig_NipDebugMode [NTConfig.ntl]
- Changed [MaxAmount] nip property keyword to [MaxQuantity] and changed its implementation to make it both more reliably and accurate [MWItemlogger.ntl, NTItemParser.ntj, NTCubing.ntl, MWLoot.ntl, NTSnagIt.ntl, NTTown.ntl, NTTownManager.ntl]
- Hardcoded runeword pickup [NTSnagIt.ntl]
- Added various constants to make the code easier to read [NTCubing.ntl]
- Added cubing recipe for rares using 6 perfect skulls [NTCubing.ntl]
- Fixed cubing recipe for magig items to use every type of gem that is not needed for crafting [NTCubing.ntl]
- Added an error output if NTM_TakeWaypoint(areaid) fails due to the char lacking a waypoint [NTMove.ntl]
- Merged similar slot selection functions to a single function: MWC_GetSlotID(type) [NTCommon.ntl, NTPrecast.ntl, MWLoot.ntl]
1.13 -> 1.2
* Fixed NTC_CharGoldFull() to match D2 1.13 specs [NTTown.ntl]
* Fixed a typo that caused ID scroll pickups to be shown in manager log [NTSnagIt.ntl]
* Rewrote Gambling Log [NTTown.ntl, NTTownManager.ntl, MWItemlogger.ntl]
+ Added MWT_OpenStash() function [NTTown.ntl]
+ Added MWC_GetErrorArgumentString(func, line) function [NTCommon.ntl]
+ Added MWCU_MoveCubeToInventory() and MWCU_MoveCubeToStash() functions [NTCubing.ntl]
+ Added MWC_InsertDigitSeperator(number, delimeter, blocksize) function [NTCommon.ntl]
+ Added MWC_FindArea(areaid) function [NTCommon.ntl]
+ Added MWSI_PickupItem(classid) function [NTSnagIt.ntl]
+ Added MWSI_IsCommonLogItem [NTSnagIt.ntl]
- Removed MWA_IsMagicImmuneUndead(target) function
+ Added MWA_IsUndead(target) function [NTAttack.ntl]
+ Added MWA_IsPriorityTarget(target) function and modified NTA_ClearPosition(range, pickitem, safelevel, openchests, usefinditem) and NTA_ClearRoom(pickitem, safelevel) accordingly [NTAttack.ntl]
* Changed target vector for whirlwind in NTA_BarbarianCastSkillInt(index, target) [NTAttack.ntl]
* Modified MWA_CheckMonsterImmunity(target) and NTA_PaladinAttackInt(target, firstorder) functions to ignore physical resistance of undead targets while using sanctuary aura [NTAttack.ntl]
* Bone Armor is only refreshed when its status is 40% or less [NTPrecast.ntl]
+ Added Key Pickup [NTSnagIt.ntl]
* Merchants will no longer be visited just to buy keys [NTTownManager.ntl]
* Fixed a bug in MWL_OpenNearbyChests(range) and MWL_FindItem(range) that caused delays when calling NTA_ClearPosition() without any enemies nearby [MWLoot.ntl]
* Removed MWI_WriteLog(item, isEthereal, mode, logStashed, whereAbouts) functions's isEthereal argument and changed all calls accordingly [MWItemlogger.ntl]
+ Added ItemType, xSize and ySize properties to NTSI_ItemInt class [NTSnagIt.ntl]
+ Added MWSI_IsLowPriorityItem(itemint) function [NTSnagIt.ntl]
* Tweaked NTTMGR_VisitStash(cubing) function in order to make the char not visit stash if there is no free room left [NTTownManager.ntl]
* Improved and cleaned up NTSI_PickUpItemInt(snagitem) function [NTSnagIt.ntl]
* Partly rewrote ToolsThread, modified life and mana chicken thresholds so the user may define absolute values as well [NTToolsThread.ntl]
+ Added MWLW_GetColumnIndex(type) function [NTToolsThread.ntl]
+ Added MWLW_SetChickenThresholds() function [NTToolsThread.ntl]
* Fixed MWL_ActivateNearbyShrines(range) function so the char moves back to his original position after using the shrine [MWLoot.ntl]
* Performed some slight changes on the diablo script, mostly altered some MW_OpenSeal(classid) function calls [NTDiablo.ntj]
+ Added bot script: MWOrganHarvest.ntj
+ Added MW_CheckLocationLoops(location) function to restart on infinite loops in lobby [NTBot.ntj]
+ Added classid(s) to MWL_IsLootableChest(classid) function [MWLoot.ntl]
* Fixed an error in MWL_ActivateNearbyShrines(range) function that prevented gem shrines from being used [MWLoot.ntl]
* Fixed an error in NTCU_MoveItemToInventoryInt(item) function that occured when moving an item to inventory having insufficient room [NTCubing.ntl]
* Fixed NTCU_MoveItemToCubeInt(cube, item) function so the inventory is reopened if it was closed during cubing due to a D2 bug [NTCubing.ntl]
* Modified the NTCU_DoCubing() function in order to enhance cubing speed [NTCubing.ntl]
+ Added MWCU_Transmute(cube) function [NTCubing.ntl]
* Rewrote NTC_OpenChest(chest) function [NTCommon.ntl]
* Fixed a bug in MWL_IDItemsAfterPickup() that caused descriptions in XML log to be undefined [MWLoot.ntl]
* Altered attack positions for blessed hammer in NTA_PaladinCastSkillInt(index, target) [NTAttack.ntl]
* Improved summoner attack algorithm [NTAttack.ntl]
* Rewrote MWL_FindItem(range) function [MWLoot.ntj]
+ Added MWT_GetThrashItems() function [NTTown.ntl]
+ Added MWT_CheckKeyPosition() function [NTTown.ntl]
* Performed some vast improvements regarding ID at cain [NTTownManager.ntl]
* Rewrote NTTMGR_CheckKeys() function and changed its name to MWTMGR_GetKeyQuantity() [NTTownManager.ntl]
+ Added MWT_Stash() class [NTTown.ntl]
+ Added MWT_Stash::GetSlotCount(mode) method
+ Added MWT_Stash::PrintContent() method
+ Added MWT_Stash::Check() method
+ Added MWT_Stash::CheckFragmentation() method
+ Added MWT_Stash::MoveItem(item, x, y) method
+ Added MWT_Stash::Sort() method
+ Added MWT_Stash::GetItemIndex(x, y) method
+ Added MWT_Stash::GetTargetSlot(item) method
+ Added MWT_Stash::RefreshProperties() method
+ Added MWT_Belt_Slot() class [NTTown.ntl]
+ Added MWT_Belt() class [NTTown.ntl]
+ Added MWT_Belt::Check() method
+ Added MWT_Belt::RefreshProperties() method
+ Added MWT_Belt::GetPotionCount(col, mode) method
+ Added MWT_Belt::GetTargetSlot(type) method
+ Added MWT_Belt::RelocatePotion(colIndex, lineIndex) method
+ Added MWT_Belt::CheckPotionPositions() method
+ Added MWT_Belt::CheckMaxColumns(type, offset) method
+ Added MWT_Belt::GetColumnCount(type) method
+ Added MWT_Belt::ClearSlot(colIndex, lineIndex) method
+ Added MWT_Belt::CalcColumnValue(col) method
+ Added library for skill constants [MWSkills.ntl]
+ Added library for user commands [MWUserCommands.ntl]
+ Added MWUC_HandleUserCommand(keycode, data, scriptIndex) function [MWUserCommands.ntl]
+ Added MWUC_PrintNearbyUnitProperties(type, range) function [MWUserCommands.ntl]
+ Added MWUC_IsValidCommand(command) function [MWUserCommands.ntl]
* Rewrote NTP_DoPrecast(refresh) function [NTPrecast.ntl]
- Removed MWP_SummonGolem() function [NTPrecast.ntl]
* Rewrote MWC_GetMinionCount(type) function [NTCommon.ntl]
* Rewrote MWC_GetMaxMinionCount(skillId) function [NTCommon.ntl]
+ Added MWC_ManaParty() function [NTCommon.ntl]
+ Added MWC_GetExistingParty() function [NTCommon.ntl]
+ Added MWC_PrintOverheadStatus(text) function [NTCommon.ntl]
+ Added MWC_Initialize() function [NTCommon.ntl]
+ Added MWC_ConvertTicksToTimeString(ticks, formatString) function [NTCommon.ntl]
+ Added MWC_SetStatusText(start, end) function [NTCommon.ntl]
+ Added various constants [NTCommon.ntl]
+ Added MWC_CastTelekinesis(target) function [NTCommon.ntl]
+ Added MWT_CheckRepairCost() function [NTTown.ntj]
- Removed NTT_ResetWeaponMerc() function [NTTown.ntj]
+ Added MWT_OpenStash() function [NTTown.ntj]
+ Added MWT_GetTrashItems(simple) function [NTTown.ntj]
+ Added MWT_IsSellable(item) function [NTTown.ntj]
+ Added MWT_CheckKeyPosition() function [NTTown.ntj]
+ Added MWT_FillBelt(npc) function [NTTown.ntj]
- Removed NTT_FillBelt(npc) function [NTTown.ntj]
+ Added MWT_BuyPotion(npc, type, mode, amount) function [NTTown.ntj]
- Removed NTT_BuyPotionsFastInt(npc) function [NTTown.ntj]
- Removed NTT_BuyPotionsColInt(npc, col) function [NTTown.ntj]
- Removed NTT_BuyPotionsSlowInt(npc) function [NTTown.ntj]
- Removed NTT_GetNeededPotionsColInt(type, column) function [NTTown.ntj]
- Removed NTT_PotInRightColInt(potx, column, beltsize) function [NTTown.ntj]
- Removed NTT_ClearBelt() function [NTTown.ntj]
* Improved NTT_ShopItem(item, npc, mode) function [NTTown.ntj]
+ Added MWT_CheckManaPotions(threshold) function [NTTown.ntj]
+ Added MWT_IsPotionRequired(code, simple) function [NTTown.ntj]
* Rewrote NTT_CheckStash() function [NTTown.ntj]
* Modified NTT_ManageStash(invitem) function [NTTown.ntj]
* Partly rewrote NTTMGR_TownManager(simple) function [NTTownManager.ntj]
+ Added MWI_WriteBulletinBoardOutput() function [MWItemlogger.ntl]
+ Added bot script: MWKurastTemples.ntj
+ Added bot script: MWRush.ntj
+ Added bot script: MWSuperChests.ntj
+ Added bot script: MWUberTristram.ntj
+ Added bot script: MWBloodyRejuvs.ntj
+ Added global config: MWConfig_GlobalSettings.ntl
+ Added entry point: MWRushEntry.ntj
+ Added MWM_IsWaypoint(classid) function [NTMove.ntl]
+ Added MWC_GetItems(location, mode, search) function [NTCommon.ntl]
+ Added MWC_SetStatusText(start, end) function [NTCommon.ntl]
+ Added MWC_FindCurrentBotScript() function [NTCommon.ntl]
4.3 Credits
Mein Dank geht an den Autor des Cow Scripts, dessen Name mir leider nicht bekannt ist.

Dann an
agor, der die ursprüngliche Version des XML Itemlogs verfasst hat. Diese habe ich zwar mitlerweile ziemlich zerpflückt, dennoch würde es dieses Feature ohne diese Basis nicht geben.
Danke an

, für viele nützliche Tipps und Anregungen.
Danke an einen mir nicht namentlich bekannten Herren aus Korea, für die Bereitstellung von D2NT.
Und natürlich an die epvp Community, die mich immer wieder auf interessante Ideen gebracht hat und mich mit Feedback versorgt hat.
Soviel dazu, Kritik, Fehlermeldungen und Verbesserungsvorschläge werden natürlich dankend angenommen.
Lg
Muddy
P.S.: Das Archivpasswort lautet
muddy