Code Monkey home page Code Monkey logo

d2info's Introduction

d2info

Build Status

d2info is a tool for viewing/outputting various information about a running Diablo II game (by reading the memory used by the game).

Currently, it provides the following information:

  • Experience per minute over different time periods:
    • Real time (since the character was first seen by the d2info process)
    • In-game time (only includes time that the character is in a game, not paused, etc)
    • Current game
    • Last game (xp/min of the last game at the point of save+quit)
  • Estimated time until the next level, using the various exp/min readings
  • Number of runs finished, average xp/min per run, estimated runs until the next level
  • Number of experience 'ticks' gained (pixels filled in the experience bar)
  • Information about the current area, like monster level and % xp gain (unfinished, disabled by default; see SHOW_AREA_INFORMATION in the config)

Supports Diablo II versions 1.13c, 1.13d, 1.14b, 1.14c, and 1.14d (D2SE and/or PlugY are also supported). It can also be used on LAN and private multiplayer servers (if it's allowed), however it is not recommended to use it on Battle.net, as it will most likely be considered a cheat and could result in a ban.

Installation

Simply grab the latest .exe build from the releases page and run it (as administrator).

Note: You'll probably want to put the .exe in its own folder, as it will output various files relative to its location

Running using Lua

Output

The information is output to both the console window and to individual text files (in the directory output, relative to d2info) to allow the info to be easily added to stream overlays.

Console output example:

CharName (level 96 & 32.85%)
/players 8

Run #6:
 207.8k xp/min (734.2k xp in 3m32s)
 13h until level 97 at this rate

Last run:
 160.7k xp/min (576.0k xp in 3m35s)
 17h until level 97 at this rate

Average run:
 165.0k xp/min (521.0k xp in 3m09s)
 315 runs until level 97

This session:
 +1.6 ticks (+1.36%)
 Next tick in 675.2k xp
 177.8k xp/min (3.3m xp in 19m19s)
 15h until level 97 at this rate

Tick Party

The file output/tick-party.txt can be used in conjunction with the OBS script Txt Trigger to show OBS source(s) (video, audio, etc) whenever an experience tick is gained (i.e. when a new pixel is filled in).

Txt Trigger settings

The above settings will use the d2info config option TICK_PARTY_DURATION for the amount of time the source(s) are shown. Alternatively, you can uncheck 'Make source(s) visible for as long as file contents match' and set the duration in OBS.

Acknowledgements

  • DiabloInterface for information about the memory layout of D2 and techniques for reading its memory
  • PlugY for information about the memory layout of D2 and how to determine the version of the game process

d2info's People

Contributors

squeek502 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

astocko

d2info's Issues

Simple plugin system

What I'm imagining:

  • Lua scripts are loaded from ./d2info/plugins/?.lua relative to d2info.exe
  • Each plugin can implement hooks into the various parts of d2info (tick, output, etc)

Investigate multiplayer memory layout some more

After #3, certain functions in D2Reader will not work while in a multiplayer game, like reading the current area, getting /players X (should be determined by the number of players in the multiplayer game), etc. This is because getWorldPointer and/or getGamePointer don't work while on a multiplayer server.

This is no real problem for now, since none of the core functionality relies on this data being available, but for the future it'd be good to get these things to work on multiplayer servers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.