Deathmatch Plus (v2.3a) for Half-Life

i. Foreword
This version of Deathmatch Plus is an Alpha test release!  Crashing may occur, but I don't expect them as I have been playing with this for quite some time.  Send in ALL bugs and comments.

I. About DM Plus
Basically this is a multiplayer mod for Valve Software's Half-Life.  If you don't know what a mod is, then come back later when you've figured out what a mod is.  If you don't have a copy of Half-Life, GO GET IT!!!  You're missing a LOT!!

I first got the idea when I started fooling around with the dll source codes.  You might also recognize some of the customizable options from the Oz Deathmatch mod.  I have partially patterned the initial phase of this mod after that.  I liked the mod but I wasn't content, and I just couldn't wait for the next version, so I wrote my own.

This mod is my very first mod.  This is also my very first endeavor at Win32 C++ programming, so expect some bugs.

II. Features (those different from the unmodified game)
1. Highly customizable server settings via Advanced Options menu or using the Config Set options.  (See dmplus\docs\CFGSets.txt for more info)
2. New primary fire mode for the glock.  It's now silenced (still audible at close range) but it is a bit slower.
3. New alternate fire mode for the tripmine.  The only difference the alternate fire mode has is the laser color.  The primary and alternate laser color is configurable.
4. Crossbow fire mode changing for explosive, and non-explosive bolts.
5. You can now pick up satchel charges while you have some of them deployed.
6. Grappling Hook! (bind a key to +hook)
7. Cloaking Device! (bind a key to +cloak or cloaktoggle)
8. MP5 fire mode changing (single-fire, semi-auto, full-auto) and silenced fire for single and semi-auto modes.
9. New alternate fire mode for the hand grenade: cluster grenades!  This can be enabled or disabled.  Amount of clusters and their damage may be reconfigured in the menus.
10. Homing rocket, use the alternate fire button, the laser spot toggle has been remapped to switch1 as this makes more sense and the laser spot is now turned off by default.  The homing rocket is also slower than the normal rocket.
11. Sole Survivor scoring system...  like Unreal's King of the Hill...  under testing...
12. Lights out mode...  sorta like Oz Dm's NightOps mode (they beat me to coding it first) and Unreal's Darkmatch mode...
13. HUD indicator for cloaking
14. HUD indicator for MP5 and Crossbow fire modes
15. Light Amplification...  doesn't work with certain misbehaved video cards...  (Intel 740 fix: use software rendering instead as both OpenGL and D3D modes have certain issues with the Intel 740)
16. shootable satchels...  currently, only splash damage sets them off...
17. leg damage limping and jump weakening effects, lasts for 30 secs... (negative rating sets limp to the left side while a positive rating sets limp to the right side...  set the rating to 0 to disable limping, however jumping will still become weaker)
18. crowbar hit dizziness effects which also triggers the limping effects...  (set the rating to 0 to disable)
19. locational weapon hit disorientation effects...  (set to 0 to disable)
20. critical health bleeding effects (critical health level is below 25%) and fatal health limping effects (fatal health level is 15% or below) once your life goes below 25% you start losing life until you get your health to 25% or more, or until you die...
21. option to change weapon priority or to disable all weapon priorities altogether...  set priority to -1  to disable auto-switching to this weapon on pickup
22. team selection menu for teamplay instead of using models to determine the team...  you can now have teams with mixed models...

III. Requirements
1. A PC capable of running Half-Life
2. Half-Life installed and patched up to v1.0.0.9 (may work for later versions but it is currently unknown)
3. 7mb of hard disk space - includes installed files and zip file (zip file may be deleted after installation)

IV. Installation
1. Unzip the files to a subdirectory named "dmplus" in your Half-Life folder.  (example: "C:\SIERRA\Half-Life\dmplus").  You may have to create this directory first.
2. You have several ways of enabling the mod:
   a. run Half-Life with -game dmplus in the command line
   b. run Half-Life and use the mod browser to activate the mod
3. Check the Advanced Options in the server setup dialogs for any items you may want to change

V. Instructions

1. Starting a server
It is ALMOST exactly similar to starting a server with the unmodified game.  The difference lies in the mod browser, model browser and the map browser.  The map browser will only show maps in the dmplus\maps (depending on your installation) directory.

There are two ways of getting maps to work with DM Plus.  You can create a subdirectory named "maps" in the dmplus directory and put your maps here and the map browser will show those maps.  The maps at valve\maps will not be visible in the map browser, however, you can still use them by typing "map <mapname>" on the console.  If you don't have a map in your dmplus\maps directory, you can start a server without choosing the map, then when the error message appears in the console regarding the "unknown" map, type in "map <mapname>" on the console.  I suggest bearing with the console for a while (until I find a way to get the map browser to use valve\maps) because making a copy of maps in valve\maps in dmplus\maps is a waste of hard drive space.

The same think can be said for the models.  You either have to put your models in dmplus\models, or type "model <modelname>" on the console to use a model from valve\models.  This time, I would suggest that you put the models in dmplus\models so you can view and change the colors of the skin.  Typing "model <modelname>" still searches valve\models if it doesn't find the model in dmplus\models.

2. Grappling Hook
Simply bind a key (example: ALT) to +hook.  To do this with the ALT key type "bind ALT +hook".  Pressing the hook key (and keeping it depressed) shoots off a bolt.  If the bolt hits something, it will either bounce or "hook" into the object, depending on what the object is.  If it hooks into something, you get pulled towards the hook until you release the hook key.  The map features can still block your path toward the hook.

3. Cloaking device
Bind a key to cloaktoggle.  Use the rate_cloakdrain cvar to change the drain rate and the cloak_rating to change the strength of cloaking.

Cloaking drains 1 unit of your HEV energy once you turn it on and 1 unit after every second.  (configurable)

Cloaking only works when your moving slowly.  Moving too fast will turn off your cloak temporarily but will still drain 1 more energy once you recloak, if recloaked after rate_cloakdrain number of seconds of being temporarily uncloaked.  (this one's rather confusing, play around and watch the HEV energy meter)

The normal run is too fast for the cloaking, however, if you walk, or move-crouch or stand stationary the cloaking will remain active.  Stealth is important.

You can look at the battery indicator to see whether your cloaking is turn on and if it is active.  The indicator will turn blue if it is on and active, and purple if it is on but inactive.

4. Light Amplification
Bind a key to inframode.  This gives your HUD a tint of green to improve visibility.  This may work on some video cards and may not on some.  Please send it your comments.

As for energy drain, this one uses up flashlight batteries and it uses it up a lot faster.

5. RPG, MP5 & Crossbow fire modes
Bind a key to switch1.

For the RPG, this will simply turn on or off the laser spot for the primary fire.  The alternate fire mode (homing rocket) will need the laser spot to choose a target.  Tag your target with the laser then fire.  It will lock in on the entity which the laser spot is on and home in. Given it's physics limitations, though, it is easy to avoid a direct hit from the rocket.

The Crossbow simply responds by toggling between explosive to non-explosive bolts.

This command will cycle between single fire, semi-auto and full-auto for the MP5.  The MP5 single fire mode shoots only 1 bullet at a time and does not continue firing while keeping the fire button depressed.  The MP5 semi-auto mode on the other hand fires off 3 shots immediately.  These two modes are silenced.  The MP5 full-auto is unsilenced and behaves exactly like the original mp5.

You might notice that there are key bindings from switch1 to switch10.  Well, only switch1 is used for the moment.  And only the MP5, the Crossbow and the RPG makes use of the switch.

6. Cluster grenades
You simply need to use the hand grenade's alternate fire button.  'nuff said.

7. Targeting computer
Point your crosshair at anybody and you will see info on the left hand side of your screen.  If you don't see any info, check to see if you're pointing to someone alive!  ;)

8. Changing the server settings
Head for the Advanced Options in the server setup dialogs to change any server settings.  The captions were made to be self-explanatory.  Mail me if you have any questions.  For dedicated servers however, you might need to use a .cfg file.  I have provided a defaults.cfg file you can start with.  I suggest you keep that file for future reference.

9. Key configuration
Key configuration for the new commands are already available at the configuration menu.  In fact, it has been available since v1.0 however I simply forgot to place it here in the readme.  Forgetful me...

VI. Contacting the programmer
You can contact me by sending me email at dmplus@planethalflife.com.

VII. Credits
Thanks go out to the following people/groups of people:

David Serrano for designing the new custom menu graphics.  (the green one, not the blue one)
(no contact info yet, I haven't asked him what to put in)

The Valve and Sierra people, for creating such a kick-ass game!
http://www.valvesoftware.com/
http://www.sierrastudios.com/games/half-life/

The Oz Deathmatch programming team, for simply making their mod, my initial motivation.  (I really wanted to wait for your grappling hook source code, but I was impatient.)
http://quakestyle.telefragged.com/oz/index.htm

The people at Wavelength, for their cloaking tutorial which gave me an idea.
http://www.planethalflife.com/wavelength/

My girlfriend, for wishing (and giving) me luck.

The beta testers: my 2 brothers, my cousin, for telling me what they wanted and for letting me frag them all day long.  (they still suck at Half-Life, hehehehehe...)

My friends, who kept on bugging me to implement this, implement that, that sucks take it out or change it, etc...

No thanks to my boss, for ordering the swapping of Pentim IIs on our branch with the old PCs at the other branch which I planned on using for my first few playtesting sessions before I released this mod.  Now I'll have to release this without playtesting it for more than 2 players.  (I only have two computers at home and this really sucks!)

Last but not the least, thanks to the people who mailed me and gave me bug reports and feedback!  This mod is partly a result of your requests.

And to those who I forgot to mention (hopefully none but if this means you, mail me!), thanks to them to!

VIII. Final Messages
HAVE FUN!
