Adding class based health differences

From Valve Developer Community
Revision as of 13:55, 14 February 2011 by Welsh Mullet (talk | contribs)
Jump to: navigation, search

This is a short tutorial which will allow you to set different health values for different classes in your mod. This will create a system very similar to that used in Team Fortress 2 and other class based games to great effect. When combined with the already pressent capability to change class' speeds, higher health can be balanced against lower speeds, and used to create a unique class-based multiplayer experience.

This tutorial is designed to work on the SDK template mod, on the 2007 base, as this version already has many class based systems implemented. Modification to work on other bases could be done, but it would be complicated as other systems would need to be implemented first.

Only a basic understanding of C++ is required for this tutorial.

Open the solution in a C++ editor of your choice.

Edits are made to sdk_shareddefs.h, sdk_gamerules.cpp, sdk_playerclass_info_parse.cpp (and .h) and sdk_player_shared.h

sdk_player_shared.h: Add

int m_iHealth;
int m_iMaxHealth;

at around line 128, just after some stuff about sprinting.

sdk_gamerules.cpp: Add


at about line 705, just after the players armour is also set in a similar way.

sdk_shareddefs.h: Add


at line 138, around where the default runspeeds are declaired as well.


m_iHealth		= pKeyValuesData->GetInt( "health", 0);
m_iMaxHealth		= pKeyValuesData->GetInt( "maxhealth", 0);

at line 136, just after m_iArmor.

sdk_playerclass_info_parse.h: Add

int m_iHealth;
int m_iMaxHealth;

at line 50 ish, also after m_iArmor.

Now you need to add the lines "health" and "maxhealth" to your class scripts (These work the same as armour)

Pictures to come soon~!