Last Update: 	2001-08-28
Homepage:	http://onlyer.top263.net

D2Loader Readme

What is it:
	a no-cd loader for diablo2 and diablo2 expansion, with lots
of other futures in it. (most are for battle.net use)
	support Win9x,Nt & 2k.


How to use it:
	Very simply
	0. Install Diablo2 and upgrade to latested version, necessary
		(you can find the patch on http://www.blizzard.com)
	1. copy "Diablo II.exe" to your diablo2 directory. necessary
	2. copy "d2hack.script" to your diablo2 directory, not necessary
	3. copy "plugin" directory to your diablo2 directory,not necessary
	4. run "Diablo II.exe" to start the game

	copy the file d2char.mpq d2music.mpq, d2xmusic.mpq d2xvideo.mpq
from your game cd to diablo2 directory if you want to play even without 
a backup copy of the game cd.


How to uninstall it:
	You may run game.exe at any time to start the game without loader,
or if you have backuped the original "Diablo II.exe", restore it and start
"Diablo II.exe" is also ok.

Features:
1.Script support
	the loader will read d2hack.script at startup,then apply
dynamic memory patch following the d2hacks.script
	open d2hack.script using any text editor (e.g. notepad)
	there is a sample hackcore script hack in it (which enable 
creating of hardcore character at any time).I will do some explain
about it here:

#Module Name	Offset(RVA)	Source Data(for check)		Destnation Data(Change to)
d2launch.dll	A607		751A				EB1A
d2launch.dll	B011		7420				9090

line 1 begin with a '#', so it is just a comment,will be ignored
line 2 can be explained as this:
dynamic patch the memory of d2launch.dll 
first check if there is 0x751A at offset(RVA) 0xA607.
if it is, change 0x751A to 0xEB1A (change from jne to jmp in assemble code)
line 3 is familir:
change d2launch.dll offset 0xB011 from 0x7420 to 0x9090 (change from je to nop 
in asmemble code)

2.Plugin support
	the loader will search in plugin directory and try to load
all useable dlls in it. for more details about plugin in programming.
see the sample in plugin directory.
	there is a sample winkey.dll plugin in it - which disable 
windows key (the key between alt and ctrl) if you are playing the game.
	with the plugin support, you can make your own plugin
to do anything to the game.
	
	
3.Support Parameters:
the following below is a list of arguments can be applied on the game at 
startup.
care: some of them are only for this loader.
1. One well-known argument for the Game:
   -w (window mode)
   Start the game in window mode

2. Run without any sound:
   -ns (no sound)
   This maybe useful for those play games at working time ;)

3. Even more disk space save:
   -nochar (no character display)
   will skip two Mpq file -- d2char.mpq d2music.mpq
   But of cuz, your character will 'disappear' from the screen :P
   I think only useful for those with harddisk < 1G 

4. Play multiple characters at the same time with 1 cdkey
   -multiclient
   see d2-cdkey.txt for details

5. Set windows title
   -title
   you may set window title back use -title "Diablo II" to be
   compatible with some other hacks such as maphack

6. an useful debug option for Mod makers
   -direct ( read files directly)
   Yeah,this will read files directly from the disk
   instead of read from MPQs, then you will not need
   to create MPQs each time when you are testing.
   to do this,just unpack the d2data.mpq ( or and others)
   into your Diablo2 dir with the origin structure within
   the MPQ ( i personal recommend MpqView) 
   start the game with -direct, then you will see how this
   works.
   additionary, you may need add another argument with this
   together, '-noexit'

7. No auto exit
   -noexit ( not auto exit )
   do not auto exit when warning or error occurs, try recover
   that ( seems error will commonly exit), a debug option.
   
8. Not notify user about the game error
   -nonotify (not notify error)
   Useful for Battle.net use,As i know, if your Diablo2
   game meets an cirtical error while playing on battle.net
   It will commonly popup a message box with the error 
   message. before you click the ok button on the box, you 
   will still in the game!, can you image this happens when 
   a hc char among lots of enemies -- always cause your character
   die with this option set, the annoying messagebox will not 
   appear and the game will quit directly when error occurs,care
   not to use the option with '-noexit'
   
9. another well-known argument,i just remember it:
   -skiptobnet
   Go battle.net directly. just save one mouse click :P

   they are lots of other arguments remains,but most is
   for debug use,not important for common users. so i 
   skip it to save time :)

Full list of Parameters : (ignores them newbies)
<n> here means a number, <s> here means a string

Short name	Full name		Description
1.Video options
-exp 		-expansion		switch expansion mode
-w		-window			switch window mode
-glide		-glide			use glide video mode
-opengl		-opengl			use opengl video mode
-d3d		-d3d			use direct3d video mode
-rave		-rave			use rave graphics modes,might be Mac only.
-per		-perspective		turn Perspective mode on,available only
					on full screen non-ddraw mode
-lq		-lowquality		decreases the quality of graphical aspects
					of the game, therefore speeding up the game
-gamma <n>	-gamma <n>		set gamma to <n>
-vsync		-vsync			might be turns visual syncronizing on
-fr <n>		-framerate <n>		set frame rate to <n>

2.Network options
-s <s>		-serverip <s>		set tcp/ip game server ip to <s>
-gametype <n>   -gametype <n>		set game type to <n>
-joinid <n>	-joinid <n>		set join id to <n>
-gamename <s>	-gamename <s>		set gamename to <s>
-bn <s>		-battlenetip <s>	set battle.net server ip to <s>
-mcpip <s>	-mcpip <s>		set mcpip server ip to <s>
-nopk		-nopk			disable pk (seems no function now)
-openc		-openc			not sure

3.Game options
-arena <n>	-arena <n>		no use now
-difficulty 	-difficulty		no use now
-txt		-txt			for mod creator, generate .bin file

4.Character options
-ama		-ama			set character class to ama
-pal		-pal			set character class to pal
-sor		-sor			set character class to sor
-nec		-nec			set character class to nec
-bar		-bar			set character class to bar
-dru		-dru			set character class to dru
-asn		-asn			set character class to asn
-i		-invincible		invincible? seems no use now
-bnacct	<s>	-bnacct	<s>		set battle.net account name to <s>
-bnpass	<s>	-bnpass	<s>		set battle.net password to <s>
-name <s>	-name <s>		set battle.net character name to <s>
-realm <s>	-realm <s>		set battle.net realm name to <s>
-ctemp <n>	-ctemp <n>		use <n>th character template in arena mode

5.Monster options
-nm		-nomonster		no monster? no use now
-m <n>		-monsterclass <n>	not sure
-minfo		-monsterinfo		show monster info? no use now
-md <n>		-monsterdebug <n>	not sure

6.Item options
-rare		-rare			all rare item? (no use now)
-unique		-unique			all unique item? (no use now)

7.Interface options
-act <n>	-act <n>		set initial act to <n>

8.Debug options
-log		-log			active log (no use now)
-msglog		-msglog			active msglog
-safe		-safemode		run in safe mode?
-seed <n>	-seed <n>		set map seed to <n>
-cheats		-cheats			not sure
-ns		-nosound		disable all sound
-questall	-questall		not sure

9. File I/O options
-npl		-nopreload		no preload game files
-direct		-direct			load data directly from disk
-lem		-lowend			not sure
-nocompress	-nocompress		no compression
-comint <n>	-comint <n>		no touch it,dynamic data structure
-token <n>	-token <n>		set close game token to <n>
-gamepass <s>	-gamepass <s>		set game password to <s>
-skiptobnet	-skiptobnet		go battle.net directly

10. Custom options
-client		-client			run in client mode (in game directly)
-server		-server			server mode, need d2server.dll
-launch		-launch			launch mode (default one)
-notitle	-notitle		no window title bar
-res800		-res800			start window in 800x600 (for d2)
-res640		-res640			start window in 640x480 (for d2)
-nonotify	-nonotify		no error notify
-noexit		-noexit			no auto exit
-autorest	-autorest		auto restart after exit
-multiclient	-multiclient		1 cdkey multiple characters
-nohook		-nohook			disable hook
-nochar		-nochar			disable character image
-clientexit	-clientexit		exit after quit game
-noscript	-noscript		do not load scripts
-noplugin	-noplugin		do not load plugins
-lng <s>	-lng <s>		set language to <s> (only ENG, CHN now)
-hookwnd <s>	-hookwnd <s>		set hook window class to <s>
-hookexe <s>	-hookexe <s>		set hook version check game.exe to <s>
-servername <s>	-servername <s>		set game server name to <s>
-title <s>	-title <s>		set window title to <s>

	mail me if you know what the option marked with not sure do.thanks

Enjoy!

===========================================================
Cracked by Onlyer <Onlyer@263.net>
Bugs,Suggestions are welcome :)

							2000.12.31
