BlueVex 2.0

.Net ADDON for RedVex. That's right, you can use both at the same time!

Re: BlueVex 2.0

Postby Pleh on Wed Feb 10, 2010 7:41 pm

Sorry, your right. Its the HeroMerc plugin that makes the other instances join the same game. I confused myself there, lol.

The auto login is part of the core.
Pleh
BlueVex Team
BlueVex Team
 
Posts: 192
Joined: Wed Jul 25, 2007 12:31 pm

Re: BlueVex 2.0

Postby fett007 on Tue Feb 16, 2010 7:01 pm

@ Pleh

I'm going to re-install Vista x64 on my laptop and try and give this a go. Do you remember what key-changer program you were using?
fett007
 
Posts: 40
Joined: Fri Jul 20, 2007 10:39 pm
Location: AZ

Re: BlueVex 2.0

Postby Pleh on Tue Feb 16, 2010 9:50 pm

I cant remember where i got it, but its called D2CKEY.exe its 603,747 bytes big and it has" by serby" written at the bottom left.
Pleh
BlueVex Team
BlueVex Team
 
Posts: 192
Joined: Wed Jul 25, 2007 12:31 pm

Re: BlueVex 2.0

Postby buzz44 on Wed Feb 17, 2010 12:31 am

Pleh wrote:I cant remember where i got it, but its called D2CKEY.exe its 603,747 bytes big and it has" by serby" written at the bottom left.


I'm guessing that's Serby's CD-key changer :D.

http://www.mediafire.com/?zi1yym3jmjf

CRC32 Hash: 96427BF0

D2CKEY - Diablo II Expansion cd-key changer
by Serby
-------------------------------------------------------------------------------

This version of cd-key changer is made using the setup for Diablo II Expansion
not the setup from the beta version of Diablo. It has new functions and a more
powerfull GUI.

Warning!!! Do not rename the exe or else it will not work.

Usage: Unpack where you want and then execute.
Modify original cdkey ---- modifies the cdkeys in the original files of the game.
New cdkey file ---- makes a new mpq file that contains only cdkeys.
If you are using a copy of Diablo II that is just copied (not installed) it will
ask the path to it.

It is perfectly compatible with any version of d2loader.


I know that there are a lot of cd-key changers but I wanted to make one that is
really easy to use.


Can I also suggest implementing an iLvl checker in the core :D. Shouldn't be too hard, I think it's just...

Code: Select all
D2Data.Packet.BaseItem.Level


...but that MAY be outdated and return iLvl 1 for ALL amulets and rings. Have to check.
It is better to be thought a fool, then to open your mouth and remove all doubt.
buzz44
BlueVex Team
BlueVex Team
 
Posts: 526
Joined: Sun Jul 08, 2007 4:24 am

Re: BlueVex 2.0

Postby fett007 on Fri Feb 26, 2010 12:14 am

@ Pleh

Alright, I finally got everything up and running correctly. After I finish testing a few more things I'm going to start writing up an setup guide that maybe should go in the ReadMe. After playing around with a lot of the code I've written up a small to do list of things that I think I could accomplish.

1. General size corrections on some of the GUI settings stuff so that everything appears correctly
2. Call LoadDiabloTabs after clicking OK button in the Installations pane so that a restart isn't necessary to add the additional tabs
3. Implement some multi-resolution support for the DiabloTabs and OverviewTab. Right now I'm thinking 800x600, 1200x900 and 1600x1200. I've been using 1600x1200 right now with 800x600 overview windows. The plan would be to have a resolutions menu item and you choose one of the three, then frmMain gets resized accordingly on the fly. Right now when I run in 1600x1200 it essentially breaks the Overlay stuff you have done. Maybe you have some thoughts for how that can be scaled as well, I haven't snooped around too much in that part of the code.
4. Add an option so that you get to choose which character slot is loaded by default during the auto-login process.
5. Hook up the exit menu item to exit all characters out of games and realms and then close the form.

What's your current status with the code? Maybe you should start the googlecode SVN so that I make make some of the "cosmetic" changes while you are working on real features.

Edit: So I just screwed around a little bit this morning and completed 1, 4 and 5 on my list. I can repeat them pretty quickly if you end up throwing new code onto a SVN. One other important bit of information that I think will be useful to have is a Leader/Follower or Master/Slave status that you can specify in the accounts tab. It's fine for all instances to join a game whenever another one does, but when leaving a game for example, it's rather annoying if one instance times out and all the rest suddenly exit the game. It will also be useful to followbot type plugins as well...
fett007
 
Posts: 40
Joined: Fri Jul 20, 2007 10:39 pm
Location: AZ

Re: BlueVex 2.0

Postby CTS_AE on Thu Mar 04, 2010 8:22 am

I'm just wondering why people choose wpf over a normal form?

the c# map hack code

Idk if you're talking about the project I and some others were working on,
but yeah at first I did try to do a method were the top window would try and lock the 1.12 window
using a no-hide method, I tried using Shonnie's no-hide method, but
in newer windows versions that proved to be a problem
but if you use the d2window method of parents then that removes that problem,
and of course so does the 1.13 patch

But like you're saying I first tried/thought about using a d2 mouse cursor
and then capturing events on the overlay window and then send them to
the lower d2 window
But then I stumbled across another idea, before I even started
on the custom cursor idea
I'm not sure if you're using it, but if you need any help with drawing stuff and the over lay stuff
I'd be willing to help, provided that I can find the time
Course you're probably a better coder than me, and lol the source in the map client probabbly sucks to read ;p

And you could ideally draw circles where ever your merc was on screen, and in fact you can even draw beyond the bounds of the d2 window when you do the transparent overlay method, but there was no point in it that I could see even though it'd be cool on its own level.
If you do get pathing to work and the map input to work through C# I'd be extremely excited to be able to get that map client to work independent of the AO core, but otherwise I guess it does fine.

Do you have the Source of this posted up on an SVN somewhere yet?
JW
But yeah like someone was saying I think if the core just fed to the plugins what they wanted, that would be a pretty efficient system for a core, mainly because it should be uncrashable, only problem I would worry about would be sending, but a try catch should take care of that

sorry for the long winded reply, it's late here for my brain : ( and I tend to do that... now if I can only remember what I just typed : \
CTS_AE
 
Posts: 15
Joined: Mon Jul 14, 2008 12:05 pm

Re: BlueVex 2.0

Postby fett007 on Wed Mar 10, 2010 3:37 am

Well, seeing as how Pleh seems to have disappeared for the last month, I'm going to post the updates I've made to his code. Pleh's initial code is the best multi-instance D2 program I've come across, even without a completely implemented proxy. You can read about the original functionality as well as what I've added in the ReadMe included below.

As you all can see, I've been around for a couple of years and haven't participated in the board much in the past. In the last couple months I decided I wanted to learn .NET programming, and figured this would be a good project to start with. Just so you can all be sure there is nothing malicious going on, I have not included a standalone executable included in this. You will need to download Visual Studio and compile it yourself. If you feel the need to comment on my horrible coding abilities, please be gentle....

Detectability/bannability/whatever: Pleh could comment on this better than I could but here it goes. From what I can tell, there is no attempt to modify anything related to the D2 memory. This program basically calls game.exe and tells it to run within another running program, the same way that diablo ii.exe, d2launcher.exe, and d2window.exe do. I would expect it to be this to be no less safe that d2launcher and d2window, which people seem to have used in the past without any problems. As always, use at your own risk. I will promise that if I am ever am banned from battle.net due to this code, I will immediately post a notification here.

I'm uploading this to rapidshare because (I think) you need to be listed as a developer or mod to upload files to this site. If I am wrong, or if someone changes my status, I will edit this post and host the file on redvex.net


http://rapidshare.com/files/357743850/Bluevex2_Alpha2.zip.html

Code: Select all
Introduction

This is the (informal) ReadMe document for BlueVex2 developed by Pleh.   Don’t bitch at him if something is incorrect, Fett007 was responsible for the ReadMe.  BlueVex2 is a standalone program separate from RedVex3.01 and BlueVex 5.4 (actually BlueVex Beta 5, version 4).   BlueVex2 was coded with multi-instance support foremost in mind.  Game loader functionality has also been built in to support up to four instances of Diablo 2.  In addition,  each instance supports a transparent overlay to allow graphics to be drawn on top each Diablo instance (as opposed to drawing graphics in game, detectable by Warden).  BlueVex2 is written in C# (with a small bit of code in VB) and is only compatible with Windows Vista and Windows 7.

The following are contained within the readme document:
•   Multi-instance Diablo 2 installation using Serby’s CD-Key Changer
•   BlueVex2  Alpha 2 installation/setup.
•   BlueVex2  feature documentation
•   Known bugs/limitations
•   Copyright
•   Version change logs

Multi-Instance Diablo 2 Installation

BlueVex2 is capable of running 4 simultaneous Diablo 2 instances.  Each instance must be installed in a specific manner so that the program is capable of detecting and differentiating between the instances.  The author recommends using Serby’s CD-Key changer.  The program is available (as of 3/1/2010) at www.edgeofnowhere.cc/viewtopic.php?t=425418.  Note that this key-changer is only compatible with the old 16 character keys and not the 26 character key that Is used with the downloadable installation available at battle.net.   
•   Completely uninstall all previous Diablo 2 instances and delete any remaining folders out of Program Files.
•   Gather 4 separate CD Key sets (hereafter referred to as CDKey1, CDKey2, etc).
•   Install Diablo 2 from CD to Program Files/Diablo Base using CDKey4.  IMPORTANT: when installing, enter “Key4” into the owner field.  Install LoD aferwards.   64-bit OS users will use Program Files (x86) instead.
•   Login to battle.net  and download the latest patch.
•   Make a copy of Diablo Base folder and rename it to Diablo Key4.
•   Run D2CDKey.exe and install your CDKey3 information.  Name the owner “Key3”
•   Make another copy of Diablo Base folder and rename it to Diablo Key3.
•   Repeat steps 6 and 7 for CDKey2 and owner “Key2” and “
•   For CDKey1, repeat the same steps except rename Diablo Base to Diablo Key1 instead of making another copy of the folder.

BlueVex2 Alpha 2 Installation/Setup

•   Download BlueVex2 Alpha2.zip from www.redvex.net
•   Download and install Microsoft Visual Studio 2010.  As of 3/1/2010 there is a release candinate available for free download.  The VS C# express addition appears to be insufficient due to a small part of the core that is written in Visual Basic.  Pleh can comment more on this.
•   Open and build the BlueVex2 solutions.   BlueVex2 can then be started either from the debugger, or by opening BlueVex2/bin/Debug/BlueVex2.exe
•   Got the Settings menu and select the Installations list option and click Add
•   Enter “Key1” for keyname (or whatever the owner of CDKey1 is), the path to CDKey1, and the default Realm account you want to associate with this key.
•   Respeat step 5 three more times for Key2, Key3, Key4 with their respective directories.  Do not list the same default Realm account for each key. 
•   Goto the Accounts tab and click add.
•   For each default account you listed in the Installation tab, add a corresponding username, password, the character slot you would like the program to use, Master status, and the realm you play on.  NOTE:  Make sure to have only one of your accounts listed as the Master status, otherwise the program will crap it’s pants.
•   Click on the core tab and make sure that Use AutoLogin is not selected.   Make sure that Use BlueVex2 Proxy is selected.
•   Close and reopen the program.  There should not be 4 additonal tabs listed as Key1, Key2, etc
•   Goto C:\Windows\System32\drivers\etc and open the hosts file with Notepad.  Add “127.0.0.1   europe.battle.net” without the quotes at the bottom of the file (this assumes you do not actually play on europe.battle.net, if you do, enter one of the other realms”).  Save and close.
•   In BlueVex2, click on the Key1 Tab and click the Load D2 button.  Change the Gateway to Europe and login to Battle.Net.   If you successfully login, completely exit the game and close BlueVex2.  If you are unable to login, you screwed up one of the steps, or I screwed up the directions.   Login to www.redvex.net and bitch to Fett007 in the BlueVex 2.0 development thread.
•   Assuming you succeeded in Quest  #12, reload BlueVex, and select “Use AutoLogin” from the Core tab in Settings.  Click OK, then select “Load All Diablo 2 Installations” from the file menu.  Sit back and watch the magic happen.   Consider making some form of donation to Pleh for his awesomeness.  If you are too niggardly to do so, at least tell him thank you for his hard work in the thread.

BlueVex2 Feature Documentation

BlueVex2 Proxy and Pluggins

BlueVex2 supports a Diablo 2 proxy/pluggin system similar to RedVex.  RedVex plug are not compatible with BlueVex2 (BlueVex2 utlizes the .NET infrastructure, RedVex does not).  BlueVex2’s proxy may be disabled so that RedVex (and it’s associated pluggins) may be used instead.  All of the non-proxy based features of BlueVex2 will still work (Game Loader, Auto-Login, the Game Actions menu).   BlueVex2 plugins will not be loaded when the BlueVex2 proxy is not being used.   If anyone has any success bridging RedVex and BlueVex2, please PM Fett007 with the method so that it may be included In this writeup. 

Auto-Login

The Auto-Login feature of BlueVex2 is without the use of proxies and packets.   It is done by sending clicks and keypresses to the corresponding Diablo 2 windows.   Don’t get all impatient while this is going on or you will mess things up.  This feature can be disabled without requiring a restart.

Resolution Scaling

The diablo 2 game resolution can be scaled upwards from 800x600 to the following: 1000x750, 1200x900, 1400x1050, 1600x1200, 1800x1350, 2000x1500.  Note that the dimensions of the entire BlueVex2 program will be somewhat larger than the listen resolutions to fit menus, etc.  Resolution scaling is accomplished by your video card.  If you have a crappy video card, don’t be surprised when you can’t run 4 games at 1600x1200 resolutions.  Resolution changes require an application restart.

Multi-Instance Overview

The overview tab provides a view of all running diablo instances by utilizing the Live Thumbnail feature of Windows Vista/7.   Obviously you cannot click on these windows to control the games. 

Game Actions:  Everyone Exit

This will send the following keypresses to all instances: Escape, Up, Enter.  It is intended to have all characters exit a game.  There is no packet detection/manipulation invovled in this process.  It has no way of knowing if one of your instances is in chat instead of in the game, etc.  THIS FEATURE SHOULD NOT BE USED WHEN “USE BLUEVEX2 PROXY” IS ENABLED.   The HeroMerc plugin will automatically exit all games whenever any instance exits a game.

Game Actions: Quit From Chat

This will send 3 Escape keypresses to all instances.  It is inteded to make each instance shut down from chat.  Again, no packet manipulation/detection.  If one of your instances is in game, at the character selection screen, or the login screen, this is going too cause the program to crap itself.

Game Actions: Hell Game 1, Hell Game 2, …… , Nightmare Game 3

Selecting one of the following will cause the Master to create a game, and all of the rest of the instances to join after a small delay.  Again, no packet manipulation/detection.  The game name and password and taken from the Games tab in Settings.  The game action is only capable of using the first 3 items in the Games tab.  If no password is listed for a corresponding game, it will be a public game.   Rememer that game names cannot be more than 15 characters long, the program will not check for this. THIS FEATURE SHOULD NOT BE USED WHEN “USE BLUEVEX2 PROXY” IS ENABLED.  The HeroMerc plugin will automatically join games whenever another instances creates a game.

Sound

Sound is provided from the window of any account associated at Master.

BlueVex2 Bugs/Limiations (Alpha 2 version)

•   Currently there are many proxy events that are not linked up.
•   The File/Exit menu item is not hooked up.  Close the program using the red X.
•   The BlueVex2 window size is not tied to the resolution  scaling.  The program will always open at 1730x1320, but can be resized manually.
•   Loading Diablo instances, closing them, then reloading will cause all keypresses to be registered twice.  Closing and reopening the program will correct this. 
•   Adding a new Installation item does not add a new Diablo 2 tab until the program is restarted.
•   HeroMerc causes all instances to exit a game whenever an indidvidual instance exits.  This should be changed  to only exit when the Master account exits.

Copyright (c) 2010 Pheh

This software is provided 'as-is' without any express or implied warranty.  In no event will the authors be held liable for any damages arising from the use of this software.  Permission is grated to anyone to use this software for any purpose, including commercial applications, and to alter it and redistributie it freely, subject to the following restictions:
1.  The origin of this software must not be  misrepresented; you must notclaim that you wrote the original software.  If you use this softare in a product, an acknowledgement in the product documentation is required.
2.  Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3.  This notice may not be removed or altered from any source
This software borrows the ETUtils.dll, D2Packets.dll, D2Data.dll created/modified (I think) by Foosoft, Zoxc, Evan and possibly others. 
Version Log

Alpha 2 (by Fett007)

•   Added resolution scaling options
•   Added Game Actions support
•   Added ability to disable BlueVex2 proxy
•   Added ability to disable AutoLogin
•   Added ability to specify character slots and Master status to accounts
•   Enabled ability to play sound from the Master account.

Alpha 1 (by Pleh)

•   Intial BlueVex2 release
•   Added proxy support
•   Added multi-game loader functionality
•   Added overview support
•   Added overlay support
•   Added auto-login support
•   Added HeroMerc and HeroStats pluggin to demonstrate multi-instance support, overlay support, and navigation support.
fett007
 
Posts: 40
Joined: Fri Jul 20, 2007 10:39 pm
Location: AZ

Re: BlueVex 2.0

Postby CTS_AE on Wed Mar 10, 2010 8:06 am

I believe d2 launcher patches d2's memory when it loads so that the checking can be skipped.
but then it's unloaded after it's checked for multi instances
This means that the game's memory if scanned by warden should be left looking unchanged to warden.
Thus this "memory based method" is actually really safe amongst others if not all of them.

Idk how bluevex2.0 is doing it, but I'd imagine it's doing it the d2window method of parent absorption that d2window uses.
This method is so said that it could be detected, but it's not currently detected that I know of.
But I like to think of the parent method like so:
when using multiple windows accounts you may have multiple d2's
this is because the parent of d2 is different (so I think)
the one fall back though is that if d2 can read what users all the game.exe are launched under
and if they are all the same user then it could get pissed
but idk how much warden can do beyond memory modification testing.

I used to have a project I was working on where you had to choose how many d2's you wanted
but it would freeze their processes and then resume at the same time which would allow you to
have multiple d2's (if you have ever clicked fast enough you might get multiple d2's)
to further the project I began learning about impersonation (which I believe is running code under
a different user) and also how to launch programs under different users
thus you would have to create some "new user accounts" and then for best practices
add them to the registry under "special accounts" so they wouldn't show at the login screen.

But then I the team showed of the parent method and soon later I ran across the open source
d2window, which it's method matched up with the team's.

Now ideally you could play it on the safe side and run under different user accounts,
while doing the parental method.

The main fear that I had heard of though about this method is if it was ever added to a
project with alot of people that would end up using it. Of course that's the fear for about any hack
whether or not it's very popular or not or if it uses the same method of another popular hack.

I say slap an SVN up if there isn't one already ; )


btw good job fett007 for writing up the read me file and for putting alot of time into it
I hope I can contribute to the project as well, and I know I can
I just need to find the time, as this week is finals week :(


Edit: atm I'm working on trying to convert the D2Compression from VB to C#
also I'm working on making the project run under 08 express since I think it's
purely capable of doing so ; )
Edit2: 50% done
CTS_AE
 
Posts: 15
Joined: Mon Jul 14, 2008 12:05 pm

Re: BlueVex 2.0

Postby fett007 on Wed Mar 10, 2010 5:32 pm

@ CTE_AE

Thank you for the description of Launcher vs D2window, it certainly helped me. I've been using my own (very slightly) modified code of D2window since summer of '09 without any problem . I guess they haven't really done any banning since then so that's not saying much.

My understanding is that if D2Compression is converted to C# then it should be no problem to get the project to compile under an express edition of VS. Since VS2010 is going to be officially released in April, and beta version of C# express 2010 will be available through them, I'm not sure if there is much need to get it to work with 2008.

If you can get D2Compression converted and working (I'm not sure how we test it thoroughly), then I'll start an SVN. I'm adding a couple more features such as the ability to start the overview tab in a separate window, dynamic re-sizability of both, etc. Real life is going to hold me back from really working on these for a couple of weeks.
fett007
 
Posts: 40
Joined: Fri Jul 20, 2007 10:39 pm
Location: AZ

Re: BlueVex 2.0

Postby CTS_AE on Thu Mar 11, 2010 2:54 am

yeah I'm a gui kinda guy and I figured he's using the method I created for the ao map client, or maybe he's using his own method that he derived himself or by someone else but I have some pretty decent knowledge of overlays and he's made it into a nice little class. but yeah I was going to fix some of the tab stuff and what not, looking through things that you listed as issues/bugs/limitations.

I've had a few problems with converting the compression over to C# but after it's fully done with those few problems I'll have a better understanding of how they fall together and what needs to be fixed so that the functions can interact correctly, because right now there's a few type issues (or maybe I missed something or screwed up the types with VB's weird conversioning)

but for now I'll continue to work on the compression and keep me updated with what you're doin ; )

Ohyeahs: that's interesting that 2010 will be ready to go in april, that's crazy soon :)
then'll be time to make another portable edition of C# if possible ;)


Edit: W00t! all done converting over to C# for the compression
just left with some type issues though : (

Edit: launches : ) hopefully everything runs correctly now
& Wow! at the settings class, it's really nice and fancy, but gives me a headache... lol
CTS_AE
 
Posts: 15
Joined: Mon Jul 14, 2008 12:05 pm

PreviousNext

Return to Core Development

Who is online

Users browsing this forum: No registered users and 1 guest