Giter Club home page Giter Club logo

slashdiablo-maphack's People

Contributors

arolds avatar assafnativ avatar clucksoft avatar decker87 avatar dschu012 avatar guijss avatar iamtrial avatar jimmythej avatar kainjow avatar lamerman avatar mcgod avatar planqi avatar salinecitrine avatar slayergod13 avatar underbent avatar youbetterdont avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

slashdiablo-maphack's Issues

Hwanin's Blessing Belt Base Defense

Screenshot043
The Base Defense for the Hwanin's Blessing belt displays a range of potential values (5-5). This is unnecessary because the belt can have only one possible value for Base Defense.
The range of values for the Base Defense should be removed from Hwanin's Blessing belt.

[Feature] socket stat range of unique and set items

hey can you add socket stat range of unique and set items just like enhanced damage or life steal?
for example : tomb reaver shows "socketed [2] (1-3)", and griswold's redemption shows "socketed [3] 3-4"
it would be nice if this feature can be added

Auto-tele not working?

I've noticed the auto-tele is included but all of the config features are commented out. Is that feature still functional in the latest editions?

Need help compiling

Hi!, im kind of having some issues at the time of compiling the source, anyone could give me a hand with this?

Quest drop warning doesn't always work

The quest drop warning does not always work correctly, at least with Diablo. I don't think I've ever seen it not work with the Baal quest. I'm not sure about mephisto since I don't usually bother much with that one. When it does not work with Diablo, it seems to get stuck that way. It's something to do with the way the character completes the quests possibly.

Shift clicking to stash with PlugY

If PlugY is installed, the increased stash bugs out the shift click function when the normal d2 stash size has filled up :(

This can be solved by changing the following lines in https://github.com/planqi/slashdiablo-maphack/blob/master/BH/Modules/ItemMover/ItemMover.cpp, but unfortunately I cannot get the compiler to work on my machine (I made a similar fix in version 1.15s2 where I had success with recompiling)

Line 13: STASH_WIDTH = 10
Line 14: LOD_STASH_HEIGHT = 10
Line 22: STASH_LEFT = 95

The reasoning for line 22 is that CELL_SIZE is 29, and we are changing height from 8 to 10, so that means 153-2*29 = 95

Can someone maybe help me recompile the code with these changes? Or alternatively add a setting for modifying this?

How To Build the Solution from source?

Hey
I am a programmer from switzerland who tries to learn the mechanics of Diablo2 Pick-its and how this can be archived.
Therefore I would like to build the solution and its two projects by my own.
But I did not manage to build the projects with visual studio 2017 and windows sdk 8.1

What IDE and components do you use to build the projects?

Btw. did you try to use this program or an derivate of it in the project diablo2 ?
(https://www.projectdiablo2.com/)

Kind Regards
Philipp

Update: Managed to build the dll with visual studio 2010. Injection seems not to work for project diablo2

Customizable Map Colors

Please make the map indicator colors for player and player minions customizable. Also, the "Other" waypoint line does not work in the config, it's black no matter what color is defined.

[Feature Request] Configurable each QoL Features with other keys

For compatibility with other mods, in the upcoming version, I hope that all of the following QoL Features will be able to be turned on/off (or configurable other keys) by users.

(1) Ctrl + RClick
(2) Ctrl + Shift + RClick
(3) Shift + RClick
(4) Shift + LClick

Compile issue with filesystem

Seems like 'filesystem' calls are not a member of std, So just having cmake and vs 2017 build tools might not make it so you can build the project.

slashdiablo-maphack\BH\Modules\ScreenInfo\ScreenInfo.cpp(614): error C2039: 'filesystem': is not a member of 'std' [E:\Diablo2\slashdiablo-maphack\BH\BH\BH.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include\experimental/filesys tem(30): note: see declaration of 'std'

In-game BH settings box "hidden"

Any way to make the BH window in-game relative to the current Diablo II window size?

We are running into issues where users BH settings window is "hidden" due to them settings it at a position that is available in 1344x700 resolution, but when upgrading to the newer resolution of 1068x600, this position is now outside the Diablo II window

Issue with displaying item name as ??? when the game language is not english

In pull requests this issue described with screenshots.
In any not english game language mod make item names as "???"
And colors instead of color itself start to show as "y4c" before item name.
It causes by different code pages when game is not english.
All colors must be set like this to work properly:

#define COLOR_REPLACEMENTS
{"WHITE", "\377c0"},
{"RED", "\377c1"},
{"GREEN", "\377c2"},
{"BLUE", "\377c3"},
{"GOLD", "\377c4"},
{"GRAY", "\377c5"},
{"BLACK", "\377c6"},
{"TAN", "\377c7"},
{"ORANGE", "\377c8"},
{"YELLOW", "\377c9"},
{"PURPLE", "\377c;"},
{"DARK_GREEN", "\377c:"}

On Item.cpp must be added next to right colors on any language:
for (DWORD i = 0; i < wcslen(name); i++)
{
if ((name[i] >= 0xFF || name[i] == 0x79) && name[i + 1] == L'c')
{
name[i] = L'\377';
};
}
To fix "???" in item names in Constants.h for russian:

#define CODE_PAGE 1251

I think it must be the way to set CODE_PAGE as system code page...

[Feature] run tracker

It'd be nice if BH could automatically keep track of how many runs you have ran and what dropped during those run. Ideally at the end of each game it would just append info about the previous run to a csv and we could control the items logged in the csv by the ping lvl.

[FR] Softcode hardcoded UI strings to allow for l10n

though one can't directly input utf8 chars in hardcoded strings, (must use \uXXXX which XXXX is utf16 codepoint)
loading unicode cfg with #108 changes will display correctly.

so abstract all hardcoded strings to separate cfg may be good idea to i10n this.
when such config or such entry unexists, fallback to original string.

format example:
UiString[Base Defense]: B. DEF.

i have very very limited coding skills so i will leave this request open until repo owner decides to do us a favor,
or when i have enough time to waste.

“Loading MPQ Data” bug

If multiple clients, each with BH autoinjected, are launched too quickly, the message “Loading MPQ Data” is seen in game, and the game is unstable. In particular, the game will crash if you attempt to use any item mover features (shift right click).

[Feature] show bug boss quest status

There are 2 bosses that can be permanently bugged. On the player stat screen when you press 8 normally, it should show the status of those (if they are bugged or not in the current difficulty)

[Enhancement] Configurable "Path Color" width

Xum from slash is partially blind (I think) and has trouble seeing the lines. He was requesting for them to be a bit thicker, I think with a little bit of work we should be able to make it a configurable width.

Remove dependency on mpq reading from BH

For some of BH features they currently parse a few of the mpq files to read data. This is unnecessary, because this data has already been loaded by the game and in most cases already available on sgptDataTable. Reading the mpqs seems to also cause issues at time when launching multiple instances of the game quickly.

[Feature Request] Auto show minimap and Missed BO alert.

Just a couple of ideas that might work nicely for the community:

  • Hit Tab automatically upon entering game to auto show mini-map so you don't have to do it manually every time.

  • A "missed BO/ NO BO" feature that alerts after 10 seconds or so if you accidentally forgot to BO and start teleing, etc. This happens sometimes if characters stay on way point or if BO barb accidentally shouts + BC's but doesn't BO. It can probably just be a time based alert that checks for BO and if you don't have it active, it pops up just like the "BO expired" alert.

I think at one point or another we've all started killing monsters without having battle orders while thinking we do have it active.

[Enhancement] Item filter for N number of conditions being true

it'd be nice to have a filter that could match if N statements are true. i.e. if I had LIFE>10, STR>5, and DEX>5 and wanted to match an item if only 2 of these statements were true you'd have to write out all valid combinations

(LIFE>10 AND STR>5) OR (LIFE>10 AND DEX>5) OR (STR>5 AND DEX>5)

it'd be cool to be able to do something like

COUNT(2, LIFE>10, STR>5, DEX>5)

to say you wanted to match atleast 2 of those conditions.

Need "StormLib.dll" file and instructions to run BH for beginners. (so here I wrote instructions, attached StormLib.dll link)

Hello.

"StormLib.dll" file dose not exist on release pages.

"StormLib.dll" file is a important file to run BH.
Both "BH.dll" and "StormLib.dll" files need to be installed together in Diablo 2 folder where "Game.exe" file exists.
Otherwise, Diablo 2 won't run and an error that "UNHANDLED EXCEPTION: ACCESS_VIOLATION (c0000005)" will occur. (tested it on version 1.13c)

I will attach a link for who don't have "StormLib.dll".
StormLib.dll exists in BH.Giga.zip.
https://github.com/cyhyraethz/slashdiablo-maphack-giga/releases

Instruction to run BH:

  1. Copy or move both BH.dll and StormLib.dll in Diablo 2 folder where "Game.exe" file exists.
  2. Run Diablo 2 (If you are using PlugY or BaseMod, you must enter BH.dll words in PlugY.ini and BaseMod.ini.
    (2-1). If you are using PlugY then enter BH.dll in PlugY.ini's DllToLoad= or DllToLoad2= and set ActivePlugin=1.
    (2-2). If you are using BaseMod then enter BH.dll in BaseMod.ini's LoadDll1= or LoadDll2= and set Enabled=1.

Whispering "???" problem

I am Korean.
In Korea, we couldn't use whispering from the beginning.
Is there a way to solve this?

[Feature] default game desc

Since game descriptions are used for server selection on slash, it'd be nice to be able to set a default description in you settings cfg. E.g.

Default Description: gs2

It would only use this field if the previous game description was blank.

[Request] Config updates and Zone info

ide like to be able to add filter stuff to the config file so when you update personal changes arent lost

ide also like area level to be added as an option to the game info at the top right of the screen

all skill warning in default config.

some request (i guess they go here?)

a few things i think would be nice to have in the default config
all skill warnings (can be disabled, its just a pain to add them all each time theres an update)
unhidden 3os crown/great helm/large sheild (for classic)
notifications for +2 class skill magic items (stoppable)(for classic)
aera level in the top right with game name/ping/ect

i just wanted to say thanks for all the hard work so far. this is really one of the best tools for d2 ive ever had the privilege of using.

D2SE compatibility

If possible, it would be great if the maphack would be compatible with D2SE and PlugY - I would then load the DLL from the PlugY.ini file by setting "dllToLoad=BH.dll" - This works already for PlugY with normal Diablo2 launcher

Changes needed:

  • When you open D2 with D2SE, the main executable is called "D2SE.exe" instead of "Game.exe".
  • The D2 patch version is identified from a memory address, rather than looking at the executable version number. The address is "base_address + 0x1A049"
  • The DLLs are stored in subfolders for each patch version, and thus any DLL references should be modified. Example for patch version 1.13c show below:
    • \Diablo II\D2SE\CORES\1.13c\D2Client.dll

Otherwise all the pointers are the same

Always show items on ground.

I was using Sting Maphack and it has the option to always show you the items dropped on the ground. It's like you have pressed ALT all the time and everything else was working fine - opening chests, speaking with NPCs, teleporting to different towns etc.
Is it possible to implement this feature in BH ?

[Feature Request] Please support expanded cube size mod (10x8).

Hello.

BH has a QoL feature that "Ctrl + Shift + RClick: Moves item into closed cube".
But this feature works fine only for original cube size (3x4).
This feature will no longer work if all grids (the 1x1 grid to 3x4 grid) from the top left in cube is filled with items when the player is using the Expanded Cube mod (10x8).
I hope future updates will support the expanded cube size mod (10x8) as well.

[Blocked]

Hello, updated my BH loot filter today, and all the items I previously had in the ignore list, now appear with their full name + [blocked]

tried what the Item filter guide says about the [blocked] thing, and added a blank line to ignore Unique "Crusader Bow", but still displays as [blocked]:

ItemDisplay[UNI !ID !ETH (6l7)]:

Is there any way to revert back to the previous behavior?
Can I add a condition or something like that, so my game sucessfully hide them?

Developer Ergonomics: Testing / Logging

I was messing around with writing a module and there were a couple things I wish I had to improve the developer ergonomics:

  • logs
  • tests

It's possible there's a standard development workflow that I'm not aware of (e.g. attaching to a live process for debugging?) that gives more robust information, but logs are usually a simple go-to. Tests are also nice for verifying behavior programmatically.

Logs could also be potentially useful for debugging failures on the user side, though that's not my initial concern without knowing how the troubleshooting normally goes.

Is this something you would be interested in / accept a PR for? See below for some samples of logging and adding dependencies with cmake.

Edit: I guess there are two questions here:

  • Which is the preferred method for managing dependencies: vendoring or using cmake?
  • Is adding logging/testing support something that would be welcomed?

Re: Dependencies

I have never worked with C++ / CMake before, so I'm not familiar with how dependencies are usually managed in C+ projects. I noticed the cpp-lru-cache is committed in code and decided to figure out what the alternative would be.

Here's an example using cmake's ExternalProject_Add which brings in cpp-lru-cache using git: jmmk@90dcfb5

Technically this has no benefit over the current solution new since the code is already committed, but it's an example of a method that does not require all dependencies to be vendored.


Re: Logging

I'm not familiar with the C++ logging ecosystem, but https://github.com/gabime/spdlog seemed to be popular and well-supported, so I added it to the build (the compiled version, not the header-only version, though I don't fully understand the difference):

# spdlog
ExternalProject_Add(
        spdlog
        PREFIX ${THIRDPARTY_LIBS}
        GIT_REPOSITORY https://github.com/gabime/spdlog.git
        GIT_TAG 81b9149930f392d7797b54fe97a66ab3f2120671
        CMAKE_ARGS -DSPDLOG_BUILD_EXAMPLE=OFF -DCMAKE_INSTALL_PREFIX=${THIRDPARTY_LIBS}/spdlog
)
add_dependencies(BH spdlog)
target_link_libraries(BH PRIVATE ${THIRDPARTY_LIBS}/spdlog/lib/spdlog.lib)
target_include_directories(BH PRIVATE ${THIRDPARTY_LIBS}/spdlog/include)

It can be used like (more or less copied from the example in the docs, but tested in BH.cpp:

#include "spdlog/spdlog.h"
#include "spdlog/sinks/basic_file_sink.h"

// I'm not sure if this is the best place to put this, but it seemed a decent entry-point
void BH::Initialize() {
    // Set the default logger to file logger
    auto file_logger = spdlog::basic_logger_mt("basic_logger", "C:\\Program Files (x86)\\Diablo II\\BH.log");
    spdlog::set_default_logger(file_logger);
    // ...
}
// Inside my module
#include "spdlog/spdlog.h"
#include "spdlog/fmt/bin_to_hex.h"

void MyModule::someMethod() {
    spdlog::info("Some byte array in hex: {}", spdlog::to_hex(bytes));
}

Re: Tests

I didn't attempt to add tests yet, but this test framework looks pretty good: https://github.com/catchorg/Catch2

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.