Skip to content
This repository was archived by the owner on Dec 21, 2022. It is now read-only.

Commit a10af51

Browse files
committed
updated readme
1 parent febb5ea commit a10af51

File tree

7 files changed

+155
-114
lines changed

7 files changed

+155
-114
lines changed

Diff for: README.md

+59-30
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ Noob friendly FREE map reveal tool for Diablo 2 Resurrected.
44
Use at your own risk, there is no warranty or responsibility taken for being penalised for using this.
55

66
This map hack is as simple as running an executable. It relies on a backend server that is offered for free but runs on donations.
7+
The backend does _not_ use d2mapapi, but instead uses a modified version of this project [blacha/diablo2](https://github.com/blacha/diablo2/tree/master/packages/map).
78

89
This tool is licenced under GPLv3.
910

10-
The backend map server relies on this project [blacha/diablo2](https://github.com/blacha/diablo2/tree/master/packages/map). This tool uses a modified version of that executable to generate map data.
11-
1211
Join the discord server <https://discord.gg/qEgqyVW3uj>
1312

1413
![Durance of Hate Level 2](duranceofhate2.png)
@@ -32,8 +31,9 @@ https://www.youtube.com/watch?v=-tezpjrZwEI
3231
3. Run `d2rmap.exe` while in menus or in game.
3332
4. You show see a 'Loading map data' message on the top left of the screen, this initial loading may take 10-15 seconds.
3433
5. Make sure you press TAB to show the minimap, this map will only display when your minmap is displayed.
34+
6. Press Ctrl+H in game for a help menu
3535

36-
The executable does not require administrator unless you are running the game as administrator
36+
The executable does not require administrator privileges unless you are running the game as administrator
3737

3838
### Virustotal gave me an alert
3939

@@ -55,15 +55,26 @@ This server is getting hammered lately so it would be appreciated if you support
5555

5656
### Features
5757

58-
- Live player position on map
59-
- Live monster position on map
60-
- Other player positions on map
61-
- Unique/champion monsters marked specially
62-
- Immunities of monsters highlighted
63-
- Super chests specially marked (LK chests)
64-
- All quest items, doors, waypoints marked
65-
- Line drawn from your player position to the next level/waypoint
66-
- Highly configurable
58+
- The map will show positions of:
59+
- Players
60+
- Monsters as a white dot
61+
- Unique/champion/superunique monsters as a larger gold dot
62+
- Monster immunities
63+
- Unique items on ground (flashing alert)
64+
- Set items on ground (flashing alert)
65+
- High runes on ground (Lem and above) (flashing alert)
66+
- Super chests marked (Lower Kurast chests)
67+
- Shrines and their type
68+
- Portals
69+
- All doors, waypoints marked
70+
- A purple line drawn to the next level exit
71+
- A yellow line drawn to the waypoint
72+
- A red line drawn to the nearest boss (Nihlithak, summoner etc)
73+
- All quest items, marked in green (Stones, Hellforge, Altars etc)
74+
- Highly configurable, size, color, position, opacity etc
75+
- Can change map size and position with key shortcuts while in game
76+
- Shows last game name and game time while in menu
77+
![Last Game Name](prevgame.png)
6778

6879
If you want D2R server IP to show, look at my extra standalone tool for that <https://github.com/joffreybesos/DcloneIPview>
6980

@@ -95,39 +106,62 @@ In `settings.ini` you should see some options to make configuration changes.
95106

96107
| Setting | Default | Description |
97108
| :-------------- | :------------------ | :---------------------- |
98-
| baseUrl | http://localhost:3002 | URL of the map server, set to public server by default, but you can use localhost if you [run your own server](SERVER.md) |
99-
| scale | 1.0 | The global scale setting applied to all map images, press NumpadPlus and NumpadSubtract to adjust in game|
109+
| baseUrl | http://localhost:3002 | URL of the map server, set to public server by default, but you can use localhost if you [run your own server](SERVER.md) |
110+
| scale | 1 | The global scale setting applied to all map images, press NumpadPlus and NumpadSubtract to adjust in game |
100111
| leftMargin | 20 | The left margin of all map images, set this to wider than your primary monitor to push it onto your secondary monitor. |
101112
| topMargin | 20 | Top margin of map image |
102-
| opacity | 0.5 | How transparent the map image should be, between 0 and 1 |
113+
| opacity | 0.6 | How transparent the map image should be, between 0 and 1 |
103114
| alwaysShowMap | false | This setting will force the map to always show, ignoring the TAB key |
104115
| hideTown | false | This will hide town maps so they will never show |
116+
| edges | true | This makes map images appear as walls instead of walkable area |
117+
| wallThickness | 1.2 | Thickness of walls in when `edges` is turned on |
118+
| showGameInfo | true | Shows previous game name and game time in menus |
105119
| showNormalMobs | true | Set to false to hide normal non-unique monsters on the map |
106120
| showUniqueMobs | true | Set to false to hide unique monsters on the map |
107121
| showBosses | true | Show bosses with a red dot, such as Diablo, Summoner etc |
108122
| showDeadMobs | true | Show dead mobs as a black square (useful to know which areas are clear) |
109-
| normalMobColor | FFFFFF | Colour of the dot of normal monsters |
123+
| showImmunities | true | Show immunties of normal and unique monsters |
124+
| showOtherPlayers | true | Show other players as squares |
125+
| showItems | true | Show items on ground (unique, set, runes) |
126+
| showShrines | true | Show shrines |
127+
| showPortals | true | Show portals including red portals |
128+
| normalMobColor | FFFFF | Colour of the dot of normal monsters |
110129
| uniqueMobColor | D4AF37 | Colour of the dot of unique monsters |
111130
| bossColor | FF0000 | Colour of boss dots on the map |
112-
| showImmunuties | true | Show immunties of normal and unique monsters |
131+
| deadColor | 000000 | Color of dead mobs on the map |
132+
| physicalImmuneColor | CD853f | How physical immunity will display |
133+
| magicImmuneColor | ff8800 | How magic immunity will display |
134+
| fireImmuneColor | FF0000 | How fire immunity will display |
135+
| lightImmuneColor | FFFF00 | How lightning immunity will display |
136+
| coldImmuneColor | 0000FF | How coldimmunity will display |
137+
| poisonImmuneColor | 32CD32 | How poison immunity will display |
138+
| runeItemColor | FFa700 | Rune alert colour when a rune is on the ground |
139+
| uniqueItemColor | BBA45B | Unique alert color when a unique is on the ground |
140+
| setItemColor | 00FC00 | Set item alert colour when a set item is on the ground |
141+
| portalColor | 00AAFF | Town portal color |
142+
| redPortalColor | FF0000 | Red portal color (cow level) |
143+
| shrineColor | FFD700 | Shrine and shrine type text colour |
144+
| shrineTextSize | 14 | Shrine text size |
113145
| showWaypointLine | false | Draws a yellow line to the nearest waypoint, turned off by default |
114146
| showNextExitLine | true | Draws a purple line to the next relevant exit |
115147
| showBossLine | true | Draws a red line to the boss in that level (Nihlithak, Summoner etc) |
116148
| increaseMapSizeKey | NumpadAdd | Key to increase the size of the map |
117149
| decreaseMapSizeKey | NumpadSub | Key to decrease the size of the map |
118150
| alwaysShowKey | NumpadMult | Key to toggle `alwaysShowMap` setting |
119-
| playerOffset | 0x20AF660 | The static memory offset, when a new D2R client is released this will need to be updated |
120-
| uiOffset | 0x20BF322 | The offset used to determine whether your minimap is open or not |
121-
| readInterval | 10| How long to sleep between memory reads. Increase this if you are having performance problems |
151+
| moveMapLeft | #Left | Shortcut to move map left (Win + left) |
152+
| moveMapRight | #Right | Shortcut to move map right (Win + Right) |
153+
| moveMapUp | #Up | Shortcut to move map up (Win + Up) |
154+
| moveMapDown | #Down | Shortcut to move map down (Win + Down) |
155+
| performanceMode | 0 | Experimental, set to -1 to max out performance. This may use too much CPU and cause strange behaviour. Please report any issues in Discord as I wish to make this permanent |
122156
| enableD2ML | false | Only enable if you use multiple D2R sessions, not tested well |
123-
| windowTitle | D2R:main | this is ignored unless `enableD2ML` is turned on. It is the window title of one D2R session for multi sesion |
124-
| debug| false | Turn this one to increase the level of the logging, note this will create huge `log.txt` files |
157+
| windowTitle | D2R:main | This is ignored unless `enableD2ML` is turned on. It is the window title of one D2R session for multi sesion |
158+
| debug | false | Turn this one to increase the level of the logging, note this will create huge log.txt files |
125159

126160
## Map Server
127161

128162
### Use the hosted free map server
129163

130-
I offer a free to use map server on the internet, but it may be slow and occasionally go down.
164+
I offer a free to use map server on the internet.
131165
If you use this server please consider donating to help with server costs.
132166

133167
Bitcoin donation `18hSn32hChp1CmBYnRdQFyzkz5drpijRa2`
@@ -149,7 +183,7 @@ No one can say for sure. Blizzard do have Warden anti-cheat that will scan your
149183
- A log file `log.txt` is generated in the same folder as the executable.
150184
- You can also set debug logging to `true` in `settings.ini` for verbose logging.
151185
- Go to the discord server if you need further help <https://discord.gg/qEgqyVW3uj>
152-
- Tested and working on Diablo 2 Resurrected `1.0.67005`
186+
- Tested and working on Diablo 2 Resurrected `1.0.67358`
153187

154188
**Warning: The keyboard and/or mouse hook could not be activated; some parts of the script will not function**:
155189
This happens with certain antivirus where it will block hotkeys, you may need to 'allow' the script for hotkeys to work.
@@ -172,11 +206,6 @@ Violations of the licence may make you liable for DMCA takedowns.
172206

173207
## TODO
174208

175-
- Super uniques
176-
- Immunities
177-
- Map image scale on a per map basis
178-
- Shrine types
179-
- Moving arrows on screen edge showing direction to lower level/waypoint
180-
- Map replaces automap
209+
- Map replaces automap (centered in screen and follows player)
181210

182211
If you have ideas for more features, feel free to share them on discord

Diff for: arcane.png

41.1 KB
Loading

Diff for: canyonofthemagi.png

19.5 KB
Loading

Diff for: duranceofhate2.png

1.3 MB
Loading

Diff for: lowerkurast.png

25.3 KB
Loading

Diff for: prevgame.png

527 KB
Loading

Diff for: src/memory/readObjects.ahk

+96-84
Original file line numberDiff line numberDiff line change
@@ -54,90 +54,102 @@ ReadObjects(d2rprocess, startingOffset, ByRef gameObjects) {
5454

5555
isShrine(txtFileNo) {
5656
switch (txtFileNo) {
57-
case 2: return 1 ; Shrine
58-
case 80: return 1 ; Obelisk
59-
case 81: return 1 ; ForestAltar
60-
case 82: return 1 ; BubblingPoolOfBlood
61-
case 83: return 1 ; HornShrine
62-
case 84: return 1 ; HealingWell
63-
case 85: return 1 ; BullHealthShrine
64-
case 86: return 1 ; SteleDesertMagicShrine
65-
case 93: return 1 ; InnerHellManaShrine
66-
case 96: return 1 ; InnerHellHealthShrine
67-
case 97: return 1 ; InnerHellShrine
68-
case 109: return 1 ; PalaceHealthShrine
69-
case 116: return 1 ; SnakeWomanShrine
70-
case 123: return 1 ; InnerHellShrine2
71-
case 124: return 1 ; InnerHellShrine3
72-
case 133: return 1 ; ArcaneSanctuaryShrine
73-
case 134: return 1 ; DesertShrine2
74-
case 135: return 1 ; DesertShrine3
75-
case 136: return 1 ; DesertShrine1
76-
case 150: return 1 ; DesertShrine5
77-
case 151: return 1 ; DesertShrine4
78-
case 172: return 1 ; DesertHealthShrine
79-
case 184: return 1 ; JungleShrine2
80-
case 190: return 1 ; JungleShrine3
81-
case 191: return 1 ; JungleShrine4
82-
case 197: return 1 ; JungleShrine5
83-
case 199: return 1 ; MephistoShrine1
84-
case 200: return 1 ; MephistoShrine2
85-
case 201: return 1 ; MephistoShrine3
86-
case 202: return 1 ; MephistoManaShrine
87-
case 206: return 1 ; MafistoHealthShrine
88-
case 226: return 1 ; OuterHellShrine
89-
case 231: return 1 ; OuterHellShrine2
90-
case 232: return 1 ; OuterHellShrine3
91-
case 236: return 1 ; HellHealthShrine
92-
case 249: return 1 ; HellManaShrine
93-
case 260: return 1 ; Act1HolyShrine
94-
case 262: return 1 ; Act1CathedralShrine
95-
case 263: return 1 ; Act1JailShrine1
96-
case 264: return 1 ; Act1JailShrine2
97-
case 265: return 1 ; Act1JailShrine3
98-
case 275: return 1 ; CavesHealthShrine
99-
case 276: return 1 ; CavesManaShrine
100-
case 277: return 1 ; CaveMagicShrine
101-
case 278: return 1 ; Act3DungeonManaShrine
102-
case 279: return 1 ; Act3SewersMagicShrine1
103-
case 280: return 1 ; Act3SewersHealthWell
104-
case 281: return 1 ; Act3SewersManaWell
105-
case 282: return 1 ; Act3SewersMagicShrine2
106-
case 299: return 1 ; Act2HaramMagicShrine1
107-
case 300: return 1 ; Act2HaramMagicShrine2
108-
case 301: return 1 ; MaggotHealthWell
109-
case 302: return 1 ; MaggotManaWell
110-
case 303: return 1 ; ArcaneSanctuaryMagicShrine
111-
case 325: return 1 ; Act3SewerMagicShrine
112-
case 361: return 1 ; Act3DungeonMagicShrine
113-
case 414: return 1 ; ExpansionWildernessShrine1
114-
case 415: return 1 ; ExpansionWildernessShrine2
115-
case 421: return 1 ; ExpansionWildernessShrine3
116-
case 422: return 1 ; ExpansionManaShrine
117-
case 423: return 1 ; ExpansionHealthShrine
118-
case 427: return 1 ; ExpansionWildernessShrine4
119-
case 428: return 1 ; ExpansionWildernessShrine5
120-
case 464: return 1 ; IceCaveHealthShrine
121-
case 465: return 1 ; IceCaveManaShrine
122-
case 472: return 1 ; IceCaveMagicShrine
123-
case 479: return 1 ; IceCaveMagicShrine2
124-
case 483: return 1 ; WorldstoneManaShrine
125-
case 484: return 1 ; WorldstoneHealthShrine
126-
case 488: return 1 ; WorldstoneMagicShrine
127-
case 491: return 1 ; ExpansionSnowyManaShrine1
128-
case 492: return 1 ; ExpansionSnowyHealthShrine
129-
case 493: return 1 ; ExpansionSnowyWell
130-
case 495: return 1 ; ExpansionSnowyMagicShrine2
131-
case 496: return 1 ; ExpansionWildernessWaypoint
132-
case 497: return 1 ; ExpansionSnowyMagicShrine3
133-
case 498: return 1 ; WorldstoneWell
134-
case 499: return 1 ; WorldstoneMagicShrine2
135-
case 503: return 1 ; WorldstoneMagicShrine3
136-
case 509: return 1 ; ExpansionTempleMagicShrine1
137-
case 512: return 1 ; ExpansionTempleMagicShrine2
138-
case 520: return 1 ; ExpansionTempleMagicShrine
139-
case 521: return 1 ; ExpansionTempleHealthShrine
140-
case 522: return 1 ; ExpansionTempleManaShrine
57+
case 2: return 1 ;DeerShrine
58+
case 77: return 1 ;ShrineAltar
59+
case 81: return 1 ;ForestAltar
60+
case 83: return 1 ;HornShrine
61+
case 85: return 1 ;BullShrine
62+
case 86: return 1 ;SteleShrine
63+
case 93: return 1 ;InnerHellManaShrine1
64+
case 96: return 1 ;InnerHellHealthShrine1
65+
case 97: return 1 ;InnerHellMagicShrine1
66+
case 109: return 1 ;PalaceShrine
67+
case 116: return 1 ;SnakeWomanShrine
68+
case 120: return 1 ;ShrineHealthDungeon
69+
case 123: return 1 ;InnerHellMagicShrine2
70+
case 124: return 1 ;InnerHellMagicShrine3
71+
case 133: return 1 ;ShrineMagicArcaneSanctuary1
72+
case 134: return 1 ;DesertShrine00
73+
case 135: return 1 ;DesertShrine01
74+
case 136: return 1 ;DesertShrine02
75+
case 149: return 1 ;TaintedSunShrine
76+
case 150: return 1 ;DesertShrine03
77+
case 151: return 1 ;DesertShrine04
78+
case 164: return 1 ;ManaWell1
79+
case 165: return 1 ;ManaWell2
80+
case 166: return 1 ;ManaWell3
81+
case 167: return 1 ;ManaWell4
82+
case 168: return 1 ;ManaWell5
83+
case 172: return 1 ;ShrineHealth
84+
case 173: return 1 ;ShrineMana
85+
case 184: return 1 ;JungleShrine2
86+
case 190: return 1 ;JungleShrine3
87+
case 191: return 1 ;JungleShrine4
88+
case 197: return 1 ;JungleShrine5
89+
case 199: return 1 ;MephistoShrine1
90+
case 200: return 1 ;MephistoShrine2
91+
case 201: return 1 ;MephistoShrine3
92+
case 202: return 1 ;MephistoShrine4
93+
case 206: return 1 ;MephistoShrine5
94+
case 226: return 1 ;HellShrine1
95+
case 231: return 1 ;OuterShrineHell2
96+
case 232: return 1 ;OuterShrineHell3
97+
case 249: return 1 ;HellManaWell1
98+
case 260: return 1 ;HolyShrineAct1
99+
case 262: return 1 ;Act1CathedralShrine
100+
case 263: return 1 ;Act1JailShrine
101+
case 264: return 1 ;Act1JailHealthShrine
102+
case 265: return 1 ;Act1JailManaShrine
103+
case 275: return 1 ;HealthShrineCavesAct1
104+
case 276: return 1 ;ManaShrineCavesAct1
105+
case 277: return 1 ;MagicShrinesCavesAct1
106+
case 278: return 1 ;ShrineManaDungeon
107+
case 279: return 1 ;ShrineMagicSewer
108+
case 280: return 1 ;ShrineHealthSewer
109+
case 281: return 1 ;ShrineManaSewer
110+
case 282: return 1 ;ShrineMagicSewer2
111+
case 299: return 1 ;HaremShrine1
112+
case 300: return 1 ;HaremShrine2
113+
case 301: return 1 ;MaggotShrineHealth
114+
case 302: return 1 ;MaggotShrineMana
115+
case 303: return 1 ;ShrineMagicArcaneSanctuary2
116+
case 319: return 1 ;ShrineArcaneHealth
117+
case 320: return 1 ;ShrineArcaneMana
118+
case 325: return 1 ;ShrineMagicSewer3
119+
case 343: return 1 ;ShrineManaKurast
120+
case 344: return 1 ;ShrineHealthKurast
121+
case 361: return 1 ;DungeonShrineMagic
122+
case 414: return 1 ;ShrineWildernessExp1
123+
case 415: return 1 ;ShrineWildernessExp2
124+
case 421: return 1 ;ShrineAltarExp
125+
case 422: return 1 ;ShrineManaExp
126+
case 423: return 1 ;ShrineHealthExp
127+
case 427: return 1 ;ShrineWildernessExp3
128+
case 428: return 1 ;ShrineWildernessExp4
129+
case 464: return 1 ;ShrineHealthIceCave
130+
case 465: return 1 ;ShrineManaIceCave
131+
case 472: return 1 ;ShrineMagicIceCave
132+
case 479: return 1 ;ShrineMagicIceCave2
133+
case 483: return 1 ;ShrineBaal1
134+
case 484: return 1 ;ShrineBaal2
135+
case 488: return 1 ;ShrineBaalMagic
136+
case 491: return 1 ;ShrineBaalMana
137+
case 492: return 1 ;ShrineBaalHealth
138+
case 495: return 1 ;ShrineMagicSnow1
139+
case 497: return 1 ;ShrineMagicSnow2
140+
case 499: return 1 ;ShrineBallMagic2
141+
case 503: return 1 ;ShrineBaalMagic3
142+
case 509: return 1 ;ShrineTempleMagic1
143+
case 512: return 1 ;ShrineTempleMagic2
144+
case 520: return 1 ;ShrineTempleMagic3
145+
case 521: return 1 ;ShrineTempleHealth
146+
case 522: return 1 ;ShrineTempleMana
147+
case 574: return 1 ;DesertShrineArmor
148+
case 575: return 1 ;DesertShrineCombat
149+
case 576: return 1 ;DesertShrineResist
150+
case 577: return 1 ;DesertShrineSkill
151+
case 578: return 1 ;DesertShrineRecharge
152+
case 579: return 1 ;DesertShrineStamina
141153
}
142154
return 0
143155
}

0 commit comments

Comments
 (0)