<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alliedmods.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DaFox</id>
	<title>AlliedModders Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alliedmods.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DaFox"/>
	<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/Special:Contributions/DaFox"/>
	<updated>2026-05-28T21:35:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.6</generator>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=KeyValues_(SourceMod_Scripting)&amp;diff=8671</id>
		<title>KeyValues (SourceMod Scripting)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=KeyValues_(SourceMod_Scripting)&amp;diff=8671"/>
		<updated>2012-09-01T15:43:40Z</updated>

		<summary type="html">&lt;p&gt;DaFox: javalia is the best dvander (added KeyValue Creation)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KeyValues are simple, tree-based structures used for storing nested sections containing key/value pairs.  Detailed information on KeyValues can be seen at the [http://developer.valvesoftware.com/wiki/KeyValues_class Valve Developer Wiki].  &lt;br /&gt;
&lt;br /&gt;
All KeyValues specific functions in this document are from &amp;lt;tt&amp;gt;public/include/keyvalues.inc&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
KeyValues consist of a ''nodes'', or ''sections'', which contain pairs of keys and values.  A section looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;section&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;key&amp;quot;	&amp;quot;value&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;quot;section&amp;quot;&amp;lt;/tt&amp;gt; string denotes the section's name.  The &amp;lt;tt&amp;gt;&amp;quot;key&amp;quot;&amp;lt;/tt&amp;gt; string is the key name, and the &amp;lt;tt&amp;gt;&amp;quot;value&amp;quot;&amp;lt;/tt&amp;gt;&amp;quot; string is the value.&lt;br /&gt;
&lt;br /&gt;
KeyValues structures are created with &amp;lt;tt&amp;gt;CreateKeyValues()&amp;lt;/tt&amp;gt;.  The Handle must be freed when finished in order to avoid a memory leak.&lt;br /&gt;
&lt;br /&gt;
=Files=&lt;br /&gt;
KeyValues can be exported and imported via KeyValues files.  These files always consist of a root node and any number of sub-keys or sub-sections.  For example, a file might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;MyFile&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;STEAM_0:0:7&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;name&amp;quot;		&amp;quot;crab&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, &amp;lt;tt&amp;gt;STEAM_0:0:7&amp;lt;/tt&amp;gt; is a section under &amp;lt;tt&amp;gt;MyFile&amp;lt;/tt&amp;gt;, the root node.  &lt;br /&gt;
&lt;br /&gt;
To load KeyValues from a file, use &amp;lt;tt&amp;gt;FileToKeyValues&amp;lt;/tt&amp;gt;  To save KeyValues to a file, use &amp;lt;tt&amp;gt;KeyValuesFromFile&amp;lt;/tt&amp;gt;.  For both cases, you must already have a Handle to a KeyValues structure.&lt;br /&gt;
&lt;br /&gt;
=Traversal=&lt;br /&gt;
SourceMod provides natives for traversing over a KeyValues structure.  However, it is important to understand how this traversal works.  Internally, SourceMod keeps track of two pieces of information:&lt;br /&gt;
*The root node&lt;br /&gt;
*A traversal stack&lt;br /&gt;
&lt;br /&gt;
Since a KeyValues structure is inherently recursive (it's a tree), the ''traversal stack'' is used to save a history of each ''traversal'' made (a traversal being a recursive dive into the tree, where the current nesting level deepens by one section).  The ''top'' of this stack is where all operations take place.  &lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;tt&amp;gt;KvJumpToKey&amp;lt;/tt&amp;gt; will attempt to find a sub-key under the current section.  If it succeeds, the position in the tree has changed by moving down one level, and thus this position is pushed onto the traversal stack.  Now, operations such as &amp;lt;tt&amp;gt;KvGetString&amp;lt;/tt&amp;gt; will use this new position.&lt;br /&gt;
&lt;br /&gt;
There are natives which change the position but do not change the traversal stack.  For example, &amp;lt;tt&amp;gt;KvGotoNextKey&amp;lt;/tt&amp;gt; will change the current section being viewed, but there are no push/pop operations to the traversal stack.  This is because the nesting level did not change; it advances to the next section at the same level, rather than finding a section a level deeper.&lt;br /&gt;
&lt;br /&gt;
More traversal natives:&lt;br /&gt;
*&amp;lt;tt&amp;gt;KvGotoFirstSubKey&amp;lt;/tt&amp;gt; - Finds the first sub-section under the current section.  This pushes the section onto the traversal stack.&lt;br /&gt;
*&amp;lt;tt&amp;gt;KvGoBack&amp;lt;/tt&amp;gt; - Pops the traversal stack (moves up one level).&lt;br /&gt;
*&amp;lt;tt&amp;gt;KvRewind&amp;lt;/tt&amp;gt; - Clears the traversal stack so the current position is the root node.&lt;br /&gt;
&lt;br /&gt;
==Basic Lookup==&lt;br /&gt;
Let's take our &amp;lt;tt&amp;gt;MyFile&amp;lt;/tt&amp;gt; example from above.  How could we retrieve the name &amp;quot;crab&amp;quot; given the Steam ID?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;bool:GetNameFromSteamID(const String:steamid[], String:name[], maxlength)&lt;br /&gt;
{&lt;br /&gt;
	new Handle:kv = CreateKeyValues(&amp;quot;MyFile&amp;quot;);&lt;br /&gt;
	FileToKeyValues(kv, &amp;quot;myfile.txt&amp;quot;);&lt;br /&gt;
	if (!KvJumpToKey(kv, steamid))&lt;br /&gt;
	{&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
	KvGetString(kv, &amp;quot;name&amp;quot;, name, maxlength);&lt;br /&gt;
	CloseHandle(kv);&lt;br /&gt;
	return true;&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' &amp;lt;tt&amp;gt;KvJumpToKey&amp;lt;/tt&amp;gt; is a traversal native that changes the nesting level of the traversal stack.  However, &amp;lt;tt&amp;gt;CloseHandle&amp;lt;/tt&amp;gt; will not accidentally close only the current level of the KeyValues structure.  It will close the entire thing.&lt;br /&gt;
&lt;br /&gt;
==Iterative Lookup==&lt;br /&gt;
Let's modify our previous example to use iteration.  This has the same functionality, but demonstrates how to browse over many sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;bool:GetNameFromSteamID(const String:steamid[], String:name[], maxlength)&lt;br /&gt;
{&lt;br /&gt;
	new Handle:kv = CreateKeyValues(&amp;quot;MyFile&amp;quot;);&lt;br /&gt;
	FileToKeyValues(kv, &amp;quot;myfile.txt&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	if (!KvGotoFirstSubKey(kv))&lt;br /&gt;
	{&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	decl String:buffer[255];&lt;br /&gt;
	do&lt;br /&gt;
	{&lt;br /&gt;
		KvGetSectionName(kv, buffer, sizeof(buffer));&lt;br /&gt;
		if (StrEqual(buffer, steamid))&lt;br /&gt;
		{&lt;br /&gt;
			KvGetString(kv, &amp;quot;name&amp;quot;, name, maxlength);&lt;br /&gt;
			CloseHandle(kv);&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
	} while (KvGotoNextKey(kv));&lt;br /&gt;
&lt;br /&gt;
	CloseHandle(kv)&lt;br /&gt;
	return false&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' In this example, note that &amp;lt;tt&amp;gt;KvGotoNextKey&amp;lt;/tt&amp;gt; is an iterative function, not a traversal one.  Since it does not change the nesting level, we don't need to call &amp;lt;tt&amp;gt;KvGoBack&amp;lt;/tt&amp;gt; to return and continue iterating.&lt;br /&gt;
&lt;br /&gt;
==Full Traversal==&lt;br /&gt;
Let's say we wanted to browse every section of a KeyValues file.  An example of this might look like:&lt;br /&gt;
&amp;lt;pawn&amp;gt;BrowseKeyValues(Handle:kv)&lt;br /&gt;
{&lt;br /&gt;
	do&lt;br /&gt;
	{&lt;br /&gt;
		if (KvGotoFirstSubKey(kv))&lt;br /&gt;
		{&lt;br /&gt;
			BrowseKeyValues(kv);&lt;br /&gt;
			KvGoBack(kv);&lt;br /&gt;
		}&lt;br /&gt;
	} while (KvGotoNextKey(kv));&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function will browse an entire KeyValues structure.  Note that every successful call to &amp;lt;tt&amp;gt;KvGotoFirstSubKey&amp;lt;/tt&amp;gt; is paired with a call to &amp;lt;tt&amp;gt;KvGoBack&amp;lt;/tt&amp;gt;.  This is because the former pushes onto the traversal stack.  We must pop the position off so we can continue browsing from our old position.&lt;br /&gt;
&lt;br /&gt;
=Deletion=&lt;br /&gt;
There are two ways to delete sections from a KeyValues structure:&lt;br /&gt;
*&amp;lt;tt&amp;gt;KvDeleteKey&amp;lt;/tt&amp;gt; - Safely removes a named sub-section and any of its child sections/keys.&lt;br /&gt;
*&amp;lt;tt&amp;gt;KvDeleteThis&amp;lt;/tt&amp;gt; - Safely removes the current position if possible.&lt;br /&gt;
&lt;br /&gt;
==Simple Deletion==&lt;br /&gt;
First, let's use our &amp;quot;basic lookup&amp;quot; example to delete a Steam ID section:&lt;br /&gt;
&amp;lt;pawn&amp;gt;RemoveSteamID(const String:steamid[])&lt;br /&gt;
{&lt;br /&gt;
	new Handle:kv = CreateKeyValues(&amp;quot;MyFile&amp;quot;)&lt;br /&gt;
	FileToKeyValues(kv, &amp;quot;myfile.txt&amp;quot;)&lt;br /&gt;
	if (!KvGotoFirstSubKey(kv))&lt;br /&gt;
	{&lt;br /&gt;
		return&lt;br /&gt;
	}&lt;br /&gt;
	KvDeleteKey(kv, steamid)&lt;br /&gt;
	KvRewind(kv)&lt;br /&gt;
	KeyValuesToFile(kv, &amp;quot;myfile.txt&amp;quot;)&lt;br /&gt;
	CloseHandle(kv)&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We called &amp;lt;tt&amp;gt;KvRewind&amp;lt;/tt&amp;gt; so the file would be dumped from the root position, instead of the current one.  &lt;br /&gt;
&lt;br /&gt;
==Iterative Deletion==&lt;br /&gt;
Likewise, let's show how our earlier iterative example could be adapted for deleting a section.  For this we can use &amp;lt;tt&amp;gt;KvDeleteThis&amp;lt;/tt&amp;gt;, which deletes the current position from the previous position in the traversal stack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;RemoveSteamID(const String:steamid[])&lt;br /&gt;
{&lt;br /&gt;
	new Handle:kv = CreateKeyValues(&amp;quot;MyFile&amp;quot;)&lt;br /&gt;
	FileToKeyValues(kv, &amp;quot;myfile.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if (!KvGotoFirstSubKey(kv))&lt;br /&gt;
	{&lt;br /&gt;
		return&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	decl String:buffer[255]&lt;br /&gt;
	do&lt;br /&gt;
	{&lt;br /&gt;
		KvGetSectionName(kv, buffer, sizeof(buffer))&lt;br /&gt;
		if (StrEqual(buffer, steamid))&lt;br /&gt;
		{&lt;br /&gt;
			KvDeleteThis(kv)&lt;br /&gt;
			CloseHandle(kv)&lt;br /&gt;
			return&lt;br /&gt;
		}&lt;br /&gt;
	} while (KvGotoNextKey(kv))&lt;br /&gt;
&lt;br /&gt;
	CloseHandle(kv)&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Full Deletion==&lt;br /&gt;
Now, let's take a look at how we would delete all (or some) keys.  &amp;lt;tt&amp;gt;KvDeleteThis&amp;lt;/tt&amp;gt; has the special property that it can act as an automatic iterator.  When it deletes a key, it automatically attempts to advance to the next one, as &amp;lt;tt&amp;gt;KvGotoNextKey&amp;lt;/tt&amp;gt; would.  If it can't find any more keys, it simply pops the traversal stack.  &lt;br /&gt;
&lt;br /&gt;
An example of deleting all SteamIDs that have blank names:&lt;br /&gt;
&amp;lt;pawn&amp;gt;DeleteAll(Handle:kv)&lt;br /&gt;
{&lt;br /&gt;
	if (!KvGotoFirstSubKey(kv))&lt;br /&gt;
	{&lt;br /&gt;
		return&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	for (;;)&lt;br /&gt;
	{&lt;br /&gt;
		decl String:name[4]&lt;br /&gt;
		KvGetString(kv, name, sizeof(name))&lt;br /&gt;
		if (name[0] == '\0')&lt;br /&gt;
		{&lt;br /&gt;
			if (KvDeleteThis(kv) &amp;lt; 1)&lt;br /&gt;
			{&lt;br /&gt;
				break&lt;br /&gt;
			}&lt;br /&gt;
		} else if (!KvGotoNextKey(kv)) {&lt;br /&gt;
			break&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While at first this loop looks infinite, it is not.  If &amp;lt;tt&amp;gt;KvDeleteThis&amp;lt;/tt&amp;gt; fails to find a subsequent key, it will break out of the loop.  Similarly, if &amp;lt;tt&amp;gt;KvGotoNextKey&amp;lt;/tt&amp;gt; fails, the loop will end.&lt;br /&gt;
&lt;br /&gt;
==KeyValue Creation==&lt;br /&gt;
This is how you would create the &amp;lt;tt&amp;gt;MyFile&amp;lt;/tt&amp;gt; example from above with the KeyValue API&lt;br /&gt;
&amp;lt;pawn&amp;gt;new Handle:kv = CreateKeyValues(&amp;quot;MyFile&amp;quot;);&lt;br /&gt;
KvJumpToKey(kv, &amp;quot;STEAM_0:0:7&amp;quot;, true);&lt;br /&gt;
KvSetString(kv, &amp;quot;name&amp;quot;, &amp;quot;crab&amp;quot;);&lt;br /&gt;
KvRewind(kv);&lt;br /&gt;
KeyValuesToFile(kv, &amp;quot;C:\javalia.txt&amp;quot;);&lt;br /&gt;
CloseHandle(kv);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Scripting]]&lt;br /&gt;
{{LanguageSwitch}}&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CCSGameRules_Offset_List_(Counter-Strike:_Source)&amp;diff=7776</id>
		<title>CCSGameRules Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CCSGameRules_Offset_List_(Counter-Strike:_Source)&amp;diff=7776"/>
		<updated>2010-07-17T19:16:34Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* The List */  Updated Offsets&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For use when using [[Virtual Offsets (Source Mods)|virtual offsets]].&lt;br /&gt;
&lt;br /&gt;
This is the list of offsets I've been using. These are the &amp;lt;b&amp;gt;Linux&amp;lt;/b&amp;gt; offsets. &amp;lt;b&amp;gt;Windows offsets are 1 less.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
This comes from the symbol tables, so you'll have to look in the SDK for return types...or guess for the CSS specific functions near the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Last Updated 17 July 2010&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Auto reconstructed from vtable block @ 0x00BCA260&lt;br /&gt;
// from &amp;quot;server.so&amp;quot;, by ida_vtables.idc&lt;br /&gt;
0	CMultiplayRules::Init(void)&lt;br /&gt;
1	CBaseGameSystemPerFrame::PostInit(void)&lt;br /&gt;
2	CBaseGameSystemPerFrame::Shutdown(void)&lt;br /&gt;
3	CCSGameRules::LevelInitPreEntity(void)&lt;br /&gt;
4	CCSGameRules::LevelInitPostEntity(void)&lt;br /&gt;
5	CBaseGameSystemPerFrame::LevelShutdownPreClearSteamAPIConatext(void)&lt;br /&gt;
6	CBaseGameSystemPerFrame::LevelShutdownPreEntity(void)&lt;br /&gt;
7	CBaseGameSystemPerFrame::LevelShutdownPostEntity(void)&lt;br /&gt;
8	CBaseGameSystemPerFrame::OnSave(void)&lt;br /&gt;
9	CBaseGameSystemPerFrame::OnRestore(void)&lt;br /&gt;
10	CBaseGameSystemPerFrame::SafeRemoveIfDesired(void)&lt;br /&gt;
11	CBaseGameSystemPerFrame::IsPerFrame(void)&lt;br /&gt;
12	CCSGameRules::~CCSGameRules()&lt;br /&gt;
13	CCSGameRules::~CCSGameRules()&lt;br /&gt;
14	CBaseGameSystemPerFrame::FrameUpdatePreEntityThink(void)&lt;br /&gt;
15	CGameRules::FrameUpdatePostEntityThink(void)&lt;br /&gt;
16	CBaseGameSystemPerFrame::PreClientUpdate(void)&lt;br /&gt;
17	CMultiplayRules::Damage_IsTimeBased(int)&lt;br /&gt;
18	CMultiplayRules::Damage_ShouldGibCorpse(int)&lt;br /&gt;
19	CMultiplayRules::Damage_ShowOnHUD(int)&lt;br /&gt;
20	CMultiplayRules::Damage_NoPhysicsForce(int)&lt;br /&gt;
21	CMultiplayRules::Damage_ShouldNotBleed(int)&lt;br /&gt;
22	CMultiplayRules::Damage_GetTimeBased(void)&lt;br /&gt;
23	CMultiplayRules::Damage_GetShouldGibCorpse(void)&lt;br /&gt;
24	CMultiplayRules::Damage_GetShowOnHud(void)&lt;br /&gt;
25	CMultiplayRules::Damage_GetNoPhysicsForce(void)&lt;br /&gt;
26	CMultiplayRules::Damage_GetShouldNotBleed(void)&lt;br /&gt;
27	CMultiplayRules::SwitchToNextBestWeapon(CBaseCombatCharacter *,CBaseCombatWeapon *)&lt;br /&gt;
28	CCSGameRules::GetNextBestWeapon(CBaseCombatCharacter *,CBaseCombatWeapon *)&lt;br /&gt;
29	CCSGameRules::ShouldCollide(int,int)&lt;br /&gt;
30	CCSGameRules::DefaultFOV(void)&lt;br /&gt;
31	CCSGameRules::GetViewVectors(void)const&lt;br /&gt;
32	CGameRules::GetAmmoDamage(CBaseEntity *,CBaseEntity *,int)&lt;br /&gt;
33	CGameRules::GetDamageMultiplier(void)&lt;br /&gt;
34	CMultiplayRules::IsMultiplayer(void)&lt;br /&gt;
35	CCSGameRules::GetEncryptionKey(void)&lt;br /&gt;
36	CGameRules::InRoundRestart(void)&lt;br /&gt;
37	CGameRules::AllowThirdPersonCamera(void)&lt;br /&gt;
38	CMultiplayRules::ClientCommandKeyValues(edict_t *,KeyValues *)&lt;br /&gt;
39	CMultiplayRules::GetTaggedConVarList(KeyValues *)&lt;br /&gt;
40	CGameRules::CheckHaptics(CBasePlayer *)&lt;br /&gt;
41	CCSGameRules::LevelShutdown(void)&lt;br /&gt;
42	CTeamplayRules::Precache(void)&lt;br /&gt;
43	CMultiplayRules::RefreshSkillData(bool)&lt;br /&gt;
44	CCSGameRules::Think(void)&lt;br /&gt;
45	CMultiplayRules::IsAllowedToSpawn(CBaseEntity *)&lt;br /&gt;
46	CCSGameRules::EndGameFrame(void)&lt;br /&gt;
47	CGameRules::IsSkillLevel(int)&lt;br /&gt;
48	CGameRules::GetSkillLevel(void)&lt;br /&gt;
49	CGameRules::OnSkillLevelChanged(int)&lt;br /&gt;
50	CGameRules::SetSkillLevel(int)&lt;br /&gt;
51	CMultiplayRules::FAllowFlashlight(void)&lt;br /&gt;
52	CCSGameRules::FShouldSwitchWeapon(CBasePlayer *,CBaseCombatWeapon *)&lt;br /&gt;
53	CMultiplayRules::IsDeathmatch(void)&lt;br /&gt;
54	CTeamplayRules::IsTeamplay(void)&lt;br /&gt;
55	CMultiplayRules::IsCoOp(void)&lt;br /&gt;
56	CCSGameRules::GetGameDescription(void)&lt;br /&gt;
57	CMultiplayRules::ClientConnected(edict_t *,char  const*,char  const*,char *,int)&lt;br /&gt;
58	CTeamplayRules::InitHUD(CBasePlayer *)&lt;br /&gt;
59	CCSGameRules::ClientDisconnected(edict_t *)&lt;br /&gt;
60	CCSGameRules::FlPlayerFallDamage(CBasePlayer *)&lt;br /&gt;
61	CTeamplayRules::FPlayerCanTakeDamage(CBasePlayer *,CBaseEntity *)&lt;br /&gt;
62	CTeamplayRules::ShouldAutoAim(CBasePlayer *,edict_t *)&lt;br /&gt;
63	CGameRules::GetAutoAimScale(CBasePlayer *)&lt;br /&gt;
64	CGameRules::GetAutoAimMode(void)&lt;br /&gt;
65	CGameRules::ShouldUseRobustRadiusDamage(CBaseEntity *)&lt;br /&gt;
66	CCSGameRules::RadiusDamage(CTakeDamageInfo  const&amp;amp;,Vector  const&amp;amp;,float,int,CBaseEntity *)&lt;br /&gt;
67	CCSGameRules::FlPlayerFallDeathDoesScreenFade(CBasePlayer *)&lt;br /&gt;
68	CMultiplayRules::AllowDamage(CBaseEntity *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
69	CCSGameRules::PlayerSpawn(CBasePlayer *)&lt;br /&gt;
70	CMultiplayRules::PlayerThink(CBasePlayer *)&lt;br /&gt;
71	CCSGameRules::FPlayerCanRespawn(CBasePlayer *)&lt;br /&gt;
72	CMultiplayRules::FlPlayerSpawnTime(CBasePlayer *)&lt;br /&gt;
73	CCSGameRules::GetPlayerSpawnSpot(CBasePlayer *)&lt;br /&gt;
74	CCSGameRules::IsSpawnPointValid(CBaseEntity *,CBasePlayer *)&lt;br /&gt;
75	CMultiplayRules::AllowAutoTargetCrosshair(void)&lt;br /&gt;
76	CCSGameRules::ClientCommand(CBaseEntity *,CCommand  const&amp;amp;)&lt;br /&gt;
77	CCSGameRules::ClientSettingsChanged(CBasePlayer *)&lt;br /&gt;
78	CTeamplayRules::IPointsForKill(CBasePlayer *,CBasePlayer *)&lt;br /&gt;
79	CCSGameRules::PlayerKilled(CBasePlayer *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
80	CCSGameRules::DeathNotice(CBasePlayer *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
81	CGameRules::GetDamageCustomString(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
82	CGameRules::AdjustPlayerDamageInflicted(float)&lt;br /&gt;
83	CGameRules::AdjustPlayerDamageTaken(CTakeDamageInfo *)&lt;br /&gt;
84	CMultiplayRules::CanHavePlayerItem(CBasePlayer *,CBaseCombatWeapon *)&lt;br /&gt;
85	CMultiplayRules::WeaponShouldRespawn(CBaseCombatWeapon *)&lt;br /&gt;
86	CMultiplayRules::FlWeaponRespawnTime(CBaseCombatWeapon *)&lt;br /&gt;
87	CMultiplayRules::FlWeaponTryRespawn(CBaseCombatWeapon *)&lt;br /&gt;
88	CMultiplayRules::VecWeaponRespawnSpot(CBaseCombatWeapon *)&lt;br /&gt;
89	CMultiplayRules::CanHaveItem(CBasePlayer *,CItem *)&lt;br /&gt;
90	CMultiplayRules::PlayerGotItem(CBasePlayer *,CItem *)&lt;br /&gt;
91	CMultiplayRules::ItemShouldRespawn(CItem *)&lt;br /&gt;
92	CMultiplayRules::FlItemRespawnTime(CItem *)&lt;br /&gt;
93	CMultiplayRules::VecItemRespawnSpot(CItem *)&lt;br /&gt;
94	CMultiplayRules::VecItemRespawnAngles(CItem *)&lt;br /&gt;
95	CGameRules::CanHaveAmmo(CBaseCombatCharacter *,int)&lt;br /&gt;
96	CGameRules::CanHaveAmmo(CBaseCombatCharacter *,char  const*)&lt;br /&gt;
97	CMultiplayRules::PlayerGotAmmo(CBaseCombatCharacter *,char *,int)&lt;br /&gt;
98	CGameRules::GetAmmoQuantityScale(int)&lt;br /&gt;
99	CCSGameRules::InitDefaultAIRelationships(void)&lt;br /&gt;
100	CCSGameRules::AIClassText(int)&lt;br /&gt;
101	CMultiplayRules::FlHealthChargerRechargeTime(void)&lt;br /&gt;
102	CMultiplayRules::FlHEVChargerRechargeTime(void)&lt;br /&gt;
103	CMultiplayRules::DeadPlayerWeapons(CBasePlayer *)&lt;br /&gt;
104	CMultiplayRules::DeadPlayerAmmo(CBasePlayer *)&lt;br /&gt;
105	CTeamplayRules::GetTeamID(CBaseEntity *)&lt;br /&gt;
106	CTeamplayRules::PlayerRelationship(CBaseEntity *,CBaseEntity *)&lt;br /&gt;
107	CTeamplayRules::PlayerCanHearChat(CBasePlayer *,CBasePlayer *)&lt;br /&gt;
108	CGameRules::CheckChatText(CBasePlayer *,char *)&lt;br /&gt;
109	CTeamplayRules::GetTeamIndex(char  const*)&lt;br /&gt;
110	CTeamplayRules::GetIndexedTeamName(int)&lt;br /&gt;
111	CTeamplayRules::IsValidTeam(char  const*)&lt;br /&gt;
112	CTeamplayRules::ChangePlayerTeam(CBasePlayer *,char  const*,bool,bool)&lt;br /&gt;
113	CCSGameRules::SetDefaultPlayerTeam(CBasePlayer *)&lt;br /&gt;
114	CCSGameRules::UpdateClientData(CBasePlayer *)&lt;br /&gt;
115	CCSGameRules::PlayTextureSounds(void)&lt;br /&gt;
116	CMultiplayRules::PlayFootstepSounds(CBasePlayer *)&lt;br /&gt;
117	CCSGameRules::FAllowNPCs(void)&lt;br /&gt;
118	CMultiplayRules::EndMultiplayerGame(void)&lt;br /&gt;
119	CGameRules::WeaponTraceEntity(CBaseEntity *,Vector  const&amp;amp;,Vector  const&amp;amp;,unsigned int,CGameTrace *)&lt;br /&gt;
120	CCSGameRules::CreateStandardEntities(void)&lt;br /&gt;
121	CCSGameRules::GetChatPrefix(bool,CBasePlayer *)&lt;br /&gt;
122	CCSGameRules::GetChatLocation(bool,CBasePlayer *)&lt;br /&gt;
123	CCSGameRules::GetChatFormat(bool,CBasePlayer *)&lt;br /&gt;
124	CGameRules::ShouldBurningPropsEmitLight(void)&lt;br /&gt;
125	CGameRules::CanEntityBeUsePushed(CBaseEntity *)&lt;br /&gt;
126	CCSGameRules::CreateCustomNetworkStringTables(void)&lt;br /&gt;
127	CGameRules::MarkAchievement(IRecipientFilter &amp;amp;,char  const*)&lt;br /&gt;
128	CMultiplayRules::ResetMapCycleTimeStamp(void)&lt;br /&gt;
129	CGameRules::OnNavMeshLoad(void)&lt;br /&gt;
130	CGameRules::TacticalMissionManagerFactory(void)&lt;br /&gt;
131	CGameRules::ProcessVerboseLogOutput(void)&lt;br /&gt;
132	CGameRules::GetGameTypeName(void)&lt;br /&gt;
133	CGameRules::GetGameType(void)&lt;br /&gt;
134	CGameRules::ShouldDrawHeadLabels(void)&lt;br /&gt;
135	CMultiplayRules::GetDeathScorer(CBaseEntity *,CBaseEntity *,CBaseEntity *)&lt;br /&gt;
136	CMultiplayRules::VoiceCommand(CBaseMultiplayerPlayer *,int,int)&lt;br /&gt;
137	CMultiplayRules::HandleTimeLimitChange(void)&lt;br /&gt;
138	CMultiplayRules::InitCustomResponseRulesDicts(void)&lt;br /&gt;
139	CMultiplayRules::ShutdownCustomResponseRulesDicts(void)&lt;br /&gt;
140	CMultiplayRules::UseSuicidePenalty(void)&lt;br /&gt;
141	CMultiplayRules::GetNextLevelName(char *,int,bool)&lt;br /&gt;
142	CMultiplayRules::ChangeLevel(void)&lt;br /&gt;
143	CCSGameRules::GoToIntermission(void)&lt;br /&gt;
144	CTeamplayRules::GetCaptureValueForPlayer(CBasePlayer *)&lt;br /&gt;
145	CTeamplayRules::TeamMayCapturePoint(int,int)&lt;br /&gt;
146	CTeamplayRules::PlayerMayCapturePoint(CBasePlayer *,int,char *,int)&lt;br /&gt;
147	CTeamplayRules::PlayerMayBlockPoint(CBasePlayer *,int,char *,int)&lt;br /&gt;
148	CTeamplayRules::PointsMayBeCaptured(void)&lt;br /&gt;
149	CTeamplayRules::SetLastCapPointChanged(int)&lt;br /&gt;
150	CTeamplayRules::TimerMayExpire(void)&lt;br /&gt;
151	CTeamplayRules::SetWinningTeam(int,int,bool,bool,bool)&lt;br /&gt;
152	CTeamplayRules::SetStalemate(int,bool,bool)&lt;br /&gt;
153	CTeamplayRules::SetSwitchTeams(bool)&lt;br /&gt;
154	CTeamplayRules::ShouldSwitchTeams(void)&lt;br /&gt;
155	CTeamplayRules::HandleSwitchTeams(void)&lt;br /&gt;
156	CTeamplayRules::SetScrambleTeams(bool)&lt;br /&gt;
157	CTeamplayRules::ShouldScrambleTeams(void)&lt;br /&gt;
158	CTeamplayRules::HandleScrambleTeams(void)&lt;br /&gt;
159	CTeamplayRules::PointsMayAlwaysBeBlocked(void)&lt;br /&gt;
160	CCSGameRules::SpawningLatePlayer(CCSPlayer *)&lt;br /&gt;
161	CCSGameRules::SetAllowWeaponSwitch(bool)&lt;br /&gt;
162	CCSGameRules::GetAllowWeaponSwitch(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Subversion_Tutorial&amp;diff=7758</id>
		<title>Subversion Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Subversion_Tutorial&amp;diff=7758"/>
		<updated>2010-06-27T05:54:38Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Subversion (SVN) is a version control system designed specifically to be a modern replacement for [[CVS_Tutorial|CVS]]. This article briefly overviews the essentials of SVN, as well as using SVN on Linux and on Windows (through TortoiseSVN).&lt;br /&gt;
&lt;br /&gt;
{{Note| AlliedModders no longer uses SVN as the main method of distrobution. Please check out the [[Mercurial_Tutorial]]}}&lt;br /&gt;
&lt;br /&gt;
=Essentials=&lt;br /&gt;
==Introduction==&lt;br /&gt;
The best analogy for SVN's model is a library.  The library maintains the &amp;quot;master&amp;quot; copies of all the source code.  To obtain the source code, you &amp;quot;check out&amp;quot; a copy.  You can then make revisions to your copy.  When you're ready to return your changes to the master copy, it is called a &amp;quot;commit.&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
SVN source code repositories can separated into &amp;quot;modules,&amp;quot; which are simply sub-directories of the repository.  Each module can have directories or files (both text and binary).&lt;br /&gt;
&lt;br /&gt;
Access to SVN repositories is generally based on three methods:&lt;br /&gt;
* Local filesystem or network filesystem, accessed by client directly (via file://)&lt;br /&gt;
* WebDAV/DeltaV (over HTTP or HTTPS) using the mod_dav_svn module for Apache 2&lt;br /&gt;
* Custom &amp;quot;svn&amp;quot; protocol using svnserve, either plain text (svn://) or over SSH (svn+ssh://)&lt;br /&gt;
&lt;br /&gt;
==Basic Commands==&lt;br /&gt;
&lt;br /&gt;
These are the four essential SVN operations:&lt;br /&gt;
*&amp;lt;tt&amp;gt;co&amp;lt;/tt&amp;gt; (or &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt;) - Retrieves the current copy of the source tree.&lt;br /&gt;
*&amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; - Updates your local copy to sync any changes from the master.&lt;br /&gt;
*&amp;lt;tt&amp;gt;add&amp;lt;/tt&amp;gt; - Adds a file or directory to the local source tree.&lt;br /&gt;
*&amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; - Commits any local changes to the master (including adds).&lt;br /&gt;
&lt;br /&gt;
===Checkouts===&lt;br /&gt;
Normally, you only need to checkout code once.  After this, you can simply update your code to acquire any changes.  A clean checkout often helps remove stale files.&lt;br /&gt;
&lt;br /&gt;
===Updates===&lt;br /&gt;
In practice, you should always update your local source copy before editing.  This is to prevent merge problems, where two developers edit the same file and try to commit it at the same time.&lt;br /&gt;
&lt;br /&gt;
Some people prefer to keep two copies of the source locally.  The first copy is used only for committing changes and updating, and the second copy is only used for editing.  This essentially keeps a local master and a local volatile copy.&lt;br /&gt;
&lt;br /&gt;
===Adds/Removals===&lt;br /&gt;
SVN adds are also complemented by removals (the command is &amp;lt;tt&amp;gt;remove&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;delete&amp;lt;/tt&amp;gt;).  Both are considered changes to the source tree, and thus, they do not take effect until committed.&lt;br /&gt;
&lt;br /&gt;
===Commits===&lt;br /&gt;
SVN commits are always atomic and transactional.  That means if you commit a set of changes while your copy is older than the master, or otherwise unsynced, that file cannot be committed (and you may have to manually merge changes in).  Furthermore, when committing a set of files, if one fails, the entire commit should fail.&lt;br /&gt;
&lt;br /&gt;
When commits do fail, it is important to review why.  Otherwise, you could risk reverting changes from another author.&lt;br /&gt;
&lt;br /&gt;
==Differences From CVS==&lt;br /&gt;
While SVN is fairly similar to [[CVS_Tutorial|CVS]], there are some important differences that should be noted.&lt;br /&gt;
&lt;br /&gt;
===Revisions===&lt;br /&gt;
In CVS, revisions are on a per-file basis. In Subversion, the repository looks like a single filesystem. Thus, each commit results in an entirely new filesystem tree and each tree is given a revision number. When someone speaks of revision 25, they are referring to the way the SVN repository looked after the 25th commit. In short, revision numbers refer to a particular state of the repository.&lt;br /&gt;
&lt;br /&gt;
===Directories===&lt;br /&gt;
In CVS, directories are merely containers for other files or directories. But in SVN, directories are versioned in the same way files are. If a new commit only contains directory changes then a new revision number will be assigned to that commit. This means that the &amp;lt;tt&amp;gt;remove&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;delete&amp;lt;/tt&amp;gt; commands work on directories.&lt;br /&gt;
&lt;br /&gt;
===Branches and Tags===&lt;br /&gt;
SVN does not distinguish between filesystem space and “branch” space. Branches and tags are regular directories within the repository filesystem.&lt;br /&gt;
&lt;br /&gt;
In general, the root directory of a repository might contain three directories: &amp;lt;tt&amp;gt;trunk&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;tags&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;branches&amp;lt;/tt&amp;gt;. The trunk can be compared to a CVS repository's &amp;quot;head&amp;quot; or it could be considered as the main branch of a project. The tags and branches directories are self-explanatory.&lt;br /&gt;
&lt;br /&gt;
Creating a tag or branch simply involves using SVN's &amp;lt;tt&amp;gt;copy&amp;lt;/tt&amp;gt; command to copy the trunk or a specfic revision into the tags or branches directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=TortoiseSVN=&lt;br /&gt;
==Introduction==&lt;br /&gt;
TortoiseSVN is a Windows Explorer/Shell SVN integration tool.  Most users like it for its inherent simplicity and the quick ability to checkout source from within any Windows directory.&lt;br /&gt;
&lt;br /&gt;
TortoiseSVN can be downloaded from: http://tortoisesvn.sourceforge.net/downloads&lt;br /&gt;
&lt;br /&gt;
Once installed, you should either kill and restart all explorer.exe instances, or simply reboot. Once installed, read below.&lt;br /&gt;
&lt;br /&gt;
==Basic Usage==&lt;br /&gt;
To start, create an empty folder anywhere on your computer. Open it and right click somewhere inside. You should see a &amp;quot;SVN Checkout&amp;quot; option similar to below. Click it.&lt;br /&gt;
&lt;br /&gt;
[[Image:TortoiseSVN Checkout.png|thumb|250px|Empty TortoiseSVN Menu]]&lt;br /&gt;
&lt;br /&gt;
The dialog box will say &amp;quot;Checkout.&amp;quot;  This is where you enter the information about the SVN server.&lt;br /&gt;
*&amp;lt;tt&amp;gt;URL of repository:&amp;lt;/tt&amp;gt; - This is where you enter the server's path to the SVN repository. You must know this in advance.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Checkout directory:&amp;lt;/tt&amp;gt; - This is where the working copy of the repository will be stored. This is usually automatically filled.&lt;br /&gt;
&lt;br /&gt;
For example, SVN connections to alliedmods.net generally look like:&lt;br /&gt;
&lt;br /&gt;
[[Image:TortoiseSVN CheckoutSample.png]]&lt;br /&gt;
&lt;br /&gt;
If you have an account on the server, and you know you have SSH based access to the repository, then &amp;lt;tt&amp;gt;svn+ssh://&amp;lt;/tt&amp;gt; should be at the beginning of the URL, followed by your account user name and a &amp;lt;tt&amp;gt;@&amp;lt;/tt&amp;gt;. This is shown in the example image. However, if you wish to anonymously check out a repository or do not have an actual account on the server, then &amp;lt;tt&amp;gt;svn://&amp;lt;/tt&amp;gt; must be at the beginning, followed by the path to repository with no user name specified. For example, it might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn://alliedmods.net/svnroot/sourcemm/trunk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the repository you are checking out has the tag/branch/trunk directory structure, you should be certain to check out the trunk or a specific branch or tag. Otherwise you may end up downloading every tag and branch along with the trunk.&lt;br /&gt;
&lt;br /&gt;
Once all the files are downloaded, you will see them in the folder. You can then perform general SVN operations, such as committing, by right clicking in the empty spaces.&lt;br /&gt;
&lt;br /&gt;
To operate on a specific file, you can simply right click on the file. TortoiseSVN addd overlays to the file icons based on their status. A green checkmark means &amp;quot;unmodified locally,&amp;quot; a red exclamation point means &amp;quot;modified locally,&amp;quot; and an orange exclamation point means &amp;quot;merge conflict.&amp;quot; Files not in the repository do not have any overlay icons.&lt;br /&gt;
&lt;br /&gt;
To commit changes, simply right click and choose &amp;quot;Commit.&amp;quot; You can either commit all changes to the local scope or one single file. When you commit, you are allowed to attach a text comment to your revision. This is a good way to let people watching or reading the SVN repository to see an overview of your changes.&lt;br /&gt;
&lt;br /&gt;
[[Image:TortoiseSVN Menu.png]]&lt;br /&gt;
&lt;br /&gt;
==Adding/Removing Files and Directories==&lt;br /&gt;
Right click on the new file and then choose &amp;quot;Add&amp;quot;. Click OK on the dialog box. You will need to commit.&lt;br /&gt;
&lt;br /&gt;
[[Image:TortoiseSVN Adding.png]]&lt;br /&gt;
&lt;br /&gt;
To add a directory and all its files, right click on the directory and click &amp;quot;Add.&amp;quot;  You will get a dialog box similar to below.  It is important to uncheck files that might accidentally get merged in, such as password text files, binaries, et cetera.&lt;br /&gt;
&lt;br /&gt;
[[Image:TortoiseSVN AddFolder.png]]&lt;br /&gt;
&lt;br /&gt;
Likewise, to remove a file, simply right click it and use &amp;quot;Remove.&amp;quot; Directories are removable as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Linux/Command Line SVN=&lt;br /&gt;
==Introduction==&lt;br /&gt;
Command line SVN requires the SVN binary to be installed and ideally accessible from your PATH environment variable. &lt;br /&gt;
&lt;br /&gt;
Before you begin, you should also know whether or not the repository you are trying to checkout will be accessed via SSH or not. If you have an account on the server containing the repository, then it is likely you will be using SSH via the &amp;lt;tt&amp;gt;svn+ssh://&amp;lt;/tt&amp;gt; protocol when you enter the URL to the repository. If you wish to anonymously checkout a repository or do not have an account on the server then you will be using the &amp;lt;tt&amp;gt;svn://&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Basic Usage==&lt;br /&gt;
The checkout example from TortoiseSVN would look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co svn+ssh://damagedsoul@alliedmods.net/svnroot/sourcemm/trunk sourcemm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a new directory called &amp;quot;source&amp;quot; which will contain all the downloaded files from the master's trunk.&lt;br /&gt;
&lt;br /&gt;
To then update this copy, you simply need to type &amp;quot;svn update&amp;quot; while inside the directory.&lt;br /&gt;
&lt;br /&gt;
Similarly, &amp;quot;svn commit&amp;quot; will attempt to commit the files in the current directory.  It will bring up an editor (defined in the &amp;lt;tt&amp;gt;SVN_EDITOR&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;EDITOR&amp;lt;/tt&amp;gt; environment variables) so you can type your comment -- simply save and exit the editor once done.&lt;br /&gt;
&lt;br /&gt;
You can &amp;quot;svn add &amp;lt;file&amp;gt;&amp;quot; or &amp;quot;svn remove &amp;lt;file&amp;gt;&amp;quot; as well.&lt;br /&gt;
&lt;br /&gt;
==Creating Repositories/Modules==&lt;br /&gt;
If your SVN is local, you can create a new repository like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;svnadmin create mysvn&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will create a directory in the current location named &amp;lt;tt&amp;gt;mysvn&amp;lt;/tt&amp;gt; which will contain the new repository.&lt;br /&gt;
&lt;br /&gt;
To create a new module, create an empty directory somewhere. Then use &amp;quot;svn import&amp;quot; as shown. Note that if you use this with a directory that contains files, the files will be added as the initial import. This is a good idea if you already have the source code structure in place.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir trunk&lt;br /&gt;
svn import -m &amp;quot;Initial import&amp;quot; trunk file:///home/users/damagedsoul/mysvn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The URL to the file can also use &amp;lt;tt&amp;gt;svn+ssh://&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;svn://&amp;lt;/tt&amp;gt; if you so desire.&lt;br /&gt;
&lt;br /&gt;
=SSH Authentication=&lt;br /&gt;
If you are accessing your repository via SSH using the &amp;lt;tt&amp;gt;svn+ssh&amp;lt;/tt&amp;gt; protocol, you may have noticed that you must enter your password more than once on certain occasions. When checking out a repository, you may have to enter your password three or four times. Operations such as adding, removing, or committing usually only ask for your password once. But other commands may also require it more than once.&lt;br /&gt;
&lt;br /&gt;
However, there is way around this through the use of a private-public key pair. See [[SSH_Keys|SSH Keys]] for more details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=External Links=&lt;br /&gt;
*[http://subversion.tigris.org/ Subversion Home Page]&lt;br /&gt;
*[http://tortoisesvn.tigris.org/ TortoiseSVN Home Page]&lt;br /&gt;
*[http://svnbook.red-bean.com/ Version Control with Subversion] - free online book about Subversion with lots of helpful information&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Subversion_%28software%29 Subversion Wikipedia article]&lt;br /&gt;
&lt;br /&gt;
[[Category:Version Control Systems]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Template:Note&amp;diff=7757</id>
		<title>Template:Note</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Template:Note&amp;diff=7757"/>
		<updated>2010-06-27T05:52:46Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;margin:0.4em 1em 0.5em;&amp;quot;&amp;gt;&amp;lt;strong style=&amp;quot;display:table-cell;text-align:right;white-space:nowrap;padding-right:0.3em;&amp;quot;&amp;gt;[[File:Note.png|link=|alt=]] Note:&amp;lt;/strong&amp;gt;&amp;lt;span style=&amp;quot;display:table-cell;&amp;quot;&amp;gt;{{{1}}}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Template:Note&amp;diff=7756</id>
		<title>Template:Note</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Template:Note&amp;diff=7756"/>
		<updated>2010-06-27T05:49:10Z</updated>

		<summary type="html">&lt;p&gt;DaFox: Created page with '&amp;lt;div style=&amp;quot;margin:0.4em 1em 0.5em;&amp;quot;&amp;gt;&amp;lt;strong style=&amp;quot;display:table-cell;text-align:right;white-space:nowrap;padding-right:0.3em;&amp;quot;&amp;gt;alt= Note:&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;margin:0.4em 1em 0.5em;&amp;quot;&amp;gt;&amp;lt;strong style=&amp;quot;display:table-cell;text-align:right;white-space:nowrap;padding-right:0.3em;&amp;quot;&amp;gt;[[File:Note.png|link=|alt=]] Note:&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=File:Note.png&amp;diff=7755</id>
		<title>File:Note.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=File:Note.png&amp;diff=7755"/>
		<updated>2010-06-27T05:48:22Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Building_SourceMod&amp;diff=7753</id>
		<title>Building SourceMod</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Building_SourceMod&amp;diff=7753"/>
		<updated>2010-06-27T05:37:28Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Getting the Files */ Changed SVN to hg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Compiling SourceMod is not difficult, but requires a number of prerequisites.  This article details the requirements and steps to being able to build working SourceMod binaries.  These directions may change any time and may be updated as SourceMod's build process improves.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' You cannot use MingW to build working SourceMod Windows binaries.  It is not ABI compatible with Visual C++ which is what Valve uses for the Source engine.  You can only use GCC to build Linux binaries.&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
*Microsoft Visual C++ 2008 (Express or higher) is supported and used for official builds.&lt;br /&gt;
*Microsoft Visual C++ 2005 (Express or higher) is unsupported.&lt;br /&gt;
*Microsoft Visual C++ 2003 7.1 or higher may not build out-of-box, but can build compatible binaries.&lt;br /&gt;
*Microsoft Visual C++ 2003 7.0 or lower '''cannot''' be used.&lt;br /&gt;
&lt;br /&gt;
If you are installing Visual C++ 2005 Express, it may not come with Microsoft's Platform SDK installed.  If this is the case, you must manually install the Platform SDK.  You can find directions on how to do this and test your setup [http://www.microsoft.com/express/2005/platformsdk/default.aspx here].  Visual C++ 2008 &amp;quot;streamlines&amp;quot; the Platform SDK installation according to Microsoft.&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
For Linux, SourceMod requires the GNU C/C++ Compiler (from GCC):&lt;br /&gt;
*Version 4.1 is used for official binaries and is guaranteed to build.&lt;br /&gt;
*Versions 3.4 through 4.2 are guaranteed to be binary (ABI) compatible, although SourceMod may not necessarily build out-of-box against them.&lt;br /&gt;
*Any GCC version below 3.4 '''cannot''' be used.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
SourceMod is strictly a 32-bit x86 (IA32) product.  You should not try to force a compiler to build 64-bit binaries of SourceMod.&lt;br /&gt;
&lt;br /&gt;
Your CPU and its compiler must support SSE in order to build SourceMod.  To build without needing or having a dependency against SSE, please see the [[Compiling SourceMod#Removing SSE|Removing SSE]] section near the bottom.&lt;br /&gt;
&lt;br /&gt;
Approximate compiling times for SourceMod's Core are roughly:&lt;br /&gt;
*Windows, Core 2 Quad E6600: 30 seconds (using /MP)&lt;br /&gt;
*Windows, Core 2 Duo E6600: 75 seconds&lt;br /&gt;
*Windows, Centrino 1.8GHz: 5 minutes&lt;br /&gt;
*Linux, Core 2 Duo E6600: &amp;lt;= 1 minute&lt;br /&gt;
*Linux, P3 Dual 500MHz: &amp;gt;= 7 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
This section describes how to set up your computer for compiling.&lt;br /&gt;
&lt;br /&gt;
==Getting the Files==&lt;br /&gt;
This section describes which files you must obtain and how to obtain them.  Do not worry about where to place them yet -- that will be discussed on a per-platform basis.  You can download the files anywhere you'd like.&lt;br /&gt;
&lt;br /&gt;
The recommended method of getting the required files is via [http://mercurial.selenic.com/ Mercurial].  We have our own [[Mercurial_Tutorial]] if you prefer that method.  Although you do not need both HL2SDK versions (unless you wish to build binaries against both), you do need both Metamod:Source versions.  Extensions don't necessarily require Metamod:Source (or even the Source Engine) but its template library is used extensively in SourceMod.&lt;br /&gt;
&lt;br /&gt;
*SourceMod. For full download options, see the [http://www.sourcemod.net/downloads.php SourceMod Downloads] page.  Obviously, you must download the source code and not a binary package.&lt;br /&gt;
*HL2SDK Original.  As of this writing (Sep 2008) this engine is used for most Source games, except for TF2, GMod10, and DoD:S. Repository: [http://hg.alliedmods.net/hl2sdk hl2sdk]&lt;br /&gt;
*HL2SDK OrangeBox.  As of this writing (Sep 2008) this engine is used TF2, GMod10, and DoD:S. Repository: [http://hg.alliedmods.net/hl2sdk-ob hl2sdk-ob]&lt;br /&gt;
*HL2SDK Left4Dead. This engine is used for L4D. Repository: [http://hg.alliedmods.net/hl2sdk-l4d hl2sdk-l4d]&lt;br /&gt;
*Metamod:Source Source Code. Visit [http://www.metamodsource.net/?go=downloads Metamod:Source downloads]. Right now SourceMod builds against Metamod:Source 1.7.&lt;br /&gt;
&lt;br /&gt;
'''Note''' that when we refer to &amp;quot;Metamod:Source&amp;quot; in this article, we are referring to its source code tree, not a binary package.&lt;br /&gt;
&lt;br /&gt;
If you intend to compile the MySQL extension, you must also download MySQL 5.0.  You can use any version.  For simplicity, here are the versions we use:&lt;br /&gt;
*Linux: We use the 5.0.45 binary from the &amp;quot;[http://dev.mysql.com/downloads/mysql/5.0.html#linux Linux (non RPM packages)]&amp;quot; for &amp;quot;Linux (x86).&amp;quot;  You can also use [http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.45-linux-i686-glibc23.tar.gz/from/pick this direct link] (may not be valid in the future).&lt;br /&gt;
*Windows: Due to a MySQL build change we use 5.0.24a which is an older download.  The file name was &amp;quot;mysql-5.0.24a-win32.zip,&amp;quot; if you can't find it you can use this [http://www.bailopan.net/mysql-5.0.24a-win32.zip direct link] (may not be valid in the future).&lt;br /&gt;
&lt;br /&gt;
You can remove all folders from the distribution except for the &amp;quot;lib&amp;quot; and &amp;quot;include&amp;quot; folders which comprise the MySQL SDK.&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
As of this writing, SourceMod's Makefiles are hardcoded to use a binary called &amp;quot;gcc-4.1&amp;quot;  You can override this, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CPP=gcc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, you can also just create a symlink:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you must use &amp;lt;tt&amp;gt;gcc&amp;lt;/tt&amp;gt; and not &amp;lt;tt&amp;gt;g++&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
SourceMod's Makefiles have strict directory organizational rules.  You must have a top-level folder.  For this document, we'll assume it is called &amp;lt;tt&amp;gt;sourcemod&amp;lt;/tt&amp;gt;, though it can be named anything.  The layout of &amp;lt;tt&amp;gt;sourcemod&amp;lt;/tt&amp;gt; must be:&lt;br /&gt;
*&amp;lt;tt&amp;gt;sourcemod&amp;lt;/tt&amp;gt;/&lt;br /&gt;
**&amp;lt;tt&amp;gt;hl2sdk&amp;lt;/tt&amp;gt; - symlink or folder containing the HL2SDK&lt;br /&gt;
**&amp;lt;tt&amp;gt;hl2sdk-ob&amp;lt;/tt&amp;gt; - symlink or folder containing the HL2SDK for Orange Box/TF&lt;br /&gt;
**&amp;lt;tt&amp;gt;mmsource-1.7&amp;lt;/tt&amp;gt; - symlink or folder containing any Metamod:Source version 1.7 or higher.&lt;br /&gt;
**&amp;lt;tt&amp;gt;sourcemod-central&amp;lt;/tt&amp;gt; - folder containing SourceMod's source code tree.  This can be named anything, as long as it's a valid SourceMod tree (like [http://hg.alliedmods.net/sourcemod-central sourcemod-central]).  You can also use [http://hg.alliedmods.net/sourcemod-1.1 sourcemod-1.1].&lt;br /&gt;
**&amp;lt;tt&amp;gt;mysql-5.0&amp;lt;/tt&amp;gt; - symlink or folder containing a MySQL 5.0 distribution&lt;br /&gt;
&lt;br /&gt;
If you are using a 64-bit version of Linux, you may need to install extra packages to be able to compile SourceMod.  On Debian-based distros, these are typically:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#prerequisites&lt;br /&gt;
#apt-get install g++-4.1 gcc-4.1 make subversion&lt;br /&gt;
#apt-get instal libz libz-dev&lt;br /&gt;
#only needed if you want to use the build tool&lt;br /&gt;
#apt-get install mono mono-devel&lt;br /&gt;
#32-bit support&lt;br /&gt;
apt-get install ia32-libs&lt;br /&gt;
apt-get install lib32z1 lib32z1-dev&lt;br /&gt;
apt-get install libc6-dev-i386 libc6-i386&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
On Windows we don't require a particular directory layout.  Instead, environment variables are used.  The directions below apply to Windows XP, and are assumed to be similar for other versions of Windows.&lt;br /&gt;
*Open the Control Panel (for example, via Start -&amp;gt; Settings).&lt;br /&gt;
*Open the System control.  If you don't see it, you may need to switch to &amp;quot;Classic view&amp;quot; (either via the left-hand pane or by going to Tools -&amp;gt; Folder Options).&lt;br /&gt;
*Click the Advanced tab.&lt;br /&gt;
*Click the Environment Variables button.&lt;br /&gt;
&lt;br /&gt;
You can add your environment variables to either your User settings or your System settings.  Create a new variable for each item in the list below.  The item names are in &amp;lt;tt&amp;gt;fixed-width font&amp;lt;/tt&amp;gt; and their value descriptions follow.&lt;br /&gt;
*&amp;lt;tt&amp;gt;MMSOURCE17&amp;lt;/tt&amp;gt; - Path to Metamod:Source 1.7+&lt;br /&gt;
*&amp;lt;tt&amp;gt;MMSOURCE18&amp;lt;/tt&amp;gt; - Path to Metamod:Source 1.8+&lt;br /&gt;
*&amp;lt;tt&amp;gt;HL2SDK&amp;lt;/tt&amp;gt; - Path to HL2SDK Ep1/Original&lt;br /&gt;
*&amp;lt;tt&amp;gt;HL2SDKOB&amp;lt;/tt&amp;gt; - Path to HL2SDK Ep2/OrangeBox for mods&lt;br /&gt;
*&amp;lt;tt&amp;gt;HL2SDKOBVALVE&amp;lt;/tt&amp;gt; - Path to HL2SDK Ep2/OrangeBox for Valve games (TF2 and DoD:S)&lt;br /&gt;
*&amp;lt;tt&amp;gt;HL2SDKL4D&amp;lt;/tt&amp;gt; - Path to HL2SDK L4D1&lt;br /&gt;
*&amp;lt;tt&amp;gt;HL2SDKL4D2&amp;lt;/tt&amp;gt; - Path to HL2SDK L4D2&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
SourceMod has two types of binaries: those with an engine/MM:S dependence, and those without (&amp;quot;normal&amp;quot; binaries).  Normal binaries have two modes:&lt;br /&gt;
*&amp;lt;tt&amp;gt;Release&amp;lt;/tt&amp;gt; - Optimized binary for release.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Debug&amp;lt;/tt&amp;gt; - Unoptimized binary with debugging checks.&lt;br /&gt;
&lt;br /&gt;
Engine/MM:S dependent binaries have three build modes, each paired with either Release or Debug, meaning there are six build options total.  They are:&lt;br /&gt;
*&amp;lt;tt&amp;gt;Original&amp;lt;/tt&amp;gt; - Building against MM:S 1.4 API with HL2SDK&lt;br /&gt;
*&amp;lt;tt&amp;gt;Episode2&amp;lt;/tt&amp;gt; - Building against MM:S 1.6 API with HL2SDK-OB or higher&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
For both Normal and Engine/MM:S dependent binaries, the object files and the final binary are placed in a folder called &amp;lt;tt&amp;gt;Release&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;Debug&amp;lt;/tt&amp;gt; (in the same level as the Makefile) depending on which building mechanism you chose.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Our Makefiles are not set up to detect changes in header files.  If you change a header file, you must clean your build.&lt;br /&gt;
&lt;br /&gt;
===Normal Binaries===&lt;br /&gt;
For normal binaries, you can build simply with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can clean stale object files with:&lt;br /&gt;
&amp;lt;pre&amp;gt;make clean&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or build debug builds with:&lt;br /&gt;
&amp;lt;pre&amp;gt;make DEBUG=true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dependent Binaries===&lt;br /&gt;
Binaries that have an Engine or MM:S dependency require one extra parameter, &amp;lt;tt&amp;gt;ENGINE&amp;lt;/tt&amp;gt;.  It must be either &amp;lt;tt&amp;gt;orangebox&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;original&amp;lt;/tt&amp;gt;.  For example, to build a TF-compatible binary in debug mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make ENGINE=orangebox DEBUG=true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dependent binaries are dropped into one of the following folders:&lt;br /&gt;
*Debug.original&lt;br /&gt;
*Debug.orangebox&lt;br /&gt;
*Release.original&lt;br /&gt;
*Release.orangebox&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Windows project files end with &amp;lt;tt&amp;gt;.vcproj&amp;lt;/tt&amp;gt; and are found in an &amp;lt;tt&amp;gt;msvc8&amp;lt;/tt&amp;gt; folder that resides inside each binary's main source folder.  For example, Core is located in &amp;lt;tt&amp;gt;core/msvc8/sourcemod_mm.vcproj&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Once the file is opened, you can select which build to use by going to Build -&amp;gt; Configuration Manager.  Normal binaries have simply &amp;quot;Debug&amp;quot; and &amp;quot;Release.&amp;quot;  Dependent binaries have the following builds:&lt;br /&gt;
*Debug - Old Metamod&lt;br /&gt;
*Debug - Episode 2 &lt;br /&gt;
*Release - Old Metamod&lt;br /&gt;
*Release - Episode 2 &lt;br /&gt;
&lt;br /&gt;
'''Note''' that dependent binaries will have plain &amp;quot;Debug&amp;quot; and &amp;quot;Release&amp;quot; builds.  These should not be used as they are not configured.&lt;br /&gt;
&lt;br /&gt;
Once you have selected a configuration, you can compile by going to Build -&amp;gt; Build Solution.  The binaries and object files will be written to a folder inside &amp;lt;tt&amp;gt;msvc8&amp;lt;/tt&amp;gt; named after the full configuration name.  For example, using &amp;quot;Debug - Old Metamod&amp;quot; with the &amp;quot;sdktools&amp;quot; extension will result in the binary: &amp;lt;tt&amp;gt;extensions/sdktools/msvc8/Debug - Old Metamod/sdktools.ext.dll&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Visual Studio detects changes to header files intelligently.  It is usually not necessary to rebuild a solution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Binary Organization=&lt;br /&gt;
Although SourceMod has a somewhat unified building mechanism, each of the binaries has a different purpose.  They can be separated into the following classes:&lt;br /&gt;
&lt;br /&gt;
*Core-Related: Binaries which are required or loaded intrinsically by Core.&lt;br /&gt;
*Extensions: Binaries which are loaded via the extension mechanism.&lt;br /&gt;
*External: Binaries which are standalone or unrelated to SourceMod's live operation (for example, the compiler).&lt;br /&gt;
&lt;br /&gt;
This article is only concerned with the first two types.  &lt;br /&gt;
&lt;br /&gt;
==Core-Related Binaries==&lt;br /&gt;
Binaries related to Core are spread throughout the source code tree.  They are always placed in &amp;lt;tt&amp;gt;sourcemod/bin&amp;lt;/tt&amp;gt; for packaging.  The projects files related to Core are:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;loader&amp;lt;/tt&amp;gt; - This is a very small wrapper binary responsible for detecting the MM:S version and game engine, and deciding which SourceMod version to load.  The output binary is &amp;lt;tt&amp;gt;sourcemod_mm_i486.so&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sourcemod_mm.dll&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;core&amp;lt;/tt&amp;gt; - This is Core itself, and is a dependent binary.  It has three outputs:&lt;br /&gt;
**Original: &amp;lt;tt&amp;gt;sourcemod.1.ep1.so&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;sourcemod.1.ep1.dll&amp;lt;/tt&amp;gt;&lt;br /&gt;
**Episode 1: &amp;lt;tt&amp;gt;sourcemod.1.ep1.so&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;sourcemod.2.ep1.dll&amp;lt;/tt&amp;gt; (unsupported, not packaged)&lt;br /&gt;
**Episode 2: &amp;lt;tt&amp;gt;sourcemod.1.ep1.so&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;sourcemod.2.ep2.dll&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;sourcepawn/jit/x86&amp;lt;/tt&amp;gt; - This is the SourcePawn JIT for generating IA32/x86 instructions from &amp;lt;tt&amp;gt;.smx&amp;lt;/tt&amp;gt; files.  Currently the source code for this is not made available.  It is built as &amp;lt;tt&amp;gt;sourcepawn.jit.x86.so&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;sourcepawn.jit.x86.dll&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It is technically not necessary to use the loader.  It is provided as a convenience so users do not have to perform extra steps while installing SourceMod.  However, it is highly recommend that you do use it in order to maintain similarity with the default SourceMod package.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
Extensions are found in the &amp;lt;tt&amp;gt;extensions&amp;lt;/tt&amp;gt; folder of the source tree.  SDKTools, Cstrike, and the upcoming TF extension are engine/MM:S dependent (and the rest are generally not).&lt;br /&gt;
&lt;br /&gt;
Extensions always are named &amp;lt;tt&amp;gt;name.ext.so&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;name.ext.dll&amp;lt;/tt&amp;gt; where &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; is a unique identifier.  This is true even of dependent binaries.  &lt;br /&gt;
&lt;br /&gt;
When loading extensions, SourceMod looks in two separate folders.  First, it checks the ''dependent extension folder'', which is &amp;lt;tt&amp;gt;extensions/auto.x.y&amp;lt;/tt&amp;gt; where &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; is the MM:S version (1 for 1.4, 2 for 1.6) and &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt; is the Engine version (1 for Original/Ep1, 2 for Ep2/OrangeBox).  If no matching extension is found there, it looks in &amp;lt;tt&amp;gt;extensions&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example, the SDKTools binary on Counter-Strike would be loaded from &amp;lt;tt&amp;gt;extensions/auto.1.ep1&amp;lt;/tt&amp;gt;, but the GeoIP binary (which is not dependent) would be loaded from &amp;lt;tt&amp;gt;extensions&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Removing SSE=&lt;br /&gt;
SourceMod binaries are built against SSE by default.  SSE is an important set of optimizations, that, according to Valve's hardware survey, are supported on 99.6% percent of respondents' computers.  If you are in this 0.4% which does not have SSE support, you should consider buying a newer processor.  Only early Pentium 3-grade processors did not have SSE support (for example, the very early Durons), and it is likely your Source server will not perform adequately to support more than few players.&lt;br /&gt;
&lt;br /&gt;
Nonetheless, SourceMod's binaries can all be recompiled to remove its SSE dependence.&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
Edit the Makefile of the binary you are trying to compile.  Remove all instances of these flags.  They can simply be erased, there is no need to replace them with anything.&lt;br /&gt;
*&amp;lt;tt&amp;gt;-msse&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-mfpmath=sse&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to clean the build after changing the Makefile.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Load the project file into Visual Studio.  Go to Project -&amp;gt; Properties.  Expand &amp;quot;Configuration Properties,&amp;quot; and then &amp;quot;C/C++&amp;quot; under it.  Select &amp;quot;Code Generation.&amp;quot;  Change the setting &amp;quot;Enable Enhanced Instruction Set&amp;quot; to &amp;quot;Not Set.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' You must change this setting '''for each build configuration''' that you wish to use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;br /&gt;
[[Category:SourceMod Development]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Mercurial_Tutorial&amp;diff=7752</id>
		<title>Mercurial Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Mercurial_Tutorial&amp;diff=7752"/>
		<updated>2010-06-27T04:36:29Z</updated>

		<summary type="html">&lt;p&gt;DaFox: Removed link to SVN tutorial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mercurial (Hg) is a distributed version control system.  While it has similarities with Subverison, it is decentralized in nature.  &lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
==Introduction==&lt;br /&gt;
Mercurial keeps source code in '''repositories'''.  Changes to the source code are made inside the repository and are periodically '''committed'''.  When you commit changes, they are wrapped into a '''changeset'''.  A repository is the sum of all changesets committed over time.&lt;br /&gt;
&lt;br /&gt;
Unlike Subversion, Mercurial has no concept of a &amp;quot;master repository.&amp;quot;  Each user owns a complete local copy of the repository, and they can commit to it without needing any permissions.  Users can share changesets by '''pulling''' from other people's repositories, or '''pushing''' to other repositories (which may require special privileges).&lt;br /&gt;
&lt;br /&gt;
One very noticeable side effect is that when you commit changes in Mercurial, you do not need Internet access.  You only need Internet access if want to push changesets to a remote repository.  This means you can make as many commits as you want before pushing.&lt;br /&gt;
&lt;br /&gt;
'''Now for the contradiction''': You CAN have a master repository with Mercurial.  For some projects it is ideal to have a reference copy.  There is no difference between your copy and the master copy -- how it is managed is simply a matter of permissions and policy.  For example, AlliedModders has a &amp;quot;sourcemod-central&amp;quot; repository where developers push their changesets.  Only SourceMod developers can push to this copy, but anyone can copy it or pull its changes.&lt;br /&gt;
&lt;br /&gt;
==Basic Commands==&lt;br /&gt;
&lt;br /&gt;
These are a few essential Mercurial operations:&lt;br /&gt;
*&amp;lt;tt&amp;gt;clone&amp;lt;/tt&amp;gt; - Copies or downloads a repository.&lt;br /&gt;
*&amp;lt;tt&amp;gt;add&amp;lt;/tt&amp;gt; - Adds a file or directory to the local source tree.&lt;br /&gt;
*&amp;lt;tt&amp;gt;remove&amp;lt;/tt&amp;gt; - Removes a file or directory from the local source tree.&lt;br /&gt;
*&amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; - Commits any local changes to your local source tree.&lt;br /&gt;
*&amp;lt;tt&amp;gt;pull&amp;lt;/tt&amp;gt; - Retrieves changesets from another repository.&lt;br /&gt;
*&amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; - Updates source code with all pending pulled changes.&lt;br /&gt;
*&amp;lt;tt&amp;gt;push&amp;lt;/tt&amp;gt; - Pushes your changesets to a remote repository.&lt;br /&gt;
*&amp;lt;tt&amp;gt;merge&amp;lt;/tt&amp;gt; - Merges two repositories together (explained later).&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
&lt;br /&gt;
The author of this article uses command line Mercurial (on both Linux and Windows).  You can download both the command line tools at the [http://www.selenic.com/mercurial/wiki/ Mercurial Site], and there is a TortoiseHg graphical tool for those who would like to try it.&lt;br /&gt;
&lt;br /&gt;
==Getting a Repository==&lt;br /&gt;
To retrieve a repository, you must use the &amp;quot;clone&amp;quot; command.  You can clone a local or remote repository.  Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg clone http://hg.alliedmods.net/sourcemod-central sourcemod-central&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from any location, even locally.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hg clone sourcemod-central sourcemod-copy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also create a new repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir project&lt;br /&gt;
cd project&lt;br /&gt;
hg init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a blank repository and initialize it with Mercurial.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
Mercurial lets you configure default settings for all repositories and settings specific to one repository.  &lt;br /&gt;
&lt;br /&gt;
On Linux, the main configuration file is &amp;lt;tt&amp;gt;~/.hgrc&amp;lt;/tt&amp;gt;.  On Windows 2003/XP and prior, it is &amp;lt;tt&amp;gt;C:\Documents and Settings\&amp;amp;lt;account&amp;amp;gt;\Mercurial.ini&amp;lt;/tt&amp;gt;.  On Windows Vista, it is &amp;lt;tt&amp;gt;C:\Users\&amp;amp;lt;account&amp;amp;gt;\Mercurial.ini&amp;lt;/tt&amp;gt;.  If the file does not exist, you can create it.&lt;br /&gt;
&lt;br /&gt;
Per-repository configuration is done in &amp;lt;tt&amp;gt;&amp;amp;lt;repository&amp;amp;gt;\.hg\hgrc&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Identity===&lt;br /&gt;
Mercurial lets you configure an identity to associate with your changesets.  By default it uses the name of the account your computer is logged in as.  Many projects (AlliedModders included) use &amp;quot;Firstname Lastname &amp;lt;email&amp;gt;&amp;quot; instead.&lt;br /&gt;
&lt;br /&gt;
To set up your identity, open either your &amp;lt;tt&amp;gt;hgrc&amp;lt;/tt&amp;gt; file (either the main or local one).  Look for a &amp;quot;[ui]&amp;quot; section (or add a new one), and configure something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ui]&lt;br /&gt;
username = David Anderson &amp;lt;dvander@alliedmods.net&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Push and Pull Locations===&lt;br /&gt;
By default, all &amp;quot;pull&amp;quot; operations on a repository occur from the original location you cloned from.  You can change that location by opening up &amp;lt;tt&amp;gt;&amp;amp;lt;repository&amp;amp;gt;\.hg\hgrc&amp;lt;/tt&amp;gt; and looking at the &amp;quot;[paths]&amp;quot; section.  You will see a lines like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[paths]&lt;br /&gt;
default = http://hg.alliedmods.net/sourcemod-central&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are going to be pushing to one main repository fairly often, you may want to set up a default push.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[paths]&lt;br /&gt;
default = http://hg.alliedmods.net/sourcemod-central&lt;br /&gt;
default-push = ssh://dvander@alliedmods.net@hg.alliedmods.net/sourcemod-central&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note''': Mercurial uses double slashes to specify an absolute file-system path.  If you are using SSH with logical paths, you only need one slash.  For more information about this, visit the Mercurial documentation.  AlliedModders uses logical paths.&lt;br /&gt;
&lt;br /&gt;
==Changesets==&lt;br /&gt;
Unlike Subversion, Mercurial can't use version numbers to uniquely identify a changeset.  This is because sequential IDs may be duplicated across repositories.  Instead, Mercurial uses 160-bit changeset identifiers.  These are represented in hexadecimal (for example, &amp;lt;tt&amp;gt;fae5f33a1bb3&amp;lt;/tt&amp;gt;).  &lt;br /&gt;
&lt;br /&gt;
Mercurial also uses local revision numbers which are sequential IDs.  These are local to a repository and have no meaning in other repositories.  They are mainly provided for convenience and usability.  A full changeset in a local repository can be represented by &amp;quot;revision:changeset&amp;quot;.  For example, &amp;lt;tt&amp;gt;19108:fae5f33a1bb3&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The latest changeset is called &amp;lt;tt&amp;gt;tip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When using commands like &amp;quot;&amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt;,&amp;quot; it is useful to refer to changesets.  You can do this in one of a few ways:&lt;br /&gt;
*Using the &amp;lt;tt&amp;gt;tip&amp;lt;/tt&amp;gt; keyword.  This is the latest changeset.&lt;br /&gt;
*Using a revision number.&lt;br /&gt;
*Using any subset of the changeset string that uniquely identifies the changeset.  For example, &amp;lt;tt&amp;gt;fa&amp;lt;/tt&amp;gt; might not be unique and would not work.  But &amp;lt;tt&amp;gt;fa35&amp;lt;/tt&amp;gt; might work for &amp;lt;tt&amp;gt;fae5f33a1bb3&amp;lt;/tt&amp;gt;.  If it doesn't, you can pick a different substring.&lt;br /&gt;
*Using tags.  Mercurial lets you tag a changeset with a unique alias for convenience (&amp;lt;tt&amp;gt;hg tag&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
==Workflow==&lt;br /&gt;
Let's go through a typical session of developing with Mercurial.  If you are working against a project that has a centralized copy, you may want to make sure you're up to date first.  This means '''pulling''' its changes and then '''updating'''.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;hg pull&lt;br /&gt;
hg update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will grab the remote changes from the location you first cloned from.  Then it will apply the changes.  You can do this in one go with:&lt;br /&gt;
&amp;lt;pre&amp;gt;hg pull -u&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also pull from a different repository if you want:&lt;br /&gt;
&amp;lt;pre&amp;gt;hg pull -u http://some.other.site/sourcemod-central&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now let's say you make some changes.  You edit file A.cpp and you want to commit your change.  You can do this with:&lt;br /&gt;
&amp;lt;pre&amp;gt;hg commit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An editor will pop-up asking you to write a message describing your change.  This is required.&lt;br /&gt;
&lt;br /&gt;
Now you edit B.cpp and commit again.  You're done for the day, and you have two changesets sitting in your repository.  You want to push these upstream.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg push ssh://dvander@alliedmods.net@hg.alliedmods.net/sourcemod-central&lt;br /&gt;
searching for changes&lt;br /&gt;
adding changesets&lt;br /&gt;
adding manifests&lt;br /&gt;
adding file changes&lt;br /&gt;
added 2 changesets with 2 changes to 2 files&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if you have a &amp;lt;tt&amp;gt;default-push&amp;lt;/tt&amp;gt; configured:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg push&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is more than one person sharing and working on the code base, eventually you will need to deal with merges.  This is an extremely powerful (but also deceptively complex) aspect to Mercurial, and it is extremely important to read the next session.&lt;br /&gt;
&lt;br /&gt;
'''Note''': Since only the first line of a commit message is shown by the &amp;lt;tt&amp;gt;hg log&amp;lt;/tt&amp;gt; command by default, it is highly recommended that the first line of your message be able to stand alone.  For example, you might have a short summary of the commit on the first line that says &amp;quot;Added functions for creating dynamic hooks on virtual functions.&amp;quot; Further lines could give more details on the changes involved such as a list of all the functions that were added.&lt;br /&gt;
&lt;br /&gt;
=Merging and You=&lt;br /&gt;
==Introduction==&lt;br /&gt;
Imagine this scenario:&lt;br /&gt;
*Alice and Bob both have a copy of the source code at revision 'A'.&lt;br /&gt;
*Alice commits and pushes a change.  The main repository is now at changeset 'B'.&lt;br /&gt;
*Bob commits a change and is at changeset 'C'.&lt;br /&gt;
&lt;br /&gt;
Now Bob wants to pull.  He runs &amp;lt;tt&amp;gt;hg pull&amp;lt;/tt&amp;gt; and gets:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
searching for changes&lt;br /&gt;
adding changesets&lt;br /&gt;
adding manifests&lt;br /&gt;
adding file changes&lt;br /&gt;
added 1 changesets with 1 changes to 1 files (+1 heads)&lt;br /&gt;
(run 'hg heads' to see heads, 'hg merge' to merge)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What happened here?  Let's visualize it.  When Alice commits, her repository has gone from A to B like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Hg_alice_1.png]]&lt;br /&gt;
&lt;br /&gt;
When Bob commits, his repository goes from A to C like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Hg_bob_1.png]]&lt;br /&gt;
&lt;br /&gt;
After Bob pulls from Alice, his repository has '''multiple heads''' of development.  He's got two forks of the same codebase in his repository.  You can visualize it like this.  The blue arrow is Bob's changes, and the red arrow is Alice's changes.  They diverge from A.&lt;br /&gt;
&lt;br /&gt;
[[Image:Hg_bob_2.png]]&lt;br /&gt;
&lt;br /&gt;
Bob doesn't want to be in this state, so he '''merges'''.  Merging joins multiple heads back together.  Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg merge&lt;br /&gt;
1 files updated, 1 files merged, 0 files removed, 0 files unresolved&lt;br /&gt;
(branch merge, don't forget to commit)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Merges are changesets, and they must be committed.  Bob commits the merge, and now his repository looks like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Hg_bob_3.png]]&lt;br /&gt;
&lt;br /&gt;
'D' is the changeset that joins the two heads back together.  Now Bob can safely push his changes back, and Alice can pull from Bob.&lt;br /&gt;
&lt;br /&gt;
The above example happened from Bob trying to pull.  But if Bob had tried to push, he would have gotten a nasty error message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg push&lt;br /&gt;
searching for changes&lt;br /&gt;
abort: push creates new remote heads!&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means Bob's push would have introduced multiple heads on the target repository, rather than his own.  This is generally a bad idea and as a policy projects often don't allow it at all.  Bob has to pull, update, and resolve the merge.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For most merges, it is a good policy to write simple commit messages.  For example, &amp;quot;Merge.&amp;quot; would suffice.&lt;br /&gt;
&lt;br /&gt;
==Conflicts==&lt;br /&gt;
Merges which don't require any work on your part (other than running &amp;lt;tt&amp;gt;merge&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt;) are called '''trivial merges'''.  &lt;br /&gt;
&lt;br /&gt;
It is possible that Alice and Bob edited the same file however.  In many cases, Mercurial will be smart enough to handle this.  If Mercurial can't figure it out though -- you have to do manually merge the difference between the two files.  This is best done with a three-way merge program.&lt;br /&gt;
&lt;br /&gt;
An example of a merge conflict:&lt;br /&gt;
&amp;lt;pre&amp;gt;hg merge&lt;br /&gt;
merging crab.cpp&lt;br /&gt;
merge: warning: conflicts during merge&lt;br /&gt;
merging crab.cpp failed!&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conflicts must be resolved immediately.  You should never leave your source code in a conflicted state.  If you don't have a merge program installed, the conflicted file(s) will be marked up.  For example, &amp;lt;tt&amp;gt;crab.cpp&amp;lt;/tt&amp;gt; might contain lines like these for each conflict:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; /tmp/conflict/crab.cpp&lt;br /&gt;
void function() {&lt;br /&gt;
=======&lt;br /&gt;
int function() {&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; /tmp/crab.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The two &amp;quot;sides&amp;quot; of the &amp;lt;tt&amp;gt;=======&amp;lt;/tt&amp;gt; bar represent the local and incoming changes.  You should delete the markup and decide how to resolve the two sides.&lt;br /&gt;
&lt;br /&gt;
If you want to use and configure a merge program, see [http://www.selenic.com/mercurial/wiki/index.cgi/MergeProgram MergeProgram] at the Mercurial docs.  Though it's not listed, you can also use [http://www.scootersoftware.com/ Beyond Compare] (the author's personal choice).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Other Commands=&lt;br /&gt;
&amp;lt;tt&amp;gt;hg diff&amp;lt;/tt&amp;gt; is very useful for reviewing changes before you commit them.  You can also use it for generating patches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;hg log&amp;lt;/tt&amp;gt; lets you view the changeset history.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;hg glog&amp;lt;/tt&amp;gt; lets you view an ASCII graph of the changeset history.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;hg identity&amp;lt;/tt&amp;gt; tells you the state of your repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;hg status&amp;lt;/tt&amp;gt; shows you any changed or unknown files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;hg status -m&amp;lt;/tt&amp;gt; shows you any changed files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;hg revert&amp;lt;/tt&amp;gt; will remove any changes you've made to one or more files.  It will save the originals as the same file name with &amp;lt;tt&amp;gt;.orig&amp;lt;/tt&amp;gt; at the end.&lt;br /&gt;
&lt;br /&gt;
For many commands you can specify a folder within the repository to only affect that folder and its children.  This can speed up slow operations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=SSH Authentication=&lt;br /&gt;
If you are accessing your repository via SSH using the &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, entering your password is annoying and could be a security risk.  You should look into using [[SSH_Keys|SSH Keys]] (full instructions are provided).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=AlliedModders=&lt;br /&gt;
AlliedModders has a public Mercurial listing at [http://hg.alliedmods.net/ http://hg.alliedmods.net/].&lt;br /&gt;
&lt;br /&gt;
Anyone can clone or pull from these.  Only developers with SSH access can push.  Developers should use the following URL formula for pushing: &amp;lt;pre&amp;gt;ssh://EMAIL@hg.alliedmods.net/PROJECT&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SSH keys are required for security.  You should also use the &amp;quot;Firstname Lastname &amp;amp;lt;email&amp;amp;gt;&amp;quot; authorship style.  It is a good idea to configure this ahead of time (read the configuration section above).&lt;br /&gt;
&lt;br /&gt;
It is also highly recommended that long commit messages be split with a short summary on the first line and details on further lines. (See the note at the bottom of the Workflow section above.)&lt;br /&gt;
&lt;br /&gt;
Note that unlike Subversion, you cannot checkout a folder within a repository.  This is by design.&lt;br /&gt;
&lt;br /&gt;
=External Links=&lt;br /&gt;
*[http://www.selenic.com/mercurial/wiki/ Mercurial Home Page]&lt;br /&gt;
*[http://www.selenic.com/mercurial/wiki/index.cgi/UnderstandingMercurial Understanding Mercurial]&lt;br /&gt;
*[http://hgbook.red-bean.com/ Hg Book, free online book about Mercurial]&lt;br /&gt;
*[http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial Mercurial Tutorials]&lt;br /&gt;
&lt;br /&gt;
[[Category:Version Control Systems]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Subversion_Tutorial&amp;diff=7751</id>
		<title>Subversion Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Subversion_Tutorial&amp;diff=7751"/>
		<updated>2010-06-27T04:35:12Z</updated>

		<summary type="html">&lt;p&gt;DaFox: Replaced content with 'AlliedModders no longer uses SVN for any of its current projects.

Please use Mercurial.'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AlliedModders no longer uses SVN for any of its current projects.&lt;br /&gt;
&lt;br /&gt;
Please use [[Mercurial_Tutorial|Mercurial]].&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CCSGameRules_Offset_List_(Counter-Strike:_Source)&amp;diff=7750</id>
		<title>CCSGameRules Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CCSGameRules_Offset_List_(Counter-Strike:_Source)&amp;diff=7750"/>
		<updated>2010-06-25T00:35:09Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* The List */  Updated Offsets for the CSS Source2009 port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For use when using [[Virtual Offsets (Source Mods)|virtual offsets]].&lt;br /&gt;
&lt;br /&gt;
This is the list of offsets I've been using. These are the &amp;lt;b&amp;gt;Linux&amp;lt;/b&amp;gt; offsets. &amp;lt;b&amp;gt;Windows offsets are 1 less.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
This comes from the symbol tables, so you'll have to look in the SDK for return types...or guess for the CSS specific functions near the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Last Updated 24 June 2010&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Auto reconstructed from vtable block @ 0x00A721A0&lt;br /&gt;
// from &amp;quot;server.so&amp;quot;, by ida_vtables.idc&lt;br /&gt;
0	CMultiplayRules::Init(void)&lt;br /&gt;
1	CBaseGameSystemPerFrame::PostInit(void)&lt;br /&gt;
2	CBaseGameSystemPerFrame::Shutdown(void)&lt;br /&gt;
3	CCSGameRules::LevelInitPreEntity(void)&lt;br /&gt;
4	CCSGameRules::LevelInitPostEntity(void)&lt;br /&gt;
5	CBaseGameSystemPerFrame::LevelShutdownPreEntity(void)&lt;br /&gt;
6	CBaseGameSystemPerFrame::LevelShutdownPostEntity(void)&lt;br /&gt;
7	CBaseGameSystemPerFrame::OnSave(void)&lt;br /&gt;
8	CBaseGameSystemPerFrame::OnRestore(void)&lt;br /&gt;
9	CBaseGameSystemPerFrame::SafeRemoveIfDesired(void)&lt;br /&gt;
10	CBaseGameSystemPerFrame::IsPerFrame(void)&lt;br /&gt;
11	CCSGameRules::~CCSGameRules()&lt;br /&gt;
12	CCSGameRules::~CCSGameRules()&lt;br /&gt;
13	CBaseGameSystemPerFrame::FrameUpdatePreEntityThink(void)&lt;br /&gt;
14	CGameRules::FrameUpdatePostEntityThink(void)&lt;br /&gt;
15	CBaseGameSystemPerFrame::PreClientUpdate(void)&lt;br /&gt;
16	CMultiplayRules::Damage_IsTimeBased(int)&lt;br /&gt;
17	CMultiplayRules::Damage_ShouldGibCorpse(int)&lt;br /&gt;
18	CMultiplayRules::Damage_ShowOnHUD(int)&lt;br /&gt;
19	CMultiplayRules::Damage_NoPhysicsForce(int)&lt;br /&gt;
20	CMultiplayRules::Damage_ShouldNotBleed(int)&lt;br /&gt;
21	CMultiplayRules::Damage_GetTimeBased(void)&lt;br /&gt;
22	CMultiplayRules::Damage_GetShouldGibCorpse(void)&lt;br /&gt;
23	CMultiplayRules::Damage_GetShowOnHud(void)&lt;br /&gt;
24	CMultiplayRules::Damage_GetNoPhysicsForce(void)&lt;br /&gt;
25	CMultiplayRules::Damage_GetShouldNotBleed(void)&lt;br /&gt;
26	CMultiplayRules::SwitchToNextBestWeapon(CBaseCombatCharacter *,CBaseCombatWeapon *)&lt;br /&gt;
27	CCSGameRules::GetNextBestWeapon(CBaseCombatCharacter *,CBaseCombatWeapon *)&lt;br /&gt;
28	CCSGameRules::ShouldCollide(int,int)&lt;br /&gt;
29	CCSGameRules::DefaultFOV(void)&lt;br /&gt;
30	CCSGameRules::GetViewVectors(void)const&lt;br /&gt;
31	CGameRules::GetAmmoDamage(CBaseEntity *,CBaseEntity *,int)&lt;br /&gt;
32	CGameRules::GetDamageMultiplier(void)&lt;br /&gt;
33	CMultiplayRules::IsMultiplayer(void)&lt;br /&gt;
34	CCSGameRules::GetEncryptionKey(void)&lt;br /&gt;
35	CGameRules::InRoundRestart(void)&lt;br /&gt;
36	CGameRules::AllowThirdPersonCamera(void)&lt;br /&gt;
37	CMultiplayRules::ClientCommandKeyValues(edict_t *,KeyValues *)&lt;br /&gt;
38	CMultiplayRules::GetTaggedConVarList(KeyValues *)&lt;br /&gt;
39	CGameRules::CheckHaptics(CBasePlayer *)&lt;br /&gt;
40	CCSGameRules::LevelShutdown(void)&lt;br /&gt;
41	CTeamplayRules::Precache(void)&lt;br /&gt;
42	CMultiplayRules::RefreshSkillData(bool)&lt;br /&gt;
43	CCSGameRules::Think(void)&lt;br /&gt;
44	CMultiplayRules::IsAllowedToSpawn(CBaseEntity *)&lt;br /&gt;
45	CCSGameRules::EndGameFrame(void)&lt;br /&gt;
46	CGameRules::IsSkillLevel(int)&lt;br /&gt;
47	CGameRules::GetSkillLevel(void)&lt;br /&gt;
48	CGameRules::OnSkillLevelChanged(int)&lt;br /&gt;
49	CGameRules::SetSkillLevel(int)&lt;br /&gt;
50	CMultiplayRules::FAllowFlashlight(void)&lt;br /&gt;
51	CCSGameRules::FShouldSwitchWeapon(CBasePlayer *,CBaseCombatWeapon *)&lt;br /&gt;
52	CMultiplayRules::IsDeathmatch(void)&lt;br /&gt;
53	CTeamplayRules::IsTeamplay(void)&lt;br /&gt;
54	CMultiplayRules::IsCoOp(void)&lt;br /&gt;
55	CCSGameRules::GetGameDescription(void)&lt;br /&gt;
56	CMultiplayRules::ClientConnected(edict_t *,char  const*,char  const*,char *,int)&lt;br /&gt;
57	CTeamplayRules::InitHUD(CBasePlayer *)&lt;br /&gt;
58	CCSGameRules::ClientDisconnected(edict_t *)&lt;br /&gt;
59	CCSGameRules::FlPlayerFallDamage(CBasePlayer *)&lt;br /&gt;
60	CTeamplayRules::FPlayerCanTakeDamage(CBasePlayer *,CBaseEntity *)&lt;br /&gt;
61	CTeamplayRules::ShouldAutoAim(CBasePlayer *,edict_t *)&lt;br /&gt;
62	CGameRules::GetAutoAimScale(CBasePlayer *)&lt;br /&gt;
63	CGameRules::GetAutoAimMode(void)&lt;br /&gt;
64	CGameRules::ShouldUseRobustRadiusDamage(CBaseEntity *)&lt;br /&gt;
65	CCSGameRules::RadiusDamage(CTakeDamageInfo  const&amp;amp;,Vector  const&amp;amp;,float,int,CBaseEntity *)&lt;br /&gt;
66	CCSGameRules::FlPlayerFallDeathDoesScreenFade(CBasePlayer *)&lt;br /&gt;
67	CMultiplayRules::AllowDamage(CBaseEntity *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
68	CCSGameRules::PlayerSpawn(CBasePlayer *)&lt;br /&gt;
69	CMultiplayRules::PlayerThink(CBasePlayer *)&lt;br /&gt;
70	CCSGameRules::FPlayerCanRespawn(CBasePlayer *)&lt;br /&gt;
71	CMultiplayRules::FlPlayerSpawnTime(CBasePlayer *)&lt;br /&gt;
72	CCSGameRules::GetPlayerSpawnSpot(CBasePlayer *)&lt;br /&gt;
73	CCSGameRules::IsSpawnPointValid(CBaseEntity *,CBasePlayer *)&lt;br /&gt;
74	CMultiplayRules::AllowAutoTargetCrosshair(void)&lt;br /&gt;
75	CCSGameRules::ClientCommand(CBaseEntity *,CCommand  const&amp;amp;)&lt;br /&gt;
76	CCSGameRules::ClientSettingsChanged(CBasePlayer *)&lt;br /&gt;
77	CTeamplayRules::IPointsForKill(CBasePlayer *,CBasePlayer *)&lt;br /&gt;
78	CCSGameRules::PlayerKilled(CBasePlayer *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
79	CCSGameRules::DeathNotice(CBasePlayer *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
80	CGameRules::GetDamageCustomString(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
81	CGameRules::AdjustPlayerDamageInflicted(float)&lt;br /&gt;
82	CGameRules::AdjustPlayerDamageTaken(CTakeDamageInfo *)&lt;br /&gt;
83	CMultiplayRules::CanHavePlayerItem(CBasePlayer *,CBaseCombatWeapon *)&lt;br /&gt;
84	CMultiplayRules::WeaponShouldRespawn(CBaseCombatWeapon *)&lt;br /&gt;
85	CMultiplayRules::FlWeaponRespawnTime(CBaseCombatWeapon *)&lt;br /&gt;
86	CMultiplayRules::FlWeaponTryRespawn(CBaseCombatWeapon *)&lt;br /&gt;
87	CMultiplayRules::VecWeaponRespawnSpot(CBaseCombatWeapon *)&lt;br /&gt;
88	CMultiplayRules::CanHaveItem(CBasePlayer *,CItem *)&lt;br /&gt;
89	CMultiplayRules::PlayerGotItem(CBasePlayer *,CItem *)&lt;br /&gt;
90	CMultiplayRules::ItemShouldRespawn(CItem *)&lt;br /&gt;
91	CMultiplayRules::FlItemRespawnTime(CItem *)&lt;br /&gt;
92	CMultiplayRules::VecItemRespawnSpot(CItem *)&lt;br /&gt;
93	CMultiplayRules::VecItemRespawnAngles(CItem *)&lt;br /&gt;
94	CGameRules::CanHaveAmmo(CBaseCombatCharacter *,int)&lt;br /&gt;
95	CGameRules::CanHaveAmmo(CBaseCombatCharacter *,char  const*)&lt;br /&gt;
96	CMultiplayRules::PlayerGotAmmo(CBaseCombatCharacter *,char *,int)&lt;br /&gt;
97	CGameRules::GetAmmoQuantityScale(int)&lt;br /&gt;
98	CCSGameRules::InitDefaultAIRelationships(void)&lt;br /&gt;
99	CCSGameRules::AIClassText(int)&lt;br /&gt;
100	CMultiplayRules::FlHealthChargerRechargeTime(void)&lt;br /&gt;
101	CMultiplayRules::FlHEVChargerRechargeTime(void)&lt;br /&gt;
102	CMultiplayRules::DeadPlayerWeapons(CBasePlayer *)&lt;br /&gt;
103	CMultiplayRules::DeadPlayerAmmo(CBasePlayer *)&lt;br /&gt;
104	CTeamplayRules::GetTeamID(CBaseEntity *)&lt;br /&gt;
105	CTeamplayRules::PlayerRelationship(CBaseEntity *,CBaseEntity *)&lt;br /&gt;
106	CTeamplayRules::PlayerCanHearChat(CBasePlayer *,CBasePlayer *)&lt;br /&gt;
107	CGameRules::CheckChatText(CBasePlayer *,char *)&lt;br /&gt;
108	CTeamplayRules::GetTeamIndex(char  const*)&lt;br /&gt;
109	CTeamplayRules::GetIndexedTeamName(int)&lt;br /&gt;
110	CTeamplayRules::IsValidTeam(char  const*)&lt;br /&gt;
111	CTeamplayRules::ChangePlayerTeam(CBasePlayer *,char  const*,bool,bool)&lt;br /&gt;
112	CCSGameRules::SetDefaultPlayerTeam(CBasePlayer *)&lt;br /&gt;
113	CCSGameRules::UpdateClientData(CBasePlayer *)&lt;br /&gt;
114	CCSGameRules::PlayTextureSounds(void)&lt;br /&gt;
115	CMultiplayRules::PlayFootstepSounds(CBasePlayer *)&lt;br /&gt;
116	CCSGameRules::FAllowNPCs(void)&lt;br /&gt;
117	CMultiplayRules::EndMultiplayerGame(void)&lt;br /&gt;
118	CGameRules::WeaponTraceEntity(CBaseEntity *,Vector  const&amp;amp;,Vector  const&amp;amp;,unsigned int,CGameTrace *)&lt;br /&gt;
119	CCSGameRules::CreateStandardEntities(void)&lt;br /&gt;
120	CCSGameRules::GetChatPrefix(bool,CBasePlayer *)&lt;br /&gt;
121	CCSGameRules::GetChatLocation(bool,CBasePlayer *)&lt;br /&gt;
122	CCSGameRules::GetChatFormat(bool,CBasePlayer *)&lt;br /&gt;
123	CGameRules::ShouldBurningPropsEmitLight(void)&lt;br /&gt;
124	CGameRules::CanEntityBeUsePushed(CBaseEntity *)&lt;br /&gt;
125	CCSGameRules::CreateCustomNetworkStringTables(void)&lt;br /&gt;
126	CGameRules::MarkAchievement(IRecipientFilter &amp;amp;,char  const*)&lt;br /&gt;
127	CMultiplayRules::ResetMapCycleTimeStamp(void)&lt;br /&gt;
128	CGameRules::OnNavMeshLoad(void)&lt;br /&gt;
129	CGameRules::TacticalMissionManagerFactory(void)&lt;br /&gt;
130	CGameRules::ProcessVerboseLogOutput(void)&lt;br /&gt;
131	CGameRules::GetGameTypeName(void)&lt;br /&gt;
132	CGameRules::GetGameType(void)&lt;br /&gt;
133	CGameRules::ShouldDrawHeadLabels(void)&lt;br /&gt;
134	CMultiplayRules::GetDeathScorer(CBaseEntity *,CBaseEntity *,CBaseEntity *)&lt;br /&gt;
135	CMultiplayRules::VoiceCommand(CBaseMultiplayerPlayer *,int,int)&lt;br /&gt;
136	CMultiplayRules::HandleTimeLimitChange(void)&lt;br /&gt;
137	CMultiplayRules::InitCustomResponseRulesDicts(void)&lt;br /&gt;
138	CMultiplayRules::ShutdownCustomResponseRulesDicts(void)&lt;br /&gt;
139	CMultiplayRules::UseSuicidePenalty(void)&lt;br /&gt;
140	CMultiplayRules::GetNextLevelName(char *,int,bool)&lt;br /&gt;
141	CMultiplayRules::ChangeLevel(void)&lt;br /&gt;
142	CCSGameRules::GoToIntermission(void)&lt;br /&gt;
143	CTeamplayRules::GetCaptureValueForPlayer(CBasePlayer *)&lt;br /&gt;
144	CTeamplayRules::TeamMayCapturePoint(int,int)&lt;br /&gt;
145	CTeamplayRules::PlayerMayCapturePoint(CBasePlayer *,int,char *,int)&lt;br /&gt;
146	CTeamplayRules::PlayerMayBlockPoint(CBasePlayer *,int,char *,int)&lt;br /&gt;
147	CTeamplayRules::PointsMayBeCaptured(void)&lt;br /&gt;
148	CTeamplayRules::SetLastCapPointChanged(int)&lt;br /&gt;
149	CTeamplayRules::TimerMayExpire(void)&lt;br /&gt;
150	CTeamplayRules::SetWinningTeam(int,int,bool,bool,bool)&lt;br /&gt;
151	CTeamplayRules::SetStalemate(int,bool,bool)&lt;br /&gt;
152	CTeamplayRules::SetSwitchTeams(bool)&lt;br /&gt;
153	CTeamplayRules::ShouldSwitchTeams(void)&lt;br /&gt;
154	CTeamplayRules::HandleSwitchTeams(void)&lt;br /&gt;
155	CTeamplayRules::SetScrambleTeams(bool)&lt;br /&gt;
156	CTeamplayRules::ShouldScrambleTeams(void)&lt;br /&gt;
157	CTeamplayRules::HandleScrambleTeams(void)&lt;br /&gt;
158	CTeamplayRules::PointsMayAlwaysBeBlocked(void)&lt;br /&gt;
159	CCSGameRules::SpawningLatePlayer(CCSPlayer *)&lt;br /&gt;
160	CCSGameRules::SetAllowWeaponSwitch(bool)&lt;br /&gt;
161	CCSGameRules::GetAllowWeaponSwitch(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CBaseCombatWeapon_Offset_List_(Counter-Strike:_Source)&amp;diff=7749</id>
		<title>CBaseCombatWeapon Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CBaseCombatWeapon_Offset_List_(Counter-Strike:_Source)&amp;diff=7749"/>
		<updated>2010-06-25T00:33:16Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* The List */  Updated Offsets for the CSS Source2009 port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Also for use when using [[Virtual Offsets (Source Mods)|virtual offsets]].&lt;br /&gt;
&lt;br /&gt;
These are the &amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt; offsets. &amp;lt;b&amp;gt;Linux offsets are 1 greater.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
This comes from the symbol tables, so you'll have to look in the SDK for return types.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Last Updated 24 June 2010&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Auto reconstructed from vtable block @ 0x00A6F9A0&lt;br /&gt;
// from &amp;quot;server.so&amp;quot;, by ida_vtables.idc&lt;br /&gt;
0	CBaseCombatWeapon::~CBaseCombatWeapon()&lt;br /&gt;
1	CBaseEntity::SetRefEHandle(CBaseHandle  const&amp;amp;)&lt;br /&gt;
2	CBaseEntity::GetRefEHandle(void)const&lt;br /&gt;
3	CBaseEntity::GetCollideable(void)&lt;br /&gt;
4	CBaseEntity::GetNetworkable(void)&lt;br /&gt;
5	CBaseEntity::GetBaseEntity(void)&lt;br /&gt;
6	CBaseEntity::GetModelIndex(void)const&lt;br /&gt;
7	CBaseEntity::GetModelName(void)const&lt;br /&gt;
8	CBaseEntity::SetModelIndex(int)&lt;br /&gt;
9	CBaseCombatWeapon::GetServerClass(void)&lt;br /&gt;
10	CBaseCombatWeapon::YouForgotToImplementOrDeclareServerClass(void)&lt;br /&gt;
11	CBaseCombatWeapon::GetDataDescMap(void)&lt;br /&gt;
12	CBaseAnimating::TestCollision(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
13	CBaseAnimating::TestHitboxes(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
14	CBaseEntity::ComputeWorldSpaceSurroundingBox(Vector *,Vector *)&lt;br /&gt;
15	CBaseEntity::ShouldCollide(int,int)const&lt;br /&gt;
16	CBaseEntity::SetOwnerEntity(CBaseEntity*)&lt;br /&gt;
17	CBaseEntity::ShouldTransmit(CCheckTransmitInfo  const*)&lt;br /&gt;
18	CBaseCombatWeapon::UpdateTransmitState(void)&lt;br /&gt;
19	CBaseAnimating::SetTransmit(CCheckTransmitInfo *,bool)&lt;br /&gt;
20	CBaseEntity::GetTracerType(void)&lt;br /&gt;
21	CBaseCombatWeapon::Spawn(void)&lt;br /&gt;
22	CBaseCombatWeapon::Precache(void)&lt;br /&gt;
23	CBaseAnimating::SetModel(char  const*)&lt;br /&gt;
24	CBaseEntity::PostConstructor(char  const*)&lt;br /&gt;
25	CBaseEntity::PostClientActive(void)&lt;br /&gt;
26	CBaseEntity::ParseMapData(CEntityMapData *)&lt;br /&gt;
27	CBaseEntity::KeyValue(char  const*,char  const*)&lt;br /&gt;
28	CBaseEntity::KeyValue(char  const*,float)&lt;br /&gt;
29	CBaseEntity::KeyValue(char  const*,Vector  const&amp;amp;)&lt;br /&gt;
30	CBaseEntity::GetKeyValue(char  const*,char *,int)&lt;br /&gt;
31	CBaseCombatWeapon::Activate(void)&lt;br /&gt;
32	CBaseEntity::SetParent(CBaseEntity*,int)&lt;br /&gt;
33	CBaseCombatWeapon::ObjectCaps(void)&lt;br /&gt;
34	CBaseEntity::AcceptInput(char  const*,CBaseEntity*,CBaseEntity*,variant_t,int)&lt;br /&gt;
35	CBaseAnimating::GetInputDispatchEffectPosition(char  const*,Vector &amp;amp;,QAngle &amp;amp;)&lt;br /&gt;
36	CBaseEntity::DrawDebugGeometryOverlays(void)&lt;br /&gt;
37	CBaseAttributableItem::DrawDebugTextOverlays(void)&lt;br /&gt;
38	CBaseAttributableItem::Save(ISave &amp;amp;)&lt;br /&gt;
39	CBaseAttributableItem::Restore(IRestore &amp;amp;)&lt;br /&gt;
40	CBaseEntity::ShouldSavePhysics(void)&lt;br /&gt;
41	CBaseEntity::OnSave(IEntitySaveUtils *)&lt;br /&gt;
42	CBaseAnimating::OnRestore(void)&lt;br /&gt;
43	CBaseEntity::RequiredEdictIndex(void)&lt;br /&gt;
44	CBaseEntity::MoveDone(void)&lt;br /&gt;
45	CBaseEntity::Think(void)&lt;br /&gt;
46	CBaseCombatWeapon::NetworkStateChanged_m_nNextThinkTick(void)&lt;br /&gt;
47	CBaseCombatWeapon::NetworkStateChanged_m_nNextThinkTick(void *)&lt;br /&gt;
48	CBaseAnimating::GetBaseAnimating(void)&lt;br /&gt;
49	CBaseEntity::GetResponseSystem(void)&lt;br /&gt;
50	CBaseEntity::DispatchResponse(char  const*)&lt;br /&gt;
51	CBaseEntity::Classify(void)&lt;br /&gt;
52	CBaseEntity::DeathNotice(CBaseEntity*)&lt;br /&gt;
53	CBaseEntity::ShouldAttractAutoAim(CBaseEntity*)&lt;br /&gt;
54	CBaseEntity::GetAutoAimRadius(void)&lt;br /&gt;
55	CBaseEntity::GetAutoAimCenter(void)&lt;br /&gt;
56	CBaseEntity::GetBeamTraceFilter(void)&lt;br /&gt;
57	CBaseEntity::PassesDamageFilter(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
58	CBaseEntity::TraceAttack(CTakeDamageInfo  const&amp;amp;,Vector  const&amp;amp;,CGameTrace *)&lt;br /&gt;
59	CBaseEntity::CanBeHitByMeleeAttack(CBaseEntity*)&lt;br /&gt;
60	CBaseEntity::OnTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
61	CBaseEntity::AdjustDamageDirection(CTakeDamageInfo  const&amp;amp;,Vector &amp;amp;,CBaseEntity*)&lt;br /&gt;
62	CBaseEntity::TakeHealth(float,int)&lt;br /&gt;
63	CBaseEntity::IsAlive(void)&lt;br /&gt;
64	CBaseEntity::Event_Killed(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
65	CBaseEntity::Event_KilledOther(CBaseEntity*,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
66	CBaseEntity::BloodColor(void)&lt;br /&gt;
67	CBaseEntity::IsTriggered(CBaseEntity*)&lt;br /&gt;
68	CBaseEntity::IsNPC(void)const&lt;br /&gt;
69	CBaseEntity::MyCombatCharacterPointer(void)&lt;br /&gt;
70	CBaseEntity::MyNextBotPointer(void)&lt;br /&gt;
71	CBaseEntity::GetDelay(void)&lt;br /&gt;
72	CBaseEntity::IsMoving(void)&lt;br /&gt;
73	CBaseEntity::DamageDecal(int,int)&lt;br /&gt;
74	CBaseEntity::DecalTrace(CGameTrace *,char  const*)&lt;br /&gt;
75	CBaseEntity::ImpactTrace(CGameTrace *,int,char *)&lt;br /&gt;
76	CBaseEntity::OnControls(CBaseEntity*)&lt;br /&gt;
77	CBaseEntity::HasTarget(string_t)&lt;br /&gt;
78	CBaseEntity::IsPlayer(void)const&lt;br /&gt;
79	CBaseEntity::IsNetClient(void)const&lt;br /&gt;
80	CBaseEntity::IsTemplate(void)&lt;br /&gt;
81	CBaseEntity::IsBaseObject(void)const&lt;br /&gt;
82	CBaseEntity::IsBaseTrain(void)const&lt;br /&gt;
83	CBaseCombatWeapon::IsBaseCombatWeapon(void)const&lt;br /&gt;
84	CBaseEntity::IsWearable(void)const&lt;br /&gt;
85	CBaseCombatWeapon::MyCombatWeaponPointer(void)&lt;br /&gt;
86	CBaseEntity::GetServerVehicle(void)&lt;br /&gt;
87	CBaseEntity::IsViewable(void)&lt;br /&gt;
88	CBaseEntity::ChangeTeam(int)&lt;br /&gt;
89	CBaseEntity::OnEntityEvent(EntityEvent_t,void *)&lt;br /&gt;
90	CBaseEntity::CanStandOn(CBaseEntity*)const&lt;br /&gt;
91	CBaseEntity::CanStandOn(edict_t *)const&lt;br /&gt;
92	CBaseEntity::GetEnemy(void)&lt;br /&gt;
93	CBaseEntity::GetEnemy(void)const&lt;br /&gt;
94	CBaseCombatWeapon::Use(CBaseEntity *,CBaseEntity *,USE_TYPE,float)&lt;br /&gt;
95	CBaseEntity::StartTouch(CBaseEntity*)&lt;br /&gt;
96	CBaseEntity::Touch(CBaseEntity*)&lt;br /&gt;
97	CBaseEntity::EndTouch(CBaseEntity*)&lt;br /&gt;
98	CBaseEntity::StartBlocked(CBaseEntity*)&lt;br /&gt;
99	CBaseEntity::Blocked(CBaseEntity*)&lt;br /&gt;
100	CBaseEntity::EndBlocked(void)&lt;br /&gt;
101	CBaseEntity::PhysicsSimulate(void)&lt;br /&gt;
102	CBaseAttributableItem::UpdateOnRemove(void)&lt;br /&gt;
103	CBaseEntity::StopLoopingSounds(void)&lt;br /&gt;
104	CBaseEntity::SUB_AllowedToFade(void)&lt;br /&gt;
105	CBaseAnimating::Teleport(Vector  const*,QAngle  const*,Vector  const*)&lt;br /&gt;
106	CBaseEntity::NotifySystemEvent(CBaseEntity*,notify_system_event_t,notify_system_event_params_t  const&amp;amp;)&lt;br /&gt;
107	CBaseCombatWeapon::MakeTracer(Vector  const&amp;amp;,CGameTrace  const&amp;amp;,int)&lt;br /&gt;
108	CBaseEntity::GetTracerAttachment(void)&lt;br /&gt;
109	CBaseEntity::FireBullets(FireBulletsInfo_t  const&amp;amp;)&lt;br /&gt;
110	CBaseEntity::DoImpactEffect(CGameTrace &amp;amp;,int)&lt;br /&gt;
111	CBaseEntity::ModifyFireBulletsDamage(CTakeDamageInfo *)&lt;br /&gt;
112	CBaseCombatWeapon::Respawn(void)&lt;br /&gt;
113	CBaseEntity::IsLockedByMaster(void)&lt;br /&gt;
114	CBaseEntity::GetMaxHealth(void)const&lt;br /&gt;
115	CBaseAnimating::ModifyOrAppendCriteria(AI_CriteriaSet &amp;amp;)&lt;br /&gt;
116	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void)&lt;br /&gt;
117	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void *)&lt;br /&gt;
118	CBaseEntity::NetworkStateChanged_m_iHealth(void)&lt;br /&gt;
119	CBaseEntity::NetworkStateChanged_m_iHealth(void *)&lt;br /&gt;
120	CBaseEntity::NetworkStateChanged_m_lifeState(void)&lt;br /&gt;
121	CBaseEntity::NetworkStateChanged_m_lifeState(void *)&lt;br /&gt;
122	CBaseEntity::NetworkStateChanged_m_takedamage(void)&lt;br /&gt;
123	CBaseEntity::NetworkStateChanged_m_takedamage(void *)&lt;br /&gt;
124	CBaseEntity::GetDamageType(void)const&lt;br /&gt;
125	CBaseEntity::GetDamage(void)&lt;br /&gt;
126	CBaseEntity::SetDamage(float)&lt;br /&gt;
127	CBaseEntity::EyePosition(void)&lt;br /&gt;
128	CBaseEntity::EyeAngles(void)&lt;br /&gt;
129	CBaseEntity::LocalEyeAngles(void)&lt;br /&gt;
130	CBaseEntity::EarPosition(void)&lt;br /&gt;
131	CBaseEntity::BodyTarget(Vector  const&amp;amp;,bool)&lt;br /&gt;
132	CBaseEntity::HeadTarget(Vector  const&amp;amp;)&lt;br /&gt;
133	CBaseEntity::GetVectors(Vector *,Vector *,Vector *)const&lt;br /&gt;
134	CBaseEntity::GetViewOffset(void)const&lt;br /&gt;
135	CBaseEntity::SetViewOffset(Vector  const&amp;amp;)&lt;br /&gt;
136	CBaseEntity::GetSmoothedVelocity(void)&lt;br /&gt;
137	CBaseAnimating::GetVelocity(Vector *,Vector *)&lt;br /&gt;
138	CBaseEntity::FVisible(CBaseEntity*,int,CBaseEntity**)&lt;br /&gt;
139	CBaseEntity::FVisible(Vector  const&amp;amp;,int,CBaseEntity**)&lt;br /&gt;
140	CBaseEntity::CanBeSeenBy(CAI_BaseNPC *)&lt;br /&gt;
141	CBaseEntity::GetAttackDamageScale(CBaseEntity*)&lt;br /&gt;
142	CBaseEntity::GetReceivedDamageScale(CBaseEntity*)&lt;br /&gt;
143	CBaseEntity::GetGroundVelocityToApply(Vector &amp;amp;)&lt;br /&gt;
144	CBaseEntity::PhysicsSplash(Vector  const&amp;amp;,Vector  const&amp;amp;,float,float)&lt;br /&gt;
145	CBaseEntity::Splash(void)&lt;br /&gt;
146	CBaseEntity::WorldSpaceCenter(void)const&lt;br /&gt;
147	CBaseEntity::GetSoundEmissionOrigin(void)const&lt;br /&gt;
148	CBaseEntity::IsDeflectable(void)&lt;br /&gt;
149	CBaseEntity::Deflected(CBaseEntity*,Vector &amp;amp;)&lt;br /&gt;
150	CBaseEntity::CreateVPhysics(void)&lt;br /&gt;
151	CBaseEntity::ForceVPhysicsCollide(CBaseEntity*)&lt;br /&gt;
152	CBaseEntity::VPhysicsDestroyObject(void)&lt;br /&gt;
153	CBaseEntity::VPhysicsUpdate(IPhysicsObject *)&lt;br /&gt;
154	CBaseEntity::VPhysicsTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
155	CBaseEntity::VPhysicsShadowCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
156	CBaseEntity::VPhysicsShadowUpdate(IPhysicsObject *)&lt;br /&gt;
157	CBaseEntity::VPhysicsCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
158	CBaseEntity::VPhysicsFriction(IPhysicsObject *,float,int,int)&lt;br /&gt;
159	CBaseEntity::UpdatePhysicsShadowToCurrentPosition(float)&lt;br /&gt;
160	CBaseEntity::VPhysicsGetObjectList(IPhysicsObject **,int)&lt;br /&gt;
161	CBaseEntity::VPhysicsIsFlesh(void)&lt;br /&gt;
162	CBaseEntity::HasPhysicsAttacker(float)&lt;br /&gt;
163	CBaseEntity::PhysicsSolidMaskForEntity(void)const&lt;br /&gt;
164	CBaseEntity::ResolveFlyCollisionCustom(CGameTrace &amp;amp;,Vector &amp;amp;)&lt;br /&gt;
165	CBaseEntity::PerformCustomPhysics(Vector *,Vector *,QAngle *,QAngle *)&lt;br /&gt;
166	CBaseAnimating::GetStepOrigin(void)const&lt;br /&gt;
167	CBaseAnimating::GetStepAngles(void)const&lt;br /&gt;
168	CBaseEntity::ShouldDrawWaterImpacts(void)&lt;br /&gt;
169	CBaseEntity::NetworkStateChanged_m_fFlags(void)&lt;br /&gt;
170	CBaseEntity::NetworkStateChanged_m_fFlags(void *)&lt;br /&gt;
171	CBaseEntity::NetworkStateChanged_m_nWaterLevel(void)&lt;br /&gt;
172	CBaseEntity::NetworkStateChanged_m_nWaterLevel(void *)&lt;br /&gt;
173	CBaseEntity::NetworkStateChanged_m_hGroundEntity(void)&lt;br /&gt;
174	CBaseEntity::NetworkStateChanged_m_hGroundEntity(void *)&lt;br /&gt;
175	CBaseEntity::NetworkStateChanged_m_vecBaseVelocity(void)&lt;br /&gt;
176	CBaseEntity::NetworkStateChanged_m_vecBaseVelocity(void *)&lt;br /&gt;
177	CBaseEntity::NetworkStateChanged_m_flFriction(void)&lt;br /&gt;
178	CBaseEntity::NetworkStateChanged_m_flFriction(void *)&lt;br /&gt;
179	CBaseEntity::NetworkStateChanged_m_vecVelocity(void)&lt;br /&gt;
180	CBaseEntity::NetworkStateChanged_m_vecVelocity(void *)&lt;br /&gt;
181	CBaseEntity::NetworkStateChanged_m_vecViewOffset(void)&lt;br /&gt;
182	CBaseEntity::NetworkStateChanged_m_vecViewOffset(void *)&lt;br /&gt;
183	CBaseAnimating::GetIdealSpeed(void)const&lt;br /&gt;
184	CBaseAnimating::GetIdealAccel(void)const&lt;br /&gt;
185	CBaseAnimating::StudioFrameAdvance(void)&lt;br /&gt;
186	CBaseAnimating::IsActivityFinished(void)&lt;br /&gt;
187	CBaseAnimating::GetSequenceGroundSpeed(CStudioHdr *,int)&lt;br /&gt;
188	CBaseAnimating::ClampRagdollForce(Vector  const&amp;amp;,Vector*)&lt;br /&gt;
189	CBaseAnimating::BecomeRagdollOnClient(Vector  const&amp;amp;)&lt;br /&gt;
190	CBaseAnimating::IsRagdoll(void)&lt;br /&gt;
191	CBaseAnimating::CanBecomeRagdoll(void)&lt;br /&gt;
192	CBaseAnimating::GetSkeleton(CStudioHdr *,Vector *,Quaternion *,int)&lt;br /&gt;
193	CBaseAnimating::GetBoneTransform(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
194	CBaseAnimating::SetupBones(matrix3x4_t *,int)&lt;br /&gt;
195	CBaseAnimating::CalculateIKLocks(float)&lt;br /&gt;
196	CBaseAnimating::DispatchAnimEvents(CBaseAnimating*)&lt;br /&gt;
197	CBaseCombatWeapon::HandleAnimEvent(animevent_t *)&lt;br /&gt;
198	CBaseAnimating::PopulatePoseParameters(void)&lt;br /&gt;
199	CBaseAnimating::GetAttachment(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
200	CBaseAnimating::InitBoneControllers(void)&lt;br /&gt;
201	CBaseAnimating::GetGroundSpeedVelocity(void)&lt;br /&gt;
202	CBaseAnimating::Ignite(float,bool,float,bool)&lt;br /&gt;
203	CBaseAnimating::IgniteLifetime(float)&lt;br /&gt;
204	CBaseAnimating::IgniteNumHitboxFires(int)&lt;br /&gt;
205	CBaseAnimating::IgniteHitboxFireScale(float)&lt;br /&gt;
206	CBaseAnimating::Extinguish(void)&lt;br /&gt;
207	CBaseAnimating::SetLightingOriginRelative(CBaseEntity *)&lt;br /&gt;
208	CBaseAnimating::SetLightingOrigin(CBaseEntity *)&lt;br /&gt;
209	CBaseCombatWeapon::GiveTo(CBaseEntity *)&lt;br /&gt;
210	CBaseAttributableItem::CalculateVisibleClassFor(CBasePlayer *)&lt;br /&gt;
211	CBaseAttributableItem::GetAttributeManager(void)&lt;br /&gt;
212	CBaseAttributableItem::GetAttributeContainer(void)&lt;br /&gt;
213	CBaseAttributableItem::GetAttributeOwner(void)&lt;br /&gt;
214	CBaseAttributableItem::ReapplyProvision(void)&lt;br /&gt;
215	CBaseAttributableItem::TranslateViewmodelHandActivityInternal(Activity)&lt;br /&gt;
216	CBaseCombatWeapon::IsPredicted(void)const&lt;br /&gt;
217	CBaseCombatWeapon::GetSubType(void)&lt;br /&gt;
218	CBaseCombatWeapon::SetSubType(int)&lt;br /&gt;
219	CBaseCombatWeapon::Equip(CBaseCombatCharacter *)&lt;br /&gt;
220	CBaseCombatWeapon::Drop(Vector  const&amp;amp;)&lt;br /&gt;
221	CBaseCombatWeapon::UpdateClientData(CBasePlayer *)&lt;br /&gt;
222	CBaseCombatWeapon::IsAllowedToSwitch(void)&lt;br /&gt;
223	CBaseCombatWeapon::CanBeSelected(void)&lt;br /&gt;
224	CBaseCombatWeapon::VisibleInWeaponSelection(void)&lt;br /&gt;
225	CBaseCombatWeapon::HasAmmo(void)&lt;br /&gt;
226	CBaseCombatWeapon::SetPickupTouch(void)&lt;br /&gt;
227	CBaseCombatWeapon::DefaultTouch(CBaseEntity *)&lt;br /&gt;
228	CBaseCombatWeapon::ShouldDisplayAltFireHUDHint(void)&lt;br /&gt;
229	CBaseCombatWeapon::DisplayAltFireHudHint(void)&lt;br /&gt;
230	CBaseCombatWeapon::RescindAltFireHudHint(void)&lt;br /&gt;
231	CBaseCombatWeapon::ShouldDisplayReloadHUDHint(void)&lt;br /&gt;
232	CBaseCombatWeapon::DisplayReloadHudHint(void)&lt;br /&gt;
233	CBaseCombatWeapon::RescindReloadHudHint(void)&lt;br /&gt;
234	CBaseCombatWeapon::SetViewModelIndex(int)&lt;br /&gt;
235	CBaseCombatWeapon::SendWeaponAnim(int)&lt;br /&gt;
236	CBaseCombatWeapon::SendViewModelAnim(int)&lt;br /&gt;
237	CBaseCombatWeapon::SetViewModel(void)&lt;br /&gt;
238	CBaseCombatWeapon::HasWeaponIdleTimeElapsed(void)&lt;br /&gt;
239	CBaseCombatWeapon::SetWeaponIdleTime(float)&lt;br /&gt;
240	CBaseCombatWeapon::GetWeaponIdleTime(void)&lt;br /&gt;
241	CBaseCombatWeapon::HasAnyAmmo(void)&lt;br /&gt;
242	CBaseCombatWeapon::HasPrimaryAmmo(void)&lt;br /&gt;
243	CBaseCombatWeapon::HasSecondaryAmmo(void)&lt;br /&gt;
244	CBaseCombatWeapon::CanHolster(void)&lt;br /&gt;
245	CBaseCombatWeapon::DefaultDeploy(char *,char *,int,char *)&lt;br /&gt;
246	CBaseCombatWeapon::CanDeploy(void)&lt;br /&gt;
247	CBaseCombatWeapon::Deploy(void)&lt;br /&gt;
248	CBaseCombatWeapon::Holster(CBaseCombatWeapon*)&lt;br /&gt;
249	CBaseCombatWeapon::GetLastWeapon(void)&lt;br /&gt;
250	CBaseCombatWeapon::SetWeaponVisible(bool)&lt;br /&gt;
251	CBaseCombatWeapon::IsWeaponVisible(void)&lt;br /&gt;
252	CBaseCombatWeapon::ReloadOrSwitchWeapons(void)&lt;br /&gt;
253	CBaseCombatWeapon::OnActiveStateChanged(int)&lt;br /&gt;
254	CBaseCombatWeapon::HolsterOnDetach(void)&lt;br /&gt;
255	CBaseCombatWeapon::IsHolstered(void)&lt;br /&gt;
256	CBaseCombatWeapon::ItemPreFrame(void)&lt;br /&gt;
257	CBaseCombatWeapon::ItemPostFrame(void)&lt;br /&gt;
258	CBaseCombatWeapon::ItemBusyFrame(void)&lt;br /&gt;
259	CBaseCombatWeapon::ItemHolsterFrame(void)&lt;br /&gt;
260	CBaseCombatWeapon::WeaponIdle(void)&lt;br /&gt;
261	CBaseCombatWeapon::HandleFireOnEmpty(void)&lt;br /&gt;
262	CBaseCombatWeapon::ShouldBlockPrimaryFire(void)&lt;br /&gt;
263	CBaseCombatWeapon::IsWeaponZoomed(void)&lt;br /&gt;
264	CBaseCombatWeapon::CheckReload(void)&lt;br /&gt;
265	CBaseCombatWeapon::FinishReload(void)&lt;br /&gt;
266	CBaseCombatWeapon::AbortReload(void)&lt;br /&gt;
267	CBaseCombatWeapon::Reload(void)&lt;br /&gt;
268	CBaseCombatWeapon::PrimaryAttack(void)&lt;br /&gt;
269	CBaseCombatWeapon::SecondaryAttack(void)&lt;br /&gt;
270	CBaseCombatWeapon::GetPrimaryAttackActivity(void)&lt;br /&gt;
271	CBaseCombatWeapon::GetSecondaryAttackActivity(void)&lt;br /&gt;
272	CBaseCombatWeapon::GetDrawActivity(void)&lt;br /&gt;
273	CBaseCombatWeapon::GetDefaultAnimSpeed(void)&lt;br /&gt;
274	CBaseCombatWeapon::GetBulletType(void)&lt;br /&gt;
275	CBaseCombatWeapon::GetBulletSpread(void)&lt;br /&gt;
276	CBaseCombatWeapon::GetBulletSpread(WeaponProficiency_t)&lt;br /&gt;
277	CBaseCombatWeapon::GetSpreadBias(WeaponProficiency_t)&lt;br /&gt;
278	CBaseCombatWeapon::GetFireRate(void)&lt;br /&gt;
279	CBaseCombatWeapon::GetMinBurst(void)&lt;br /&gt;
280	CBaseCombatWeapon::GetMaxBurst(void)&lt;br /&gt;
281	CBaseCombatWeapon::GetMinRestTime(void)&lt;br /&gt;
282	CBaseCombatWeapon::GetMaxRestTime(void)&lt;br /&gt;
283	CBaseCombatWeapon::GetRandomBurst(void)&lt;br /&gt;
284	CBaseCombatWeapon::WeaponSound(WeaponSound_t,float)&lt;br /&gt;
285	CBaseCombatWeapon::StopWeaponSound(WeaponSound_t)&lt;br /&gt;
286	CBaseCombatWeapon::GetProficiencyValues(void)&lt;br /&gt;
287	CBaseCombatWeapon::GetMaxAutoAimDeflection(void)&lt;br /&gt;
288	CBaseCombatWeapon::WeaponAutoAimScale(void)&lt;br /&gt;
289	CBaseCombatWeapon::StartSprinting(void)&lt;br /&gt;
290	CBaseCombatWeapon::StopSprinting(void)&lt;br /&gt;
291	CBaseCombatWeapon::GetDamage(float,int)&lt;br /&gt;
292	CBaseCombatWeapon::SetActivity(Activity,float)&lt;br /&gt;
293	CBaseCombatWeapon::AddViewKick(void)&lt;br /&gt;
294	CBaseCombatWeapon::GetDeathNoticeName(void)&lt;br /&gt;
295	CBaseCombatWeapon::OnPickedUp(CBaseCombatCharacter *)&lt;br /&gt;
296	CBaseCombatWeapon::AddViewmodelBob(CBaseViewModel *,Vector &amp;amp;,QAngle &amp;amp;)&lt;br /&gt;
297	CBaseCombatWeapon::CalcViewmodelBob(void)&lt;br /&gt;
298	CBaseCombatWeapon::GetControlPanelInfo(int,char  const*&amp;amp;)&lt;br /&gt;
299	CBaseCombatWeapon::GetControlPanelClassName(int,char  const*&amp;amp;)&lt;br /&gt;
300	CBaseCombatWeapon::ShouldShowControlPanels(void)&lt;br /&gt;
301	CBaseCombatWeapon::CanBePickedUpByNPCs(void)&lt;br /&gt;
302	CBaseCombatWeapon::GetViewModel(int)const&lt;br /&gt;
303	CBaseCombatWeapon::GetWorldModel(void)const&lt;br /&gt;
304	CBaseCombatWeapon::GetAnimPrefix(void)const&lt;br /&gt;
305	CBaseCombatWeapon::GetMaxClip1(void)const&lt;br /&gt;
306	CBaseCombatWeapon::GetMaxClip2(void)const&lt;br /&gt;
307	CBaseCombatWeapon::GetDefaultClip1(void)const&lt;br /&gt;
308	CBaseCombatWeapon::GetDefaultClip2(void)const&lt;br /&gt;
309	CBaseCombatWeapon::GetWeight(void)const&lt;br /&gt;
310	CBaseCombatWeapon::AllowsAutoSwitchTo(void)const&lt;br /&gt;
311	CBaseCombatWeapon::AllowsAutoSwitchFrom(void)const&lt;br /&gt;
312	CBaseCombatWeapon::GetWeaponFlags(void)const&lt;br /&gt;
313	CBaseCombatWeapon::GetSlot(void)const&lt;br /&gt;
314	CBaseCombatWeapon::GetPosition(void)const&lt;br /&gt;
315	CBaseCombatWeapon::GetName(void)const&lt;br /&gt;
316	CBaseCombatWeapon::GetPrintName(void)const&lt;br /&gt;
317	CBaseCombatWeapon::GetShootSound(int)const&lt;br /&gt;
318	CBaseCombatWeapon::GetRumbleEffect(void)const&lt;br /&gt;
319	CBaseCombatWeapon::UsesClipsForAmmo1(void)const&lt;br /&gt;
320	CBaseCombatWeapon::UsesClipsForAmmo2(void)const&lt;br /&gt;
321	CBaseCombatWeapon::GetEncryptionKey(void)&lt;br /&gt;
322	CBaseCombatWeapon::GetPrimaryAmmoType(void)const&lt;br /&gt;
323	CBaseCombatWeapon::GetSecondaryAmmoType(void)const&lt;br /&gt;
324	CBaseCombatWeapon::GetSpriteActive(void)const&lt;br /&gt;
325	CBaseCombatWeapon::GetSpriteInactive(void)const&lt;br /&gt;
326	CBaseCombatWeapon::GetSpriteAmmo(void)const&lt;br /&gt;
327	CBaseCombatWeapon::GetSpriteAmmo2(void)const&lt;br /&gt;
328	CBaseCombatWeapon::GetSpriteCrosshair(void)const&lt;br /&gt;
329	CBaseCombatWeapon::GetSpriteAutoaim(void)const&lt;br /&gt;
330	CBaseCombatWeapon::GetSpriteZoomedCrosshair(void)const&lt;br /&gt;
331	CBaseCombatWeapon::GetSpriteZoomedAutoaim(void)const&lt;br /&gt;
332	CBaseCombatWeapon::ActivityOverride(Activity,bool *)&lt;br /&gt;
333	CBaseCombatWeapon::ActivityList(void)&lt;br /&gt;
334	CBaseCombatWeapon::ActivityListCount(void)&lt;br /&gt;
335	CBaseCombatWeapon::FallInit(void)&lt;br /&gt;
336	CBaseCombatWeapon::FallThink(void)&lt;br /&gt;
337	CBaseCombatWeapon::Materialize(void)&lt;br /&gt;
338	CBaseCombatWeapon::CheckRespawn(void)&lt;br /&gt;
339	CBaseCombatWeapon::Delete(void)&lt;br /&gt;
340	CBaseCombatWeapon::Kill(void)&lt;br /&gt;
341	CBaseCombatWeapon::CapabilitiesGet(void)&lt;br /&gt;
342	CBaseCombatWeapon::WeaponLOSCondition(Vector  const&amp;amp;,Vector  const&amp;amp;,bool)&lt;br /&gt;
343	CBaseCombatWeapon::WeaponRangeAttack1Condition(float,float)&lt;br /&gt;
344	CBaseCombatWeapon::WeaponRangeAttack2Condition(float,float)&lt;br /&gt;
345	CBaseCombatWeapon::WeaponMeleeAttack1Condition(float,float)&lt;br /&gt;
346	CBaseCombatWeapon::WeaponMeleeAttack2Condition(float,float)&lt;br /&gt;
347	CBaseCombatWeapon::Operator_FrameUpdate(CBaseCombatCharacter *)&lt;br /&gt;
348	CBaseCombatWeapon::Operator_HandleAnimEvent(animevent_t *,CBaseCombatCharacter *)&lt;br /&gt;
349	CBaseCombatWeapon::Operator_ForceNPCFire(CBaseCombatCharacter *,bool)&lt;br /&gt;
350	CBaseCombatWeapon::CanLower(void)&lt;br /&gt;
351	CBaseCombatWeapon::Ready(void)&lt;br /&gt;
352	CBaseCombatWeapon::Lower(void)&lt;br /&gt;
353	CBaseCombatWeapon::HideThink(void)&lt;br /&gt;
354	CBaseCombatWeapon::CanReload(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CDEagle_Offset_List_(Counter-Strike:_Source)&amp;diff=7748</id>
		<title>CDEagle Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CDEagle_Offset_List_(Counter-Strike:_Source)&amp;diff=7748"/>
		<updated>2010-06-25T00:30:17Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* The List */  Updated Offsets for the CSS Source2009 port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For use when using [[Virtual Offsets (Source Mods)|virtual offsets]].&lt;br /&gt;
&lt;br /&gt;
This is a list of CDEagle Offsets. These are the &amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt; offsets. &amp;lt;b&amp;gt;Linux offsets are 1 greater.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
This comes from the symbol tables, so you'll have to look in the SDK for return types...or guess for the CSS specific functions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Added 24 June 2010&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Auto reconstructed from vtable block @ 0x00A76E80&lt;br /&gt;
// from &amp;quot;server.so&amp;quot;, by ida_vtables.idc&lt;br /&gt;
0	CDEagle::~CDEagle()&lt;br /&gt;
1	CBaseEntity::SetRefEHandle(CBaseHandle  const&amp;amp;)&lt;br /&gt;
2	CBaseEntity::GetRefEHandle(void)const&lt;br /&gt;
3	CBaseEntity::GetCollideable(void)&lt;br /&gt;
4	CBaseEntity::GetNetworkable(void)&lt;br /&gt;
5	CBaseEntity::GetBaseEntity(void)&lt;br /&gt;
6	CBaseEntity::GetModelIndex(void)const&lt;br /&gt;
7	CBaseEntity::GetModelName(void)const&lt;br /&gt;
8	CBaseEntity::SetModelIndex(int)&lt;br /&gt;
9	CDEagle::GetServerClass(void)&lt;br /&gt;
10	CDEagle::YouForgotToImplementOrDeclareServerClass(void)&lt;br /&gt;
11	CWeaponCSBase::GetDataDescMap(void)&lt;br /&gt;
12	CBaseAnimating::TestCollision(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
13	CBaseAnimating::TestHitboxes(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
14	CBaseEntity::ComputeWorldSpaceSurroundingBox(Vector *,Vector *)&lt;br /&gt;
15	CBaseEntity::ShouldCollide(int,int)const&lt;br /&gt;
16	CBaseEntity::SetOwnerEntity(CBaseEntity*)&lt;br /&gt;
17	CBaseEntity::ShouldTransmit(CCheckTransmitInfo  const*)&lt;br /&gt;
18	CBaseCombatWeapon::UpdateTransmitState(void)&lt;br /&gt;
19	CBaseAnimating::SetTransmit(CCheckTransmitInfo *,bool)&lt;br /&gt;
20	CBaseEntity::GetTracerType(void)&lt;br /&gt;
21	CDEagle::Spawn(void)&lt;br /&gt;
22	CWeaponCSBase::Precache(void)&lt;br /&gt;
23	CBaseAnimating::SetModel(char  const*)&lt;br /&gt;
24	CBaseEntity::PostConstructor(char  const*)&lt;br /&gt;
25	CBaseEntity::PostClientActive(void)&lt;br /&gt;
26	CBaseEntity::ParseMapData(CEntityMapData *)&lt;br /&gt;
27	CWeaponCSBase::KeyValue(char  const*,char  const*)&lt;br /&gt;
28	CBaseEntity::KeyValue(char  const*,float)&lt;br /&gt;
29	CBaseEntity::KeyValue(char  const*,Vector  const&amp;amp;)&lt;br /&gt;
30	CBaseEntity::GetKeyValue(char  const*,char *,int)&lt;br /&gt;
31	CBaseCombatWeapon::Activate(void)&lt;br /&gt;
32	CBaseEntity::SetParent(CBaseEntity*,int)&lt;br /&gt;
33	CBaseCombatWeapon::ObjectCaps(void)&lt;br /&gt;
34	CBaseEntity::AcceptInput(char  const*,CBaseEntity*,CBaseEntity*,variant_t,int)&lt;br /&gt;
35	CBaseAnimating::GetInputDispatchEffectPosition(char  const*,Vector &amp;amp;,QAngle &amp;amp;)&lt;br /&gt;
36	CBaseEntity::DrawDebugGeometryOverlays(void)&lt;br /&gt;
37	CBaseAttributableItem::DrawDebugTextOverlays(void)&lt;br /&gt;
38	CBaseAttributableItem::Save(ISave &amp;amp;)&lt;br /&gt;
39	CBaseAttributableItem::Restore(IRestore &amp;amp;)&lt;br /&gt;
40	CBaseEntity::ShouldSavePhysics(void)&lt;br /&gt;
41	CBaseEntity::OnSave(IEntitySaveUtils *)&lt;br /&gt;
42	CBaseAnimating::OnRestore(void)&lt;br /&gt;
43	CBaseEntity::RequiredEdictIndex(void)&lt;br /&gt;
44	CBaseEntity::MoveDone(void)&lt;br /&gt;
45	CBaseEntity::Think(void)&lt;br /&gt;
46	CBaseCombatWeapon::NetworkStateChanged_m_nNextThinkTick(void)&lt;br /&gt;
47	CBaseCombatWeapon::NetworkStateChanged_m_nNextThinkTick(void *)&lt;br /&gt;
48	CBaseAnimating::GetBaseAnimating(void)&lt;br /&gt;
49	CBaseEntity::GetResponseSystem(void)&lt;br /&gt;
50	CBaseEntity::DispatchResponse(char  const*)&lt;br /&gt;
51	CBaseEntity::Classify(void)&lt;br /&gt;
52	CBaseEntity::DeathNotice(CBaseEntity*)&lt;br /&gt;
53	CBaseEntity::ShouldAttractAutoAim(CBaseEntity*)&lt;br /&gt;
54	CBaseEntity::GetAutoAimRadius(void)&lt;br /&gt;
55	CBaseEntity::GetAutoAimCenter(void)&lt;br /&gt;
56	CBaseEntity::GetBeamTraceFilter(void)&lt;br /&gt;
57	CBaseEntity::PassesDamageFilter(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
58	CBaseEntity::TraceAttack(CTakeDamageInfo  const&amp;amp;,Vector  const&amp;amp;,CGameTrace *)&lt;br /&gt;
59	CBaseEntity::CanBeHitByMeleeAttack(CBaseEntity*)&lt;br /&gt;
60	CBaseEntity::OnTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
61	CBaseEntity::AdjustDamageDirection(CTakeDamageInfo  const&amp;amp;,Vector &amp;amp;,CBaseEntity*)&lt;br /&gt;
62	CBaseEntity::TakeHealth(float,int)&lt;br /&gt;
63	CBaseEntity::IsAlive(void)&lt;br /&gt;
64	CBaseEntity::Event_Killed(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
65	CBaseEntity::Event_KilledOther(CBaseEntity*,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
66	CBaseEntity::BloodColor(void)&lt;br /&gt;
67	CBaseEntity::IsTriggered(CBaseEntity*)&lt;br /&gt;
68	CBaseEntity::IsNPC(void)const&lt;br /&gt;
69	CBaseEntity::MyCombatCharacterPointer(void)&lt;br /&gt;
70	CBaseEntity::MyNextBotPointer(void)&lt;br /&gt;
71	CBaseEntity::GetDelay(void)&lt;br /&gt;
72	CBaseEntity::IsMoving(void)&lt;br /&gt;
73	CBaseEntity::DamageDecal(int,int)&lt;br /&gt;
74	CBaseEntity::DecalTrace(CGameTrace *,char  const*)&lt;br /&gt;
75	CBaseEntity::ImpactTrace(CGameTrace *,int,char *)&lt;br /&gt;
76	CBaseEntity::OnControls(CBaseEntity*)&lt;br /&gt;
77	CBaseEntity::HasTarget(string_t)&lt;br /&gt;
78	CBaseEntity::IsPlayer(void)const&lt;br /&gt;
79	CBaseEntity::IsNetClient(void)const&lt;br /&gt;
80	CBaseEntity::IsTemplate(void)&lt;br /&gt;
81	CBaseEntity::IsBaseObject(void)const&lt;br /&gt;
82	CBaseEntity::IsBaseTrain(void)const&lt;br /&gt;
83	CBaseCombatWeapon::IsBaseCombatWeapon(void)const&lt;br /&gt;
84	CBaseEntity::IsWearable(void)const&lt;br /&gt;
85	CBaseCombatWeapon::MyCombatWeaponPointer(void)&lt;br /&gt;
86	CBaseEntity::GetServerVehicle(void)&lt;br /&gt;
87	CBaseEntity::IsViewable(void)&lt;br /&gt;
88	CBaseEntity::ChangeTeam(int)&lt;br /&gt;
89	CBaseEntity::OnEntityEvent(EntityEvent_t,void *)&lt;br /&gt;
90	CBaseEntity::CanStandOn(CBaseEntity*)const&lt;br /&gt;
91	CBaseEntity::CanStandOn(edict_t *)const&lt;br /&gt;
92	CBaseEntity::GetEnemy(void)&lt;br /&gt;
93	CBaseEntity::GetEnemy(void)const&lt;br /&gt;
94	CWeaponCSBase::Use(CBaseEntity *,CBaseEntity *,USE_TYPE,float)&lt;br /&gt;
95	CBaseEntity::StartTouch(CBaseEntity*)&lt;br /&gt;
96	CBaseEntity::Touch(CBaseEntity*)&lt;br /&gt;
97	CBaseEntity::EndTouch(CBaseEntity*)&lt;br /&gt;
98	CBaseEntity::StartBlocked(CBaseEntity*)&lt;br /&gt;
99	CBaseEntity::Blocked(CBaseEntity*)&lt;br /&gt;
100	CBaseEntity::EndBlocked(void)&lt;br /&gt;
101	CBaseEntity::PhysicsSimulate(void)&lt;br /&gt;
102	CBaseAttributableItem::UpdateOnRemove(void)&lt;br /&gt;
103	CBaseEntity::StopLoopingSounds(void)&lt;br /&gt;
104	CBaseEntity::SUB_AllowedToFade(void)&lt;br /&gt;
105	CBaseAnimating::Teleport(Vector  const*,QAngle  const*,Vector  const*)&lt;br /&gt;
106	CBaseEntity::NotifySystemEvent(CBaseEntity*,notify_system_event_t,notify_system_event_params_t  const&amp;amp;)&lt;br /&gt;
107	CBaseCombatWeapon::MakeTracer(Vector  const&amp;amp;,CGameTrace  const&amp;amp;,int)&lt;br /&gt;
108	CBaseEntity::GetTracerAttachment(void)&lt;br /&gt;
109	CBaseEntity::FireBullets(FireBulletsInfo_t  const&amp;amp;)&lt;br /&gt;
110	CBaseEntity::DoImpactEffect(CGameTrace &amp;amp;,int)&lt;br /&gt;
111	CBaseEntity::ModifyFireBulletsDamage(CTakeDamageInfo *)&lt;br /&gt;
112	CWeaponCSBase::Respawn(void)&lt;br /&gt;
113	CBaseEntity::IsLockedByMaster(void)&lt;br /&gt;
114	CBaseEntity::GetMaxHealth(void)const&lt;br /&gt;
115	CBaseAnimating::ModifyOrAppendCriteria(AI_CriteriaSet &amp;amp;)&lt;br /&gt;
116	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void)&lt;br /&gt;
117	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void *)&lt;br /&gt;
118	CBaseEntity::NetworkStateChanged_m_iHealth(void)&lt;br /&gt;
119	CBaseEntity::NetworkStateChanged_m_iHealth(void *)&lt;br /&gt;
120	CBaseEntity::NetworkStateChanged_m_lifeState(void)&lt;br /&gt;
121	CBaseEntity::NetworkStateChanged_m_lifeState(void *)&lt;br /&gt;
122	CBaseEntity::NetworkStateChanged_m_takedamage(void)&lt;br /&gt;
123	CBaseEntity::NetworkStateChanged_m_takedamage(void *)&lt;br /&gt;
124	CBaseEntity::GetDamageType(void)const&lt;br /&gt;
125	CBaseEntity::GetDamage(void)&lt;br /&gt;
126	CBaseEntity::SetDamage(float)&lt;br /&gt;
127	CBaseEntity::EyePosition(void)&lt;br /&gt;
128	CBaseEntity::EyeAngles(void)&lt;br /&gt;
129	CBaseEntity::LocalEyeAngles(void)&lt;br /&gt;
130	CBaseEntity::EarPosition(void)&lt;br /&gt;
131	CBaseEntity::BodyTarget(Vector  const&amp;amp;,bool)&lt;br /&gt;
132	CBaseEntity::HeadTarget(Vector  const&amp;amp;)&lt;br /&gt;
133	CBaseEntity::GetVectors(Vector *,Vector *,Vector *)const&lt;br /&gt;
134	CBaseEntity::GetViewOffset(void)const&lt;br /&gt;
135	CBaseEntity::SetViewOffset(Vector  const&amp;amp;)&lt;br /&gt;
136	CBaseEntity::GetSmoothedVelocity(void)&lt;br /&gt;
137	CBaseAnimating::GetVelocity(Vector *,Vector *)&lt;br /&gt;
138	CBaseEntity::FVisible(CBaseEntity*,int,CBaseEntity**)&lt;br /&gt;
139	CBaseEntity::FVisible(Vector  const&amp;amp;,int,CBaseEntity**)&lt;br /&gt;
140	CBaseEntity::CanBeSeenBy(CAI_BaseNPC *)&lt;br /&gt;
141	CBaseEntity::GetAttackDamageScale(CBaseEntity*)&lt;br /&gt;
142	CBaseEntity::GetReceivedDamageScale(CBaseEntity*)&lt;br /&gt;
143	CBaseEntity::GetGroundVelocityToApply(Vector &amp;amp;)&lt;br /&gt;
144	CWeaponCSBase::PhysicsSplash(Vector  const&amp;amp;,Vector  const&amp;amp;,float,float)&lt;br /&gt;
145	CBaseEntity::Splash(void)&lt;br /&gt;
146	CBaseEntity::WorldSpaceCenter(void)const&lt;br /&gt;
147	CBaseEntity::GetSoundEmissionOrigin(void)const&lt;br /&gt;
148	CBaseEntity::IsDeflectable(void)&lt;br /&gt;
149	CBaseEntity::Deflected(CBaseEntity*,Vector &amp;amp;)&lt;br /&gt;
150	CBaseEntity::CreateVPhysics(void)&lt;br /&gt;
151	CBaseEntity::ForceVPhysicsCollide(CBaseEntity*)&lt;br /&gt;
152	CBaseEntity::VPhysicsDestroyObject(void)&lt;br /&gt;
153	CBaseEntity::VPhysicsUpdate(IPhysicsObject *)&lt;br /&gt;
154	CBaseEntity::VPhysicsTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
155	CBaseEntity::VPhysicsShadowCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
156	CBaseEntity::VPhysicsShadowUpdate(IPhysicsObject *)&lt;br /&gt;
157	CBaseEntity::VPhysicsCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
158	CBaseEntity::VPhysicsFriction(IPhysicsObject *,float,int,int)&lt;br /&gt;
159	CBaseEntity::UpdatePhysicsShadowToCurrentPosition(float)&lt;br /&gt;
160	CBaseEntity::VPhysicsGetObjectList(IPhysicsObject **,int)&lt;br /&gt;
161	CBaseEntity::VPhysicsIsFlesh(void)&lt;br /&gt;
162	CBaseEntity::HasPhysicsAttacker(float)&lt;br /&gt;
163	CBaseEntity::PhysicsSolidMaskForEntity(void)const&lt;br /&gt;
164	CBaseEntity::ResolveFlyCollisionCustom(CGameTrace &amp;amp;,Vector &amp;amp;)&lt;br /&gt;
165	CBaseEntity::PerformCustomPhysics(Vector *,Vector *,QAngle *,QAngle *)&lt;br /&gt;
166	CBaseAnimating::GetStepOrigin(void)const&lt;br /&gt;
167	CBaseAnimating::GetStepAngles(void)const&lt;br /&gt;
168	CBaseEntity::ShouldDrawWaterImpacts(void)&lt;br /&gt;
169	CBaseEntity::NetworkStateChanged_m_fFlags(void)&lt;br /&gt;
170	CBaseEntity::NetworkStateChanged_m_fFlags(void *)&lt;br /&gt;
171	CBaseEntity::NetworkStateChanged_m_nWaterLevel(void)&lt;br /&gt;
172	CBaseEntity::NetworkStateChanged_m_nWaterLevel(void *)&lt;br /&gt;
173	CBaseEntity::NetworkStateChanged_m_hGroundEntity(void)&lt;br /&gt;
174	CBaseEntity::NetworkStateChanged_m_hGroundEntity(void *)&lt;br /&gt;
175	CBaseEntity::NetworkStateChanged_m_vecBaseVelocity(void)&lt;br /&gt;
176	CBaseEntity::NetworkStateChanged_m_vecBaseVelocity(void *)&lt;br /&gt;
177	CBaseEntity::NetworkStateChanged_m_flFriction(void)&lt;br /&gt;
178	CBaseEntity::NetworkStateChanged_m_flFriction(void *)&lt;br /&gt;
179	CBaseEntity::NetworkStateChanged_m_vecVelocity(void)&lt;br /&gt;
180	CBaseEntity::NetworkStateChanged_m_vecVelocity(void *)&lt;br /&gt;
181	CBaseEntity::NetworkStateChanged_m_vecViewOffset(void)&lt;br /&gt;
182	CBaseEntity::NetworkStateChanged_m_vecViewOffset(void *)&lt;br /&gt;
183	CBaseAnimating::GetIdealSpeed(void)const&lt;br /&gt;
184	CBaseAnimating::GetIdealAccel(void)const&lt;br /&gt;
185	CBaseAnimating::StudioFrameAdvance(void)&lt;br /&gt;
186	CBaseAnimating::IsActivityFinished(void)&lt;br /&gt;
187	CBaseAnimating::GetSequenceGroundSpeed(CStudioHdr *,int)&lt;br /&gt;
188	CBaseAnimating::ClampRagdollForce(Vector  const&amp;amp;,Vector*)&lt;br /&gt;
189	CBaseAnimating::BecomeRagdollOnClient(Vector  const&amp;amp;)&lt;br /&gt;
190	CBaseAnimating::IsRagdoll(void)&lt;br /&gt;
191	CBaseAnimating::CanBecomeRagdoll(void)&lt;br /&gt;
192	CBaseAnimating::GetSkeleton(CStudioHdr *,Vector *,Quaternion *,int)&lt;br /&gt;
193	CBaseAnimating::GetBoneTransform(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
194	CBaseAnimating::SetupBones(matrix3x4_t *,int)&lt;br /&gt;
195	CBaseAnimating::CalculateIKLocks(float)&lt;br /&gt;
196	CBaseAnimating::DispatchAnimEvents(CBaseAnimating*)&lt;br /&gt;
197	CBaseCombatWeapon::HandleAnimEvent(animevent_t *)&lt;br /&gt;
198	CBaseAnimating::PopulatePoseParameters(void)&lt;br /&gt;
199	CBaseAnimating::GetAttachment(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
200	CBaseAnimating::InitBoneControllers(void)&lt;br /&gt;
201	CBaseAnimating::GetGroundSpeedVelocity(void)&lt;br /&gt;
202	CBaseAnimating::Ignite(float,bool,float,bool)&lt;br /&gt;
203	CBaseAnimating::IgniteLifetime(float)&lt;br /&gt;
204	CBaseAnimating::IgniteNumHitboxFires(int)&lt;br /&gt;
205	CBaseAnimating::IgniteHitboxFireScale(float)&lt;br /&gt;
206	CBaseAnimating::Extinguish(void)&lt;br /&gt;
207	CBaseAnimating::SetLightingOriginRelative(CBaseEntity *)&lt;br /&gt;
208	CBaseAnimating::SetLightingOrigin(CBaseEntity *)&lt;br /&gt;
209	CBaseCombatWeapon::GiveTo(CBaseEntity *)&lt;br /&gt;
210	CBaseAttributableItem::CalculateVisibleClassFor(CBasePlayer *)&lt;br /&gt;
211	CBaseAttributableItem::GetAttributeManager(void)&lt;br /&gt;
212	CBaseAttributableItem::GetAttributeContainer(void)&lt;br /&gt;
213	CBaseAttributableItem::GetAttributeOwner(void)&lt;br /&gt;
214	CBaseAttributableItem::ReapplyProvision(void)&lt;br /&gt;
215	CBaseAttributableItem::TranslateViewmodelHandActivityInternal(Activity)&lt;br /&gt;
216	CWeaponCSBase::IsPredicted(void)const&lt;br /&gt;
217	CBaseCombatWeapon::GetSubType(void)&lt;br /&gt;
218	CBaseCombatWeapon::SetSubType(int)&lt;br /&gt;
219	CBaseCombatWeapon::Equip(CBaseCombatCharacter *)&lt;br /&gt;
220	CWeaponCSBase::Drop(Vector  const&amp;amp;)&lt;br /&gt;
221	CBaseCombatWeapon::UpdateClientData(CBasePlayer *)&lt;br /&gt;
222	CBaseCombatWeapon::IsAllowedToSwitch(void)&lt;br /&gt;
223	CWeaponCSBase::CanBeSelected(void)&lt;br /&gt;
224	CBaseCombatWeapon::VisibleInWeaponSelection(void)&lt;br /&gt;
225	CBaseCombatWeapon::HasAmmo(void)&lt;br /&gt;
226	CBaseCombatWeapon::SetPickupTouch(void)&lt;br /&gt;
227	CWeaponCSBase::DefaultTouch(CBaseEntity *)&lt;br /&gt;
228	CBaseCombatWeapon::ShouldDisplayAltFireHUDHint(void)&lt;br /&gt;
229	CBaseCombatWeapon::DisplayAltFireHudHint(void)&lt;br /&gt;
230	CBaseCombatWeapon::RescindAltFireHudHint(void)&lt;br /&gt;
231	CBaseCombatWeapon::ShouldDisplayReloadHUDHint(void)&lt;br /&gt;
232	CBaseCombatWeapon::DisplayReloadHudHint(void)&lt;br /&gt;
233	CBaseCombatWeapon::RescindReloadHudHint(void)&lt;br /&gt;
234	CBaseCombatWeapon::SetViewModelIndex(int)&lt;br /&gt;
235	CWeaponCSBase::SendWeaponAnim(int)&lt;br /&gt;
236	CBaseCombatWeapon::SendViewModelAnim(int)&lt;br /&gt;
237	CBaseCombatWeapon::SetViewModel(void)&lt;br /&gt;
238	CBaseCombatWeapon::HasWeaponIdleTimeElapsed(void)&lt;br /&gt;
239	CBaseCombatWeapon::SetWeaponIdleTime(float)&lt;br /&gt;
240	CBaseCombatWeapon::GetWeaponIdleTime(void)&lt;br /&gt;
241	CBaseCombatWeapon::HasAnyAmmo(void)&lt;br /&gt;
242	CBaseCombatWeapon::HasPrimaryAmmo(void)&lt;br /&gt;
243	CBaseCombatWeapon::HasSecondaryAmmo(void)&lt;br /&gt;
244	CBaseCombatWeapon::CanHolster(void)&lt;br /&gt;
245	CWeaponCSBase::DefaultDeploy(char *,char *,int,char *)&lt;br /&gt;
246	CWeaponCSBase::CanDeploy(void)&lt;br /&gt;
247	CDEagle::Deploy(void)&lt;br /&gt;
248	CWeaponCSBase::Holster(CBaseCombatWeapon *)&lt;br /&gt;
249	CBaseCombatWeapon::GetLastWeapon(void)&lt;br /&gt;
250	CBaseCombatWeapon::SetWeaponVisible(bool)&lt;br /&gt;
251	CBaseCombatWeapon::IsWeaponVisible(void)&lt;br /&gt;
252	CBaseCombatWeapon::ReloadOrSwitchWeapons(void)&lt;br /&gt;
253	CBaseCombatWeapon::OnActiveStateChanged(int)&lt;br /&gt;
254	CBaseCombatWeapon::HolsterOnDetach(void)&lt;br /&gt;
255	CBaseCombatWeapon::IsHolstered(void)&lt;br /&gt;
256	CBaseCombatWeapon::ItemPreFrame(void)&lt;br /&gt;
257	CWeaponCSBase::ItemPostFrame(void)&lt;br /&gt;
258	CBaseCombatWeapon::ItemBusyFrame(void)&lt;br /&gt;
259	CBaseCombatWeapon::ItemHolsterFrame(void)&lt;br /&gt;
260	CDEagle::WeaponIdle(void)&lt;br /&gt;
261	CBaseCombatWeapon::HandleFireOnEmpty(void)&lt;br /&gt;
262	CBaseCombatWeapon::ShouldBlockPrimaryFire(void)&lt;br /&gt;
263	CBaseCombatWeapon::IsWeaponZoomed(void)&lt;br /&gt;
264	CBaseCombatWeapon::CheckReload(void)&lt;br /&gt;
265	CBaseCombatWeapon::FinishReload(void)&lt;br /&gt;
266	CBaseCombatWeapon::AbortReload(void)&lt;br /&gt;
267	CDEagle::Reload(void)&lt;br /&gt;
268	CDEagle::PrimaryAttack(void)&lt;br /&gt;
269	CWeaponCSBase::SecondaryAttack(void)&lt;br /&gt;
270	CBaseCombatWeapon::GetPrimaryAttackActivity(void)&lt;br /&gt;
271	CBaseCombatWeapon::GetSecondaryAttackActivity(void)&lt;br /&gt;
272	CBaseCombatWeapon::GetDrawActivity(void)&lt;br /&gt;
273	CWeaponCSBase::GetDefaultAnimSpeed(void)&lt;br /&gt;
274	CBaseCombatWeapon::GetBulletType(void)&lt;br /&gt;
275	CWeaponCSBase::GetBulletSpread(void)&lt;br /&gt;
276	CBaseCombatWeapon::GetBulletSpread(WeaponProficiency_t)&lt;br /&gt;
277	CBaseCombatWeapon::GetSpreadBias(WeaponProficiency_t)&lt;br /&gt;
278	CBaseCombatWeapon::GetFireRate(void)&lt;br /&gt;
279	CBaseCombatWeapon::GetMinBurst(void)&lt;br /&gt;
280	CBaseCombatWeapon::GetMaxBurst(void)&lt;br /&gt;
281	CBaseCombatWeapon::GetMinRestTime(void)&lt;br /&gt;
282	CBaseCombatWeapon::GetMaxRestTime(void)&lt;br /&gt;
283	CBaseCombatWeapon::GetRandomBurst(void)&lt;br /&gt;
284	CBaseCombatWeapon::WeaponSound(WeaponSound_t,float)&lt;br /&gt;
285	CBaseCombatWeapon::StopWeaponSound(WeaponSound_t)&lt;br /&gt;
286	CBaseCombatWeapon::GetProficiencyValues(void)&lt;br /&gt;
287	CBaseCombatWeapon::GetMaxAutoAimDeflection(void)&lt;br /&gt;
288	CBaseCombatWeapon::WeaponAutoAimScale(void)&lt;br /&gt;
289	CBaseCombatWeapon::StartSprinting(void)&lt;br /&gt;
290	CBaseCombatWeapon::StopSprinting(void)&lt;br /&gt;
291	CBaseCombatWeapon::GetDamage(float,int)&lt;br /&gt;
292	CBaseCombatWeapon::SetActivity(Activity,float)&lt;br /&gt;
293	CBaseCombatWeapon::AddViewKick(void)&lt;br /&gt;
294	CBaseCombatWeapon::GetDeathNoticeName(void)&lt;br /&gt;
295	CWeaponCSBase::OnPickedUp(CBaseCombatCharacter *)&lt;br /&gt;
296	CWeaponCSBase::AddViewmodelBob(CBaseViewModel *,Vector &amp;amp;,QAngle &amp;amp;)&lt;br /&gt;
297	CWeaponCSBase::CalcViewmodelBob(void)&lt;br /&gt;
298	CBaseCombatWeapon::GetControlPanelInfo(int,char  const*&amp;amp;)&lt;br /&gt;
299	CBaseCombatWeapon::GetControlPanelClassName(int,char  const*&amp;amp;)&lt;br /&gt;
300	CBaseCombatWeapon::ShouldShowControlPanels(void)&lt;br /&gt;
301	CBaseCombatWeapon::CanBePickedUpByNPCs(void)&lt;br /&gt;
302	CWeaponCSBase::GetViewModel(int)const&lt;br /&gt;
303	CBaseCombatWeapon::GetWorldModel(void)const&lt;br /&gt;
304	CBaseCombatWeapon::GetAnimPrefix(void)const&lt;br /&gt;
305	CBaseCombatWeapon::GetMaxClip1(void)const&lt;br /&gt;
306	CBaseCombatWeapon::GetMaxClip2(void)const&lt;br /&gt;
307	CBaseCombatWeapon::GetDefaultClip1(void)const&lt;br /&gt;
308	CBaseCombatWeapon::GetDefaultClip2(void)const&lt;br /&gt;
309	CBaseCombatWeapon::GetWeight(void)const&lt;br /&gt;
310	CBaseCombatWeapon::AllowsAutoSwitchTo(void)const&lt;br /&gt;
311	CBaseCombatWeapon::AllowsAutoSwitchFrom(void)const&lt;br /&gt;
312	CBaseCombatWeapon::GetWeaponFlags(void)const&lt;br /&gt;
313	CBaseCombatWeapon::GetSlot(void)const&lt;br /&gt;
314	CBaseCombatWeapon::GetPosition(void)const&lt;br /&gt;
315	CBaseCombatWeapon::GetName(void)const&lt;br /&gt;
316	CBaseCombatWeapon::GetPrintName(void)const&lt;br /&gt;
317	CBaseCombatWeapon::GetShootSound(int)const&lt;br /&gt;
318	CBaseCombatWeapon::GetRumbleEffect(void)const&lt;br /&gt;
319	CBaseCombatWeapon::UsesClipsForAmmo1(void)const&lt;br /&gt;
320	CBaseCombatWeapon::UsesClipsForAmmo2(void)const&lt;br /&gt;
321	CBaseCombatWeapon::GetEncryptionKey(void)&lt;br /&gt;
322	CBaseCombatWeapon::GetPrimaryAmmoType(void)const&lt;br /&gt;
323	CBaseCombatWeapon::GetSecondaryAmmoType(void)const&lt;br /&gt;
324	CBaseCombatWeapon::GetSpriteActive(void)const&lt;br /&gt;
325	CBaseCombatWeapon::GetSpriteInactive(void)const&lt;br /&gt;
326	CBaseCombatWeapon::GetSpriteAmmo(void)const&lt;br /&gt;
327	CBaseCombatWeapon::GetSpriteAmmo2(void)const&lt;br /&gt;
328	CBaseCombatWeapon::GetSpriteCrosshair(void)const&lt;br /&gt;
329	CBaseCombatWeapon::GetSpriteAutoaim(void)const&lt;br /&gt;
330	CBaseCombatWeapon::GetSpriteZoomedCrosshair(void)const&lt;br /&gt;
331	CBaseCombatWeapon::GetSpriteZoomedAutoaim(void)const&lt;br /&gt;
332	CBaseCombatWeapon::ActivityOverride(Activity,bool *)&lt;br /&gt;
333	CBaseCombatWeapon::ActivityList(void)&lt;br /&gt;
334	CBaseCombatWeapon::ActivityListCount(void)&lt;br /&gt;
335	CBaseCombatWeapon::FallInit(void)&lt;br /&gt;
336	CBaseCombatWeapon::FallThink(void)&lt;br /&gt;
337	CWeaponCSBase::Materialize(void)&lt;br /&gt;
338	CWeaponCSBase::CheckRespawn(void)&lt;br /&gt;
339	CBaseCombatWeapon::Delete(void)&lt;br /&gt;
340	CBaseCombatWeapon::Kill(void)&lt;br /&gt;
341	CBaseCombatWeapon::CapabilitiesGet(void)&lt;br /&gt;
342	CBaseCombatWeapon::WeaponLOSCondition(Vector  const&amp;amp;,Vector  const&amp;amp;,bool)&lt;br /&gt;
343	CBaseCombatWeapon::WeaponRangeAttack1Condition(float,float)&lt;br /&gt;
344	CBaseCombatWeapon::WeaponRangeAttack2Condition(float,float)&lt;br /&gt;
345	CBaseCombatWeapon::WeaponMeleeAttack1Condition(float,float)&lt;br /&gt;
346	CBaseCombatWeapon::WeaponMeleeAttack2Condition(float,float)&lt;br /&gt;
347	CBaseCombatWeapon::Operator_FrameUpdate(CBaseCombatCharacter *)&lt;br /&gt;
348	CBaseCombatWeapon::Operator_HandleAnimEvent(animevent_t *,CBaseCombatCharacter *)&lt;br /&gt;
349	CBaseCombatWeapon::Operator_ForceNPCFire(CBaseCombatCharacter *,bool)&lt;br /&gt;
350	CBaseCombatWeapon::CanLower(void)&lt;br /&gt;
351	CBaseCombatWeapon::Ready(void)&lt;br /&gt;
352	CBaseCombatWeapon::Lower(void)&lt;br /&gt;
353	CBaseCombatWeapon::HideThink(void)&lt;br /&gt;
354	CBaseCombatWeapon::CanReload(void)&lt;br /&gt;
355	CWeaponCSBase::BulletWasFired(Vector  const&amp;amp;,Vector  const&amp;amp;)&lt;br /&gt;
356	CWeaponCSBase::ShouldRemoveOnRoundRestart(void)&lt;br /&gt;
357	CWeaponCSBase::OnRoundRestart(void)&lt;br /&gt;
358	CWeaponCSBase::DefaultReload(int,int,int)&lt;br /&gt;
359	CWeaponCSBase::IsRemoveable(void)&lt;br /&gt;
360	CWeaponCSBase::IsAwp(void)const&lt;br /&gt;
361	CWeaponCSBase::GetMaxSpeed(void)const&lt;br /&gt;
362	CDEagle::GetWeaponID(void)const&lt;br /&gt;
363	CWeaponCSBase::IsSilenced(void)const&lt;br /&gt;
364	CWeaponCSBase::SetWeaponModelIndex(char  const*)&lt;br /&gt;
365	CWeaponCSBase::UpdateShieldState(void)&lt;br /&gt;
366	CWeaponCSBase::GetDeployActivity(void)&lt;br /&gt;
367	CWeaponCSBase::DefaultPistolReload(void)&lt;br /&gt;
368	CDEagle::UseDecrement(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CCSPlayer_Offset_List_(Counter-Strike:_Source)&amp;diff=7747</id>
		<title>CCSPlayer Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CCSPlayer_Offset_List_(Counter-Strike:_Source)&amp;diff=7747"/>
		<updated>2010-06-25T00:29:27Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* The List */  Forgot to update the date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For use when using [[Virtual Offsets (Source Mods)|virtual offsets]].&lt;br /&gt;
&lt;br /&gt;
This is the list of offsets I've been using. These are the &amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt; offsets. &amp;lt;b&amp;gt;Linux offsets are 1 greater.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
This comes from the symbol tables, so you'll have to look in the SDK for return types...or guess for the CSS specific functions near the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Last Updated 24 June 2010&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Auto reconstructed from vtable block @ 0x00A9D220&lt;br /&gt;
// from &amp;quot;server.so&amp;quot;, by ida_vtables.idc&lt;br /&gt;
0	CCSPlayer::~CCSPlayer()&lt;br /&gt;
1	CBaseEntity::SetRefEHandle(CBaseHandle  const&amp;amp;)&lt;br /&gt;
2	CBaseEntity::GetRefEHandle(void)const&lt;br /&gt;
3	CBaseEntity::GetCollideable(void)&lt;br /&gt;
4	CBaseEntity::GetNetworkable(void)&lt;br /&gt;
5	CBaseEntity::GetBaseEntity(void)&lt;br /&gt;
6	CBaseEntity::GetModelIndex(void)const&lt;br /&gt;
7	CBaseEntity::GetModelName(void)const&lt;br /&gt;
8	CBaseEntity::SetModelIndex(int)&lt;br /&gt;
9	CCSPlayer::GetServerClass(void)&lt;br /&gt;
10	CCSPlayer::YouForgotToImplementOrDeclareServerClass(void)&lt;br /&gt;
11	CCSPlayer::GetDataDescMap(void)&lt;br /&gt;
12	CBaseAnimating::TestCollision(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
13	CBaseAnimating::TestHitboxes(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
14	CBaseEntity::ComputeWorldSpaceSurroundingBox(Vector *,Vector *)&lt;br /&gt;
15	CBaseEntity::ShouldCollide(int,int)const&lt;br /&gt;
16	CBaseEntity::SetOwnerEntity(CBaseEntity*)&lt;br /&gt;
17	CBasePlayer::ShouldTransmit(CCheckTransmitInfo  const*)&lt;br /&gt;
18	CBasePlayer::UpdateTransmitState(void)&lt;br /&gt;
19	CBaseCombatCharacter::SetTransmit(CCheckTransmitInfo *,bool)&lt;br /&gt;
20	CBasePlayer::GetTracerType(void)&lt;br /&gt;
21	CCSPlayer::Spawn(void)&lt;br /&gt;
22	CCSPlayer::Precache(void)&lt;br /&gt;
23	CBasePlayer::SetModel(char  const*)&lt;br /&gt;
24	CBaseMultiplayerPlayer::PostConstructor(char  const*)&lt;br /&gt;
25	CBaseEntity::PostClientActive(void)&lt;br /&gt;
26	CBaseEntity::ParseMapData(CEntityMapData *)&lt;br /&gt;
27	CBaseEntity::KeyValue(char  const*,char  const*)&lt;br /&gt;
28	CBaseEntity::KeyValue(char  const*,float)&lt;br /&gt;
29	CBaseEntity::KeyValue(char  const*,Vector  const&amp;amp;)&lt;br /&gt;
30	CBaseEntity::GetKeyValue(char  const*,char *,int)&lt;br /&gt;
31	CBasePlayer::Activate(void)&lt;br /&gt;
32	CBaseEntity::SetParent(CBaseEntity*,int)&lt;br /&gt;
33	CBasePlayer::ObjectCaps(void)&lt;br /&gt;
34	CBaseEntity::AcceptInput(char  const*,CBaseEntity*,CBaseEntity*,variant_t,int)&lt;br /&gt;
35	CBaseAnimating::GetInputDispatchEffectPosition(char  const*,Vector &amp;amp;,QAngle &amp;amp;)&lt;br /&gt;
36	CBasePlayer::DrawDebugGeometryOverlays(void)&lt;br /&gt;
37	CBaseAnimating::DrawDebugTextOverlays(void)&lt;br /&gt;
38	CBasePlayer::Save(ISave &amp;amp;)&lt;br /&gt;
39	CBasePlayer::Restore(IRestore &amp;amp;)&lt;br /&gt;
40	CBasePlayer::ShouldSavePhysics(void)&lt;br /&gt;
41	CBaseEntity::OnSave(IEntitySaveUtils *)&lt;br /&gt;
42	CBasePlayer::OnRestore(void)&lt;br /&gt;
43	CBasePlayer::RequiredEdictIndex(void)&lt;br /&gt;
44	CBaseEntity::MoveDone(void)&lt;br /&gt;
45	CBaseEntity::Think(void)&lt;br /&gt;
46	CBasePlayer::NetworkStateChanged_m_nNextThinkTick(void)&lt;br /&gt;
47	CBasePlayer::NetworkStateChanged_m_nNextThinkTick(void *)&lt;br /&gt;
48	CBaseAnimating::GetBaseAnimating(void)&lt;br /&gt;
49	CBaseMultiplayerPlayer::GetResponseSystem(void)&lt;br /&gt;
50	CAI_ExpresserHost&amp;lt;CBasePlayer&amp;gt;::DispatchResponse(char  const*)&lt;br /&gt;
51	CBasePlayer::Classify(void)&lt;br /&gt;
52	CBaseEntity::DeathNotice(CBaseEntity*)&lt;br /&gt;
53	CBaseEntity::ShouldAttractAutoAim(CBaseEntity*)&lt;br /&gt;
54	CBaseEntity::GetAutoAimRadius(void)&lt;br /&gt;
55	CBaseEntity::GetAutoAimCenter(void)&lt;br /&gt;
56	CBaseEntity::GetBeamTraceFilter(void)&lt;br /&gt;
57	CBaseEntity::PassesDamageFilter(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
58	CCSPlayer::TraceAttack(CTakeDamageInfo  const&amp;amp;,Vector  const&amp;amp;,CGameTrace *)&lt;br /&gt;
59	CBaseEntity::CanBeHitByMeleeAttack(CBaseEntity*)&lt;br /&gt;
60	CCSPlayer::OnTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
61	CBaseEntity::AdjustDamageDirection(CTakeDamageInfo  const&amp;amp;,Vector &amp;amp;,CBaseEntity*)&lt;br /&gt;
62	CBasePlayer::TakeHealth(float,int)&lt;br /&gt;
63	CBaseEntity::IsAlive(void)&lt;br /&gt;
64	CCSPlayer::Event_Killed(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
65	CCSPlayer::Event_KilledOther(CBaseEntity *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
66	CBaseCombatCharacter::BloodColor(void)&lt;br /&gt;
67	CBaseEntity::IsTriggered(CBaseEntity*)&lt;br /&gt;
68	CBaseEntity::IsNPC(void)const&lt;br /&gt;
69	CBaseCombatCharacter::MyCombatCharacterPointer(void)&lt;br /&gt;
70	CBaseEntity::MyNextBotPointer(void)&lt;br /&gt;
71	CBaseEntity::GetDelay(void)&lt;br /&gt;
72	CBaseEntity::IsMoving(void)&lt;br /&gt;
73	CBaseEntity::DamageDecal(int,int)&lt;br /&gt;
74	CBaseEntity::DecalTrace(CGameTrace *,char  const*)&lt;br /&gt;
75	CBaseEntity::ImpactTrace(CGameTrace *,int,char *)&lt;br /&gt;
76	CBaseEntity::OnControls(CBaseEntity*)&lt;br /&gt;
77	CBaseEntity::HasTarget(string_t)&lt;br /&gt;
78	CBasePlayer::IsPlayer(void)const&lt;br /&gt;
79	CBasePlayer::IsNetClient(void)const&lt;br /&gt;
80	CBaseEntity::IsTemplate(void)&lt;br /&gt;
81	CBaseEntity::IsBaseObject(void)const&lt;br /&gt;
82	CBaseEntity::IsBaseTrain(void)const&lt;br /&gt;
83	CBaseEntity::IsBaseCombatWeapon(void)const&lt;br /&gt;
84	CBaseEntity::IsWearable(void)const&lt;br /&gt;
85	CBaseEntity::MyCombatWeaponPointer(void)&lt;br /&gt;
86	CBaseEntity::GetServerVehicle(void)&lt;br /&gt;
87	CBaseEntity::IsViewable(void)&lt;br /&gt;
88	CCSPlayer::ChangeTeam(int)&lt;br /&gt;
89	CBaseEntity::OnEntityEvent(EntityEvent_t,void *)&lt;br /&gt;
90	CBaseEntity::CanStandOn(CBaseEntity*)const&lt;br /&gt;
91	CBaseEntity::CanStandOn(edict_t *)const&lt;br /&gt;
92	CBaseEntity::GetEnemy(void)&lt;br /&gt;
93	CBaseEntity::GetEnemy(void)const&lt;br /&gt;
94	CBaseEntity::Use(CBaseEntity*,CBaseEntity*,USE_TYPE,float)&lt;br /&gt;
95	CBaseEntity::StartTouch(CBaseEntity*)&lt;br /&gt;
96	CBasePlayer::Touch(CBaseEntity *)&lt;br /&gt;
97	CBaseEntity::EndTouch(CBaseEntity*)&lt;br /&gt;
98	CBaseEntity::StartBlocked(CBaseEntity*)&lt;br /&gt;
99	CBaseEntity::Blocked(CBaseEntity*)&lt;br /&gt;
100	CBaseEntity::EndBlocked(void)&lt;br /&gt;
101	CBasePlayer::PhysicsSimulate(void)&lt;br /&gt;
102	CBasePlayer::UpdateOnRemove(void)&lt;br /&gt;
103	CBaseEntity::StopLoopingSounds(void)&lt;br /&gt;
104	CBaseEntity::SUB_AllowedToFade(void)&lt;br /&gt;
105	CBaseFlex::Teleport(Vector  const*,QAngle  const*,Vector  const*)&lt;br /&gt;
106	CBaseEntity::NotifySystemEvent(CBaseEntity*,notify_system_event_t,notify_system_event_params_t  const&amp;amp;)&lt;br /&gt;
107	CBasePlayer::MakeTracer(Vector  const&amp;amp;,CGameTrace  const&amp;amp;,int)&lt;br /&gt;
108	CBaseEntity::GetTracerAttachment(void)&lt;br /&gt;
109	CBaseEntity::FireBullets(FireBulletsInfo_t  const&amp;amp;)&lt;br /&gt;
110	CBasePlayer::DoImpactEffect(CGameTrace &amp;amp;,int)&lt;br /&gt;
111	CBaseEntity::ModifyFireBulletsDamage(CTakeDamageInfo *)&lt;br /&gt;
112	CBaseEntity::Respawn(void)&lt;br /&gt;
113	CBaseEntity::IsLockedByMaster(void)&lt;br /&gt;
114	CBaseEntity::GetMaxHealth(void)const&lt;br /&gt;
115	CBaseMultiplayerPlayer::ModifyOrAppendCriteria(AI_CriteriaSet &amp;amp;)&lt;br /&gt;
116	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void)&lt;br /&gt;
117	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void *)&lt;br /&gt;
118	CBasePlayer::NetworkStateChanged_m_iHealth(void)&lt;br /&gt;
119	CBasePlayer::NetworkStateChanged_m_iHealth(void *)&lt;br /&gt;
120	CBasePlayer::NetworkStateChanged_m_lifeState(void)&lt;br /&gt;
121	CBasePlayer::NetworkStateChanged_m_lifeState(void *)&lt;br /&gt;
122	CBaseEntity::NetworkStateChanged_m_takedamage(void)&lt;br /&gt;
123	CBaseEntity::NetworkStateChanged_m_takedamage(void *)&lt;br /&gt;
124	CBaseEntity::GetDamageType(void)const&lt;br /&gt;
125	CBaseEntity::GetDamage(void)&lt;br /&gt;
126	CBaseEntity::SetDamage(float)&lt;br /&gt;
127	CBasePlayer::EyePosition(void)&lt;br /&gt;
128	CBasePlayer::EyeAngles(void)&lt;br /&gt;
129	CBasePlayer::LocalEyeAngles(void)&lt;br /&gt;
130	CBaseEntity::EarPosition(void)&lt;br /&gt;
131	CBasePlayer::BodyTarget(Vector  const&amp;amp;,bool)&lt;br /&gt;
132	CBaseEntity::HeadTarget(Vector  const&amp;amp;)&lt;br /&gt;
133	CBaseEntity::GetVectors(Vector *,Vector *,Vector *)const&lt;br /&gt;
134	CBaseEntity::GetViewOffset(void)const&lt;br /&gt;
135	CBaseEntity::SetViewOffset(Vector  const&amp;amp;)&lt;br /&gt;
136	CBasePlayer::GetSmoothedVelocity(void)&lt;br /&gt;
137	CBaseAnimating::GetVelocity(Vector *,Vector *)&lt;br /&gt;
138	CBaseCombatCharacter::FVisible(CBaseEntity *,int,CBaseEntity **)&lt;br /&gt;
139	CBaseCombatCharacter::FVisible(Vector  const&amp;amp;,int,CBaseEntity **)&lt;br /&gt;
140	CBaseEntity::CanBeSeenBy(CAI_BaseNPC *)&lt;br /&gt;
141	CBaseEntity::GetAttackDamageScale(CBaseEntity*)&lt;br /&gt;
142	CBaseEntity::GetReceivedDamageScale(CBaseEntity*)&lt;br /&gt;
143	CBaseEntity::GetGroundVelocityToApply(Vector &amp;amp;)&lt;br /&gt;
144	CBaseEntity::PhysicsSplash(Vector  const&amp;amp;,Vector  const&amp;amp;,float,float)&lt;br /&gt;
145	CBaseEntity::Splash(void)&lt;br /&gt;
146	CBaseEntity::WorldSpaceCenter(void)const&lt;br /&gt;
147	CBaseEntity::GetSoundEmissionOrigin(void)const&lt;br /&gt;
148	CBaseEntity::IsDeflectable(void)&lt;br /&gt;
149	CBaseEntity::Deflected(CBaseEntity*,Vector &amp;amp;)&lt;br /&gt;
150	CBaseEntity::CreateVPhysics(void)&lt;br /&gt;
151	CBaseEntity::ForceVPhysicsCollide(CBaseEntity*)&lt;br /&gt;
152	CBasePlayer::VPhysicsDestroyObject(void)&lt;br /&gt;
153	CBasePlayer::VPhysicsUpdate(IPhysicsObject *)&lt;br /&gt;
154	CBaseEntity::VPhysicsTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
155	CBaseCombatCharacter::VPhysicsShadowCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
156	CCSPlayer::VPhysicsShadowUpdate(IPhysicsObject *)&lt;br /&gt;
157	CBasePlayer::VPhysicsCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
158	CBaseEntity::VPhysicsFriction(IPhysicsObject *,float,int,int)&lt;br /&gt;
159	CBaseEntity::UpdatePhysicsShadowToCurrentPosition(float)&lt;br /&gt;
160	CBaseEntity::VPhysicsGetObjectList(IPhysicsObject **,int)&lt;br /&gt;
161	CBaseEntity::VPhysicsIsFlesh(void)&lt;br /&gt;
162	CBaseEntity::HasPhysicsAttacker(float)&lt;br /&gt;
163	CBasePlayer::PhysicsSolidMaskForEntity(void)const&lt;br /&gt;
164	CBaseEntity::ResolveFlyCollisionCustom(CGameTrace &amp;amp;,Vector &amp;amp;)&lt;br /&gt;
165	CBaseEntity::PerformCustomPhysics(Vector *,Vector *,QAngle *,QAngle *)&lt;br /&gt;
166	CBaseAnimating::GetStepOrigin(void)const&lt;br /&gt;
167	CBaseAnimating::GetStepAngles(void)const&lt;br /&gt;
168	CBaseEntity::ShouldDrawWaterImpacts(void)&lt;br /&gt;
169	CBasePlayer::NetworkStateChanged_m_fFlags(void)&lt;br /&gt;
170	CBasePlayer::NetworkStateChanged_m_fFlags(void *)&lt;br /&gt;
171	CBasePlayer::NetworkStateChanged_m_nWaterLevel(void)&lt;br /&gt;
172	CBasePlayer::NetworkStateChanged_m_nWaterLevel(void *)&lt;br /&gt;
173	CBasePlayer::NetworkStateChanged_m_hGroundEntity(void)&lt;br /&gt;
174	CBasePlayer::NetworkStateChanged_m_hGroundEntity(void *)&lt;br /&gt;
175	CBasePlayer::NetworkStateChanged_m_vecBaseVelocity(void)&lt;br /&gt;
176	CBasePlayer::NetworkStateChanged_m_vecBaseVelocity(void *)&lt;br /&gt;
177	CBasePlayer::NetworkStateChanged_m_flFriction(void)&lt;br /&gt;
178	CBasePlayer::NetworkStateChanged_m_flFriction(void *)&lt;br /&gt;
179	CBasePlayer::NetworkStateChanged_m_vecVelocity(void)&lt;br /&gt;
180	CBasePlayer::NetworkStateChanged_m_vecVelocity(void *)&lt;br /&gt;
181	CBasePlayer::NetworkStateChanged_m_vecViewOffset(void)&lt;br /&gt;
182	CBasePlayer::NetworkStateChanged_m_vecViewOffset(void *)&lt;br /&gt;
183	CBaseAnimating::GetIdealSpeed(void)const&lt;br /&gt;
184	CBaseAnimating::GetIdealAccel(void)const&lt;br /&gt;
185	CBaseAnimatingOverlay::StudioFrameAdvance(void)&lt;br /&gt;
186	CBaseAnimating::IsActivityFinished(void)&lt;br /&gt;
187	CBaseAnimating::GetSequenceGroundSpeed(CStudioHdr *,int)&lt;br /&gt;
188	CBaseAnimating::ClampRagdollForce(Vector  const&amp;amp;,Vector*)&lt;br /&gt;
189	CBaseAnimating::BecomeRagdollOnClient(Vector  const&amp;amp;)&lt;br /&gt;
190	CBaseAnimating::IsRagdoll(void)&lt;br /&gt;
191	CBaseAnimating::CanBecomeRagdoll(void)&lt;br /&gt;
192	CBaseAnimatingOverlay::GetSkeleton(CStudioHdr *,Vector *,Quaternion *,int)&lt;br /&gt;
193	CBaseAnimating::GetBoneTransform(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
194	CBaseAnimating::SetupBones(matrix3x4_t *,int)&lt;br /&gt;
195	CBaseAnimating::CalculateIKLocks(float)&lt;br /&gt;
196	CBaseAnimatingOverlay::DispatchAnimEvents(CBaseAnimating *)&lt;br /&gt;
197	CCSPlayer::HandleAnimEvent(animevent_t *)&lt;br /&gt;
198	CBaseAnimating::PopulatePoseParameters(void)&lt;br /&gt;
199	CBaseAnimating::GetAttachment(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
200	CBaseAnimating::InitBoneControllers(void)&lt;br /&gt;
201	CBaseAnimating::GetGroundSpeedVelocity(void)&lt;br /&gt;
202	CBaseAnimating::Ignite(float,bool,float,bool)&lt;br /&gt;
203	CBaseAnimating::IgniteLifetime(float)&lt;br /&gt;
204	CBaseAnimating::IgniteNumHitboxFires(int)&lt;br /&gt;
205	CBaseAnimating::IgniteHitboxFireScale(float)&lt;br /&gt;
206	CBaseAnimating::Extinguish(void)&lt;br /&gt;
207	CBaseCombatCharacter::SetLightingOriginRelative(CBaseEntity *)&lt;br /&gt;
208	CBaseAnimating::SetLightingOrigin(CBaseEntity *)&lt;br /&gt;
209	CBaseFlex::SetViewtarget(Vector  const&amp;amp;)&lt;br /&gt;
210	CBaseFlex::StartSceneEvent(CSceneEventInfo *,CChoreoScene *,CChoreoEvent *,CChoreoActor *,CBaseEntity *)&lt;br /&gt;
211	CBaseFlex::ProcessSceneEvents(void)&lt;br /&gt;
212	CBaseFlex::ProcessSceneEvent(CSceneEventInfo *,CChoreoScene *,CChoreoEvent *)&lt;br /&gt;
213	CBaseFlex::ClearSceneEvent(CSceneEventInfo *,bool,bool)&lt;br /&gt;
214	CBaseFlex::CheckSceneEventCompletion(CSceneEventInfo *,float,CChoreoScene *,CChoreoEvent *)&lt;br /&gt;
215	CBaseFlex::PlayScene(char  const*,float,AI_Response *,IRecipientFilter *)&lt;br /&gt;
216	CBaseFlex::PlayAutoGeneratedSoundScene(char  const*)&lt;br /&gt;
217	CBasePlayer::GetPhysicsImpactDamageTable(void)&lt;br /&gt;
218	CBaseCombatCharacter::FInViewCone(CBaseEntity *)&lt;br /&gt;
219	CBaseCombatCharacter::FInViewCone(Vector  const&amp;amp;)&lt;br /&gt;
220	CBaseCombatCharacter::FInAimCone(CBaseEntity *)&lt;br /&gt;
221	CBaseCombatCharacter::FInAimCone(Vector  const&amp;amp;)&lt;br /&gt;
222	CBaseCombatCharacter::ShouldShootMissTarget(CBaseCombatCharacter*)&lt;br /&gt;
223	CBaseCombatCharacter::FindMissTarget(void)&lt;br /&gt;
224	CBaseCombatCharacter::HandleInteraction(int,void *,CBaseCombatCharacter*)&lt;br /&gt;
225	CBasePlayer::BodyAngles(void)&lt;br /&gt;
226	CBaseCombatCharacter::BodyDirection2D(void)&lt;br /&gt;
227	CBaseCombatCharacter::BodyDirection3D(void)&lt;br /&gt;
228	CBaseCombatCharacter::HeadDirection2D(void)&lt;br /&gt;
229	CBaseCombatCharacter::HeadDirection3D(void)&lt;br /&gt;
230	CBaseCombatCharacter::EyeDirection2D(void)&lt;br /&gt;
231	CBaseCombatCharacter::EyeDirection3D(void)&lt;br /&gt;
232	CBaseCombatCharacter::IsHiddenByFog(Vector  const&amp;amp;)const&lt;br /&gt;
233	CBaseCombatCharacter::IsHiddenByFog(CBaseEntity *)const&lt;br /&gt;
234	CBaseCombatCharacter::IsHiddenByFog(float)const&lt;br /&gt;
235	CBaseCombatCharacter::GetFogObscuredRatio(Vector  const&amp;amp;)const&lt;br /&gt;
236	CBaseCombatCharacter::GetFogObscuredRatio(CBaseEntity *)const&lt;br /&gt;
237	CBaseCombatCharacter::GetFogObscuredRatio(float)const&lt;br /&gt;
238	CBaseCombatCharacter::IsLookingTowards(CBaseEntity  const*,float)const&lt;br /&gt;
239	CBaseCombatCharacter::IsLookingTowards(Vector  const&amp;amp;,float)const&lt;br /&gt;
240	CBaseCombatCharacter::IsInFieldOfView(CBaseEntity *)const&lt;br /&gt;
241	CBaseCombatCharacter::IsInFieldOfView(Vector  const&amp;amp;)const&lt;br /&gt;
242	CBaseCombatCharacter::IsLineOfSightClear(CBaseEntity *,CBaseCombatCharacter::LineOfSightCheckType)const&lt;br /&gt;
243	CBaseCombatCharacter::IsLineOfSightClear(Vector  const&amp;amp;,CBaseCombatCharacter::LineOfSightCheckType,CBaseEntity *)const&lt;br /&gt;
244	CBaseCombatCharacter::GiveAmmo(int,int,bool)&lt;br /&gt;
245	CBaseCombatCharacter::NPC_TranslateActivity(Activity)&lt;br /&gt;
246	CBaseCombatCharacter::Weapon_TranslateActivity(Activity,bool *)&lt;br /&gt;
247	CBaseCombatCharacter::Weapon_FrameUpdate(void)&lt;br /&gt;
248	CBaseCombatCharacter::Weapon_HandleAnimEvent(animevent_t *)&lt;br /&gt;
249	CCSPlayer::Weapon_CanUse(CBaseCombatWeapon *)&lt;br /&gt;
250	CCSPlayer::Weapon_Equip(CBaseCombatWeapon *)&lt;br /&gt;
251	CBaseCombatCharacter::Weapon_EquipAmmoOnly(CBaseCombatWeapon *)&lt;br /&gt;
252	CBasePlayer::Weapon_Drop(CBaseCombatWeapon *,Vector  const*,Vector  const*)&lt;br /&gt;
253	CCSPlayer::Weapon_Switch(CBaseCombatWeapon *,int)&lt;br /&gt;
254	CBasePlayer::Weapon_ShootPosition(void)&lt;br /&gt;
255	CCSPlayer::Weapon_CanSwitchTo(CBaseCombatWeapon *)&lt;br /&gt;
256	CBaseCombatCharacter::Weapon_SlotOccupied(CBaseCombatWeapon *)&lt;br /&gt;
257	CBaseCombatCharacter::Weapon_GetSlot(int)const&lt;br /&gt;
258	CBaseCombatCharacter::AddPlayerItem(CBaseCombatWeapon *)&lt;br /&gt;
259	CBasePlayer::RemovePlayerItem(CBaseCombatWeapon *)&lt;br /&gt;
260	CBaseCombatCharacter::CanBecomeServerRagdoll(void)&lt;br /&gt;
261	CCSPlayer::OnTakeDamage_Alive(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
262	CBaseCombatCharacter::OnTakeDamage_Dying(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
263	CBaseCombatCharacter::OnTakeDamage_Dead(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
264	CBaseCombatCharacter::GetAliveDuration(void)const&lt;br /&gt;
265	CBaseCombatCharacter::OnFriendDamaged(CBaseCombatCharacter*,CBaseEntity *)&lt;br /&gt;
266	CBaseCombatCharacter::NotifyFriendsOfDamage(CBaseEntity *)&lt;br /&gt;
267	CBaseCombatCharacter::HasEverBeenInjured(int)const&lt;br /&gt;
268	CBaseCombatCharacter::GetTimeSinceLastInjury(int)const&lt;br /&gt;
269	CBaseCombatCharacter::OnPlayerKilledOther(CBaseEntity *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
270	CBaseCombatCharacter::GetDeathActivity(void)&lt;br /&gt;
271	CBaseCombatCharacter::CorpseGib(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
272	CBaseCombatCharacter::CorpseFade(void)&lt;br /&gt;
273	CBaseCombatCharacter::HasHumanGibs(void)&lt;br /&gt;
274	CBaseCombatCharacter::HasAlienGibs(void)&lt;br /&gt;
275	CBaseCombatCharacter::ShouldGib(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
276	CBaseCombatCharacter::OnKilledNPC(CBaseCombatCharacter*)&lt;br /&gt;
277	CBaseCombatCharacter::Event_Gibbed(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
278	CBasePlayer::Event_Dying(void)&lt;br /&gt;
279	CBaseCombatCharacter::BecomeRagdoll(CTakeDamageInfo  const&amp;amp;,Vector  const&amp;amp;)&lt;br /&gt;
280	CBaseCombatCharacter::FixupBurningServerRagdoll(CBaseEntity *)&lt;br /&gt;
281	CBaseCombatCharacter::BecomeRagdollBoogie(CBaseEntity *,Vector  const&amp;amp;,float,int)&lt;br /&gt;
282	CBaseCombatCharacter::CheckTraceHullAttack(float,Vector  const&amp;amp;,Vector  const&amp;amp;,int,int,float,bool)&lt;br /&gt;
283	CBaseCombatCharacter::CheckTraceHullAttack(Vector  const&amp;amp;,Vector  const&amp;amp;,Vector  const&amp;amp;,Vector  const&amp;amp;,int,int,float,bool)&lt;br /&gt;
284	CBaseCombatCharacter::PushawayTouch(CBaseEntity *)&lt;br /&gt;
285	CBaseCombatCharacter::IRelationType(CBaseEntity *)&lt;br /&gt;
286	CBaseCombatCharacter::IRelationPriority(CBaseEntity *)&lt;br /&gt;
287	CBasePlayer::IsInAVehicle(void)const&lt;br /&gt;
288	CBasePlayer::GetVehicle(void)&lt;br /&gt;
289	CBasePlayer::GetVehicleEntity(void)&lt;br /&gt;
290	CBaseCombatCharacter::ExitVehicle(void)&lt;br /&gt;
291	CBaseCombatCharacter::RemoveAllWeapons(void)&lt;br /&gt;
292	CBaseCombatCharacter::CalcWeaponProficiency(CBaseCombatWeapon *)&lt;br /&gt;
293	CBaseCombatCharacter::GetAttackSpread(CBaseCombatWeapon *,CBaseEntity *)&lt;br /&gt;
294	CBaseCombatCharacter::GetSpreadBias(CBaseCombatWeapon *,CBaseEntity *)&lt;br /&gt;
295	CBasePlayer::DoMuzzleFlash(void)&lt;br /&gt;
296	CBaseCombatCharacter::AddEntityRelationship(CBaseEntity *,Disposition_t,int)&lt;br /&gt;
297	CBaseCombatCharacter::RemoveEntityRelationship(CBaseEntity *)&lt;br /&gt;
298	CBaseCombatCharacter::AddClassRelationship(Class_T,Disposition_t,int)&lt;br /&gt;
299	CBaseCombatCharacter::OnChangeActiveWeapon(CBaseCombatWeapon *,CBaseCombatWeapon *)&lt;br /&gt;
300	CBaseCombatCharacter::GetLastKnownArea(void)const&lt;br /&gt;
301	CBaseCombatCharacter::IsAreaTraversable(CNavArea  const*)const&lt;br /&gt;
302	CBaseCombatCharacter::ClearLastKnownArea(void)&lt;br /&gt;
303	CBaseCombatCharacter::UpdateLastKnownArea(void)&lt;br /&gt;
304	CBaseCombatCharacter::OnNavAreaChanged(CNavArea *,CNavArea *)&lt;br /&gt;
305	CBaseCombatCharacter::OnNavAreaRemoved(CNavArea *)&lt;br /&gt;
306	CBaseCombatCharacter::OnPursuedBy(INextBot *)&lt;br /&gt;
307	CBasePlayer::NetworkStateChanged_m_iAmmo(void)&lt;br /&gt;
308	CBasePlayer::NetworkStateChanged_m_iAmmo(void *)&lt;br /&gt;
309	CCSPlayer::CreateViewModel(int)&lt;br /&gt;
310	CCSPlayer::SetupVisibility(CBaseEntity *,unsigned char *,int)&lt;br /&gt;
311	CCSPlayer::WantsLagCompensationOnEntity(CBasePlayer  const*,CUserCmd  const*,CBitVec&amp;lt;2048&amp;gt;  const*)const&lt;br /&gt;
312	CBasePlayer::SharedSpawn(void)&lt;br /&gt;
313	CBasePlayer::ForceRespawn(void)&lt;br /&gt;
314	CCSPlayer::InitialSpawn(void)&lt;br /&gt;
315	CBasePlayer::InitHUD(void)&lt;br /&gt;
316	CCSPlayer::ShowViewPortPanel(char  const*,bool,KeyValues *)&lt;br /&gt;
317	CCSPlayer::PlayerDeathThink(void)&lt;br /&gt;
318	CBasePlayer::Jump(void)&lt;br /&gt;
319	CBasePlayer::Duck(void)&lt;br /&gt;
320	CCSPlayer::PreThink(void)&lt;br /&gt;
321	CCSPlayer::PostThink(void)&lt;br /&gt;
322	CBasePlayer::DamageEffect(float,int)&lt;br /&gt;
323	CCSPlayer::OnDamagedByExplosion(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
324	CBasePlayer::ShouldFadeOnDeath(void)&lt;br /&gt;
325	CBasePlayer::IsFakeClient(void)const&lt;br /&gt;
326	CBasePlayer::GetPlayerMins(void)const&lt;br /&gt;
327	CBasePlayer::GetPlayerMaxs(void)const&lt;br /&gt;
328	CBasePlayer::CalcRoll(QAngle  const&amp;amp;,Vector  const&amp;amp;,float,float)&lt;br /&gt;
329	CBasePlayer::PackDeadPlayerItems(void)&lt;br /&gt;
330	CCSPlayer::RemoveAllItems(bool)&lt;br /&gt;
331	CBasePlayer::IsRunning(void)const&lt;br /&gt;
332	CBasePlayer::Weapon_SetLast(CBaseCombatWeapon *)&lt;br /&gt;
333	CBasePlayer::Weapon_ShouldSetLast(CBaseCombatWeapon *,CBaseCombatWeapon *)&lt;br /&gt;
334	CBasePlayer::Weapon_ShouldSelectItem(CBaseCombatWeapon *)&lt;br /&gt;
335	CBasePlayer::OnMyWeaponFired(CBaseCombatWeapon *)&lt;br /&gt;
336	CBasePlayer::GetTimeSinceWeaponFired(void)const&lt;br /&gt;
337	CBasePlayer::IsFiringWeapon(void)const&lt;br /&gt;
338	CBasePlayer::UpdateClientData(void)&lt;br /&gt;
339	CBasePlayer::ExitLadder(void)&lt;br /&gt;
340	CBasePlayer::GetLadderSurface(Vector  const&amp;amp;)&lt;br /&gt;
341	CBasePlayer::SetFlashlightEnabled(bool)&lt;br /&gt;
342	CCSPlayer::FlashlightIsOn(void)&lt;br /&gt;
343	CCSPlayer::FlashlightTurnOn(void)&lt;br /&gt;
344	CCSPlayer::FlashlightTurnOff(void)&lt;br /&gt;
345	CBasePlayer::IsIlluminatedByFlashlight(CBaseEntity *,float *)&lt;br /&gt;
346	CCSPlayer::UpdateStepSound(surfacedata_t *,Vector  const&amp;amp;,Vector  const&amp;amp;)&lt;br /&gt;
347	CCSPlayer::PlayStepSound(Vector &amp;amp;,surfacedata_t *,float,bool)&lt;br /&gt;
348	CBasePlayer::GetStepSoundVelocities(float *,float *)&lt;br /&gt;
349	CBasePlayer::SetStepSoundTime(stepsoundtimes_t,bool)&lt;br /&gt;
350	CCSPlayer::DeathSound(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
351	CCSPlayer::SetAnimation(PLAYER_ANIM)&lt;br /&gt;
352	CBasePlayer::ImpulseCommands(void)&lt;br /&gt;
353	CCSPlayer::CheatImpulseCommands(int)&lt;br /&gt;
354	CCSPlayer::ClientCommand(CCommand  const&amp;amp;)&lt;br /&gt;
355	CBasePlayer::StartObserverMode(int)&lt;br /&gt;
356	CBasePlayer::StopObserverMode(void)&lt;br /&gt;
357	CBasePlayer::ModeWantsSpectatorGUI(int)&lt;br /&gt;
358	CBasePlayer::SetObserverMode(int)&lt;br /&gt;
359	CBasePlayer::GetObserverMode(void)&lt;br /&gt;
360	CBasePlayer::SetObserverTarget(CBaseEntity *)&lt;br /&gt;
361	CBasePlayer::ObserverUse(bool)&lt;br /&gt;
362	CBasePlayer::GetObserverTarget(void)&lt;br /&gt;
363	CBasePlayer::FindNextObserverTarget(bool)&lt;br /&gt;
364	CCSPlayer::GetNextObserverSearchStartPoint(bool)&lt;br /&gt;
365	CBasePlayer::IsValidObserverTarget(CBaseEntity *)&lt;br /&gt;
366	CBasePlayer::CheckObserverSettings(void)&lt;br /&gt;
367	CBasePlayer::JumptoPosition(Vector  const&amp;amp;,QAngle  const&amp;amp;)&lt;br /&gt;
368	CBasePlayer::ForceObserverMode(int)&lt;br /&gt;
369	CBasePlayer::ResetObserverMode(void)&lt;br /&gt;
370	CBasePlayer::ValidateCurrentObserverTarget(void)&lt;br /&gt;
371	CCSPlayer::AttemptToExitFreezeCam(void)&lt;br /&gt;
372	CCSPlayer::StartReplayMode(float,float,int)&lt;br /&gt;
373	CCSPlayer::StopReplayMode(void)&lt;br /&gt;
374	CBasePlayer::GetDelayTicks(void)&lt;br /&gt;
375	CBasePlayer::GetReplayEntity(void)&lt;br /&gt;
376	CBasePlayer::CreateCorpse(void)&lt;br /&gt;
377	CCSPlayer::EntSelectSpawnPoint(void)&lt;br /&gt;
378	CBasePlayer::GetInVehicle(IServerVehicle *,int)&lt;br /&gt;
379	CBasePlayer::LeaveVehicle(Vector  const&amp;amp;,QAngle  const&amp;amp;)&lt;br /&gt;
380	CBasePlayer::OnVehicleStart(void)&lt;br /&gt;
381	CBasePlayer::OnVehicleEnd(Vector &amp;amp;)&lt;br /&gt;
382	CCSPlayer::BumpWeapon(CBaseCombatWeapon *)&lt;br /&gt;
383	CBasePlayer::SelectLastItem(void)&lt;br /&gt;
384	CBasePlayer::SelectItem(char  const*,int)&lt;br /&gt;
385	CBasePlayer::ItemPostFrame(void)&lt;br /&gt;
386	CCSPlayer::GiveNamedItem(char  const*,int)&lt;br /&gt;
387	CBasePlayer::CheckTrainUpdate(void)&lt;br /&gt;
388	CBasePlayer::SetPlayerUnderwater(bool)&lt;br /&gt;
389	CBasePlayer::CanBreatheUnderwater(void)const&lt;br /&gt;
390	CBasePlayer::PlayerUse(void)&lt;br /&gt;
391	CCSPlayer::PlayUseDenySound(void)&lt;br /&gt;
392	CCSPlayer::FindUseEntity(void)&lt;br /&gt;
393	CCSPlayer::IsUseableEntity(CBaseEntity *,unsigned int)&lt;br /&gt;
394	CBasePlayer::PickupObject(CBaseEntity *,bool)&lt;br /&gt;
395	CBasePlayer::ForceDropOfCarriedPhysObjects(CBaseEntity *)&lt;br /&gt;
396	CBasePlayer::GetHeldObjectMass(IPhysicsObject *)&lt;br /&gt;
397	CBasePlayer::UpdateGeigerCounter(void)&lt;br /&gt;
398	CBasePlayer::GetAutoaimVector(float)&lt;br /&gt;
399	CBasePlayer::GetAutoaimVector(float,float)&lt;br /&gt;
400	CBasePlayer::GetAutoaimVector(autoaim_params_t &amp;amp;)&lt;br /&gt;
401	CBasePlayer::ShouldAutoaim(void)&lt;br /&gt;
402	CBasePlayer::ForceClientDllUpdate(void)&lt;br /&gt;
403	CBasePlayer::ProcessUsercmds(CUserCmd *,int,int,int,bool)&lt;br /&gt;
404	CCSPlayer::PlayerRunCommand(CUserCmd *,IMoveHelper *)&lt;br /&gt;
405	CBasePlayer::ChangeTeam(int,bool,bool)&lt;br /&gt;
406	CBaseMultiplayerPlayer::CanHearAndReadChatFrom(CBasePlayer *)&lt;br /&gt;
407	CBaseMultiplayerPlayer::CanSpeak(void)&lt;br /&gt;
408	CCSPlayer::ModifyOrAppendPlayerCriteria(AI_CriteriaSet &amp;amp;)&lt;br /&gt;
409	CBasePlayer::CheckChatText(char *,int)&lt;br /&gt;
410	CCSPlayer::CreateRagdollEntity(void)&lt;br /&gt;
411	CBasePlayer::ShouldAnnounceAchievement(void)&lt;br /&gt;
412	CBasePlayer::EquipWearable(CWearableItem *)&lt;br /&gt;
413	CBasePlayer::RemoveWearable(CWearableItem *)&lt;br /&gt;
414	CBasePlayer::IsFollowingPhysics(void)&lt;br /&gt;
415	CCSPlayer::InitVCollision(Vector  const&amp;amp;,Vector  const&amp;amp;)&lt;br /&gt;
416	CBasePlayer::UpdatePhysicsShadowToCurrentPosition(void)&lt;br /&gt;
417	CBasePlayer::Hints(void)&lt;br /&gt;
418	CBasePlayer::IsReadyToPlay(void)&lt;br /&gt;
419	CBasePlayer::IsReadyToSpawn(void)&lt;br /&gt;
420	CBasePlayer::ShouldGainInstantSpawn(void)&lt;br /&gt;
421	CBasePlayer::ResetPerRoundStats(void)&lt;br /&gt;
422	CBasePlayer::ResetScores(void)&lt;br /&gt;
423	CBasePlayer::EquipSuit(bool)&lt;br /&gt;
424	CBasePlayer::RemoveSuit(void)&lt;br /&gt;
425	CCSPlayer::CommitSuicide(bool,bool)&lt;br /&gt;
426	CCSPlayer::CommitSuicide(Vector  const&amp;amp;,bool,bool)&lt;br /&gt;
427	CBasePlayer::IsBot(void)const&lt;br /&gt;
428	CBaseMultiplayerPlayer::GetExpresser(void)&lt;br /&gt;
429	CCSPlayer::SpawnArmorValue(void)const&lt;br /&gt;
430	CCSPlayer::NetworkStateChanged_m_ArmorValue(void)&lt;br /&gt;
431	CCSPlayer::NetworkStateChanged_m_ArmorValue(void *)&lt;br /&gt;
432	CBasePlayer::HasHaptics(void)&lt;br /&gt;
433	CBasePlayer::SetHaptics(bool)&lt;br /&gt;
434	CBasePlayer::PlayerSolidMask(bool)const&lt;br /&gt;
435	CAI_ExpresserHost&amp;lt;CBasePlayer&amp;gt;::NoteSpeaking(float,float)&lt;br /&gt;
436	CAI_ExpresserHost&amp;lt;CBasePlayer&amp;gt;::Speak(char  const*,char  const*,char *,unsigned int,IRecipientFilter *)&lt;br /&gt;
437	CAI_ExpresserHost&amp;lt;CBasePlayer&amp;gt;::PostSpeakDispatchResponse(char  const*,AI_Response *)&lt;br /&gt;
438	CBaseMultiplayerPlayer::SpeakIfAllowed(char  const*,char  const*,char *,unsigned int,IRecipientFilter *)&lt;br /&gt;
439	CBaseMultiplayerPlayer::SpeakConceptIfAllowed(int,char  const*,char *,unsigned int,IRecipientFilter *)&lt;br /&gt;
440	CBaseMultiplayerPlayer::CanSpeakVoiceCommand(void)&lt;br /&gt;
441	CBaseMultiplayerPlayer::ShouldShowVoiceSubtitleToEnemy(void)&lt;br /&gt;
442	CBaseMultiplayerPlayer::NoteSpokeVoiceCommand(char  const*)&lt;br /&gt;
443	CBaseMultiplayerPlayer::OnAchievementEarned(int)&lt;br /&gt;
444	CBaseMultiplayerPlayer::GetMultiplayerExpresser(void)&lt;br /&gt;
445	CBaseMultiplayerPlayer::CalculateTeamBalanceScore(void)&lt;br /&gt;
446	CBaseMultiplayerPlayer::CreateExpresser(void)&lt;br /&gt;
447	CCSPlayer::IsBeingGivenItem(void)const&lt;br /&gt;
448	CCSPlayer::CSAnim_GetActiveWeapon(void)&lt;br /&gt;
449	CCSPlayer::CSAnim_CanMove(void)&lt;br /&gt;
450	CCSPlayer::Blind(float,float,float)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CBaseGrenade_Offset_List_(Counter-Strike:_Source)&amp;diff=7746</id>
		<title>CBaseGrenade Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CBaseGrenade_Offset_List_(Counter-Strike:_Source)&amp;diff=7746"/>
		<updated>2010-06-25T00:28:25Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* The List */  Updated Offsets for the CSS Source2009 port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For use when using [[Virtual Offsets (Source Mods)|virtual offsets]].&lt;br /&gt;
&lt;br /&gt;
This is a list of CBaseGrenade Offsets. These are the &amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt; offsets. &amp;lt;b&amp;gt;Linux offsets are 1 greater.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
This comes from the symbol tables, so you'll have to look in the SDK for return types...or guess for the CSS specific functions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Last Updated June 24 2010&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Auto reconstructed from vtable block @ 0x00A70080&lt;br /&gt;
// from &amp;quot;server.so&amp;quot;, by ida_vtables.idc&lt;br /&gt;
0	CBaseGrenade::~CBaseGrenade()&lt;br /&gt;
1	CBaseEntity::SetRefEHandle(CBaseHandle  const&amp;amp;)&lt;br /&gt;
2	CBaseEntity::GetRefEHandle(void)const&lt;br /&gt;
3	CBaseEntity::GetCollideable(void)&lt;br /&gt;
4	CBaseEntity::GetNetworkable(void)&lt;br /&gt;
5	CBaseEntity::GetBaseEntity(void)&lt;br /&gt;
6	CBaseEntity::GetModelIndex(void)const&lt;br /&gt;
7	CBaseEntity::GetModelName(void)const&lt;br /&gt;
8	CBaseEntity::SetModelIndex(int)&lt;br /&gt;
9	CBaseGrenade::GetServerClass(void)&lt;br /&gt;
10	CBaseGrenade::YouForgotToImplementOrDeclareServerClass(void)&lt;br /&gt;
11	CBaseGrenade::GetDataDescMap(void)&lt;br /&gt;
12	CBaseAnimating::TestCollision(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
13	CBaseAnimating::TestHitboxes(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
14	CBaseEntity::ComputeWorldSpaceSurroundingBox(Vector *,Vector *)&lt;br /&gt;
15	CBaseEntity::ShouldCollide(int,int)const&lt;br /&gt;
16	CBaseEntity::SetOwnerEntity(CBaseEntity*)&lt;br /&gt;
17	CBaseEntity::ShouldTransmit(CCheckTransmitInfo  const*)&lt;br /&gt;
18	CBaseEntity::UpdateTransmitState(void)&lt;br /&gt;
19	CBaseAnimating::SetTransmit(CCheckTransmitInfo *,bool)&lt;br /&gt;
20	CBaseEntity::GetTracerType(void)&lt;br /&gt;
21	CBaseAnimating::Spawn(void)&lt;br /&gt;
22	CBaseGrenade::Precache(void)&lt;br /&gt;
23	CBaseAnimating::SetModel(char  const*)&lt;br /&gt;
24	CBaseEntity::PostConstructor(char  const*)&lt;br /&gt;
25	CBaseEntity::PostClientActive(void)&lt;br /&gt;
26	CBaseEntity::ParseMapData(CEntityMapData *)&lt;br /&gt;
27	CBaseEntity::KeyValue(char  const*,char  const*)&lt;br /&gt;
28	CBaseEntity::KeyValue(char  const*,float)&lt;br /&gt;
29	CBaseEntity::KeyValue(char  const*,Vector  const&amp;amp;)&lt;br /&gt;
30	CBaseEntity::GetKeyValue(char  const*,char *,int)&lt;br /&gt;
31	CBaseAnimating::Activate(void)&lt;br /&gt;
32	CBaseEntity::SetParent(CBaseEntity*,int)&lt;br /&gt;
33	CBaseGrenade::ObjectCaps(void)&lt;br /&gt;
34	CBaseEntity::AcceptInput(char  const*,CBaseEntity*,CBaseEntity*,variant_t,int)&lt;br /&gt;
35	CBaseAnimating::GetInputDispatchEffectPosition(char  const*,Vector &amp;amp;,QAngle &amp;amp;)&lt;br /&gt;
36	CBaseEntity::DrawDebugGeometryOverlays(void)&lt;br /&gt;
37	CBaseAnimating::DrawDebugTextOverlays(void)&lt;br /&gt;
38	CBaseEntity::Save(ISave &amp;amp;)&lt;br /&gt;
39	CBaseAnimating::Restore(IRestore &amp;amp;)&lt;br /&gt;
40	CBaseEntity::ShouldSavePhysics(void)&lt;br /&gt;
41	CBaseEntity::OnSave(IEntitySaveUtils *)&lt;br /&gt;
42	CBaseAnimating::OnRestore(void)&lt;br /&gt;
43	CBaseEntity::RequiredEdictIndex(void)&lt;br /&gt;
44	CBaseEntity::MoveDone(void)&lt;br /&gt;
45	CBaseEntity::Think(void)&lt;br /&gt;
46	CBaseEntity::NetworkStateChanged_m_nNextThinkTick(void)&lt;br /&gt;
47	CBaseEntity::NetworkStateChanged_m_nNextThinkTick(void *)&lt;br /&gt;
48	CBaseAnimating::GetBaseAnimating(void)&lt;br /&gt;
49	CBaseEntity::GetResponseSystem(void)&lt;br /&gt;
50	CBaseEntity::DispatchResponse(char  const*)&lt;br /&gt;
51	CBaseEntity::Classify(void)&lt;br /&gt;
52	CBaseEntity::DeathNotice(CBaseEntity*)&lt;br /&gt;
53	CBaseEntity::ShouldAttractAutoAim(CBaseEntity*)&lt;br /&gt;
54	CBaseEntity::GetAutoAimRadius(void)&lt;br /&gt;
55	CBaseEntity::GetAutoAimCenter(void)&lt;br /&gt;
56	CBaseEntity::GetBeamTraceFilter(void)&lt;br /&gt;
57	CBaseEntity::PassesDamageFilter(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
58	CBaseEntity::TraceAttack(CTakeDamageInfo  const&amp;amp;,Vector  const&amp;amp;,CGameTrace *)&lt;br /&gt;
59	CBaseEntity::CanBeHitByMeleeAttack(CBaseEntity*)&lt;br /&gt;
60	CBaseEntity::OnTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
61	CBaseEntity::AdjustDamageDirection(CTakeDamageInfo  const&amp;amp;,Vector &amp;amp;,CBaseEntity*)&lt;br /&gt;
62	CBaseEntity::TakeHealth(float,int)&lt;br /&gt;
63	CBaseEntity::IsAlive(void)&lt;br /&gt;
64	CBaseGrenade::Event_Killed(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
65	CBaseEntity::Event_KilledOther(CBaseEntity*,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
66	CBaseGrenade::BloodColor(void)&lt;br /&gt;
67	CBaseEntity::IsTriggered(CBaseEntity*)&lt;br /&gt;
68	CBaseEntity::IsNPC(void)const&lt;br /&gt;
69	CBaseEntity::MyCombatCharacterPointer(void)&lt;br /&gt;
70	CBaseEntity::MyNextBotPointer(void)&lt;br /&gt;
71	CBaseEntity::GetDelay(void)&lt;br /&gt;
72	CBaseEntity::IsMoving(void)&lt;br /&gt;
73	CBaseEntity::DamageDecal(int,int)&lt;br /&gt;
74	CBaseEntity::DecalTrace(CGameTrace *,char  const*)&lt;br /&gt;
75	CBaseEntity::ImpactTrace(CGameTrace *,int,char *)&lt;br /&gt;
76	CBaseEntity::OnControls(CBaseEntity*)&lt;br /&gt;
77	CBaseEntity::HasTarget(string_t)&lt;br /&gt;
78	CBaseEntity::IsPlayer(void)const&lt;br /&gt;
79	CBaseEntity::IsNetClient(void)const&lt;br /&gt;
80	CBaseEntity::IsTemplate(void)&lt;br /&gt;
81	CBaseEntity::IsBaseObject(void)const&lt;br /&gt;
82	CBaseEntity::IsBaseTrain(void)const&lt;br /&gt;
83	CBaseEntity::IsBaseCombatWeapon(void)const&lt;br /&gt;
84	CBaseEntity::IsWearable(void)const&lt;br /&gt;
85	CBaseEntity::MyCombatWeaponPointer(void)&lt;br /&gt;
86	CBaseEntity::GetServerVehicle(void)&lt;br /&gt;
87	CBaseEntity::IsViewable(void)&lt;br /&gt;
88	CBaseEntity::ChangeTeam(int)&lt;br /&gt;
89	CBaseEntity::OnEntityEvent(EntityEvent_t,void *)&lt;br /&gt;
90	CBaseEntity::CanStandOn(CBaseEntity*)const&lt;br /&gt;
91	CBaseEntity::CanStandOn(edict_t *)const&lt;br /&gt;
92	CBaseEntity::GetEnemy(void)&lt;br /&gt;
93	CBaseEntity::GetEnemy(void)const&lt;br /&gt;
94	CBaseGrenade::Use(CBaseEntity *,CBaseEntity *,USE_TYPE,float)&lt;br /&gt;
95	CBaseEntity::StartTouch(CBaseEntity*)&lt;br /&gt;
96	CBaseEntity::Touch(CBaseEntity*)&lt;br /&gt;
97	CBaseEntity::EndTouch(CBaseEntity*)&lt;br /&gt;
98	CBaseEntity::StartBlocked(CBaseEntity*)&lt;br /&gt;
99	CBaseEntity::Blocked(CBaseEntity*)&lt;br /&gt;
100	CBaseEntity::EndBlocked(void)&lt;br /&gt;
101	CBaseEntity::PhysicsSimulate(void)&lt;br /&gt;
102	CBaseEntity::UpdateOnRemove(void)&lt;br /&gt;
103	CBaseEntity::StopLoopingSounds(void)&lt;br /&gt;
104	CBaseEntity::SUB_AllowedToFade(void)&lt;br /&gt;
105	CBaseAnimating::Teleport(Vector  const*,QAngle  const*,Vector  const*)&lt;br /&gt;
106	CBaseEntity::NotifySystemEvent(CBaseEntity*,notify_system_event_t,notify_system_event_params_t  const&amp;amp;)&lt;br /&gt;
107	CBaseEntity::MakeTracer(Vector  const&amp;amp;,CGameTrace  const&amp;amp;,int)&lt;br /&gt;
108	CBaseEntity::GetTracerAttachment(void)&lt;br /&gt;
109	CBaseEntity::FireBullets(FireBulletsInfo_t  const&amp;amp;)&lt;br /&gt;
110	CBaseEntity::DoImpactEffect(CGameTrace &amp;amp;,int)&lt;br /&gt;
111	CBaseEntity::ModifyFireBulletsDamage(CTakeDamageInfo *)&lt;br /&gt;
112	CBaseEntity::Respawn(void)&lt;br /&gt;
113	CBaseEntity::IsLockedByMaster(void)&lt;br /&gt;
114	CBaseEntity::GetMaxHealth(void)const&lt;br /&gt;
115	CBaseAnimating::ModifyOrAppendCriteria(AI_CriteriaSet &amp;amp;)&lt;br /&gt;
116	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void)&lt;br /&gt;
117	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void *)&lt;br /&gt;
118	CBaseEntity::NetworkStateChanged_m_iHealth(void)&lt;br /&gt;
119	CBaseEntity::NetworkStateChanged_m_iHealth(void *)&lt;br /&gt;
120	CBaseEntity::NetworkStateChanged_m_lifeState(void)&lt;br /&gt;
121	CBaseEntity::NetworkStateChanged_m_lifeState(void *)&lt;br /&gt;
122	CBaseEntity::NetworkStateChanged_m_takedamage(void)&lt;br /&gt;
123	CBaseEntity::NetworkStateChanged_m_takedamage(void *)&lt;br /&gt;
124	CBaseEntity::GetDamageType(void)const&lt;br /&gt;
125	CBaseGrenade::GetDamage(void)&lt;br /&gt;
126	CBaseGrenade::SetDamage(float)&lt;br /&gt;
127	CBaseEntity::EyePosition(void)&lt;br /&gt;
128	CBaseEntity::EyeAngles(void)&lt;br /&gt;
129	CBaseEntity::LocalEyeAngles(void)&lt;br /&gt;
130	CBaseEntity::EarPosition(void)&lt;br /&gt;
131	CBaseEntity::BodyTarget(Vector  const&amp;amp;,bool)&lt;br /&gt;
132	CBaseEntity::HeadTarget(Vector  const&amp;amp;)&lt;br /&gt;
133	CBaseEntity::GetVectors(Vector *,Vector *,Vector *)const&lt;br /&gt;
134	CBaseEntity::GetViewOffset(void)const&lt;br /&gt;
135	CBaseEntity::SetViewOffset(Vector  const&amp;amp;)&lt;br /&gt;
136	CBaseEntity::GetSmoothedVelocity(void)&lt;br /&gt;
137	CBaseAnimating::GetVelocity(Vector *,Vector *)&lt;br /&gt;
138	CBaseEntity::FVisible(CBaseEntity*,int,CBaseEntity**)&lt;br /&gt;
139	CBaseEntity::FVisible(Vector  const&amp;amp;,int,CBaseEntity**)&lt;br /&gt;
140	CBaseEntity::CanBeSeenBy(CAI_BaseNPC *)&lt;br /&gt;
141	CBaseEntity::GetAttackDamageScale(CBaseEntity*)&lt;br /&gt;
142	CBaseEntity::GetReceivedDamageScale(CBaseEntity*)&lt;br /&gt;
143	CBaseEntity::GetGroundVelocityToApply(Vector &amp;amp;)&lt;br /&gt;
144	CBaseEntity::PhysicsSplash(Vector  const&amp;amp;,Vector  const&amp;amp;,float,float)&lt;br /&gt;
145	CBaseEntity::Splash(void)&lt;br /&gt;
146	CBaseEntity::WorldSpaceCenter(void)const&lt;br /&gt;
147	CBaseEntity::GetSoundEmissionOrigin(void)const&lt;br /&gt;
148	CBaseEntity::IsDeflectable(void)&lt;br /&gt;
149	CBaseEntity::Deflected(CBaseEntity*,Vector &amp;amp;)&lt;br /&gt;
150	CBaseEntity::CreateVPhysics(void)&lt;br /&gt;
151	CBaseEntity::ForceVPhysicsCollide(CBaseEntity*)&lt;br /&gt;
152	CBaseEntity::VPhysicsDestroyObject(void)&lt;br /&gt;
153	CBaseEntity::VPhysicsUpdate(IPhysicsObject *)&lt;br /&gt;
154	CBaseEntity::VPhysicsTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
155	CBaseEntity::VPhysicsShadowCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
156	CBaseEntity::VPhysicsShadowUpdate(IPhysicsObject *)&lt;br /&gt;
157	CBaseEntity::VPhysicsCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
158	CBaseEntity::VPhysicsFriction(IPhysicsObject *,float,int,int)&lt;br /&gt;
159	CBaseEntity::UpdatePhysicsShadowToCurrentPosition(float)&lt;br /&gt;
160	CBaseEntity::VPhysicsGetObjectList(IPhysicsObject **,int)&lt;br /&gt;
161	CBaseEntity::VPhysicsIsFlesh(void)&lt;br /&gt;
162	CBaseEntity::HasPhysicsAttacker(float)&lt;br /&gt;
163	CBaseEntity::PhysicsSolidMaskForEntity(void)const&lt;br /&gt;
164	CBaseEntity::ResolveFlyCollisionCustom(CGameTrace &amp;amp;,Vector &amp;amp;)&lt;br /&gt;
165	CBaseEntity::PerformCustomPhysics(Vector *,Vector *,QAngle *,QAngle *)&lt;br /&gt;
166	CBaseAnimating::GetStepOrigin(void)const&lt;br /&gt;
167	CBaseAnimating::GetStepAngles(void)const&lt;br /&gt;
168	CBaseEntity::ShouldDrawWaterImpacts(void)&lt;br /&gt;
169	CBaseGrenade::NetworkStateChanged_m_fFlags(void)&lt;br /&gt;
170	CBaseGrenade::NetworkStateChanged_m_fFlags(void *)&lt;br /&gt;
171	CBaseEntity::NetworkStateChanged_m_nWaterLevel(void)&lt;br /&gt;
172	CBaseEntity::NetworkStateChanged_m_nWaterLevel(void *)&lt;br /&gt;
173	CBaseEntity::NetworkStateChanged_m_hGroundEntity(void)&lt;br /&gt;
174	CBaseEntity::NetworkStateChanged_m_hGroundEntity(void *)&lt;br /&gt;
175	CBaseEntity::NetworkStateChanged_m_vecBaseVelocity(void)&lt;br /&gt;
176	CBaseEntity::NetworkStateChanged_m_vecBaseVelocity(void *)&lt;br /&gt;
177	CBaseEntity::NetworkStateChanged_m_flFriction(void)&lt;br /&gt;
178	CBaseEntity::NetworkStateChanged_m_flFriction(void *)&lt;br /&gt;
179	CBaseGrenade::NetworkStateChanged_m_vecVelocity(void)&lt;br /&gt;
180	CBaseGrenade::NetworkStateChanged_m_vecVelocity(void *)&lt;br /&gt;
181	CBaseEntity::NetworkStateChanged_m_vecViewOffset(void)&lt;br /&gt;
182	CBaseEntity::NetworkStateChanged_m_vecViewOffset(void *)&lt;br /&gt;
183	CBaseAnimating::GetIdealSpeed(void)const&lt;br /&gt;
184	CBaseAnimating::GetIdealAccel(void)const&lt;br /&gt;
185	CBaseAnimating::StudioFrameAdvance(void)&lt;br /&gt;
186	CBaseAnimating::IsActivityFinished(void)&lt;br /&gt;
187	CBaseAnimating::GetSequenceGroundSpeed(CStudioHdr *,int)&lt;br /&gt;
188	CBaseAnimating::ClampRagdollForce(Vector  const&amp;amp;,Vector*)&lt;br /&gt;
189	CBaseAnimating::BecomeRagdollOnClient(Vector  const&amp;amp;)&lt;br /&gt;
190	CBaseAnimating::IsRagdoll(void)&lt;br /&gt;
191	CBaseAnimating::CanBecomeRagdoll(void)&lt;br /&gt;
192	CBaseAnimating::GetSkeleton(CStudioHdr *,Vector *,Quaternion *,int)&lt;br /&gt;
193	CBaseAnimating::GetBoneTransform(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
194	CBaseAnimating::SetupBones(matrix3x4_t *,int)&lt;br /&gt;
195	CBaseAnimating::CalculateIKLocks(float)&lt;br /&gt;
196	CBaseAnimating::DispatchAnimEvents(CBaseAnimating*)&lt;br /&gt;
197	CBaseAnimating::HandleAnimEvent(animevent_t *)&lt;br /&gt;
198	CBaseAnimating::PopulatePoseParameters(void)&lt;br /&gt;
199	CBaseAnimating::GetAttachment(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
200	CBaseAnimating::InitBoneControllers(void)&lt;br /&gt;
201	CBaseAnimating::GetGroundSpeedVelocity(void)&lt;br /&gt;
202	CBaseAnimating::Ignite(float,bool,float,bool)&lt;br /&gt;
203	CBaseAnimating::IgniteLifetime(float)&lt;br /&gt;
204	CBaseAnimating::IgniteNumHitboxFires(int)&lt;br /&gt;
205	CBaseAnimating::IgniteHitboxFireScale(float)&lt;br /&gt;
206	CBaseAnimating::Extinguish(void)&lt;br /&gt;
207	CBaseAnimating::SetLightingOriginRelative(CBaseEntity *)&lt;br /&gt;
208	CBaseAnimating::SetLightingOrigin(CBaseEntity *)&lt;br /&gt;
209	CBaseGrenade::Explode(CGameTrace *,int)&lt;br /&gt;
210	CBaseGrenade::Detonate(void)&lt;br /&gt;
211	CBaseGrenade::GetBlastForce(void)&lt;br /&gt;
212	CBaseGrenade::BounceSound(void)&lt;br /&gt;
213	CBaseGrenade::GetShakeAmplitude(void)&lt;br /&gt;
214	CBaseGrenade::GetShakeRadius(void)&lt;br /&gt;
215	CBaseGrenade::GetDamageRadius(void)&lt;br /&gt;
216	CBaseGrenade::SetDamageRadius(float)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Virtual_Offsets_(Source_Mods)&amp;diff=7745</id>
		<title>Virtual Offsets (Source Mods)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Virtual_Offsets_(Source_Mods)&amp;diff=7745"/>
		<updated>2010-06-25T00:27:09Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Counter-Strike: Source */  Removed CBasePlayer, CCSPlayer has everything and much more.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Metamod:Source Development]]&lt;br /&gt;
== Calling virtual functions ==&lt;br /&gt;
I got this method from [[User:Mani|Mani]], who I believe got it from [[User:PM|Pavol Marko]]. Thank you!&lt;br /&gt;
&lt;br /&gt;
I hope to expand on an actual explanation when I have the time (and understand it better). Hopefully, someone can expand on this, but for now I'll just post the examples and a list of the CCSPlayer virtual function table offsets.&lt;br /&gt;
&lt;br /&gt;
== Offset Lists ==&lt;br /&gt;
==== Counter-Strike: Source ====&lt;br /&gt;
* [[CCSPlayer Offset List (Counter-Strike: Source)|CCSPlayer]]&lt;br /&gt;
* [[CBaseCombatWeapon Offset List (Counter-Strike: Source)|CBaseCombatWeapon]]&lt;br /&gt;
* [[CCSGameRules Offset List (Counter-Strike: Source) | CCSGameRules]]&lt;br /&gt;
* [[CBaseGrenade Offset List (Counter-Strike: Source) | CBaseGrenade]]&lt;br /&gt;
* [[CDEagle Offset List (Counter-Strike: Source) | CDEagle]]&lt;br /&gt;
&lt;br /&gt;
==== Day of Defeat: Source ====&lt;br /&gt;
* [[CDODPlayer Offset List (Day of Defeat: Source)|CDODPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Dystopia ====&lt;br /&gt;
* [[CDYSPlayer Offset List (Dystopia)|CDYSPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Empires v2.12 ====&lt;br /&gt;
* [[CSDKPlayer Offset List (Empires)|CSDKPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Fortress Forever ====&lt;br /&gt;
* [[CFFPlayer Offset List (Fortress Forever)|CFFPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Half-Life 2: Capture the Flag ====&lt;br /&gt;
* [[CHL2_Player Offset List (Half-Life 2: Capture the Flag)|CHL2_Player]]&lt;br /&gt;
&lt;br /&gt;
==== Half-Life 2: Deathmatch ====&lt;br /&gt;
* [[CHL2MP_Player Offset List (Half-Life 2: Deathmatch)|CHL2MP_Player]]&lt;br /&gt;
&lt;br /&gt;
==== Hidden: Source ====&lt;br /&gt;
* [[CSDKPlayer Offset List (Hidden: Source)|CSDKPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Insurgency ====&lt;br /&gt;
* [[CINSPlayer Offset List (Insurgency)|CINSPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Left 4 Dead ====&lt;br /&gt;
* [[CTerrorPlayer Offset List (Left 4 Dead)|CTerrorPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Left 4 Dead 2 ====&lt;br /&gt;
* [[CTerrorPlayer Offset List (Left 4 Dead 2)|CTerrorPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Obsidian Conflict ====&lt;br /&gt;
* [[CHL2MP_Player Offset List (Obsidian Conflict)|CHL2MP_Player]]&lt;br /&gt;
&lt;br /&gt;
==== Pirates, Vikings, and Knights II ====&lt;br /&gt;
* [[CPVK2Player Offset List (Pirates, Vikings, and Knights II)|CPVK2Player]]&lt;br /&gt;
&lt;br /&gt;
==== The Ship ====&lt;br /&gt;
* [[CShipPlayer Offset List (The Ship)|CShipPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== SourceForts ====&lt;br /&gt;
* [[CHL2MP_Player Offset List (SourceForts)|CHL2MP_Player]]&lt;br /&gt;
&lt;br /&gt;
==== Synergy ====&lt;br /&gt;
* [[CHL2MP_Player Offset List (Synergy)|CHL2MP_Player]]&lt;br /&gt;
&lt;br /&gt;
==== Synergy SteamWorks (Synergy Orange Box Edition)====&lt;br /&gt;
* [[CHL2MP_Player Offset List (SynergyOB)|CHL2MP_Player]]&lt;br /&gt;
&lt;br /&gt;
==== Team Fortress 2 ====&lt;br /&gt;
* [[CTFPlayer Offset List (Team Fortress 2)|CTFPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Zombie Master ====&lt;br /&gt;
* [[CHL2MP_Player Offset List (Zombie Master)|CHL2MP_Player]]&lt;br /&gt;
&lt;br /&gt;
==== Zombie Panic: Source ====&lt;br /&gt;
* [[CHL2MP_Player Offset List (Zombie Panic: Source)|CHL2MP_Player]]&lt;br /&gt;
* [[CBasePlayer Offset List (Zombie Panic: Source)|CBasePlayer ]]&lt;br /&gt;
&lt;br /&gt;
==== GoldenEye: Source ====&lt;br /&gt;
* [[CGEPlayer Offset List (GoldenEye: Source)|CGEPlayer]]&lt;br /&gt;
&lt;br /&gt;
== How to use the examples ==&lt;br /&gt;
&lt;br /&gt;
Basically, this lets you call any [[virtual function]] by knowing it's offset. A table is created for each class that lists the address of the function for each virtual function. This method takes advantage of that to call those addresses.&lt;br /&gt;
&lt;br /&gt;
Look at the examples below and edit to match the function you want to call:&lt;br /&gt;
Use the offset for the function you want to call in this line. ([[CCSPlayer_offset_list_(SourceMM)]])&lt;br /&gt;
&amp;lt;cpp&amp;gt;void *func = vtable[m_Off_GiveNamedItem];&amp;lt;/cpp&amp;gt;&lt;br /&gt;
Change this line to match your return type and parameters:&lt;br /&gt;
&amp;lt;cpp&amp;gt;union {CBaseEntity *(VfuncEmptyClass::*mfpnew)(const char *, int );&amp;lt;/cpp&amp;gt;&lt;br /&gt;
Call the original function with your parameters (change the return type to match the function you're calling):&lt;br /&gt;
&amp;lt;cpp&amp;gt;return (CBaseEntity *) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(ItemName, iSubType);&amp;lt;/cpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll need to add an empty class for the union. Something like this:&lt;br /&gt;
&amp;lt;cpp&amp;gt;class VfuncEmptyClass {};&amp;lt;/cpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
These examples are for CSS. Mani has created a set of macros to make this easier. If you ask nicely, maybe he'll give them to you or let you post them here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cpp&amp;gt;datamap_t *VFuncs::GetDataDescMap(CBaseEntity *pThisPtr)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_GetDataDescMap]; &lt;br /&gt;
&lt;br /&gt;
	union {datamap_t *(VfuncEmptyClass::*mfpnew)();&lt;br /&gt;
#ifndef __linux__&lt;br /&gt;
        void *addr;	} u; 	u.addr = func;&lt;br /&gt;
#else /* GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 */&lt;br /&gt;
			struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
	return (datamap_t *) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void VFuncs::SetModel(CBaseEntity *pThisPtr, const char *ModelName)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_SetModel]; &lt;br /&gt;
&lt;br /&gt;
	union {void (VfuncEmptyClass::*mfpnew)(const char *);&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	(void) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(ModelName);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void VFuncs::Teleport(CBaseEntity *pThisPtr, const Vector *newPosition, const QAngle *newAngles, const Vector *newVelocity)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_Teleport]; &lt;br /&gt;
&lt;br /&gt;
	union {void (VfuncEmptyClass::*mfpnew)(const Vector *, const QAngle *, const Vector *);&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	(void) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(newPosition, newAngles, newVelocity);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Vector VFuncs::EyePosition( CBaseEntity *pThisPtr )&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_EyePosition]; &lt;br /&gt;
&lt;br /&gt;
	union {Vector (VfuncEmptyClass::*mfpnew)( void );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	return (Vector) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)( );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
QAngle &amp;amp;VFuncs::EyeAngles( CBaseEntity *pThisPtr )&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_EyeAngles]; &lt;br /&gt;
&lt;br /&gt;
	union {QAngle&amp;amp; (VfuncEmptyClass::*mfpnew)( void );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	return (QAngle&amp;amp;) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)( );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void VFuncs::Ignite(CBaseEntity *pThisPtr, float flFlameLifetime, bool bNPCOnly, float flSize, bool bCalledByLevelDesigner)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_Ignite]; &lt;br /&gt;
&lt;br /&gt;
	union {void (VfuncEmptyClass::*mfpnew)(float , bool , float , bool );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	(void) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(flFlameLifetime, bNPCOnly, flSize, bCalledByLevelDesigner);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
CBaseEntity *VFuncs::GiveNamedItem(CBaseEntity *pThisPtr, const char *ItemName, int iSubType)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_GiveNamedItem]; &lt;br /&gt;
&lt;br /&gt;
	union {CBaseEntity *(VfuncEmptyClass::*mfpnew)(const char *, int );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	return (CBaseEntity *) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(ItemName, iSubType);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void VFuncs::CommitSuicide(CBaseEntity *pThisPtr)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_CommitSuicide]; &lt;br /&gt;
&lt;br /&gt;
	union {CBaseEntity *(VfuncEmptyClass::*mfpnew)( void );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	(reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/cpp&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CBasePlayer_Offset_List_(Counter-Strike:_Source)&amp;diff=7744</id>
		<title>CBasePlayer Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CBasePlayer_Offset_List_(Counter-Strike:_Source)&amp;diff=7744"/>
		<updated>2010-06-25T00:26:29Z</updated>

		<summary type="html">&lt;p&gt;DaFox: Eh I fail.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[CCSPlayer_Offset_List_(Counter-Strike:_Source)]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CBasePlayer_Offset_List_(Counter-Strike:_Source)&amp;diff=7743</id>
		<title>CBasePlayer Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CBasePlayer_Offset_List_(Counter-Strike:_Source)&amp;diff=7743"/>
		<updated>2010-06-25T00:26:01Z</updated>

		<summary type="html">&lt;p&gt;DaFox: This page is useless, CCSPlayer has everything and more.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT CCSPlayer_Offset_List_(Counter-Strike:_Source)&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CCSPlayer_Offset_List_(Counter-Strike:_Source)&amp;diff=7742</id>
		<title>CCSPlayer Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CCSPlayer_Offset_List_(Counter-Strike:_Source)&amp;diff=7742"/>
		<updated>2010-06-25T00:19:57Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* The List */  Updated Offsets for the CSS Source2009 port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For use when using [[Virtual Offsets (Source Mods)|virtual offsets]].&lt;br /&gt;
&lt;br /&gt;
This is the list of offsets I've been using. These are the &amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt; offsets. &amp;lt;b&amp;gt;Linux offsets are 1 greater.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
This comes from the symbol tables, so you'll have to look in the SDK for return types...or guess for the CSS specific functions near the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Last Updated 09 Sept 2006&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Counter-Strike: Source&lt;br /&gt;
&lt;br /&gt;
0	CCSPlayer::~CCSPlayer()&lt;br /&gt;
1	CBaseEntity::SetRefEHandle(CBaseHandle  const&amp;amp;)&lt;br /&gt;
2	CBaseEntity::GetRefEHandle(void)const&lt;br /&gt;
3	CBaseEntity::GetCollideable(void)&lt;br /&gt;
4	CBaseEntity::GetNetworkable(void)&lt;br /&gt;
5	CBaseEntity::GetBaseEntity(void)&lt;br /&gt;
6	CBaseEntity::GetModelIndex(void)const&lt;br /&gt;
7	CBaseEntity::GetModelName(void)const&lt;br /&gt;
8	CBaseEntity::SetModelIndex(int)&lt;br /&gt;
9	CCSPlayer::GetServerClass(void)&lt;br /&gt;
10	CCSPlayer::YouForgotToImplementOrDeclareServerClass(void)&lt;br /&gt;
11	CCSPlayer::GetDataDescMap(void)&lt;br /&gt;
12	CBaseAnimating::TestCollision(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
13	CBaseAnimating::TestHitboxes(Ray_t  const&amp;amp;,unsigned int,CGameTrace &amp;amp;)&lt;br /&gt;
14	CBaseEntity::ComputeWorldSpaceSurroundingBox(Vector *,Vector *)&lt;br /&gt;
15	CBaseEntity::ShouldCollide(int,int)const&lt;br /&gt;
16	CBaseEntity::SetOwnerEntity(CBaseEntity*)&lt;br /&gt;
17	CBasePlayer::ShouldTransmit(CCheckTransmitInfo  const*)&lt;br /&gt;
18	CBasePlayer::UpdateTransmitState(void)&lt;br /&gt;
19	CBaseCombatCharacter::SetTransmit(CCheckTransmitInfo *,bool)&lt;br /&gt;
20	CBasePlayer::GetTracerType(void)&lt;br /&gt;
21	CCSPlayer::Spawn(void)&lt;br /&gt;
22	CCSPlayer::Precache(void)&lt;br /&gt;
23	CBasePlayer::SetModel(char  const*)&lt;br /&gt;
24	CBaseMultiplayerPlayer::PostConstructor(char  const*)&lt;br /&gt;
25	CBaseEntity::PostClientActive(void)&lt;br /&gt;
26	CBaseEntity::ParseMapData(CEntityMapData *)&lt;br /&gt;
27	CBaseEntity::KeyValue(char  const*,char  const*)&lt;br /&gt;
28	CBaseEntity::KeyValue(char  const*,float)&lt;br /&gt;
29	CBaseEntity::KeyValue(char  const*,Vector  const&amp;amp;)&lt;br /&gt;
30	CBaseEntity::GetKeyValue(char  const*,char *,int)&lt;br /&gt;
31	CBasePlayer::Activate(void)&lt;br /&gt;
32	CBaseEntity::SetParent(CBaseEntity*,int)&lt;br /&gt;
33	CBasePlayer::ObjectCaps(void)&lt;br /&gt;
34	CBaseEntity::AcceptInput(char  const*,CBaseEntity*,CBaseEntity*,variant_t,int)&lt;br /&gt;
35	CBaseAnimating::GetInputDispatchEffectPosition(char  const*,Vector &amp;amp;,QAngle &amp;amp;)&lt;br /&gt;
36	CBasePlayer::DrawDebugGeometryOverlays(void)&lt;br /&gt;
37	CBaseAnimating::DrawDebugTextOverlays(void)&lt;br /&gt;
38	CBasePlayer::Save(ISave &amp;amp;)&lt;br /&gt;
39	CBasePlayer::Restore(IRestore &amp;amp;)&lt;br /&gt;
40	CBasePlayer::ShouldSavePhysics(void)&lt;br /&gt;
41	CBaseEntity::OnSave(IEntitySaveUtils *)&lt;br /&gt;
42	CBasePlayer::OnRestore(void)&lt;br /&gt;
43	CBasePlayer::RequiredEdictIndex(void)&lt;br /&gt;
44	CBaseEntity::MoveDone(void)&lt;br /&gt;
45	CBaseEntity::Think(void)&lt;br /&gt;
46	CBasePlayer::NetworkStateChanged_m_nNextThinkTick(void)&lt;br /&gt;
47	CBasePlayer::NetworkStateChanged_m_nNextThinkTick(void *)&lt;br /&gt;
48	CBaseAnimating::GetBaseAnimating(void)&lt;br /&gt;
49	CBaseMultiplayerPlayer::GetResponseSystem(void)&lt;br /&gt;
50	CAI_ExpresserHost&amp;lt;CBasePlayer&amp;gt;::DispatchResponse(char  const*)&lt;br /&gt;
51	CBasePlayer::Classify(void)&lt;br /&gt;
52	CBaseEntity::DeathNotice(CBaseEntity*)&lt;br /&gt;
53	CBaseEntity::ShouldAttractAutoAim(CBaseEntity*)&lt;br /&gt;
54	CBaseEntity::GetAutoAimRadius(void)&lt;br /&gt;
55	CBaseEntity::GetAutoAimCenter(void)&lt;br /&gt;
56	CBaseEntity::GetBeamTraceFilter(void)&lt;br /&gt;
57	CBaseEntity::PassesDamageFilter(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
58	CCSPlayer::TraceAttack(CTakeDamageInfo  const&amp;amp;,Vector  const&amp;amp;,CGameTrace *)&lt;br /&gt;
59	CBaseEntity::CanBeHitByMeleeAttack(CBaseEntity*)&lt;br /&gt;
60	CCSPlayer::OnTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
61	CBaseEntity::AdjustDamageDirection(CTakeDamageInfo  const&amp;amp;,Vector &amp;amp;,CBaseEntity*)&lt;br /&gt;
62	CBasePlayer::TakeHealth(float,int)&lt;br /&gt;
63	CBaseEntity::IsAlive(void)&lt;br /&gt;
64	CCSPlayer::Event_Killed(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
65	CCSPlayer::Event_KilledOther(CBaseEntity *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
66	CBaseCombatCharacter::BloodColor(void)&lt;br /&gt;
67	CBaseEntity::IsTriggered(CBaseEntity*)&lt;br /&gt;
68	CBaseEntity::IsNPC(void)const&lt;br /&gt;
69	CBaseCombatCharacter::MyCombatCharacterPointer(void)&lt;br /&gt;
70	CBaseEntity::MyNextBotPointer(void)&lt;br /&gt;
71	CBaseEntity::GetDelay(void)&lt;br /&gt;
72	CBaseEntity::IsMoving(void)&lt;br /&gt;
73	CBaseEntity::DamageDecal(int,int)&lt;br /&gt;
74	CBaseEntity::DecalTrace(CGameTrace *,char  const*)&lt;br /&gt;
75	CBaseEntity::ImpactTrace(CGameTrace *,int,char *)&lt;br /&gt;
76	CBaseEntity::OnControls(CBaseEntity*)&lt;br /&gt;
77	CBaseEntity::HasTarget(string_t)&lt;br /&gt;
78	CBasePlayer::IsPlayer(void)const&lt;br /&gt;
79	CBasePlayer::IsNetClient(void)const&lt;br /&gt;
80	CBaseEntity::IsTemplate(void)&lt;br /&gt;
81	CBaseEntity::IsBaseObject(void)const&lt;br /&gt;
82	CBaseEntity::IsBaseTrain(void)const&lt;br /&gt;
83	CBaseEntity::IsBaseCombatWeapon(void)const&lt;br /&gt;
84	CBaseEntity::IsWearable(void)const&lt;br /&gt;
85	CBaseEntity::MyCombatWeaponPointer(void)&lt;br /&gt;
86	CBaseEntity::GetServerVehicle(void)&lt;br /&gt;
87	CBaseEntity::IsViewable(void)&lt;br /&gt;
88	CCSPlayer::ChangeTeam(int)&lt;br /&gt;
89	CBaseEntity::OnEntityEvent(EntityEvent_t,void *)&lt;br /&gt;
90	CBaseEntity::CanStandOn(CBaseEntity*)const&lt;br /&gt;
91	CBaseEntity::CanStandOn(edict_t *)const&lt;br /&gt;
92	CBaseEntity::GetEnemy(void)&lt;br /&gt;
93	CBaseEntity::GetEnemy(void)const&lt;br /&gt;
94	CBaseEntity::Use(CBaseEntity*,CBaseEntity*,USE_TYPE,float)&lt;br /&gt;
95	CBaseEntity::StartTouch(CBaseEntity*)&lt;br /&gt;
96	CBasePlayer::Touch(CBaseEntity *)&lt;br /&gt;
97	CBaseEntity::EndTouch(CBaseEntity*)&lt;br /&gt;
98	CBaseEntity::StartBlocked(CBaseEntity*)&lt;br /&gt;
99	CBaseEntity::Blocked(CBaseEntity*)&lt;br /&gt;
100	CBaseEntity::EndBlocked(void)&lt;br /&gt;
101	CBasePlayer::PhysicsSimulate(void)&lt;br /&gt;
102	CBasePlayer::UpdateOnRemove(void)&lt;br /&gt;
103	CBaseEntity::StopLoopingSounds(void)&lt;br /&gt;
104	CBaseEntity::SUB_AllowedToFade(void)&lt;br /&gt;
105	CBaseFlex::Teleport(Vector  const*,QAngle  const*,Vector  const*)&lt;br /&gt;
106	CBaseEntity::NotifySystemEvent(CBaseEntity*,notify_system_event_t,notify_system_event_params_t  const&amp;amp;)&lt;br /&gt;
107	CBasePlayer::MakeTracer(Vector  const&amp;amp;,CGameTrace  const&amp;amp;,int)&lt;br /&gt;
108	CBaseEntity::GetTracerAttachment(void)&lt;br /&gt;
109	CBaseEntity::FireBullets(FireBulletsInfo_t  const&amp;amp;)&lt;br /&gt;
110	CBasePlayer::DoImpactEffect(CGameTrace &amp;amp;,int)&lt;br /&gt;
111	CBaseEntity::ModifyFireBulletsDamage(CTakeDamageInfo *)&lt;br /&gt;
112	CBaseEntity::Respawn(void)&lt;br /&gt;
113	CBaseEntity::IsLockedByMaster(void)&lt;br /&gt;
114	CBaseEntity::GetMaxHealth(void)const&lt;br /&gt;
115	CBaseMultiplayerPlayer::ModifyOrAppendCriteria(AI_CriteriaSet &amp;amp;)&lt;br /&gt;
116	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void)&lt;br /&gt;
117	CBaseEntity::NetworkStateChanged_m_iMaxHealth(void *)&lt;br /&gt;
118	CBasePlayer::NetworkStateChanged_m_iHealth(void)&lt;br /&gt;
119	CBasePlayer::NetworkStateChanged_m_iHealth(void *)&lt;br /&gt;
120	CBasePlayer::NetworkStateChanged_m_lifeState(void)&lt;br /&gt;
121	CBasePlayer::NetworkStateChanged_m_lifeState(void *)&lt;br /&gt;
122	CBaseEntity::NetworkStateChanged_m_takedamage(void)&lt;br /&gt;
123	CBaseEntity::NetworkStateChanged_m_takedamage(void *)&lt;br /&gt;
124	CBaseEntity::GetDamageType(void)const&lt;br /&gt;
125	CBaseEntity::GetDamage(void)&lt;br /&gt;
126	CBaseEntity::SetDamage(float)&lt;br /&gt;
127	CBasePlayer::EyePosition(void)&lt;br /&gt;
128	CBasePlayer::EyeAngles(void)&lt;br /&gt;
129	CBasePlayer::LocalEyeAngles(void)&lt;br /&gt;
130	CBaseEntity::EarPosition(void)&lt;br /&gt;
131	CBasePlayer::BodyTarget(Vector  const&amp;amp;,bool)&lt;br /&gt;
132	CBaseEntity::HeadTarget(Vector  const&amp;amp;)&lt;br /&gt;
133	CBaseEntity::GetVectors(Vector *,Vector *,Vector *)const&lt;br /&gt;
134	CBaseEntity::GetViewOffset(void)const&lt;br /&gt;
135	CBaseEntity::SetViewOffset(Vector  const&amp;amp;)&lt;br /&gt;
136	CBasePlayer::GetSmoothedVelocity(void)&lt;br /&gt;
137	CBaseAnimating::GetVelocity(Vector *,Vector *)&lt;br /&gt;
138	CBaseCombatCharacter::FVisible(CBaseEntity *,int,CBaseEntity **)&lt;br /&gt;
139	CBaseCombatCharacter::FVisible(Vector  const&amp;amp;,int,CBaseEntity **)&lt;br /&gt;
140	CBaseEntity::CanBeSeenBy(CAI_BaseNPC *)&lt;br /&gt;
141	CBaseEntity::GetAttackDamageScale(CBaseEntity*)&lt;br /&gt;
142	CBaseEntity::GetReceivedDamageScale(CBaseEntity*)&lt;br /&gt;
143	CBaseEntity::GetGroundVelocityToApply(Vector &amp;amp;)&lt;br /&gt;
144	CBaseEntity::PhysicsSplash(Vector  const&amp;amp;,Vector  const&amp;amp;,float,float)&lt;br /&gt;
145	CBaseEntity::Splash(void)&lt;br /&gt;
146	CBaseEntity::WorldSpaceCenter(void)const&lt;br /&gt;
147	CBaseEntity::GetSoundEmissionOrigin(void)const&lt;br /&gt;
148	CBaseEntity::IsDeflectable(void)&lt;br /&gt;
149	CBaseEntity::Deflected(CBaseEntity*,Vector &amp;amp;)&lt;br /&gt;
150	CBaseEntity::CreateVPhysics(void)&lt;br /&gt;
151	CBaseEntity::ForceVPhysicsCollide(CBaseEntity*)&lt;br /&gt;
152	CBasePlayer::VPhysicsDestroyObject(void)&lt;br /&gt;
153	CBasePlayer::VPhysicsUpdate(IPhysicsObject *)&lt;br /&gt;
154	CBaseEntity::VPhysicsTakeDamage(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
155	CBaseCombatCharacter::VPhysicsShadowCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
156	CCSPlayer::VPhysicsShadowUpdate(IPhysicsObject *)&lt;br /&gt;
157	CBasePlayer::VPhysicsCollision(int,gamevcollisionevent_t *)&lt;br /&gt;
158	CBaseEntity::VPhysicsFriction(IPhysicsObject *,float,int,int)&lt;br /&gt;
159	CBaseEntity::UpdatePhysicsShadowToCurrentPosition(float)&lt;br /&gt;
160	CBaseEntity::VPhysicsGetObjectList(IPhysicsObject **,int)&lt;br /&gt;
161	CBaseEntity::VPhysicsIsFlesh(void)&lt;br /&gt;
162	CBaseEntity::HasPhysicsAttacker(float)&lt;br /&gt;
163	CBasePlayer::PhysicsSolidMaskForEntity(void)const&lt;br /&gt;
164	CBaseEntity::ResolveFlyCollisionCustom(CGameTrace &amp;amp;,Vector &amp;amp;)&lt;br /&gt;
165	CBaseEntity::PerformCustomPhysics(Vector *,Vector *,QAngle *,QAngle *)&lt;br /&gt;
166	CBaseAnimating::GetStepOrigin(void)const&lt;br /&gt;
167	CBaseAnimating::GetStepAngles(void)const&lt;br /&gt;
168	CBaseEntity::ShouldDrawWaterImpacts(void)&lt;br /&gt;
169	CBasePlayer::NetworkStateChanged_m_fFlags(void)&lt;br /&gt;
170	CBasePlayer::NetworkStateChanged_m_fFlags(void *)&lt;br /&gt;
171	CBasePlayer::NetworkStateChanged_m_nWaterLevel(void)&lt;br /&gt;
172	CBasePlayer::NetworkStateChanged_m_nWaterLevel(void *)&lt;br /&gt;
173	CBasePlayer::NetworkStateChanged_m_hGroundEntity(void)&lt;br /&gt;
174	CBasePlayer::NetworkStateChanged_m_hGroundEntity(void *)&lt;br /&gt;
175	CBasePlayer::NetworkStateChanged_m_vecBaseVelocity(void)&lt;br /&gt;
176	CBasePlayer::NetworkStateChanged_m_vecBaseVelocity(void *)&lt;br /&gt;
177	CBasePlayer::NetworkStateChanged_m_flFriction(void)&lt;br /&gt;
178	CBasePlayer::NetworkStateChanged_m_flFriction(void *)&lt;br /&gt;
179	CBasePlayer::NetworkStateChanged_m_vecVelocity(void)&lt;br /&gt;
180	CBasePlayer::NetworkStateChanged_m_vecVelocity(void *)&lt;br /&gt;
181	CBasePlayer::NetworkStateChanged_m_vecViewOffset(void)&lt;br /&gt;
182	CBasePlayer::NetworkStateChanged_m_vecViewOffset(void *)&lt;br /&gt;
183	CBaseAnimating::GetIdealSpeed(void)const&lt;br /&gt;
184	CBaseAnimating::GetIdealAccel(void)const&lt;br /&gt;
185	CBaseAnimatingOverlay::StudioFrameAdvance(void)&lt;br /&gt;
186	CBaseAnimating::IsActivityFinished(void)&lt;br /&gt;
187	CBaseAnimating::GetSequenceGroundSpeed(CStudioHdr *,int)&lt;br /&gt;
188	CBaseAnimating::ClampRagdollForce(Vector  const&amp;amp;,Vector*)&lt;br /&gt;
189	CBaseAnimating::BecomeRagdollOnClient(Vector  const&amp;amp;)&lt;br /&gt;
190	CBaseAnimating::IsRagdoll(void)&lt;br /&gt;
191	CBaseAnimating::CanBecomeRagdoll(void)&lt;br /&gt;
192	CBaseAnimatingOverlay::GetSkeleton(CStudioHdr *,Vector *,Quaternion *,int)&lt;br /&gt;
193	CBaseAnimating::GetBoneTransform(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
194	CBaseAnimating::SetupBones(matrix3x4_t *,int)&lt;br /&gt;
195	CBaseAnimating::CalculateIKLocks(float)&lt;br /&gt;
196	CBaseAnimatingOverlay::DispatchAnimEvents(CBaseAnimating *)&lt;br /&gt;
197	CCSPlayer::HandleAnimEvent(animevent_t *)&lt;br /&gt;
198	CBaseAnimating::PopulatePoseParameters(void)&lt;br /&gt;
199	CBaseAnimating::GetAttachment(int,matrix3x4_t &amp;amp;)&lt;br /&gt;
200	CBaseAnimating::InitBoneControllers(void)&lt;br /&gt;
201	CBaseAnimating::GetGroundSpeedVelocity(void)&lt;br /&gt;
202	CBaseAnimating::Ignite(float,bool,float,bool)&lt;br /&gt;
203	CBaseAnimating::IgniteLifetime(float)&lt;br /&gt;
204	CBaseAnimating::IgniteNumHitboxFires(int)&lt;br /&gt;
205	CBaseAnimating::IgniteHitboxFireScale(float)&lt;br /&gt;
206	CBaseAnimating::Extinguish(void)&lt;br /&gt;
207	CBaseCombatCharacter::SetLightingOriginRelative(CBaseEntity *)&lt;br /&gt;
208	CBaseAnimating::SetLightingOrigin(CBaseEntity *)&lt;br /&gt;
209	CBaseFlex::SetViewtarget(Vector  const&amp;amp;)&lt;br /&gt;
210	CBaseFlex::StartSceneEvent(CSceneEventInfo *,CChoreoScene *,CChoreoEvent *,CChoreoActor *,CBaseEntity *)&lt;br /&gt;
211	CBaseFlex::ProcessSceneEvents(void)&lt;br /&gt;
212	CBaseFlex::ProcessSceneEvent(CSceneEventInfo *,CChoreoScene *,CChoreoEvent *)&lt;br /&gt;
213	CBaseFlex::ClearSceneEvent(CSceneEventInfo *,bool,bool)&lt;br /&gt;
214	CBaseFlex::CheckSceneEventCompletion(CSceneEventInfo *,float,CChoreoScene *,CChoreoEvent *)&lt;br /&gt;
215	CBaseFlex::PlayScene(char  const*,float,AI_Response *,IRecipientFilter *)&lt;br /&gt;
216	CBaseFlex::PlayAutoGeneratedSoundScene(char  const*)&lt;br /&gt;
217	CBasePlayer::GetPhysicsImpactDamageTable(void)&lt;br /&gt;
218	CBaseCombatCharacter::FInViewCone(CBaseEntity *)&lt;br /&gt;
219	CBaseCombatCharacter::FInViewCone(Vector  const&amp;amp;)&lt;br /&gt;
220	CBaseCombatCharacter::FInAimCone(CBaseEntity *)&lt;br /&gt;
221	CBaseCombatCharacter::FInAimCone(Vector  const&amp;amp;)&lt;br /&gt;
222	CBaseCombatCharacter::ShouldShootMissTarget(CBaseCombatCharacter*)&lt;br /&gt;
223	CBaseCombatCharacter::FindMissTarget(void)&lt;br /&gt;
224	CBaseCombatCharacter::HandleInteraction(int,void *,CBaseCombatCharacter*)&lt;br /&gt;
225	CBasePlayer::BodyAngles(void)&lt;br /&gt;
226	CBaseCombatCharacter::BodyDirection2D(void)&lt;br /&gt;
227	CBaseCombatCharacter::BodyDirection3D(void)&lt;br /&gt;
228	CBaseCombatCharacter::HeadDirection2D(void)&lt;br /&gt;
229	CBaseCombatCharacter::HeadDirection3D(void)&lt;br /&gt;
230	CBaseCombatCharacter::EyeDirection2D(void)&lt;br /&gt;
231	CBaseCombatCharacter::EyeDirection3D(void)&lt;br /&gt;
232	CBaseCombatCharacter::IsHiddenByFog(Vector  const&amp;amp;)const&lt;br /&gt;
233	CBaseCombatCharacter::IsHiddenByFog(CBaseEntity *)const&lt;br /&gt;
234	CBaseCombatCharacter::IsHiddenByFog(float)const&lt;br /&gt;
235	CBaseCombatCharacter::GetFogObscuredRatio(Vector  const&amp;amp;)const&lt;br /&gt;
236	CBaseCombatCharacter::GetFogObscuredRatio(CBaseEntity *)const&lt;br /&gt;
237	CBaseCombatCharacter::GetFogObscuredRatio(float)const&lt;br /&gt;
238	CBaseCombatCharacter::IsLookingTowards(CBaseEntity  const*,float)const&lt;br /&gt;
239	CBaseCombatCharacter::IsLookingTowards(Vector  const&amp;amp;,float)const&lt;br /&gt;
240	CBaseCombatCharacter::IsInFieldOfView(CBaseEntity *)const&lt;br /&gt;
241	CBaseCombatCharacter::IsInFieldOfView(Vector  const&amp;amp;)const&lt;br /&gt;
242	CBaseCombatCharacter::IsLineOfSightClear(CBaseEntity *,CBaseCombatCharacter::LineOfSightCheckType)const&lt;br /&gt;
243	CBaseCombatCharacter::IsLineOfSightClear(Vector  const&amp;amp;,CBaseCombatCharacter::LineOfSightCheckType,CBaseEntity *)const&lt;br /&gt;
244	CBaseCombatCharacter::GiveAmmo(int,int,bool)&lt;br /&gt;
245	CBaseCombatCharacter::NPC_TranslateActivity(Activity)&lt;br /&gt;
246	CBaseCombatCharacter::Weapon_TranslateActivity(Activity,bool *)&lt;br /&gt;
247	CBaseCombatCharacter::Weapon_FrameUpdate(void)&lt;br /&gt;
248	CBaseCombatCharacter::Weapon_HandleAnimEvent(animevent_t *)&lt;br /&gt;
249	CCSPlayer::Weapon_CanUse(CBaseCombatWeapon *)&lt;br /&gt;
250	CCSPlayer::Weapon_Equip(CBaseCombatWeapon *)&lt;br /&gt;
251	CBaseCombatCharacter::Weapon_EquipAmmoOnly(CBaseCombatWeapon *)&lt;br /&gt;
252	CBasePlayer::Weapon_Drop(CBaseCombatWeapon *,Vector  const*,Vector  const*)&lt;br /&gt;
253	CCSPlayer::Weapon_Switch(CBaseCombatWeapon *,int)&lt;br /&gt;
254	CBasePlayer::Weapon_ShootPosition(void)&lt;br /&gt;
255	CCSPlayer::Weapon_CanSwitchTo(CBaseCombatWeapon *)&lt;br /&gt;
256	CBaseCombatCharacter::Weapon_SlotOccupied(CBaseCombatWeapon *)&lt;br /&gt;
257	CBaseCombatCharacter::Weapon_GetSlot(int)const&lt;br /&gt;
258	CBaseCombatCharacter::AddPlayerItem(CBaseCombatWeapon *)&lt;br /&gt;
259	CBasePlayer::RemovePlayerItem(CBaseCombatWeapon *)&lt;br /&gt;
260	CBaseCombatCharacter::CanBecomeServerRagdoll(void)&lt;br /&gt;
261	CCSPlayer::OnTakeDamage_Alive(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
262	CBaseCombatCharacter::OnTakeDamage_Dying(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
263	CBaseCombatCharacter::OnTakeDamage_Dead(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
264	CBaseCombatCharacter::GetAliveDuration(void)const&lt;br /&gt;
265	CBaseCombatCharacter::OnFriendDamaged(CBaseCombatCharacter*,CBaseEntity *)&lt;br /&gt;
266	CBaseCombatCharacter::NotifyFriendsOfDamage(CBaseEntity *)&lt;br /&gt;
267	CBaseCombatCharacter::HasEverBeenInjured(int)const&lt;br /&gt;
268	CBaseCombatCharacter::GetTimeSinceLastInjury(int)const&lt;br /&gt;
269	CBaseCombatCharacter::OnPlayerKilledOther(CBaseEntity *,CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
270	CBaseCombatCharacter::GetDeathActivity(void)&lt;br /&gt;
271	CBaseCombatCharacter::CorpseGib(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
272	CBaseCombatCharacter::CorpseFade(void)&lt;br /&gt;
273	CBaseCombatCharacter::HasHumanGibs(void)&lt;br /&gt;
274	CBaseCombatCharacter::HasAlienGibs(void)&lt;br /&gt;
275	CBaseCombatCharacter::ShouldGib(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
276	CBaseCombatCharacter::OnKilledNPC(CBaseCombatCharacter*)&lt;br /&gt;
277	CBaseCombatCharacter::Event_Gibbed(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
278	CBasePlayer::Event_Dying(void)&lt;br /&gt;
279	CBaseCombatCharacter::BecomeRagdoll(CTakeDamageInfo  const&amp;amp;,Vector  const&amp;amp;)&lt;br /&gt;
280	CBaseCombatCharacter::FixupBurningServerRagdoll(CBaseEntity *)&lt;br /&gt;
281	CBaseCombatCharacter::BecomeRagdollBoogie(CBaseEntity *,Vector  const&amp;amp;,float,int)&lt;br /&gt;
282	CBaseCombatCharacter::CheckTraceHullAttack(float,Vector  const&amp;amp;,Vector  const&amp;amp;,int,int,float,bool)&lt;br /&gt;
283	CBaseCombatCharacter::CheckTraceHullAttack(Vector  const&amp;amp;,Vector  const&amp;amp;,Vector  const&amp;amp;,Vector  const&amp;amp;,int,int,float,bool)&lt;br /&gt;
284	CBaseCombatCharacter::PushawayTouch(CBaseEntity *)&lt;br /&gt;
285	CBaseCombatCharacter::IRelationType(CBaseEntity *)&lt;br /&gt;
286	CBaseCombatCharacter::IRelationPriority(CBaseEntity *)&lt;br /&gt;
287	CBasePlayer::IsInAVehicle(void)const&lt;br /&gt;
288	CBasePlayer::GetVehicle(void)&lt;br /&gt;
289	CBasePlayer::GetVehicleEntity(void)&lt;br /&gt;
290	CBaseCombatCharacter::ExitVehicle(void)&lt;br /&gt;
291	CBaseCombatCharacter::RemoveAllWeapons(void)&lt;br /&gt;
292	CBaseCombatCharacter::CalcWeaponProficiency(CBaseCombatWeapon *)&lt;br /&gt;
293	CBaseCombatCharacter::GetAttackSpread(CBaseCombatWeapon *,CBaseEntity *)&lt;br /&gt;
294	CBaseCombatCharacter::GetSpreadBias(CBaseCombatWeapon *,CBaseEntity *)&lt;br /&gt;
295	CBasePlayer::DoMuzzleFlash(void)&lt;br /&gt;
296	CBaseCombatCharacter::AddEntityRelationship(CBaseEntity *,Disposition_t,int)&lt;br /&gt;
297	CBaseCombatCharacter::RemoveEntityRelationship(CBaseEntity *)&lt;br /&gt;
298	CBaseCombatCharacter::AddClassRelationship(Class_T,Disposition_t,int)&lt;br /&gt;
299	CBaseCombatCharacter::OnChangeActiveWeapon(CBaseCombatWeapon *,CBaseCombatWeapon *)&lt;br /&gt;
300	CBaseCombatCharacter::GetLastKnownArea(void)const&lt;br /&gt;
301	CBaseCombatCharacter::IsAreaTraversable(CNavArea  const*)const&lt;br /&gt;
302	CBaseCombatCharacter::ClearLastKnownArea(void)&lt;br /&gt;
303	CBaseCombatCharacter::UpdateLastKnownArea(void)&lt;br /&gt;
304	CBaseCombatCharacter::OnNavAreaChanged(CNavArea *,CNavArea *)&lt;br /&gt;
305	CBaseCombatCharacter::OnNavAreaRemoved(CNavArea *)&lt;br /&gt;
306	CBaseCombatCharacter::OnPursuedBy(INextBot *)&lt;br /&gt;
307	CBasePlayer::NetworkStateChanged_m_iAmmo(void)&lt;br /&gt;
308	CBasePlayer::NetworkStateChanged_m_iAmmo(void *)&lt;br /&gt;
309	CCSPlayer::CreateViewModel(int)&lt;br /&gt;
310	CCSPlayer::SetupVisibility(CBaseEntity *,unsigned char *,int)&lt;br /&gt;
311	CCSPlayer::WantsLagCompensationOnEntity(CBasePlayer  const*,CUserCmd  const*,CBitVec&amp;lt;2048&amp;gt;  const*)const&lt;br /&gt;
312	CBasePlayer::SharedSpawn(void)&lt;br /&gt;
313	CBasePlayer::ForceRespawn(void)&lt;br /&gt;
314	CCSPlayer::InitialSpawn(void)&lt;br /&gt;
315	CBasePlayer::InitHUD(void)&lt;br /&gt;
316	CCSPlayer::ShowViewPortPanel(char  const*,bool,KeyValues *)&lt;br /&gt;
317	CCSPlayer::PlayerDeathThink(void)&lt;br /&gt;
318	CBasePlayer::Jump(void)&lt;br /&gt;
319	CBasePlayer::Duck(void)&lt;br /&gt;
320	CCSPlayer::PreThink(void)&lt;br /&gt;
321	CCSPlayer::PostThink(void)&lt;br /&gt;
322	CBasePlayer::DamageEffect(float,int)&lt;br /&gt;
323	CCSPlayer::OnDamagedByExplosion(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
324	CBasePlayer::ShouldFadeOnDeath(void)&lt;br /&gt;
325	CBasePlayer::IsFakeClient(void)const&lt;br /&gt;
326	CBasePlayer::GetPlayerMins(void)const&lt;br /&gt;
327	CBasePlayer::GetPlayerMaxs(void)const&lt;br /&gt;
328	CBasePlayer::CalcRoll(QAngle  const&amp;amp;,Vector  const&amp;amp;,float,float)&lt;br /&gt;
329	CBasePlayer::PackDeadPlayerItems(void)&lt;br /&gt;
330	CCSPlayer::RemoveAllItems(bool)&lt;br /&gt;
331	CBasePlayer::IsRunning(void)const&lt;br /&gt;
332	CBasePlayer::Weapon_SetLast(CBaseCombatWeapon *)&lt;br /&gt;
333	CBasePlayer::Weapon_ShouldSetLast(CBaseCombatWeapon *,CBaseCombatWeapon *)&lt;br /&gt;
334	CBasePlayer::Weapon_ShouldSelectItem(CBaseCombatWeapon *)&lt;br /&gt;
335	CBasePlayer::OnMyWeaponFired(CBaseCombatWeapon *)&lt;br /&gt;
336	CBasePlayer::GetTimeSinceWeaponFired(void)const&lt;br /&gt;
337	CBasePlayer::IsFiringWeapon(void)const&lt;br /&gt;
338	CBasePlayer::UpdateClientData(void)&lt;br /&gt;
339	CBasePlayer::ExitLadder(void)&lt;br /&gt;
340	CBasePlayer::GetLadderSurface(Vector  const&amp;amp;)&lt;br /&gt;
341	CBasePlayer::SetFlashlightEnabled(bool)&lt;br /&gt;
342	CCSPlayer::FlashlightIsOn(void)&lt;br /&gt;
343	CCSPlayer::FlashlightTurnOn(void)&lt;br /&gt;
344	CCSPlayer::FlashlightTurnOff(void)&lt;br /&gt;
345	CBasePlayer::IsIlluminatedByFlashlight(CBaseEntity *,float *)&lt;br /&gt;
346	CCSPlayer::UpdateStepSound(surfacedata_t *,Vector  const&amp;amp;,Vector  const&amp;amp;)&lt;br /&gt;
347	CCSPlayer::PlayStepSound(Vector &amp;amp;,surfacedata_t *,float,bool)&lt;br /&gt;
348	CBasePlayer::GetStepSoundVelocities(float *,float *)&lt;br /&gt;
349	CBasePlayer::SetStepSoundTime(stepsoundtimes_t,bool)&lt;br /&gt;
350	CCSPlayer::DeathSound(CTakeDamageInfo  const&amp;amp;)&lt;br /&gt;
351	CCSPlayer::SetAnimation(PLAYER_ANIM)&lt;br /&gt;
352	CBasePlayer::ImpulseCommands(void)&lt;br /&gt;
353	CCSPlayer::CheatImpulseCommands(int)&lt;br /&gt;
354	CCSPlayer::ClientCommand(CCommand  const&amp;amp;)&lt;br /&gt;
355	CBasePlayer::StartObserverMode(int)&lt;br /&gt;
356	CBasePlayer::StopObserverMode(void)&lt;br /&gt;
357	CBasePlayer::ModeWantsSpectatorGUI(int)&lt;br /&gt;
358	CBasePlayer::SetObserverMode(int)&lt;br /&gt;
359	CBasePlayer::GetObserverMode(void)&lt;br /&gt;
360	CBasePlayer::SetObserverTarget(CBaseEntity *)&lt;br /&gt;
361	CBasePlayer::ObserverUse(bool)&lt;br /&gt;
362	CBasePlayer::GetObserverTarget(void)&lt;br /&gt;
363	CBasePlayer::FindNextObserverTarget(bool)&lt;br /&gt;
364	CCSPlayer::GetNextObserverSearchStartPoint(bool)&lt;br /&gt;
365	CBasePlayer::IsValidObserverTarget(CBaseEntity *)&lt;br /&gt;
366	CBasePlayer::CheckObserverSettings(void)&lt;br /&gt;
367	CBasePlayer::JumptoPosition(Vector  const&amp;amp;,QAngle  const&amp;amp;)&lt;br /&gt;
368	CBasePlayer::ForceObserverMode(int)&lt;br /&gt;
369	CBasePlayer::ResetObserverMode(void)&lt;br /&gt;
370	CBasePlayer::ValidateCurrentObserverTarget(void)&lt;br /&gt;
371	CCSPlayer::AttemptToExitFreezeCam(void)&lt;br /&gt;
372	CCSPlayer::StartReplayMode(float,float,int)&lt;br /&gt;
373	CCSPlayer::StopReplayMode(void)&lt;br /&gt;
374	CBasePlayer::GetDelayTicks(void)&lt;br /&gt;
375	CBasePlayer::GetReplayEntity(void)&lt;br /&gt;
376	CBasePlayer::CreateCorpse(void)&lt;br /&gt;
377	CCSPlayer::EntSelectSpawnPoint(void)&lt;br /&gt;
378	CBasePlayer::GetInVehicle(IServerVehicle *,int)&lt;br /&gt;
379	CBasePlayer::LeaveVehicle(Vector  const&amp;amp;,QAngle  const&amp;amp;)&lt;br /&gt;
380	CBasePlayer::OnVehicleStart(void)&lt;br /&gt;
381	CBasePlayer::OnVehicleEnd(Vector &amp;amp;)&lt;br /&gt;
382	CCSPlayer::BumpWeapon(CBaseCombatWeapon *)&lt;br /&gt;
383	CBasePlayer::SelectLastItem(void)&lt;br /&gt;
384	CBasePlayer::SelectItem(char  const*,int)&lt;br /&gt;
385	CBasePlayer::ItemPostFrame(void)&lt;br /&gt;
386	CCSPlayer::GiveNamedItem(char  const*,int)&lt;br /&gt;
387	CBasePlayer::CheckTrainUpdate(void)&lt;br /&gt;
388	CBasePlayer::SetPlayerUnderwater(bool)&lt;br /&gt;
389	CBasePlayer::CanBreatheUnderwater(void)const&lt;br /&gt;
390	CBasePlayer::PlayerUse(void)&lt;br /&gt;
391	CCSPlayer::PlayUseDenySound(void)&lt;br /&gt;
392	CCSPlayer::FindUseEntity(void)&lt;br /&gt;
393	CCSPlayer::IsUseableEntity(CBaseEntity *,unsigned int)&lt;br /&gt;
394	CBasePlayer::PickupObject(CBaseEntity *,bool)&lt;br /&gt;
395	CBasePlayer::ForceDropOfCarriedPhysObjects(CBaseEntity *)&lt;br /&gt;
396	CBasePlayer::GetHeldObjectMass(IPhysicsObject *)&lt;br /&gt;
397	CBasePlayer::UpdateGeigerCounter(void)&lt;br /&gt;
398	CBasePlayer::GetAutoaimVector(float)&lt;br /&gt;
399	CBasePlayer::GetAutoaimVector(float,float)&lt;br /&gt;
400	CBasePlayer::GetAutoaimVector(autoaim_params_t &amp;amp;)&lt;br /&gt;
401	CBasePlayer::ShouldAutoaim(void)&lt;br /&gt;
402	CBasePlayer::ForceClientDllUpdate(void)&lt;br /&gt;
403	CBasePlayer::ProcessUsercmds(CUserCmd *,int,int,int,bool)&lt;br /&gt;
404	CCSPlayer::PlayerRunCommand(CUserCmd *,IMoveHelper *)&lt;br /&gt;
405	CBasePlayer::ChangeTeam(int,bool,bool)&lt;br /&gt;
406	CBaseMultiplayerPlayer::CanHearAndReadChatFrom(CBasePlayer *)&lt;br /&gt;
407	CBaseMultiplayerPlayer::CanSpeak(void)&lt;br /&gt;
408	CCSPlayer::ModifyOrAppendPlayerCriteria(AI_CriteriaSet &amp;amp;)&lt;br /&gt;
409	CBasePlayer::CheckChatText(char *,int)&lt;br /&gt;
410	CCSPlayer::CreateRagdollEntity(void)&lt;br /&gt;
411	CBasePlayer::ShouldAnnounceAchievement(void)&lt;br /&gt;
412	CBasePlayer::EquipWearable(CWearableItem *)&lt;br /&gt;
413	CBasePlayer::RemoveWearable(CWearableItem *)&lt;br /&gt;
414	CBasePlayer::IsFollowingPhysics(void)&lt;br /&gt;
415	CCSPlayer::InitVCollision(Vector  const&amp;amp;,Vector  const&amp;amp;)&lt;br /&gt;
416	CBasePlayer::UpdatePhysicsShadowToCurrentPosition(void)&lt;br /&gt;
417	CBasePlayer::Hints(void)&lt;br /&gt;
418	CBasePlayer::IsReadyToPlay(void)&lt;br /&gt;
419	CBasePlayer::IsReadyToSpawn(void)&lt;br /&gt;
420	CBasePlayer::ShouldGainInstantSpawn(void)&lt;br /&gt;
421	CBasePlayer::ResetPerRoundStats(void)&lt;br /&gt;
422	CBasePlayer::ResetScores(void)&lt;br /&gt;
423	CBasePlayer::EquipSuit(bool)&lt;br /&gt;
424	CBasePlayer::RemoveSuit(void)&lt;br /&gt;
425	CCSPlayer::CommitSuicide(bool,bool)&lt;br /&gt;
426	CCSPlayer::CommitSuicide(Vector  const&amp;amp;,bool,bool)&lt;br /&gt;
427	CBasePlayer::IsBot(void)const&lt;br /&gt;
428	CBaseMultiplayerPlayer::GetExpresser(void)&lt;br /&gt;
429	CCSPlayer::SpawnArmorValue(void)const&lt;br /&gt;
430	CCSPlayer::NetworkStateChanged_m_ArmorValue(void)&lt;br /&gt;
431	CCSPlayer::NetworkStateChanged_m_ArmorValue(void *)&lt;br /&gt;
432	CBasePlayer::HasHaptics(void)&lt;br /&gt;
433	CBasePlayer::SetHaptics(bool)&lt;br /&gt;
434	CBasePlayer::PlayerSolidMask(bool)const&lt;br /&gt;
435	CAI_ExpresserHost&amp;lt;CBasePlayer&amp;gt;::NoteSpeaking(float,float)&lt;br /&gt;
436	CAI_ExpresserHost&amp;lt;CBasePlayer&amp;gt;::Speak(char  const*,char  const*,char *,unsigned int,IRecipientFilter *)&lt;br /&gt;
437	CAI_ExpresserHost&amp;lt;CBasePlayer&amp;gt;::PostSpeakDispatchResponse(char  const*,AI_Response *)&lt;br /&gt;
438	CBaseMultiplayerPlayer::SpeakIfAllowed(char  const*,char  const*,char *,unsigned int,IRecipientFilter *)&lt;br /&gt;
439	CBaseMultiplayerPlayer::SpeakConceptIfAllowed(int,char  const*,char *,unsigned int,IRecipientFilter *)&lt;br /&gt;
440	CBaseMultiplayerPlayer::CanSpeakVoiceCommand(void)&lt;br /&gt;
441	CBaseMultiplayerPlayer::ShouldShowVoiceSubtitleToEnemy(void)&lt;br /&gt;
442	CBaseMultiplayerPlayer::NoteSpokeVoiceCommand(char  const*)&lt;br /&gt;
443	CBaseMultiplayerPlayer::OnAchievementEarned(int)&lt;br /&gt;
444	CBaseMultiplayerPlayer::GetMultiplayerExpresser(void)&lt;br /&gt;
445	CBaseMultiplayerPlayer::CalculateTeamBalanceScore(void)&lt;br /&gt;
446	CBaseMultiplayerPlayer::CreateExpresser(void)&lt;br /&gt;
447	CCSPlayer::IsBeingGivenItem(void)const&lt;br /&gt;
448	CCSPlayer::CSAnim_GetActiveWeapon(void)&lt;br /&gt;
449	CCSPlayer::CSAnim_CanMove(void)&lt;br /&gt;
450	CCSPlayer::Blind(float,float,float)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Format_Class_Functions_(SourceMod_Scripting)&amp;diff=7385</id>
		<title>Format Class Functions (SourceMod Scripting)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Format_Class_Functions_(SourceMod_Scripting)&amp;diff=7385"/>
		<updated>2009-08-20T09:19:36Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Advanced Formatting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
Format-class functions are variable argument functions in [[SourceMod]] which allow you to format a string.  A simple example of this is the &amp;lt;tt&amp;gt;Format()&amp;lt;/tt&amp;gt; function, which looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;decl String:buffer[512];&lt;br /&gt;
Format(buffer, sizeof(buffer), &amp;quot;Your name is: %s&amp;quot;, userName);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If userName contains &amp;quot;&amp;lt;tt&amp;gt;Mark&amp;lt;/tt&amp;gt;,&amp;quot; the contents of &amp;lt;tt&amp;gt;buffer&amp;lt;/tt&amp;gt; will then be: &amp;quot;&amp;lt;tt&amp;gt;Your name is: Mark&amp;lt;/tt&amp;gt;.&amp;quot;  The prototype of these functions almost always contains the following parameters:&lt;br /&gt;
&amp;lt;pawn&amp;gt;const String:fmt[], {Handle,Float,_}:...&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, observe the following two natives:&lt;br /&gt;
&amp;lt;pawn&amp;gt;native Format(String:buffer[], maxlength, const String:fmt[], {Handle,Float,_}:...);&lt;br /&gt;
native PrintToClient(client, String:fmt[], {Handle,Float,_}:...);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, &amp;lt;tt&amp;gt;PrintToClient&amp;lt;/tt&amp;gt; is a format-class function.  It can be used exactly as shown earlier:&lt;br /&gt;
&amp;lt;pawn&amp;gt;PrintToClient(client, &amp;quot;Your name is: %s&amp;quot;, userName);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Format Specifiers=&lt;br /&gt;
A format specifier is a code that allows you to specify what data-type to print.  The most common specifiers are:&lt;br /&gt;
*'''Numerical'''&lt;br /&gt;
**'''d''' or '''i''': Integer number as decimal&lt;br /&gt;
**'''b''': Binary digits in the value&lt;br /&gt;
**'''f''': Floating-point number&lt;br /&gt;
**'''x''' or '''X''': Hexadecimal representation of the binary value (capitalization affects hex letter casing)&lt;br /&gt;
*'''Character(s)'''&lt;br /&gt;
**'''s''': String&lt;br /&gt;
**'''t''' or '''T''': Translates a phrase (explained in [[Translations (SourceMod_Scripting)#Usage_in_a_Plugin|Translations]])&lt;br /&gt;
**'''c''': Prints one character (UTF-8 compliant)&lt;br /&gt;
*'''Special'''&lt;br /&gt;
**'''L''': Requires a client index; expands to 1&amp;lt;2&amp;gt;&amp;lt;3&amp;gt;&amp;lt;&amp;gt; where 1 is the player's name, 2 is the player's userid, and 3 is the player's Steam ID.  If the client index is 0, the string will be: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;Console&amp;lt;0&amp;gt;&amp;lt;Console&amp;gt;&amp;lt;Console&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
**'''N''': Requires a client index; expands to a string containing the player's name.  If the client index is 0, the string will be: &amp;lt;tt&amp;gt;Console&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
Format specifiers are denoted with a &amp;lt;tt&amp;gt;'%s'&amp;lt;/tt&amp;gt; symbol.  For example, to print a float, a number, and a string, you might use this code:&lt;br /&gt;
&amp;lt;pawn&amp;gt;new Float:fNum = 5.0;&lt;br /&gt;
new iNum = 5&lt;br /&gt;
new String:str[] = &amp;quot;5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PrintToClient(client, &amp;quot;Number: %d Float: %f String: %s&amp;quot;, iNum, fNum, str);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note''': Using the wrong data type with a specifier can be very dangerous.  Always make sure you are printing as the right type.  For example, specifying a string and passing a number can crash the server.&lt;br /&gt;
&lt;br /&gt;
=Advanced Formatting=&lt;br /&gt;
Format specifiers have an extended syntax for controlling various aspects of how data is printed.  The full syntax is:&lt;br /&gt;
&amp;lt;tt&amp;gt;%[flags][width][.precision]specifier&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each bracketed section is an optional extension.  Explanations of supported SourceMod format extensions:&lt;br /&gt;
*'''%''': Obviously, this is always required.&lt;br /&gt;
*'''flags''':&lt;br /&gt;
**'''-''': Left-justify (right-justify is set by default)&lt;br /&gt;
**'''0''': Pads with 0s instead of spaces when needed (see '''width''' below).&lt;br /&gt;
*'''width''': Minimum number of characters to be printed. If the value to be printed is shorter than this number, the result is padded with blank spaces. The value is not truncated even if the result is larger.&lt;br /&gt;
*'''precision''': &lt;br /&gt;
**'''For integers''': specifies the minimum number of digits to print (or pad with spaces/zeroes if below the minimum).  &lt;br /&gt;
**'''For strings''': specifies the maximum number of characters to print.&lt;br /&gt;
**'''For floats''': specifies the number of digits to be printed ''after the decimal point''.&lt;br /&gt;
**'''For all other types''': no effect.&lt;br /&gt;
*'''specifier''': character specifying the data type (always required).&lt;br /&gt;
&lt;br /&gt;
todo: examples&lt;br /&gt;
&lt;br /&gt;
For more information, see [http://www.cplusplus.com/reference/clibrary/cstdio/printf.html printf] from the C Standard Library, although not all modes are supported from C.&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Scripting]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Format_Class_Functions_(SourceMod_Scripting)&amp;diff=7384</id>
		<title>Format Class Functions (SourceMod Scripting)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Format_Class_Functions_(SourceMod_Scripting)&amp;diff=7384"/>
		<updated>2009-08-20T09:04:00Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Format Specifiers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
Format-class functions are variable argument functions in [[SourceMod]] which allow you to format a string.  A simple example of this is the &amp;lt;tt&amp;gt;Format()&amp;lt;/tt&amp;gt; function, which looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;decl String:buffer[512];&lt;br /&gt;
Format(buffer, sizeof(buffer), &amp;quot;Your name is: %s&amp;quot;, userName);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If userName contains &amp;quot;&amp;lt;tt&amp;gt;Mark&amp;lt;/tt&amp;gt;,&amp;quot; the contents of &amp;lt;tt&amp;gt;buffer&amp;lt;/tt&amp;gt; will then be: &amp;quot;&amp;lt;tt&amp;gt;Your name is: Mark&amp;lt;/tt&amp;gt;.&amp;quot;  The prototype of these functions almost always contains the following parameters:&lt;br /&gt;
&amp;lt;pawn&amp;gt;const String:fmt[], {Handle,Float,_}:...&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, observe the following two natives:&lt;br /&gt;
&amp;lt;pawn&amp;gt;native Format(String:buffer[], maxlength, const String:fmt[], {Handle,Float,_}:...);&lt;br /&gt;
native PrintToClient(client, String:fmt[], {Handle,Float,_}:...);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, &amp;lt;tt&amp;gt;PrintToClient&amp;lt;/tt&amp;gt; is a format-class function.  It can be used exactly as shown earlier:&lt;br /&gt;
&amp;lt;pawn&amp;gt;PrintToClient(client, &amp;quot;Your name is: %s&amp;quot;, userName);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Format Specifiers=&lt;br /&gt;
A format specifier is a code that allows you to specify what data-type to print.  The most common specifiers are:&lt;br /&gt;
*'''Numerical'''&lt;br /&gt;
**'''d''' or '''i''': Integer number as decimal&lt;br /&gt;
**'''b''': Binary digits in the value&lt;br /&gt;
**'''f''': Floating-point number&lt;br /&gt;
**'''x''' or '''X''': Hexadecimal representation of the binary value (capitalization affects hex letter casing)&lt;br /&gt;
*'''Character(s)'''&lt;br /&gt;
**'''s''': String&lt;br /&gt;
**'''t''' or '''T''': Translates a phrase (explained in [[Translations (SourceMod_Scripting)#Usage_in_a_Plugin|Translations]])&lt;br /&gt;
**'''c''': Prints one character (UTF-8 compliant)&lt;br /&gt;
*'''Special'''&lt;br /&gt;
**'''L''': Requires a client index; expands to 1&amp;lt;2&amp;gt;&amp;lt;3&amp;gt;&amp;lt;&amp;gt; where 1 is the player's name, 2 is the player's userid, and 3 is the player's Steam ID.  If the client index is 0, the string will be: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;Console&amp;lt;0&amp;gt;&amp;lt;Console&amp;gt;&amp;lt;Console&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
**'''N''': Requires a client index; expands to a string containing the player's name.  If the client index is 0, the string will be: &amp;lt;tt&amp;gt;Console&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
Format specifiers are denoted with a &amp;lt;tt&amp;gt;'%s'&amp;lt;/tt&amp;gt; symbol.  For example, to print a float, a number, and a string, you might use this code:&lt;br /&gt;
&amp;lt;pawn&amp;gt;new Float:fNum = 5.0;&lt;br /&gt;
new iNum = 5&lt;br /&gt;
new String:str[] = &amp;quot;5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PrintToClient(client, &amp;quot;Number: %d Float: %f String: %s&amp;quot;, iNum, fNum, str);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note''': Using the wrong data type with a specifier can be very dangerous.  Always make sure you are printing as the right type.  For example, specifying a string and passing a number can crash the server.&lt;br /&gt;
&lt;br /&gt;
=Advanced Formatting=&lt;br /&gt;
Format specifiers have an extended syntax for controlling various aspects of how data is printed.  The full syntax is:&lt;br /&gt;
&amp;lt;tt&amp;gt;%[flags][width][.precision]specifier&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each bracketed section is an optional extension.  Explanations of supported SourceMod format extensions:&lt;br /&gt;
*'''%''': Obviously, this is always required.&lt;br /&gt;
*'''flags''':&lt;br /&gt;
**'''-''': Left-justify (right-justify is set by default)&lt;br /&gt;
**'''0''': Pads with 0s instead of spaces when needed (see '''width''' below).&lt;br /&gt;
*'''width''': Minimum number of characters to be printed. If the value to be printed is shorter than this number, the result is padded with blank spaces. The value is not truncated even if the result is larger.&lt;br /&gt;
*'''precision''': &lt;br /&gt;
**'''For integers''': specifies the minimum number of digits to print (or pad with spaces/zeroes if below the minimum).  &lt;br /&gt;
**'''For strings''': specifies the maximum number of characters to print.&lt;br /&gt;
**'''For floats''': specifies the number of digits to be printed ''after the decimal point''.&lt;br /&gt;
**'''For all other types''': no effect.&lt;br /&gt;
*'''specifier''': character specifying the data type (always required).&lt;br /&gt;
&lt;br /&gt;
For more information, see [http://www.cplusplus.com/reference/clibrary/cstdio/printf.html printf] from the C Standard Library, although not all modes are supported from C.&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Scripting]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Category:Game_Resources&amp;diff=7383</id>
		<title>Category:Game Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Category:Game_Resources&amp;diff=7383"/>
		<updated>2009-08-19T19:53:27Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this category you can find resources for specific mods.&lt;br /&gt;
&lt;br /&gt;
==Left 4 Dead==&lt;br /&gt;
[[Left_4_Dead_Events|Events]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Left_4_Voting|Voting]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Left_4_Dead_Netprops|NetProps]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.alliedmods.net/images/L4DDatamaps_6_16_09.txt DataMaps - Updated 16/06/09]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Team Fortress 2==&lt;br /&gt;
[[Team_Fortress_2_Events|Events]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/tf2classes.txt Classnames]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/ctfplayer-vtable-220509.txt CTFPlayer Virtual Functions] - Updated 22/05/09&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/tf-net-220509.txt Entity Net Properties] - Updated 22/05/09&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/tf-data-220509.txt DataMap Properties] - Updated 22/05/09&amp;lt;br&amp;gt;&lt;br /&gt;
[[Mod_TempEnt_List_(Source)#Team_Fortress_2|Temp Ents]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/CTFKnife%20vtable.txt CTFKnife Virtual Functions]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/CTFWeaponBase%20Vtable.txt CTFWeaponBase Virtual Functions]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Achievement IDs]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Team_Fortress_2_Weapons|Team Fortress 2 Weapon Entity Names]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Counter-Strike: Source==&lt;br /&gt;
[[Counter-Strike:_Source_Events|Events]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/csclasses.txt Classnames]&amp;lt;br&amp;gt;&lt;br /&gt;
[[CCSPlayer_offset_list_(SourceMM)|CCSPlayer Virtual Functions]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[CBaseCombatWeapon_CSS_offset_list_(SourceMM)|CBaseCombatWeapon Virtual Functions]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/csdump.txt Entity Net Properties]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/csdatamaps.txt DataMap Properties]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Mod_TempEnt_List_(Source)#Counter-Strike:_Source|Temp Ents]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Counter-Strike:_Source_Weapons| Counter-Strike: Source Weapons]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.alliedmods.net/images/Counter-Strike_Source_-_Cvar_List.txt Cvar List]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7382</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7382"/>
		<updated>2009-08-18T19:52:47Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* HookUserMessage Fade */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
Here's a topic on the subject as well: https://forums.alliedmods.net/showthread.php?t=80256&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
 	new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
 	BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
 	BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
 	BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
 	EndMessage()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HudMsg Function ===&lt;br /&gt;
This does not work in CS:S.&lt;br /&gt;
&lt;br /&gt;
This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=846&amp;amp; &amp;amp; http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=842&amp;amp;&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, &amp;quot;This is a Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, const String:szMsg[]) {&lt;br /&gt;
 	new Handle:hBf = StartMessageOne(&amp;quot;HudMsg&amp;quot;, client)&lt;br /&gt;
 	BfWriteByte(hBf, 3) //channel&lt;br /&gt;
 	BfWriteFloat(hBf, 0.0); // x ( -1 = center )&lt;br /&gt;
 	BfWriteFloat(hBf, -1); // y ( -1 = center )&lt;br /&gt;
 	// second color&lt;br /&gt;
 	BfWriteByte(hBf, 0); //r1&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //b1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a1 // transparent?&lt;br /&gt;
 	// init color&lt;br /&gt;
 	BfWriteByte(hBf, 255); //r2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //b2&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeoutTime&lt;br /&gt;
 	BfWriteFloat(hBf, 15.0); //holdtime&lt;br /&gt;
 	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)&lt;br /&gt;
 	BfWriteString(hBf, szMsg); //Message&lt;br /&gt;
 	EndMessage();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HookUserMessage Fade ===&lt;br /&gt;
Some sample code to hook a UserMessage, In this case Fade.&lt;br /&gt;
You cannot send other UserMessages inside of a UserMessage Hook. Many simple functions such as PrintToChat call UserMessages.&lt;br /&gt;
&lt;br /&gt;
 public OnPluginStart() {&lt;br /&gt;
     HookUserMessage(GetUserMessageId(&amp;quot;Fade&amp;quot;),HookFade,true)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public Action:HookFade(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init) {&lt;br /&gt;
 	new duration = BfReadShort(bf)&lt;br /&gt;
 	new holdtime = BfReadShort(bf)&lt;br /&gt;
 	BfReadShort(bf) 	//You must read all of the bf values, even If you only want the last value such as this one.&lt;br /&gt;
 	new r = BfReadByte(bf) 	//You do NOT need to store their value though.&lt;br /&gt;
 	new g = BfReadByte(bf)&lt;br /&gt;
 	new b = BfReadByte(bf)&lt;br /&gt;
 	new a = BfReadByte(bf)&lt;br /&gt;
 	&lt;br /&gt;
 	PrintToServer(&amp;quot;Duration: %i, HoldTime: %i, rgba: %i %i %i %i&amp;quot;,duration,holdtime,r,g,b,a)&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7361</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7361"/>
		<updated>2009-08-12T01:43:28Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* HookUserMessage Fade */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
Here's a topic on the subject as well: https://forums.alliedmods.net/showthread.php?t=80256&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
 	new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
 	BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
 	BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
 	BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
 	EndMessage()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HudMsg Function ===&lt;br /&gt;
This does not work in CS:S.&lt;br /&gt;
&lt;br /&gt;
This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=846&amp;amp; &amp;amp; http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=842&amp;amp;&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, &amp;quot;This is a Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, const String:szMsg[]) {&lt;br /&gt;
 	new Handle:hBf = StartMessageOne(&amp;quot;HudMsg&amp;quot;, client)&lt;br /&gt;
 	BfWriteByte(hBf, 3) //channel&lt;br /&gt;
 	BfWriteFloat(hBf, 0.0); // x ( -1 = center )&lt;br /&gt;
 	BfWriteFloat(hBf, -1); // y ( -1 = center )&lt;br /&gt;
 	// second color&lt;br /&gt;
 	BfWriteByte(hBf, 0); //r1&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //b1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a1 // transparent?&lt;br /&gt;
 	// init color&lt;br /&gt;
 	BfWriteByte(hBf, 255); //r2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //b2&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeoutTime&lt;br /&gt;
 	BfWriteFloat(hBf, 15.0); //holdtime&lt;br /&gt;
 	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)&lt;br /&gt;
 	BfWriteString(hBf, szMsg); //Message&lt;br /&gt;
 	EndMessage();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HookUserMessage Fade ===&lt;br /&gt;
Some sample code to hook a UserMessage, In this case Fade.&lt;br /&gt;
You cannot send other UserMessages inside of a UserMessage Hook. Many simple functions such as PrintToChat call UserMessages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 public OnPluginStart() {&lt;br /&gt;
     HookUserMessage(GetUserMessageId(&amp;quot;Fade&amp;quot;),HookFade,true)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public Action:HookFade(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init) {&lt;br /&gt;
 	new duration = BfReadShort(bf)&lt;br /&gt;
 	new holdtime = BfReadShort(bf)&lt;br /&gt;
 	BfReadShort(bf) 	//You must read all of the bf values, even If you only want the last value such as this one.&lt;br /&gt;
 	new r = BfReadByte(bf) 	//You do NOT need to store their value though.&lt;br /&gt;
 	new g = BfReadByte(bf)&lt;br /&gt;
 	new b = BfReadByte(bf)&lt;br /&gt;
 	new a = BfReadByte(bf)&lt;br /&gt;
 	&lt;br /&gt;
 	PrintToServer(&amp;quot;Duration: %i, HoldTime: %i, rgba: %i %i %i %i&amp;quot;,duration,holdtime,r,g,b,a)&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7356</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7356"/>
		<updated>2009-08-10T18:57:53Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* HookUserMessage Fade */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
Here's a topic on the subject as well: https://forums.alliedmods.net/showthread.php?t=80256&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
 	new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
 	BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
 	BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
 	BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
 	EndMessage()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HudMsg Function ===&lt;br /&gt;
This does not work in CS:S.&lt;br /&gt;
&lt;br /&gt;
This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=846&amp;amp; &amp;amp; http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=842&amp;amp;&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, &amp;quot;This is a Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, const String:szMsg[]) {&lt;br /&gt;
 	new Handle:hBf = StartMessageOne(&amp;quot;HudMsg&amp;quot;, client)&lt;br /&gt;
 	BfWriteByte(hBf, 3) //channel&lt;br /&gt;
 	BfWriteFloat(hBf, 0.0); // x ( -1 = center )&lt;br /&gt;
 	BfWriteFloat(hBf, -1); // y ( -1 = center )&lt;br /&gt;
 	// second color&lt;br /&gt;
 	BfWriteByte(hBf, 0); //r1&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //b1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a1 // transparent?&lt;br /&gt;
 	// init color&lt;br /&gt;
 	BfWriteByte(hBf, 255); //r2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //b2&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeoutTime&lt;br /&gt;
 	BfWriteFloat(hBf, 15.0); //holdtime&lt;br /&gt;
 	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)&lt;br /&gt;
 	BfWriteString(hBf, szMsg); //Message&lt;br /&gt;
 	EndMessage();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HookUserMessage Fade ===&lt;br /&gt;
Some sample code to hook a UserMessage, In this case Fade.&lt;br /&gt;
You cannot send other UserMessages inside of a UserMessage Hook. Many simple functions such as PrintToChat call UserMessages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 public OnPluginStart() {&lt;br /&gt;
     HookUserMessage(GetUserMessageId(&amp;quot;Fade&amp;quot;),HookFade,true)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public Action:HookFade(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init) {&lt;br /&gt;
 	new duration = BfReadShort(bf)&lt;br /&gt;
 	new holdtime = BfReadShort(bf)&lt;br /&gt;
 	BfReadShort(bf) //You must read all of the bf values, even If you only want the last value such as this one.&lt;br /&gt;
 			//You do NOT need to store their value though.&lt;br /&gt;
 	new r = BfReadByte(bf)&lt;br /&gt;
 	new g = BfReadByte(bf)&lt;br /&gt;
 	new b = BfReadByte(bf)&lt;br /&gt;
 	new a = BfReadByte(bf)&lt;br /&gt;
 	&lt;br /&gt;
 	PrintToServer(&amp;quot;Duration: %i, HoldTime: %i, rgba: %i %i %i %i&amp;quot;,duration,holdtime,r,g,b,a)&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7355</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7355"/>
		<updated>2009-08-10T18:57:17Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
Here's a topic on the subject as well: https://forums.alliedmods.net/showthread.php?t=80256&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
 	new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
 	BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
 	BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
 	BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
 	EndMessage()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HudMsg Function ===&lt;br /&gt;
This does not work in CS:S.&lt;br /&gt;
&lt;br /&gt;
This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=846&amp;amp; &amp;amp; http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=842&amp;amp;&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, &amp;quot;This is a Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, const String:szMsg[]) {&lt;br /&gt;
 	new Handle:hBf = StartMessageOne(&amp;quot;HudMsg&amp;quot;, client)&lt;br /&gt;
 	BfWriteByte(hBf, 3) //channel&lt;br /&gt;
 	BfWriteFloat(hBf, 0.0); // x ( -1 = center )&lt;br /&gt;
 	BfWriteFloat(hBf, -1); // y ( -1 = center )&lt;br /&gt;
 	// second color&lt;br /&gt;
 	BfWriteByte(hBf, 0); //r1&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //b1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a1 // transparent?&lt;br /&gt;
 	// init color&lt;br /&gt;
 	BfWriteByte(hBf, 255); //r2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //b2&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeoutTime&lt;br /&gt;
 	BfWriteFloat(hBf, 15.0); //holdtime&lt;br /&gt;
 	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)&lt;br /&gt;
 	BfWriteString(hBf, szMsg); //Message&lt;br /&gt;
 	EndMessage();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HookUserMessage Fade ===&lt;br /&gt;
Some sample code to hook a UserMessage, In this case Fade.&lt;br /&gt;
You cannot send other UserMessages inside of a UserMessage Hook. Many simple functions such as PrintToChat call UserMessages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 public OnPluginStart() {&lt;br /&gt;
     HookUserMessage(GetUserMessageId(&amp;quot;Fade&amp;quot;),HookFade,true)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public Action:HookFade(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init) {&lt;br /&gt;
 	new duration = BfReadShort(bf)&lt;br /&gt;
 	new holdtime = BfReadShort(bf)&lt;br /&gt;
 	BfReadShort(bf) //You must read all of the bf values, even If you only want the last value such as this one. You do NOT need to store their value though.&lt;br /&gt;
 	new r = BfReadByte(bf)&lt;br /&gt;
 	new g = BfReadByte(bf)&lt;br /&gt;
 	new b = BfReadByte(bf)&lt;br /&gt;
 	new a = BfReadByte(bf)&lt;br /&gt;
 	&lt;br /&gt;
 	PrintToServer(&amp;quot;Duration: %i, HoldTime: %i, rgba: %i %i %i %i&amp;quot;,duration,holdtime,r,g,b,a)&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7354</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7354"/>
		<updated>2009-08-10T18:36:40Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
Here's a topic on the subject as well: https://forums.alliedmods.net/showthread.php?t=80256&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
 	new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
 	BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
 	BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
 	BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
 	EndMessage()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HudMsg Function ===&lt;br /&gt;
This does not work in CS:S.&lt;br /&gt;
&lt;br /&gt;
This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=846&amp;amp; &amp;amp; http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=842&amp;amp;&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, &amp;quot;This is a Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, const String:szMsg[]) {&lt;br /&gt;
 	new Handle:hBf = StartMessageOne(&amp;quot;HudMsg&amp;quot;, client)&lt;br /&gt;
 	BfWriteByte(hBf, 3) //channel&lt;br /&gt;
 	BfWriteFloat(hBf, 0.0); // x ( -1 = center )&lt;br /&gt;
 	BfWriteFloat(hBf, -1); // y ( -1 = center )&lt;br /&gt;
 	// second color&lt;br /&gt;
 	BfWriteByte(hBf, 0); //r1&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //b1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a1 // transparent?&lt;br /&gt;
 	// init color&lt;br /&gt;
 	BfWriteByte(hBf, 255); //r2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //b2&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeoutTime&lt;br /&gt;
 	BfWriteFloat(hBf, 15.0); //holdtime&lt;br /&gt;
 	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)&lt;br /&gt;
 	BfWriteString(hBf, szMsg); //Message&lt;br /&gt;
 	EndMessage();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7353</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7353"/>
		<updated>2009-08-09T17:52:38Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* HudMsg Function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
 	new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
 	BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
 	BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
 	BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
 	EndMessage()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HudMsg Function ===&lt;br /&gt;
This does not work in CS:S.&lt;br /&gt;
&lt;br /&gt;
This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=846&amp;amp; &amp;amp; http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=842&amp;amp;&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, &amp;quot;This is a Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 PerformHudMsg(client, const String:szMsg[]) {&lt;br /&gt;
 	new Handle:hBf = StartMessageOne(&amp;quot;HudMsg&amp;quot;, client)&lt;br /&gt;
 	BfWriteByte(hBf, 3) //channel&lt;br /&gt;
 	BfWriteFloat(hBf, 0.0); // x ( -1 = center )&lt;br /&gt;
 	BfWriteFloat(hBf, -1); // y ( -1 = center )&lt;br /&gt;
 	// second color&lt;br /&gt;
 	BfWriteByte(hBf, 0); //r1&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //b1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a1 // transparent?&lt;br /&gt;
 	// init color&lt;br /&gt;
 	BfWriteByte(hBf, 255); //r2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //b2&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeoutTime&lt;br /&gt;
 	BfWriteFloat(hBf, 15.0); //holdtime&lt;br /&gt;
 	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)&lt;br /&gt;
 	BfWriteString(hBf, szMsg); //Message&lt;br /&gt;
 	EndMessage();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7352</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7352"/>
		<updated>2009-08-09T17:51:57Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
 	new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
 	BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
 	BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
 	BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
 	BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
 	EndMessage()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HudMsg Function ===&lt;br /&gt;
This does not work in CS:S.&lt;br /&gt;
&lt;br /&gt;
This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=846&amp;amp; &amp;amp; http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=842&amp;amp;&lt;br /&gt;
&lt;br /&gt;
 SendMsg_HudMsg(client, &amp;quot;This is a Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 SendMsg_HudMsg(client, const String:szMsg[]) {&lt;br /&gt;
 	new Handle:hBf = StartMessageOne(&amp;quot;HudMsg&amp;quot;, client)&lt;br /&gt;
 	BfWriteByte(hBf, 3) //channel&lt;br /&gt;
 	BfWriteFloat(hBf, 0.0); // x ( -1 = center )&lt;br /&gt;
 	BfWriteFloat(hBf, -1); // y ( -1 = center )&lt;br /&gt;
 	// second color&lt;br /&gt;
 	BfWriteByte(hBf, 0); //r1&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //b1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a1 // transparent?&lt;br /&gt;
 	// init color&lt;br /&gt;
 	BfWriteByte(hBf, 255); //r2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //b2&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeoutTime&lt;br /&gt;
 	BfWriteFloat(hBf, 15.0); //holdtime&lt;br /&gt;
 	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)&lt;br /&gt;
 	BfWriteString(hBf, szMsg); //Message&lt;br /&gt;
 	EndMessage();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7351</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7351"/>
		<updated>2009-08-09T17:51:10Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HudMsg Function ===&lt;br /&gt;
This does not work in CS:S.&lt;br /&gt;
&lt;br /&gt;
This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=846&amp;amp; &amp;amp; http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=842&amp;amp;&lt;br /&gt;
&lt;br /&gt;
 SendMsg_HudMsg(client, &amp;quot;This is a Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 SendMsg_HudMsg(client, const String:szMsg[]) {&lt;br /&gt;
 	new Handle:hBf = StartMessageOne(&amp;quot;HudMsg&amp;quot;, client)&lt;br /&gt;
 	BfWriteByte(hBf, 3) //channel&lt;br /&gt;
 	BfWriteFloat(hBf, 0.0); // x ( -1 = center )&lt;br /&gt;
 	BfWriteFloat(hBf, -1); // y ( -1 = center )&lt;br /&gt;
 	// second color&lt;br /&gt;
 	BfWriteByte(hBf, 0); //r1&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //b1&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a1 // transparent?&lt;br /&gt;
 	// init color&lt;br /&gt;
 	BfWriteByte(hBf, 255); //r2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //g2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //b2&lt;br /&gt;
 	BfWriteByte(hBf, 255); //a2&lt;br /&gt;
 	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)&lt;br /&gt;
 	BfWriteFloat(hBf, 1.0); //fadeoutTime&lt;br /&gt;
 	BfWriteFloat(hBf, 15.0); //holdtime&lt;br /&gt;
 	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)&lt;br /&gt;
 	BfWriteString(hBf, szMsg); //Message&lt;br /&gt;
 	EndMessage();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7350</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7350"/>
		<updated>2009-08-09T17:50:37Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== HudMsg Function ===&lt;br /&gt;
This does not work in CS:S.&lt;br /&gt;
&lt;br /&gt;
This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=846&amp;amp; &amp;amp; http://docs.sourcemod.net/api/index.php?fastload=show&amp;amp;id=842&amp;amp;&lt;br /&gt;
&lt;br /&gt;
 SendMsg_HudMsg(client, &amp;quot;This is a Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 SendMsg_HudMsg(client, const String:szMsg[]) {&lt;br /&gt;
	new Handle:hBf = StartMessageOne(&amp;quot;HudMsg&amp;quot;, client)&lt;br /&gt;
	BfWriteByte(hBf, 3) //channel&lt;br /&gt;
	BfWriteFloat(hBf, 0.0); // x ( -1 = center )&lt;br /&gt;
	BfWriteFloat(hBf, -1); // y ( -1 = center )&lt;br /&gt;
	// second color&lt;br /&gt;
	BfWriteByte(hBf, 0); //r1&lt;br /&gt;
	BfWriteByte(hBf, 0); //g1&lt;br /&gt;
	BfWriteByte(hBf, 255); //b1&lt;br /&gt;
	BfWriteByte(hBf, 255); //a1 // transparent?&lt;br /&gt;
	// init color&lt;br /&gt;
	BfWriteByte(hBf, 255); //r2&lt;br /&gt;
	BfWriteByte(hBf, 0); //g2&lt;br /&gt;
	BfWriteByte(hBf, 0); //b2&lt;br /&gt;
	BfWriteByte(hBf, 255); //a2&lt;br /&gt;
	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)&lt;br /&gt;
	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)&lt;br /&gt;
	BfWriteFloat(hBf, 1.0); //fadeoutTime&lt;br /&gt;
	BfWriteFloat(hBf, 15.0); //holdtime&lt;br /&gt;
	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)&lt;br /&gt;
	BfWriteString(hBf, szMsg); //Message&lt;br /&gt;
	EndMessage();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7349</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7349"/>
		<updated>2009-08-09T17:32:14Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Fade Function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!)&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7348</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7348"/>
		<updated>2009-08-07T23:28:12Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Fade Function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function (be sure to define the Fade Flags!&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7347</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7347"/>
		<updated>2009-08-07T23:27:27Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Fade Function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function&lt;br /&gt;
&lt;br /&gt;
This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7346</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7346"/>
		<updated>2009-08-07T23:26:45Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Fade Function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function&lt;br /&gt;
&lt;br /&gt;
This Fades the screen a color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to &amp;quot;fade &amp;amp; hold&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7345</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7345"/>
		<updated>2009-08-07T23:25:59Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Fade Flags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Function ===&lt;br /&gt;
Example Fade function&lt;br /&gt;
&lt;br /&gt;
This Fades the screen a color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to fade &amp;amp; hold&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Category:SourceMod_Development&amp;diff=7341</id>
		<title>Category:SourceMod Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Category:SourceMod_Development&amp;diff=7341"/>
		<updated>2009-07-29T22:40:06Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category contains articles about developing for SourceMod extensions.  [[:Category:SourceMod_Scripting|Click here for the scripting category]].&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
*[[:Category:SourceMod_Scripting|Scripting Tutorials]]&lt;br /&gt;
*[http://docs.sourcemod.net/api/ Scripting Reference]&lt;br /&gt;
&lt;br /&gt;
==Introductions==&lt;br /&gt;
*[[SourceMod SDK]]&lt;br /&gt;
*[[Writing Extensions]]&lt;br /&gt;
*[[Writing Extensions from Metamod:Source Plugins]]&lt;br /&gt;
*[http://docs.sourcemod.net/dox Doxygen of SourceMod API]&lt;br /&gt;
&lt;br /&gt;
==Detailed Tutorials==&lt;br /&gt;
*[[Admin API (SourceMod)|Administration API]]&lt;br /&gt;
*[[Compiling SourceMod]]&lt;br /&gt;
*[[Handle API (SourceMod)|Handle System API]]&lt;br /&gt;
*[[Menu API (SourceMod)|Menu System API]]&lt;br /&gt;
*[[Natives (SourceMod Development)|Writing Native Functions]]&lt;br /&gt;
*[[Finding Virtual Offsets]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
*[[Virtual_Offsets_(Source_Mods)|Virtual Offsets List]]&lt;br /&gt;
*[[Entity Properties]]&lt;br /&gt;
*[[Game Events (Source)|Game Events]]&lt;br /&gt;
*[[Mod TempEnt List (Source)|Temporary Entity Lists]]&lt;br /&gt;
*[[Useful Signatures (Source)|Useful Signatures]]&lt;br /&gt;
*[[:Category:Metamod:Source Development|Metamod:Source Development]]&lt;br /&gt;
*[[:Category:Game_Resources|Mod Specific Resources]]&lt;br /&gt;
*[[User_Messages|User Messages]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Category:SourceMod_Development&amp;diff=7340</id>
		<title>Category:SourceMod Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Category:SourceMod_Development&amp;diff=7340"/>
		<updated>2009-07-29T22:38:09Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category contains articles about developing for SourceMod extensions.  [[:Category:SourceMod_Scripting|Click here for the scripting category]].&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
*[[:Category:SourceMod_Scripting|Scripting Tutorials]]&lt;br /&gt;
*[http://docs.sourcemod.net/api/ Scripting Reference]&lt;br /&gt;
&lt;br /&gt;
==Introductions==&lt;br /&gt;
*[[SourceMod SDK]]&lt;br /&gt;
*[[Writing Extensions]]&lt;br /&gt;
*[[Writing Extensions from Metamod:Source Plugins]]&lt;br /&gt;
*[http://docs.sourcemod.net/dox Doxygen of SourceMod API]&lt;br /&gt;
&lt;br /&gt;
==Detailed Tutorials==&lt;br /&gt;
*[[Admin API (SourceMod)|Administration API]]&lt;br /&gt;
*[[Compiling SourceMod]]&lt;br /&gt;
*[[Handle API (SourceMod)|Handle System API]]&lt;br /&gt;
*[[Menu API (SourceMod)|Menu System API]]&lt;br /&gt;
*[[Natives (SourceMod Development)|Writing Native Functions]]&lt;br /&gt;
*[[Finding Virtual Offsets]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
*[[Virtual_Offsets_(Source_Mods)|Virtual Offsets List]]&lt;br /&gt;
*[[Entity Properties]]&lt;br /&gt;
*[[Game Events (Source)|Game Events]]&lt;br /&gt;
*[[Mod TempEnt List (Source)|Temporary Entity Lists]]&lt;br /&gt;
*[[Useful Signatures (Source)|Useful Signatures]]&lt;br /&gt;
*[[:Category:Metamod:Source Development|Metamod:Source Development]]&lt;br /&gt;
*[[:Category:Game_Resources|Mod Specific Resources]]&lt;br /&gt;
*[[User_Messages]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7339</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7339"/>
		<updated>2009-07-29T22:37:15Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Fade Flags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
Example Fade function&lt;br /&gt;
&lt;br /&gt;
This Fades the screen a color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to fade &amp;amp; hold&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7338</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7338"/>
		<updated>2009-07-29T22:36:00Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Fade Flags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
Example Fade function&lt;br /&gt;
&lt;br /&gt;
This Fades the screen a color, and stays until you reset the color to {0,0,0,0}&lt;br /&gt;
To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to fade &amp;amp; hold&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 500, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7337</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7337"/>
		<updated>2009-07-29T22:29:18Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
Example Fade function&lt;br /&gt;
&lt;br /&gt;
 PerformFade(target, 1000, {0, 128, 255, 51})&lt;br /&gt;
&lt;br /&gt;
 PerformFade(client, duration, const color[4]) {&lt;br /&gt;
   new Handle:hFadeClient=StartMessageOne(&amp;quot;Fade&amp;quot;,client)&lt;br /&gt;
   BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration&lt;br /&gt;
   BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds duration until reset (fade &amp;amp; hold)&lt;br /&gt;
   BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)&lt;br /&gt;
   BfWriteByte(hFadeClient,color[0])	// fade red&lt;br /&gt;
   BfWriteByte(hFadeClient,color[1])	// fade green&lt;br /&gt;
   BfWriteByte(hFadeClient,color[2])	// fade blue&lt;br /&gt;
   BfWriteByte(hFadeClient,color[3])	// fade alpha&lt;br /&gt;
   EndMessage()&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Category:SourceMod_Development&amp;diff=7336</id>
		<title>Category:SourceMod Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Category:SourceMod_Development&amp;diff=7336"/>
		<updated>2009-07-28T01:54:52Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category contains articles about developing for SourceMod extensions.  [[:Category:SourceMod_Scripting|Click here for the scripting category]].&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
*[[:Category:SourceMod_Scripting|Scripting Tutorials]]&lt;br /&gt;
*[http://docs.sourcemod.net/api/ Scripting Reference]&lt;br /&gt;
&lt;br /&gt;
==Introductions==&lt;br /&gt;
*[[SourceMod SDK]]&lt;br /&gt;
*[[Writing Extensions]]&lt;br /&gt;
*[[Writing Extensions from Metamod:Source Plugins]]&lt;br /&gt;
*[http://docs.sourcemod.net/dox Doxygen of SourceMod API]&lt;br /&gt;
&lt;br /&gt;
==Detailed Tutorials==&lt;br /&gt;
*[[Admin API (SourceMod)|Administration API]]&lt;br /&gt;
*[[Compiling SourceMod]]&lt;br /&gt;
*[[Handle API (SourceMod)|Handle System API]]&lt;br /&gt;
*[[Menu API (SourceMod)|Menu System API]]&lt;br /&gt;
*[[Natives (SourceMod Development)|Writing Native Functions]]&lt;br /&gt;
*[[Finding Virtual Offsets]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
*[[Virtual_Offsets_(Source_Mods)|Virtual Offsets List]]&lt;br /&gt;
*[[Entity Properties]]&lt;br /&gt;
*[[Game Events (Source)|Game Events]]&lt;br /&gt;
*[[Mod TempEnt List (Source)|Temporary Entity Lists]]&lt;br /&gt;
*[[Useful Signatures (Source)|Useful Signatures]]&lt;br /&gt;
*[[:Category:Metamod:Source Development|Metamod:Source Development]]&lt;br /&gt;
*[[:Category:Game_Resources|Mod Specific Resources]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Finding_Virtual_Offsets&amp;diff=7326</id>
		<title>Finding Virtual Offsets</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Finding_Virtual_Offsets&amp;diff=7326"/>
		<updated>2009-07-21T01:51:26Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Windows Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
Finding virtual offsets provides us a way to access functions in the games that we otherwise would not be able access. Using either SDKCalls, Extensions, or MM:S Plugins, we can make use of these virtual offsets to give us a massive amount of functionality that is not included with Sourcemod out of the box.&lt;br /&gt;
&lt;br /&gt;
For this example, you will need a copy of IDA Disassembler. We will be using IDA Pro 5.2 but any of the more recent versions should work fine (will not work with the free version). You will also need to grab this [http://hg.alliedmods.net/sourcemod-central/file/5f0dcfc72e44/editor/ida/linux_vtable_dump.idc linux_vtable_dump.idc] file and install it into your IDA/idc/ directory. Lastly, you will need to get a copy of the Linux server file for the game you want to find the offsets for. This will generally be in the 'bin' directory of your game folder and the file will be named server_i486.so along with some other similar files.&lt;br /&gt;
&lt;br /&gt;
=Finding Offsets=&lt;br /&gt;
&lt;br /&gt;
'''Disassemble the Linux Server''':&lt;br /&gt;
&lt;br /&gt;
Now that your files are setup appropriately, you can start the IDA Disassembler. On the Welcome to IDA box that opens initially, you will want to click the &amp;quot;New&amp;quot; button. This will allow us to add a new file for it to disassemble. After you initially disassemble the file, you will be able to reload it without any hassle by using the 'Previous' button and selecting the file on this screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Ida welcomescreen.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you click the New Button, the application will open. It will prompt you to choose a specific type of file from a box, however you can just close this as we do not need it. The screen should now say &amp;quot;Drag a File Here to disassemble&amp;quot;. Open your folder containing the server_i486.so and drag drop this file in now. This will start the disassembling process, and depending on hardware, can take anywhere from 15-30 minutes to completely finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Find the Virtual Table:''':&lt;br /&gt;
&lt;br /&gt;
You will want to be in IDA View-A and make sure you can see both the IDA View-A window as well as the Names window to make this easier on yourself. For this example, we will be finding the Virtual Offset for the function CBasePlayer::ChangeTeam. Our first step is to locate this function in the Names window. (The search hotkey combination is Alt+T) Now once you find this function, in the Names window, double click it, and it should select a line in the IDA View-A window that looks something similar to this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Ida changeteamscreen.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here we are going to want to go to the Jump Menu up top, and select Jump to Cross Reference. (The hotkey is CTRL+X) This will find the reference files for this paticular function. You will want to make sure that you find the line with `vtable at the start of it, as this will be the Virtual Table file that contains the offsets for us.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Ida crossjump.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Save the Virtual Table file:''':&lt;br /&gt;
&lt;br /&gt;
Now double click the line that says `vtable for'CBasePlayer and you will be brought back to the IDA View-A window. This time your cursor will be on the line with the VTable information. You have now successfully located the file you need, and you are ready to get the offsets. Making sure that your cursor is still somewhere in that line, go to...&lt;br /&gt;
&lt;br /&gt;
File -&amp;gt; IDC File&lt;br /&gt;
&lt;br /&gt;
and browse to the linux_vtable_dump.idc file that we placed in the IDA directory earlier. Load this file and click OK, and it will now ask you to enter a number for VTable's entries to ingore indexing. We will leave this alone and just click OK again. It will run your IDC script file, and give you another dialog box. This time it wants you to choose the location for the dump file. Browse to your desktop, and enter anything for the File Name box, and click Save.&lt;br /&gt;
You now have a text file on your desktop will all of the CBaseEntity offsets inside of it that you can use.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
That is all there is to it. Keep in mind that even though this is the Linux server file, the offsets listed in the dump file are for windows. You will just need to add +1 to these offsets to obtain the Linux offset. Make sure that you are using the Linux server file when you disassemble as well, because the Windows server does not have symbols or readable names, and you will not be able to find the offsets with it (unless you have the .pdb files for it, which only the Developers of the Game / Mod should have).&lt;br /&gt;
&lt;br /&gt;
=Windows Info=&lt;br /&gt;
 [07:38pm] &amp;lt;DaFox&amp;gt; dvander word it in such a way that I can copy/paste it into the wiki&lt;br /&gt;
 [07:38pm] &amp;lt;dvander&amp;gt; lol, i dunno if i can do that in IRC.  basically, there are two tricks&lt;br /&gt;
 [07:39pm] &amp;lt;dvander&amp;gt; the first is if you know assembly really well&lt;br /&gt;
 [07:39pm] &amp;lt;dvander&amp;gt; you can look at the SDK for a function that calls something you are interested in&lt;br /&gt;
 [07:39pm] &amp;lt;dvander&amp;gt; find a string in that function, or a string in a function in its cross-reference graph&lt;br /&gt;
 [07:40pm] &amp;lt;dvander&amp;gt; for the former case, find the same string in the windows binary and use the xref graph to find the right function&lt;br /&gt;
 [07:40pm] &amp;lt;dvander&amp;gt; for the latter case, say a function with a string in it calls the function that has what you want&lt;br /&gt;
 [07:40pm] &amp;lt;dvander&amp;gt; you find the first function, then read through it until you get to what you want&lt;br /&gt;
 [07:41pm] &amp;lt;dvander&amp;gt; once you have the actual function you're looking for&lt;br /&gt;
 [07:41pm] &amp;lt;dvander&amp;gt; you use the xref graph to find its reference in the data section&lt;br /&gt;
 [07:41pm] &amp;lt;dvander&amp;gt; it will be in a large table - the virtual table&lt;br /&gt;
 [07:41pm] &amp;lt;dvander&amp;gt; and you can compute its offset from the base of that table&lt;br /&gt;
 [07:42pm] &amp;lt;dvander&amp;gt; the other trick is a bit easier, sometimes&lt;br /&gt;
 [07:42pm] &amp;lt;dvander&amp;gt; you compile the SDK on windows&lt;br /&gt;
 [07:42pm] &amp;lt;dvander&amp;gt; turn on the MSVC feature that dumps assembly&lt;br /&gt;
 [07:42pm] &amp;lt;dvander&amp;gt; and poke around, using educated guessing&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Finding_Virtual_Offsets&amp;diff=7325</id>
		<title>Finding Virtual Offsets</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Finding_Virtual_Offsets&amp;diff=7325"/>
		<updated>2009-07-21T01:51:05Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
Finding virtual offsets provides us a way to access functions in the games that we otherwise would not be able access. Using either SDKCalls, Extensions, or MM:S Plugins, we can make use of these virtual offsets to give us a massive amount of functionality that is not included with Sourcemod out of the box.&lt;br /&gt;
&lt;br /&gt;
For this example, you will need a copy of IDA Disassembler. We will be using IDA Pro 5.2 but any of the more recent versions should work fine (will not work with the free version). You will also need to grab this [http://hg.alliedmods.net/sourcemod-central/file/5f0dcfc72e44/editor/ida/linux_vtable_dump.idc linux_vtable_dump.idc] file and install it into your IDA/idc/ directory. Lastly, you will need to get a copy of the Linux server file for the game you want to find the offsets for. This will generally be in the 'bin' directory of your game folder and the file will be named server_i486.so along with some other similar files.&lt;br /&gt;
&lt;br /&gt;
=Finding Offsets=&lt;br /&gt;
&lt;br /&gt;
'''Disassemble the Linux Server''':&lt;br /&gt;
&lt;br /&gt;
Now that your files are setup appropriately, you can start the IDA Disassembler. On the Welcome to IDA box that opens initially, you will want to click the &amp;quot;New&amp;quot; button. This will allow us to add a new file for it to disassemble. After you initially disassemble the file, you will be able to reload it without any hassle by using the 'Previous' button and selecting the file on this screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Ida welcomescreen.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you click the New Button, the application will open. It will prompt you to choose a specific type of file from a box, however you can just close this as we do not need it. The screen should now say &amp;quot;Drag a File Here to disassemble&amp;quot;. Open your folder containing the server_i486.so and drag drop this file in now. This will start the disassembling process, and depending on hardware, can take anywhere from 15-30 minutes to completely finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Find the Virtual Table:''':&lt;br /&gt;
&lt;br /&gt;
You will want to be in IDA View-A and make sure you can see both the IDA View-A window as well as the Names window to make this easier on yourself. For this example, we will be finding the Virtual Offset for the function CBasePlayer::ChangeTeam. Our first step is to locate this function in the Names window. (The search hotkey combination is Alt+T) Now once you find this function, in the Names window, double click it, and it should select a line in the IDA View-A window that looks something similar to this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Ida changeteamscreen.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here we are going to want to go to the Jump Menu up top, and select Jump to Cross Reference. (The hotkey is CTRL+X) This will find the reference files for this paticular function. You will want to make sure that you find the line with `vtable at the start of it, as this will be the Virtual Table file that contains the offsets for us.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Ida crossjump.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Save the Virtual Table file:''':&lt;br /&gt;
&lt;br /&gt;
Now double click the line that says `vtable for'CBasePlayer and you will be brought back to the IDA View-A window. This time your cursor will be on the line with the VTable information. You have now successfully located the file you need, and you are ready to get the offsets. Making sure that your cursor is still somewhere in that line, go to...&lt;br /&gt;
&lt;br /&gt;
File -&amp;gt; IDC File&lt;br /&gt;
&lt;br /&gt;
and browse to the linux_vtable_dump.idc file that we placed in the IDA directory earlier. Load this file and click OK, and it will now ask you to enter a number for VTable's entries to ingore indexing. We will leave this alone and just click OK again. It will run your IDC script file, and give you another dialog box. This time it wants you to choose the location for the dump file. Browse to your desktop, and enter anything for the File Name box, and click Save.&lt;br /&gt;
You now have a text file on your desktop will all of the CBaseEntity offsets inside of it that you can use.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
That is all there is to it. Keep in mind that even though this is the Linux server file, the offsets listed in the dump file are for windows. You will just need to add +1 to these offsets to obtain the Linux offset. Make sure that you are using the Linux server file when you disassemble as well, because the Windows server does not have symbols or readable names, and you will not be able to find the offsets with it (unless you have the .pdb files for it, which only the Developers of the Game / Mod should have).&lt;br /&gt;
&lt;br /&gt;
=Windows Info=&lt;br /&gt;
[07:38pm] &amp;lt;DaFox&amp;gt; dvander word it in such a way that I can copy/paste it into the wiki&lt;br /&gt;
[07:38pm] &amp;lt;dvander&amp;gt; lol, i dunno if i can do that in IRC.  basically, there are two tricks&lt;br /&gt;
[07:39pm] &amp;lt;dvander&amp;gt; the first is if you know assembly really well&lt;br /&gt;
[07:39pm] &amp;lt;dvander&amp;gt; you can look at the SDK for a function that calls something you are interested in&lt;br /&gt;
[07:39pm] &amp;lt;dvander&amp;gt; find a string in that function, or a string in a function in its cross-reference graph&lt;br /&gt;
[07:40pm] &amp;lt;dvander&amp;gt; for the former case, find the same string in the windows binary and use the xref graph to find the right function&lt;br /&gt;
[07:40pm] &amp;lt;dvander&amp;gt; for the latter case, say a function with a string in it calls the function that has what you want&lt;br /&gt;
[07:40pm] &amp;lt;dvander&amp;gt; you find the first function, then read through it until you get to what you want&lt;br /&gt;
[07:41pm] &amp;lt;dvander&amp;gt; once you have the actual function you're looking for&lt;br /&gt;
[07:41pm] &amp;lt;dvander&amp;gt; you use the xref graph to find its reference in the data section&lt;br /&gt;
[07:41pm] &amp;lt;dvander&amp;gt; it will be in a large table - the virtual table&lt;br /&gt;
[07:41pm] &amp;lt;dvander&amp;gt; and you can compute its offset from the base of that table&lt;br /&gt;
[07:42pm] &amp;lt;dvander&amp;gt; the other trick is a bit easier, sometimes&lt;br /&gt;
[07:42pm] &amp;lt;dvander&amp;gt; you compile the SDK on windows&lt;br /&gt;
[07:42pm] &amp;lt;dvander&amp;gt; turn on the MSVC feature that dumps assembly&lt;br /&gt;
[07:42pm] &amp;lt;dvander&amp;gt; and poke around, using educated guessing&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7315</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7315"/>
		<updated>2009-07-01T02:02:36Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* Fade Flags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
These may not be correct...&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7314</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7314"/>
		<updated>2009-07-01T00:39:52Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7313</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7313"/>
		<updated>2009-07-01T00:29:11Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
=== Counter-Strike: Source User Messages ===&lt;br /&gt;
List obtained by using 'meta game' in the console&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;br /&gt;
&lt;br /&gt;
=== Fade Flags ===&lt;br /&gt;
&lt;br /&gt;
 FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
 FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
 FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
 FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
 FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
[[User:DaFox|DaFox]] 00:29, 1 July 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7312</id>
		<title>User Messages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_Messages&amp;diff=7312"/>
		<updated>2009-07-01T00:21:41Z</updated>

		<summary type="html">&lt;p&gt;DaFox: Created page with 'This is just a dump of some stuff for now, needs a complete revamp later.  #define FFADE_IN            0x0001        // Just here so we don't pass 0 into the function #define FFA...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a dump of some stuff for now, needs a complete revamp later.&lt;br /&gt;
&lt;br /&gt;
#define FFADE_IN            0x0001        // Just here so we don't pass 0 into the function&lt;br /&gt;
#define FFADE_OUT           0x0002        // Fade out (not in)&lt;br /&gt;
#define FFADE_MODULATE      0x0004        // Modulate (don't blend)&lt;br /&gt;
#define FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received&lt;br /&gt;
#define FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  User Messages:  Name                              Index  Size &lt;br /&gt;
                  Geiger                            0      1    &lt;br /&gt;
                  Train                             1      1    &lt;br /&gt;
                  HudText                           2      -1   &lt;br /&gt;
                  SayText                           3      -1   &lt;br /&gt;
                  SayText2                          4      -1   &lt;br /&gt;
                  TextMsg                           5      -1   &lt;br /&gt;
                  HudMsg                            6      -1   &lt;br /&gt;
                  ResetHUD                          7      1    &lt;br /&gt;
                  GameTitle                         8      0    &lt;br /&gt;
                  ItemPickup                        9      -1   &lt;br /&gt;
                  ShowMenu                          10     -1   &lt;br /&gt;
                  Shake                             11     13   &lt;br /&gt;
                  Fade                              12     10   &lt;br /&gt;
                  VGUIMenu                          13     -1   &lt;br /&gt;
                  CloseCaption                      14     7    &lt;br /&gt;
                  SendAudio                         15     -1   &lt;br /&gt;
                  RawAudio                          16     -1   &lt;br /&gt;
                  VoiceMask                         17     17   &lt;br /&gt;
                  RequestState                      18     0    &lt;br /&gt;
                  BarTime                           19     -1   &lt;br /&gt;
                  Damage                            20     -1   &lt;br /&gt;
                  RadioText                         21     -1   &lt;br /&gt;
                  HintText                          22     -1   &lt;br /&gt;
                  ReloadEffect                      23     2    &lt;br /&gt;
                  PlayerAnimEvent                   24     -1   &lt;br /&gt;
                  AmmoDenied                        25     2    &lt;br /&gt;
                  UpdateRadar                       26     -1   &lt;br /&gt;
                  KillCam                           27     -1   &lt;br /&gt;
  28 user messages in total&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Source_Events&amp;diff=7130</id>
		<title>Counter-Strike: Source Events</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Source_Events&amp;diff=7130"/>
		<updated>2009-04-02T18:18:56Z</updated>

		<summary type="html">&lt;p&gt;DaFox: /* smokegrenade_detonate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''Refer back to [[Game Events (Source)]] for more events.''&lt;br /&gt;
&lt;br /&gt;
=== player_death ===&lt;br /&gt;
{{qnotice|When a client dies}}&lt;br /&gt;
{{begin-hl2msg|player_death|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|attacker}}&lt;br /&gt;
{{hl2msg|string|weapon}}&lt;br /&gt;
{{hl2msg|bool|headshot}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_hurt ===&lt;br /&gt;
{{qnotice|When a client is damaged}}&lt;br /&gt;
{{begin-hl2msg|player_hurt|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|attacker}}&lt;br /&gt;
{{hl2msg|byte|health}}&lt;br /&gt;
{{hl2msg|byte|armor}}&lt;br /&gt;
{{hl2msg|string|weapon}}&lt;br /&gt;
{{hl2msg|byte|dmg_health}}&lt;br /&gt;
{{hl2msg|byte|dmg_armor}}&lt;br /&gt;
{{hl2msg|byte|hitgroup}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_beginplant ===&lt;br /&gt;
{{qnotice|When the bomb is starting to get planted}}&lt;br /&gt;
{{begin-hl2msg|bomb_beginplant|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|site}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_abortplant ===&lt;br /&gt;
{{qnotice|When the bomb planter stops planting the bomb}}&lt;br /&gt;
{{begin-hl2msg|bomb_abortplant|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|site}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_planted ===&lt;br /&gt;
{{qnotice|When the bomb has been planted}}&lt;br /&gt;
{{begin-hl2msg|bomb_planted|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|site}}&lt;br /&gt;
{{hl2msg|short|posx}}&lt;br /&gt;
{{hl2msg|short|posy}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_defused ===&lt;br /&gt;
{{qnotice|When the bomb has been defused}}&lt;br /&gt;
{{begin-hl2msg|bomb_defused|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|site}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_exploded ===&lt;br /&gt;
{{qnotice|When the bomb explodes}}&lt;br /&gt;
{{begin-hl2msg|bomb_exploded|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|site}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_dropped ===&lt;br /&gt;
{{qnotice|When the bomb is dropped by a client}}&lt;br /&gt;
{{begin-hl2msg|bomb_dropped|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_pickup ===&lt;br /&gt;
{{qnotice|When the bomb is picked up by a client}}&lt;br /&gt;
{{begin-hl2msg|bomb_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_begindefuse ===&lt;br /&gt;
{{qnotice|When the bomb is started to be defused}}&lt;br /&gt;
{{begin-hl2msg|bomb_begindefuse|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|bool|haskit}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_abortdefuse ===&lt;br /&gt;
{{qnotice|When the bomb defusal is stopped}}&lt;br /&gt;
{{begin-hl2msg|bomb_abortdefuse|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_follows ===&lt;br /&gt;
{{qnotice|When the hostage begins following a client}}&lt;br /&gt;
{{begin-hl2msg|hostage_follows|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|hostage}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_hurt ===&lt;br /&gt;
{{qnotice|When a hostage is damaged}}&lt;br /&gt;
{{begin-hl2msg|hostage_hurt|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|hostage}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_killed ===&lt;br /&gt;
{{qnotice|When a hostage is killed}}&lt;br /&gt;
{{begin-hl2msg|hostage_killed|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|hostage}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_rescued ===&lt;br /&gt;
{{qnotice|When a hostage is rescued}}&lt;br /&gt;
{{begin-hl2msg|hostage_rescued|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|hostage}}&lt;br /&gt;
{{hl2msg|short|site}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_stops_following ===&lt;br /&gt;
{{qnotice|When a hostage stops following a client}}&lt;br /&gt;
{{begin-hl2msg|hostage_stops_following|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|hostage}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_rescued_all ===&lt;br /&gt;
{{qnotice|When all the hostages are rescued}}&lt;br /&gt;
{{begin-hl2msg|hostage_rescued_all|string}}&lt;br /&gt;
{{hl2msg|''none''|''none''}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_call_for_help ===&lt;br /&gt;
{{qnotice|When the hostage calls for help}}&lt;br /&gt;
{{begin-hl2msg|hostage_call_for_help|string}}&lt;br /&gt;
{{hl2msg|short|hostage}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== vip_escaped ===&lt;br /&gt;
{{qnotice|When the VIP escapes}}&lt;br /&gt;
{{begin-hl2msg|vip_escaped|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== vip_killed ===&lt;br /&gt;
{{qnotice|When the VIP is killed}}&lt;br /&gt;
{{begin-hl2msg|vip_killed|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|attacker}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_radio ===&lt;br /&gt;
{{qnotice|When the player uses radio commands}}&lt;br /&gt;
{{begin-hl2msg|player_radio|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|short|slot}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_beep ===&lt;br /&gt;
{{qnotice|Every time the bomb beep sound happens}}&lt;br /&gt;
{{begin-hl2msg|bomb_beep|string}}&lt;br /&gt;
{{hl2msg|long|entindex}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_fire ===&lt;br /&gt;
{{qnotice|Every time a client fires their weapon}}&lt;br /&gt;
{{begin-hl2msg|weapon_fire|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|string|weapon}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_fire_on_empty ===&lt;br /&gt;
{{qnotice|Every time a client fires their weapon and it's empty}}&lt;br /&gt;
{{begin-hl2msg|weapon_fire_on_empty|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|string|weapon}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_reload ===&lt;br /&gt;
{{qnotice|Every time a client reloads their weapon}}&lt;br /&gt;
{{begin-hl2msg|weapon_reload|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_zoom ===&lt;br /&gt;
{{qnotice|Every time a client zooms a scoped weapon}}&lt;br /&gt;
{{begin-hl2msg|weapon_zoom|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_pickup ===&lt;br /&gt;
{{qnotice|Every time an item is picked up (generally weapons)}}&lt;br /&gt;
{{begin-hl2msg|item_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|string|item}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== grenade_bounce ===&lt;br /&gt;
{{qnotice|Every time a grenade bounces}}&lt;br /&gt;
{{begin-hl2msg|grenade_bounce|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hegrenade_detonate ===&lt;br /&gt;
{{qnotice|Every time a hegrenade explodes}}&lt;br /&gt;
{{begin-hl2msg|hegrenade_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== flashbang_detonate ===&lt;br /&gt;
{{qnotice|Every time a flashbang detonates}}&lt;br /&gt;
{{begin-hl2msg|flashbang_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== smokegrenade_detonate ===&lt;br /&gt;
{{qnotice|Every time a smokegrenade detonates}}&lt;br /&gt;
{{begin-hl2msg|smokegrenade_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bullet_impact ===&lt;br /&gt;
{{qnotice|Every time a bullet hits something}}&lt;br /&gt;
{{begin-hl2msg|bullet_impact}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|float|x}}&lt;br /&gt;
{{hl2msg|float|y}}&lt;br /&gt;
{{hl2msg|float|z}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_footstep ===&lt;br /&gt;
{{qnotice|Every time a player takes a step}}&lt;br /&gt;
{{begin-hl2msg|player_footstep|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_jump ===&lt;br /&gt;
{{qnotice|Every time a player jumps}}&lt;br /&gt;
{{begin-hl2msg|player_jump|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_blind ===&lt;br /&gt;
{{qnotice|Every time a player is blinded by a flashbang}}&lt;br /&gt;
{{begin-hl2msg|player_blind|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_falldamage ===&lt;br /&gt;
{{qnotice|Every time a player takes damage due to a fall}}&lt;br /&gt;
{{begin-hl2msg|player_falldamage|string}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{hl2msg|float|damage}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== door_moving ===&lt;br /&gt;
{{qnotice|Every time a door is put in motion (opened)}}&lt;br /&gt;
{{begin-hl2msg|door_moving|string}}&lt;br /&gt;
{{hl2msg|long|entindex}}&lt;br /&gt;
{{hl2msg|short|userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_freeze_end ===&lt;br /&gt;
{{qnotice|When the round's mp_freezetime is up}}&lt;br /&gt;
{{begin-hl2msg|round_freeze_end|string}}&lt;br /&gt;
{{hl2msg|none|none}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== nav_blocked ===&lt;br /&gt;
{{qnotice|''Guess: Called when an area is blocked by the nav of a map''}}&lt;br /&gt;
{{begin-hl2msg|nav_blocked|string}}&lt;br /&gt;
{{hl2msg|long|area}}&lt;br /&gt;
{{hl2msg|bool|blocked}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== nav_generate ===&lt;br /&gt;
{{qnotice|Called when a nav file does not exist for a map and bots are added}}&lt;br /&gt;
{{begin-hl2msg|nav_generate|string}}&lt;br /&gt;
{{hl2msg|none|none}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=SourceMod_SDK&amp;diff=7072</id>
		<title>SourceMod SDK</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=SourceMod_SDK&amp;diff=7072"/>
		<updated>2009-03-27T12:26:02Z</updated>

		<summary type="html">&lt;p&gt;DaFox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The SourceMod SDK is the Software Development Kit for writing SourceMod Extensions and Plugins.  This article briefly introduces it.&lt;br /&gt;
&lt;br /&gt;
=Directory Structure=&lt;br /&gt;
*'''configs''': Configuration files that SourceMod uses&lt;br /&gt;
*'''editor''': Editor related files&lt;br /&gt;
**'''Pawn Studio''': [http://sourceforge.net/projects/pawnstudio Official IDE for SourceMod]&lt;br /&gt;
**'''crimson''': Drop-in syntax highlighting for [http://www.crimsoneditor.com/ Crimson Editor]&lt;br /&gt;
**'''textpad''': Drop-in syntax highlighting for [http://www.textpad.com/ TextPad]&lt;br /&gt;
**'''ultraedit''': Drop-in syntax highlighting for [http://www.ultraedit.com/ UltraEdit/UEStudio]&lt;br /&gt;
*'''extensions''': Publicly open-sourced extensions.&lt;br /&gt;
**'''batsupport''': Implementation of the [[AdminInterface (SourceMM)|BAT AdminInterface]].&lt;br /&gt;
**'''geoip''': GeoIP extension.&lt;br /&gt;
**'''threader''': Threading extension.&lt;br /&gt;
*'''plugins''': SourceMod plugin implementations.&lt;br /&gt;
**'''include''': Include files and their documentation.&lt;br /&gt;
*'''public''': Public interface files.&lt;br /&gt;
**'''doxygen''': The SDK Doxygen file.&lt;br /&gt;
**'''extensions''': Public interface files that come from extensions.&lt;br /&gt;
**'''licenses''': License information.&lt;br /&gt;
**'''sample_ext''': A sample extension.&lt;br /&gt;
**'''sourcepawn''': SourcePawn header files.&lt;br /&gt;
*'''sourcepawn''': SourcePawn files.&lt;br /&gt;
**'''compiler''': SourcePawn compiler source code.&lt;br /&gt;
*'''translations''': Translation files.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
*For writing extensions, see [[Writing Extensions]].&lt;br /&gt;
*For live doxygen, see [http://www.sourcemod.net/sdk/dox/ Live Doxygen].&lt;br /&gt;
*For the nightly source code tree, see [http://hg.alliedmods.net/sourcemod-central/summary SourceMod Central].&lt;br /&gt;
*For the SDK homepage, see [http://www.sourcemod.net/sdk.php http://www.sourcemod.net/sdk.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Development]]&lt;/div&gt;</summary>
		<author><name>DaFox</name></author>
		
	</entry>
</feed>