A Diablo II 1.11b/1.13d improvement mod. Used on realm.angrenost.org
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
files Fix D2Win.dll ASLR issue: May 16, 2015
gl Repo cleanup. Add missing dependencies Jul 15, 2014
glide3x Rework D2Ptrs -> ExPtrs to get rid of optimization errors. Now it com… Feb 5, 2014
libpng Repo cleanup. Add missing dependencies Jul 15, 2014
png++ Repo cleanup. Add missing dependencies Jul 15, 2014
readerwriterqueue
readme_gfx Update README May 24, 2015
xxhash ExScreen: Fix Breakpoints panel misplacement Mar 23, 2014
.gitignore Repo cleanup. Add missing dependencies Jul 15, 2014
ArrayEx.h Created a git project Aug 22, 2012
BlizzardSmartPointer.h Rework of ExControls to fix random crashes Apr 24, 2015
CollisionMap.cpp Add license stuff Mar 14, 2014
CollisionMap.h Add license stuff Mar 14, 2014
CommonStructs.h Update structs Jan 5, 2016
Constants.h
D2DataTables.h Update structs Jan 5, 2016
D2Ex2.cpp Add client support for dynamic max res cap feature May 6, 2016
D2Ex2.def Created a git project Aug 22, 2012
D2Ex2.h [ExEvents] Add packet support to dynamically change max player count Jan 12, 2016
D2Ex2.sln Add more build defs Feb 8, 2014
D2Ex2.vcxproj Add client support for dynamic max res cap feature May 6, 2016
D2Ex2.vcxproj.filters Add missing stuff Jan 13, 2016
D2ExPointers_111B.h
D2ExPointers_113D.h [ExEvents] Add packet support to dynamically change max player count Jan 12, 2016
D2Strings.h Add D2Strings.h Apr 27, 2015
D2Structs_111B.h No more threads, Mr. White May 17, 2015
D2Structs_113D.h Update structs Jan 5, 2016
D2Stubs.cpp [ExMultiRes] Add panel borders & remove screen shift on high res Jun 1, 2015
D2Stubs.h [ExMultiRes] Add panel borders & remove screen shift on high res Jun 1, 2015
ExAim.cpp ExMultiRes: Fixed inventories Y position Apr 27, 2014
ExAim.h ExAutoTele is working as fast as lightning! Feb 14, 2014
ExAutoTele.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExAutoTele.h Add license stuff Mar 14, 2014
ExAutomap.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExAutomap.h Add custom death message Apr 17, 2014
ExBox.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExBox.h Rework of ExControls to fix random crashes Apr 24, 2015
ExBuffs.cpp [ExBuffs] Simplify the code Jan 12, 2016
ExBuffs.h [ExBuffs] Simplify the code Jan 12, 2016
ExButton.cpp [ExButton] Fix a button release bug Apr 26, 2015
ExButton.h
ExCellFile.cpp Add license stuff Mar 14, 2014
ExCellFile.h Add license stuff Mar 14, 2014
ExChat.cpp Add license stuff Mar 14, 2014
ExChat.h Add license stuff Mar 14, 2014
ExCheckBox.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExCheckBox.h Rework of ExControls to fix random crashes Apr 24, 2015
ExChicken.cpp Add license stuff Mar 14, 2014
ExChicken.h Add license stuff Mar 14, 2014
ExControl.cpp Make ExEvents thread free Jan 2, 2016
ExControl.h Make ExEvents thread free Jan 2, 2016
ExControlManager.cpp Make ExEvents thread free Jan 2, 2016
ExControlManager.h
ExCube.cpp [ExCube] Fix typo preventing from setting portal act Jul 9, 2015
ExCube.h Implement ExCube May 24, 2015
ExDeathMessage.cpp Add custom death message Apr 17, 2014
ExDeathMessage.h ExScreen: Fix Breakpoints panel misplacement Mar 23, 2014
ExDownload.cpp
ExDownload.h No more threads, Mr. White May 17, 2015
ExEditBox.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExEditBox.h Rework of ExControls to fix random crashes Apr 24, 2015
ExEntryText.cpp
ExEntryText.h
ExEvents.cpp Add client support for dynamic max res cap feature May 6, 2016
ExEvents.h Add client support for dynamic max res cap feature May 6, 2016
ExExtendedLevels.cpp [ExExtendedLevels] Use DWORD instead BYTE as return of the function May 24, 2015
ExExtendedLevels.h
ExFontManager.cpp
ExFontManager.h ExFontManager: Fix assertion Apr 25, 2015
ExFriends.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExFriends.h Add license stuff Mar 14, 2014
ExGDI.cpp Add missing stuff Jan 13, 2016
ExGDI.h Add missing stuff Jan 13, 2016
ExImage.cpp
ExImage.h Make ExEvents thread free Jan 2, 2016
ExInput.cpp Make ExEvents thread free Jan 2, 2016
ExInput.h ExSpectator: Fix collision bugs & flashing issue for good Jul 1, 2014
ExLagometer.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExLagometer.h Rework of ExControls to fix random crashes Apr 24, 2015
ExListBox.cpp Created a git project Aug 22, 2012
ExListBox.h Created a git project Aug 22, 2012
ExLoading.cpp Add missing stuff Jan 13, 2016
ExLoading.h Add license stuff Mar 14, 2014
ExMPQ.cpp ExMultiRes: Fixed inventories Y position Apr 27, 2014
ExMPQ.h Add license stuff Mar 14, 2014
ExMemory.cpp
ExMemory.h Created a git project Aug 22, 2012
ExMultiRes.cpp Add missing stuff Jan 13, 2016
ExMultiRes.h Add missing stuff Jan 13, 2016
ExOOG.cpp ExMultiRes: Fix UI issues on 800x600 Apr 30, 2014
ExOOG.h Add license stuff Mar 14, 2014
ExOpenGL.h ExScreen: Fix Breakpoints panel misplacement Mar 23, 2014
ExOptions.cpp [ExMultiRes] Use ExResolution instead of Resolution registry key to a… May 30, 2015
ExOptions.h ExOptions: Right click on switchable options now works as intended May 17, 2015
ExParty.cpp [ExParty] Fix crash when PVPGN_GIVEUP is not set Jan 13, 2016
ExParty.h [ExEvents] Send clan tag by packets, no more Clans.ini Jan 12, 2016
ExPrecast.cpp Add license stuff Mar 14, 2014
ExPrecast.h Add license stuff Mar 14, 2014
ExRectangle.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExRectangle.h Rework of ExControls to fix random crashes Apr 24, 2015
ExScreen.cpp Add client support for dynamic max res cap feature May 6, 2016
ExScreen.h Add client support for dynamic max res cap feature May 6, 2016
ExScrollBar.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExScrollBar.h Rework of ExControls to fix random crashes Apr 24, 2015
ExSpectator.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExSpectator.h ExSpectator: Fix collision bugs & flashing issue for good Jul 1, 2014
ExTextBox.cpp Make ExEvents thread free Jan 2, 2016
ExTextBox.h Make ExEvents thread free Jan 2, 2016
ExWindow.cpp Rework of ExControls to fix random crashes Apr 24, 2015
ExWindow.h
Matrix.h Created a git project Aug 22, 2012
Misc.cpp Add a new line to debug msgs Jan 12, 2016
Misc.h Fix TransCode() to be thread-safe May 24, 2015
Offset.cpp
Offset.h Add license stuff Mar 14, 2014
README.md Update README May 24, 2015
SyncObj.h Created a git project Aug 22, 2012
TeleportPath.cpp ExMultiRes: Fixed inventories Y position Apr 27, 2014
TeleportPath.h Add license stuff Mar 14, 2014
Vars.h Add client support for dynamic max res cap feature May 6, 2016
stdAfx.h Implement ExCube May 24, 2015
stdafx.cpp Created a git project Aug 22, 2012

README.md

D2Ex2

A Diablo II 1.11b/1.13d improvement mod. Been used on realm.angrenost.org.

Key features

  • Completely reworked party screen, can handle up to 64 players
  • Fixed some vanilla bugs, random crashes etc
  • Expanded Sounds.Txt limit to 4954, you can easily increase to more
  • Reduced TCP/IP / Open BNet join time.
  • Lagometer (ported from Q3 source :D)
  • Reworked ESC-menu, get rid of .dc6 files. Now creating your own menu is easy as pie (ExOptions.cpp)
  • Created a lot of custom controls, you can use them to create your GUI (ie new party screen)
  • Supports both 1.11b & 1.13d (set version in stdafx.h (1.11b may have missing some pointers))
  • ExBuffs module let see you states, auras and remaining time
  • [WIP] High resolution support for GDI / GLIDE video modes.
  • Packet sender / receiver (commands #send, #recv)
  • Items stat range (press CTRL + hoover on an item)

Configuration

You can set build flags in stdAfx.h. However flags related to D2EX_PVPGN_EXT won't work for you unless you have serverside DLL which i won't make public.
List of flags / values you can set:

  • D2EX_CLOSED_BNET: make hack usable on closed bnet
  • D2EX_SCRAP_HACKS: some random hacks like bugged wsg
  • D2EX_MULTIRES: enables high resolution settings
    • D2EX_OPENGL: experimental, enables OpenGL render mode (ExOpenGL.cpp / ExTexture.cpp is not available in the repo, so it won't work for you)
    • D2EX_ALLOWHIGHRES: enables support for 800x600+
    • D2EX_MINIMALRES: restrict resolution to 1024x768 and 1280x1024
  • D2EX_PVPGN_EXT: enables serverside stuff like kill counter, spectator mode etc. All the following subflags needs serverside changes to work.
    • D2EX_PVPGN_GIVEUP: adds Give up to ESC menu
    • D2EX_ARGOLD: enables client support for virutal gold service in trade window
    • D2EX_FORUMGOLD: enables client support to replace gold with external forum gold currency
    • D2EX_SPECTATOR: enables client support for spectator mode
      • D2EX_SPECTATOR_STATE: states.txt record set on spectators
    • D2EX_COLOR_STAT: itemStatCost.Txt record which stores item color value
    • D2EX_LOOTED_STAT: itemStatCost.Txt record which stores monster id which gave the item
    • D2EX_CUSTOM_CUBE_RECIPES: Adds "portal" keyword to CubeMain.Txt output
  • D2EX_EXAIM_ENABLED: experimental -- never finished -- abandoned project of intelligent autoaim
  • D2EX_PVM_BUILD: enables maphack with monsters on the map, autotele, etc.
  • D2EX_MAX_SND_TXT_ROWS: maximum rows in Sound.txt
  • D2EX_I_NEED_CUBE: define if you need transmute button, otherwise it will be used as auto-precast feature
  • D2EX_TP_RANGE: maximum teleport range for AutoTele
  • D2EX_ENABLE_PACKET_COMMANDS: enables packet commands in Release build
  • D2EX_DEBUG_INFO: Show current mouse X&Y, and the selected unit id in Release build
  • D2EX_PRINT_ITEMLEVEL: Print "Item Level" on an item description
  • D2EX_EXTENDED_LEVELS: Extends Levels.txt limit to 255

Installation

  1. Compile Release build (select configuration for your version) using Visual Studio 2012 or newer.
  2. Copy everything from files directory to your Diablo II directory, D2Win.dll is a loader for D2Ex2.dll. If you use prebuilt D2Ex2.dll, then you'll need to install this: http://www.microsoft.com/en-us/download/details.aspx?id=40784
  3. Warning: Files ExOpenGL.cpp and ExTexture.cpp/h are not included in this repo. You have to remove them manually from Solution Explorer to make build succeed.

Showcase

  • 22 vs 22 video (Early version)
    22 vs 22 video
  • Party screen with kill/assist/death counter
    Party screen
  • Stat range (CTRL + hover on an item)
    Stat ranges
  • Buffs
    Bufs
  • Can you guess what resolution it is?
    Hi-res

Thanks to

Vav for motivation
MrMag-WS for testing platform
RoluS/Zurek/InteR for some great ideas
Phrozen Keep forums for great source of informations