Giter VIP home page Giter VIP logo

plugy's Introduction

PlugY

PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction (1.09b - 1.13d + 1.14d)

Extends Diablo II - Lord of Destruction by a number of useful features

FEATURES

Each features can be turned on/off via PlugY.ini (see "COMMENTS ON THE CONFIGURATION FILE")

  • Disable access to Battle.net.
  • Infinite storage space in the stash.
  • Shared storage space in the stash.
  • Enable the ladder only runewords for singleplayer and TCP/IP game.
  • World Event and Uber Quest for singleplayer and TCP/IP game.
  • Can open Cow Level Portal even when player have kill the Cow King in that difficulty.
  • Prevent Nihlathak's portal from closing.
  • Move Deckard Cain near the waypoint in Harrogath.
  • Unassign assigned skills and stats points.
  • Auto backup save files before saving.
  • Change the selected language.
  • Always regenerate maps in SinglePlayer like in MultiPlayer.
  • Automatically execute /players X when you launch a new game.
  • Added some pages for display more characters stats.
  • Display item level in its popup.
  • Launch any number of Diablo II games on the same computer.
  • Increase the stash to 10x10 squares.
  • Change the save path directory.
  • Always display Mana and Life values above the globes.
  • D2 can load all files, even those opened with Microsoft Excel (disabled by default).
  • Display the current stats value (without magical bonus).
  • Can launch game in windowed mode.
  • Add following commands (see "COMMENTS ON THE CONFIGURATION FILE") :
    • /lockmouse : Lock mouse cursor in the window.
    • /lock : Same as /lockmouse.
    • /unlockmouse : Unlock mouse cursor in the window.
    • /unlock : Same as /unlockmouse.
    • /renamepage name : Rename current page stash (use # for page number).
    • /rp name : See /renamepage.
    • /setindex : Set current stash page as index.
    • /setmainindex : Set current stash page as main index.
    • /resetindex : Remove index flag on the current stash page.
    • /insertpage : Insert a new page after the current page.
    • /ip : See /insertpage.
    • /deletepage : Delete current page if empty.
    • /dp : See /deletepage.
    • /swappage page : Swap the content of current stash page with the content of another page.
    • /sp page : See /swappage.
    • /togglepage page : Swap the content of current stash page with the content of another page in opposing stash shared/personal.
    • /tp page : See /togglepage.
    • /dlm : Toggle always display mana and life mode.
    • /dml : See /dlm.
    • /dl : See /dlm.
    • /dm : See /dlm.
    • /page 1 : Show normal stats page (stats page must be opened).
    • /page 2 : Show extra stats page (stats page must be opened).
    • /page 3 : Show resistance stats page (stats page must be opened).
    • /page 4 : Show player breakpoints (stats page must be opened).
    • /page 5 : Show mercenaries breakpoints (stats page must be opened).
    • /page 6 : (beta) Show available runewords (stats page must be opened).
    • /save : (beta) Save game without exit.
    • /listcube : (beta) Create a "cube.txt" file in save directory containing all cube's receipts.
    • /renamechar newname : (beta) Rename your character and save it.

Contribute

If you want to update the translations please use the POEditor project and create a bug-ticket nofifying me that you have done so. Please do not edit the LocalizedStrings.ini directly. If you absolutely don't want to use POEditor, edit the json files found at PlugYInstaller/PlugY/translations

plugy's People

Contributors

caimiao avatar chaosmarc avatar derweedologe avatar lautour avatar snapchip avatar tytannial 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plugy's Issues

inconsistency in /dl /dm commands description

In https://github.com/ChaosMarc/PlugY/tree/master/PlugYInstaller/PlugY_The_Survival_Kit_-_Readme.txt#L64 it says correctly:

/dlm : Toggle always display mana and life mode.
/dml : See /dlm.
/dl : See /dlm.
/dm : See /dlm.

However, in https://github.com/ChaosMarc/PlugY/tree/master/PlugYInstaller/PlugY_The_Survival_Kit_-_Readme.txt#L614 it's:

/dlm : Toggle always display mana and life mode.
/dml : Same as /dlm.
/dl : Toggle always display life mode.
/dm : Toggle always display mana mode.

I believe the commands should work like described in the latter case, but currently they work as in the former.


Also worth noting that the commands also work when AlwaysDisplayLifeAndManaValues is set to 1, although https://github.com/ChaosMarc/PlugY/tree/master/PlugYInstaller/PlugY_The_Survival_Kit_-_Readme.txt#L865 says

{0:Disabled; 1:Enabled; 2:Disabled but can be enabled by command}

Heap corruption when renaming stash

Heap corruption caused by strcpy writing past the end of allocated memory ('\0' character).

stash->name = (char *)malloc(len);//D2FogMemAlloc(len,__FILE__,__LINE__,0);
strcpy(stash->name, name);

if (strlen((char *)&data[curSize]))
ptStash->name = (char*)malloc(strlen((char *)&data[curSize]));//D2AllocMem(PCGame->memoryPool, strlen((char *)&data[curSize]),__FILE__,__LINE__,0);
if (ptStash->name)
strcpy(ptStash->name, (char *)&data[curSize]);

Untitled

Log spamming on client 1.09d

I had an issue with the last PlugY version 14.03. When opening the stash I receive the following message on my log 20.000 times:

16:34:29.313 ----- JONM NOTE: Would have crashed, see code at ITEMSDataGetPage. From FILE: C:\Src\Diablo2\Source\D2Common\ITEMS\Items.cpp LINE: 1163

It doesn't matter if the stash is empty or with items, tested with the previous official version 11.02 and the error didn't occur there, thanks for any fix...

Question

already have new version 14.02, you can update it to Git

Memory Location Conflicts w/ PD2

I'm wondering if there are any knowledgeable C++ programmers who are able to fix the memory location conflicts w/ PD2. As I understand the issue, PD2 uses some memory locations that are also used by PlugY. This causes bizarre behaviors such as random page numbers when clicking to change pages, and missing shared gold. If these issues were to be fixed then PlugY would work flawlessly w/ PD2.

Multires problem

Hi guys,

I have a problem with multires integration. When I edit plugy.ini as like this:
[GENERAL]
ActivePlugin=1
DisableBattleNet=1
ActiveLogFile=0
DllToLoad=D2MultiRes.dlls
DllToLoad2=
ActiveCommands=1
ActiveCheckMemory=1

Plugy stops working. Can you please integrate what multires does into plugy installer as anoption please?

Read Process Memory Failed

I am getting this error since yesterday when I try to start PlugY. Nothing changed between the time it was working and now, other than I switched my PC off.

This errors sometimes occurred for me before but trying to open the .exe again always worked. I have tried a completely fresh install of D2 and PlugY multiple times and I cannot get this working.

More details:

  1. I have tried compatibility mode (wasn't needed before but tried it anyway)
  2. D2 vid test doesn't run so I thought it was a graphics issues however I run it the game with the launch param "-w" as a standard procedure, and when I launch D2 (without PlugY) it works fine
  3. I have tried using D2SE to ensure that the version and files of D2 match was PlugY is expecting, but that also doesn't work (D2SE crashes with no error)
  4. I have tried Sven's Glide wrapper

Any help you can give would be appreciated, I am a developer myself, and it seems strange to me that this would suddenly stop working with no system changes AND still not work after a fresh install. I would guess it has something to do with some system process being locked that PlugY needs?

Thanks.

Playing w/o PlugY -> consequences?

Hi!

What happens if, after extensively using the extended stash, I decide to play without PlugY (e.g., do play with my brother via Open-BattleNet). What happens if my character is safed? Am I losing all the items of the extended stash? Or are they simply not accessible and when I turn PlugY back on in a single player session, the stash and all its content is back?

Best regards,
D.R.

Crash after clicking "Unassign all skills points"

Description

The game crashes after clicking the button but only when there are skills to unassign. Unassigning stats points works.

How to reproduce

  1. Install D2LOD 1.14d
  2. Install PlugY 12.00
  3. Run and create new character
  4. Level up character
  5. Assign skill
  6. Click button Unassign all skills points

Game information

Game Version: 1.14d
PlugY Version: 12.00

Machine information

OS: Linux 5.9.14-arch1-1
Wine: 5.22

Logs

stdout
Crash.txt
D2201220.txt
PlugY.log
PlugY.ini

Only load shared stash on demand

I dont know if it is possible, but would be a huge QoL feature if the shared stash was only loaded when the player tried to access it, to help improving the character load times (could be optional from settings)

How to get Plugy to load with Game.exe?

I'm using Kolbot so I can only load the game with Game.exe (1.14d).

  1. Downloaded PlugY_The_Survival_Kit_v14.03_D2FilePatcher.zip and PlugY_The_Survival_Kit_v14.03.zip
  2. Unzipped (1), putting PlugY.exe and dll at the same level as Game.exe.
  3. Run PatchD2File.exe

Now when I run Game.exe, I can see PlugY at the bottom right corner. However, PlugY doesn't get loaded when I enter the game. Any idea why?

Other things I tried:
i) Putting PlugY.exe at the same dir as Game.exe was neccessary for PlugY to show at the bottom right coner. Otherwise if I just use PlugY installer it won't show at all.
ii) I tried to use only PatchD2File.exe without the survival kit/ installer as in #48 . In this case no PlugY logo would show up when I launch Game.exe

Downgraded to 1.13d, still PlugY doesn't work

After I downgraded my 1.14b installation to 1.13d using the patch-zip from your web site, Diablo 2 won't start anymore (fails with an error message box without text in it - even tried to run in WinXP SP2 compat mode, no change)

If I try to start PlugY before running Diablo 2 I get the error:

PlugY: Read process memory failed.

Any ideas? I'm running on Win10 64bit, everything en-US.

If it helps, my file layout is:

D:\Games\Diablo II
D:\Games\Diablo II\Mod PlugY
D:\Games\Diablo II\PlugY
D:\Games\Diablo II\support

I noticed that downgrading to 1.13d added many files to my Diablo II directory (lots of D2...dll files, also the exe files got much smaller - is that ok?)

Edit: same problem when downgrading to 1.13c

Edit2: I downloaded the game from my battle.net account, didn't install it from a CD. So it was immediately on 1.14b patch level (not 1.14d though, which seems to be the most up-to-date version)

Compiling

I'm wondering how to compile this, as there isn't a precompiled version (yet). I have Visual Studio Community Edition 2017. I don't see a project file, just several solution files. Thanks.

ActiveSavePathChange not compatible with NBPlayersByDefault on 1.14d with PlugY 12.00 (ChaosMarc)

Since D2LoD 1.14 has changed save folder to Saved Games folder under user document, I'd like to change it back to Game installation folder where old versions do. ActiveSavePathChange=1

I've tried haxifix's unofficial release, it do changed the save folder, but after I copy back my save datas, the game crashes every time when I click on Single Player on main menu.

Then I tried ChaosMarc's (This repository), it won't crash but NBPlayersByDefault -> which is /players X on start up seems have problem with this option and shows weird message as this screenshot
weird

If I disable the option by setting ActiveSavePathChange to 0, the start up /players X provided by NBPlayersByDefault works fine
normal

how to keep stash at page that opened in last game?

Hi there,
is it possible to always keep stash page as last open whatever game.exe thread be or not be terminated ?

I find that modded version of plugy named Alpaca has carried out turning to target page directly with command /page# (used for rolling status page current here), will this possible be included in offical branch?

How to obtain knowledge like D2functions.cpp?

Hi! I'm pretty intrigued by your tool and, a developer myself, got interested in how one can create such a mod. I stumbled upon D2functions.cpp - how on god's earth did you obtain that knowledge? Is there a modding guide out there? Which tooling did you use to obtain the initial knowledge on how to mod Diablo 2 features? Lots of assembler in there too...

Nice work guys!

Unassign Skill Points button crashes every time

Windows 10
Diablo 2 LoD 1.14d
PlugY 12.00

I've only tried it three times, but every time I press the button to unassign all of my skill points, the game crashes. Playing a Sorc in A1 Normal right now if that matters.

[SKILLS POINTS]
ActiveSkillsUnassignment=1
ActiveSkillsUnassignmentOneByOne=0

Option to return Oblivion Knight's Iron Maiden

From Patchnotes:

  • Patch 1.13c
  • Removed Oblivion Knight's Iron Maiden curse

Yes, I have died to this multiple times, but it just doesn't feel right (imho) that they no longer cast IM.
Is there any way to add a toggleable option in the ini to allow them to cast it again? That way those that do not like it can leave it disabled.

Custom Font Fix

Hi there, i found a bunch of different font fixes for diablo.

Custom Font 1
Custom Font 2

The first font fix has a modified Plugy.dll in it. But i dont rly know what is changed.

I thought maybe we could implement a fix. Bcause game is crashing when opening stash, while using a modified diablo2 font.

Feature Request: "goto page" for shared and personal stash.

Would be AWESOME If i could type "/gt 100" OR "/gt NAMEOFTAB" to quickly get to a tab page!!!!!!

This way I could type "/goto runes" or "/gt runes" to quickly get to my runes section! or at least memorize common pages like /gt 100 if 100 is runes

Further feature functions could be a limited "Search" so that for example if i type "/gt une" it''d take me to "Runes" page if that's the first page with matching text "une" in it! this way i don't even have to fully remember the whole name! Ideally it would be case insensitive so that i don't have to memorize capitalization, but that's trivial to workaround.

Character stat page buttons do not function on high resolutions

The buttons for the second page of the stats page do not work correctly when playing the game with higher resolutions. This is because the macro isOnStatsPage in newInterfaces.h has hardcoded values that make assumptions about the size of the screen.

Two ways to fix it is to either dynamically calculate these values used for checking, or remove the macro and all instances of it.

Feature request - more commands

-Add a command /next and /prev for stash pages to iterate through current pages
-Add a command /find to locate which stash page an item is on. i.e /find cube and it prints out or maybe just switches to the page where the cube is if it exists
-Add a command /main which returns page back to the current main index
-Add command /goto to switch to a specific page, goes with /find if going the route of printing out stash page number where an item is otherwise not really needed

[Request] Stash Text Color

untitled
As you can see here with plugy 11.02
Grey Personal & Red Shared stash tabs.
Is there any way to change the color of text?
an example would be
Shared Page n"1 ( in green ) instead of red.
maybe like a new command for this? or a way to add color codes?
/renamepage Shared Page n"1 {Color=green} or something ?
/recolorpage Green,blue , ect

Edit: note
Not sure if it makes the giant difference or not, But Playing Eastern sun rises 5.1H mod.
Using Diablo 2 LoD Core 1.10F

extra dll loading

Hi bro,
sorry for post new quest.
I want to directly load a d2hackmap.dll in plugy.ini (patched d2gfx.dll (1.13d)),but it always run in error and alert plugy issue ( whatever with setting ActiveCheckMemory=1/0).
d2hackmap.dll from below link,
https://gitee.com/andersgong/d2hackmap
weird is that with his loader there is no same issue .
is there a solution?
win 10 pro

Support 1.14

Thanks for updating PlugY to support 1.13d. Any plans on supporting 1.14?

Update: I have noticed that work is in progress.

About Nilathek Portal

PlugY .ini should increase “ActiveDoNotCloseNihlathakPortal=1” at the end

It was originally in haxifix‘s PlugY.ini

plugy.exe alert an read memory error when game.exe patched with PatchD2File.exe

D2x updated to ver 1.14d with official Lodpatch.exe, chinese-t, windows 10 pro, only plugY 14.02 copied in game folder.

if game.exe be kept in unpatched status, it could start game with plugy.exe, and plugy function worked well, whatever game.exe is restored from patched status or never patched.
but once the game.exe patched with PatchD2File.exe, it plugy.exe started will alert an read memory error instead of building the game window. while the plugy function worked actually in game if start directly with game.exe/diablo II.exe -w.
is this a bug or not ?

I did not load any dll file in plugY.ini.

10.01 needs to be merged into 11.00

Yohann's latest release v10.01 brought some nice new features that need to merged in L'Autours v11.00

Perhaps the merge can be performed the other way around to stay closer to Yohann's original code, as it seems that he is active once again

Contribution and Documentation

Is there any additional documentation or contribution guidelines? I'm interested in the project and looking for a little more information.

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.