<?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=Hawk552</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=Hawk552"/>
	<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/Special:Contributions/Hawk552"/>
	<updated>2026-06-10T08:58:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.6</generator>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Talk:FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2500</id>
		<title>Talk:FakeMeta General Usage (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Talk:FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2500"/>
		<updated>2006-01-26T20:45:58Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: hello&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''&amp;quot;There is nothing in Engine that is not in FakeMeta&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
And how can i check with fakemeta module if specific entity is [in]valid?&lt;br /&gt;
:I don't think there is a way.  You might want to post this a feature request in the bug report forum. -- [[User:BAILOPAN|BAILOPAN]] 12:53, 25 January 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
::Why not just use is_valid_ent with Engine? Unless you're using only FakeMeta... in which case follow Bail's comment --[[User:Hawk552|Hawk552]] 17:28, 25 January 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
:::I asked rather to check whether given thesis correct or not. --[[User:VEN|VEN]] 07:49, 26 January 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
::::I suppose it's incorrect in that sense, but like BAIL said, ask for it in bug reports. It's not that hard to add really. ~ --[[User:Hawk552|Hawk552]] 15:45, 26 January 2006 (EST)&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Talk:Server_console&amp;diff=2487</id>
		<title>Talk:Server console</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Talk:Server_console&amp;diff=2487"/>
		<updated>2006-01-25T22:54:27Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: WTF is this?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;what --[[User:Hawk552|Hawk552]] 17:54, 25 January 2006 (EST)&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Talk:FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2486</id>
		<title>Talk:FakeMeta General Usage (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Talk:FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2486"/>
		<updated>2006-01-25T22:28:57Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''&amp;quot;There is nothing in Engine that is not in FakeMeta&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
And how can i check with fakemeta module if specific entity is [in]valid?&lt;br /&gt;
:I don't think there is a way.  You might want to post this a feature request in the bug report forum. -- [[User:BAILOPAN|BAILOPAN]] 12:53, 25 January 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
::Why not just use is_valid_ent with Engine? Unless you're using only FakeMeta... in which case follow Bail's comment --[[User:Hawk552|Hawk552]] 17:28, 25 January 2006 (EST)&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Talk:Finding_Entities_(AMX_Mod_X)&amp;diff=2485</id>
		<title>Talk:Finding Entities (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Talk:Finding_Entities_(AMX_Mod_X)&amp;diff=2485"/>
		<updated>2006-01-25T22:27:51Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''&amp;quot;This function also checks for classname, unless directed not to.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''find_ent_by_owner''' always require an actual classname to be specified i believe.&lt;br /&gt;
Though in some cases it would be usefull if it would be possible to skip this requirement somehow.&lt;br /&gt;
&lt;br /&gt;
Also grenade example isn't good enough because (as i said before) it's necessary to specify classname i.e &amp;quot;grenade&amp;quot;, but planted C4 also have this classname in CS.&lt;br /&gt;
So in some cases function result could be an C4 entity id.&lt;br /&gt;
&lt;br /&gt;
:Please fix this then. I've never used it before so I wouldn't know. Also notice the tag that I have on it that says I can't verify it? -- [[User:Hawk552|Hawk552]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_talk:Hawk552&amp;diff=2484</id>
		<title>User talk:Hawk552</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_talk:Hawk552&amp;diff=2484"/>
		<updated>2006-01-25T22:25:20Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: Yes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''yes'''&lt;br /&gt;
:'''no''' -- [[User:BAILOPAN|BAILOPAN]]&lt;br /&gt;
::'''yes''', btw how do you make yourself a sig? -- [[User:Hawk552|Hawk]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User_talk:Hawk552&amp;diff=2453</id>
		<title>User talk:Hawk552</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User_talk:Hawk552&amp;diff=2453"/>
		<updated>2006-01-23T00:49:08Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''yes'''&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Pawn&amp;diff=2419</id>
		<title>Pawn</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Pawn&amp;diff=2419"/>
		<updated>2006-01-21T15:01:05Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Pawn_Tutorial]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Pawn&amp;diff=2418</id>
		<title>Pawn</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Pawn&amp;diff=2418"/>
		<updated>2006-01-21T15:00:14Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: Added redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect Pawn_(Tutorial)&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2416</id>
		<title>FakeMeta General Usage (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2416"/>
		<updated>2006-01-21T12:50:33Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: /* Return Values */  -- fixed paragraphs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Current FakeMeta and Old==&lt;br /&gt;
FakeMeta used to be an internal mini-metamod inside [[AMX Mod X]].  This was removed in 1.50, and now only the module remains.  The module is an entirely different concept, which extends [[Metamod]] HL1 programming powers to scripts.&lt;br /&gt;
&lt;br /&gt;
==About==&lt;br /&gt;
FakeMeta is an extremely powerful module for AMX Mod X that effectively allows you to write Metamod plugins in [[Pawn]].&lt;br /&gt;
&lt;br /&gt;
Unlike Engine, FakeMeta uses no CPU if it is not told to do anything (other than to exist). For this reason, it is recommended to use FakeMeta over Engine. There is nothing in Engine that is not in FakeMeta -- while some functionality might be less [[Abstraction|abstracted]], it is still achievable, and usually with more flexibility.&lt;br /&gt;
&lt;br /&gt;
==Engine vs. FakeMeta==&lt;br /&gt;
&lt;br /&gt;
Comparison between Engine and FakeMeta:&lt;br /&gt;
&lt;br /&gt;
FakeMeta:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Engine:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public client_PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;return FMRES_IGNORED&amp;quot; section will be covered later on this page.&lt;br /&gt;
&lt;br /&gt;
==General Functionality==&lt;br /&gt;
&lt;br /&gt;
FakeMeta also allows you to do other things, such as retrieve private data (using pev, set_pev / get_pdata_int, get_pdata_float, get_pdata_string, set_pdata_int, set_pdata_float, set_pdata_string), forcing DLL functions to be executed, as well as call Engine (not the module) functions.&lt;br /&gt;
&lt;br /&gt;
==Entvars==&lt;br /&gt;
It is easy to read [[Entvars (Half-Life 1)|entvars]] in FakeMeta, however it can sometimes cause problems if not done correctly (which is why Engine is more commonly used).  Entvars are variables in a player's [[Edicts (Half-Life 1)|edict]] structure (an edict is the basis for an entity).&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to retrieve the armor entvar from an entity in FakeMeta:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink, &amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	new value = pev(id,pev_armorvalue); // gets armor from client/entity&lt;br /&gt;
	&lt;br /&gt;
	client_print(id,print_chat,&amp;quot;%i&amp;quot;,value); // prints armor value to client&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DLL / Engine Function Usage==&lt;br /&gt;
In DLLs and the Engine, there are functions that are called when certain events happen. These can be forced to be called through FakeMeta. Here is a general example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	dllfunc(DLLFunc_RegisterEncoders);&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Refer to the end of the line while viewing the DLLFunc and EngFunc sections, as there is usually some description of paramaters, such as ''edict_t *p_Entity'' or ''void''. ''void'' generally refers to no parameters, while ''edict_t *p_Entity'' means the entity id, so the first parameter in the function would be the entity to call the function onto.&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
There are 4 return values in FakeMeta:&lt;br /&gt;
# FMRES_HANDLED	&lt;br /&gt;
# FMRES_SUPERCEDE&lt;br /&gt;
# FMRES_IGNORED	&lt;br /&gt;
# FMRES_OVERRIDE&lt;br /&gt;
&lt;br /&gt;
*FMRES_HANDLED --&amp;gt; Something was done in this function, but call the one in the DLL / Engine anyways.&lt;br /&gt;
*FMRES_SUPERCEDE --&amp;gt; Prevent function in DLL / Engine from being called.&lt;br /&gt;
*FMRES_IGNORED --&amp;gt; Call original function.&lt;br /&gt;
*FMRES_OVERRIDE --&amp;gt; Call original function, but change return value.&lt;br /&gt;
&lt;br /&gt;
==Constants / General==&lt;br /&gt;
A list of general constants and usage can be found on this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=16&lt;br /&gt;
&lt;br /&gt;
[[Category : Scripting_(AMX_Mod_X)]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2412</id>
		<title>FakeMeta General Usage (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2412"/>
		<updated>2006-01-21T01:14:25Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: /* About */  -- fixed [PAWN] to actually link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Current FakeMeta and Old==&lt;br /&gt;
FakeMeta used to be an internal mini-metamod inside [[AMX Mod X]].  This was removed in 1.50, and now only the module remains.  The module is an entirely different concept, which extends [[Metamod]] HL1 programming powers to scripts.&lt;br /&gt;
&lt;br /&gt;
==About==&lt;br /&gt;
FakeMeta is an extremely powerful module for AMX Mod X that effectively allows you to write Metamod plugins in [[Pawn]].&lt;br /&gt;
&lt;br /&gt;
Unlike Engine, FakeMeta uses no CPU if it is not told to do anything (other than to exist). For this reason, it is recommended to use FakeMeta over Engine. There is nothing in Engine that is not in FakeMeta -- while some functionality might be less [[Abstraction|abstracted]], it is still achievable, and usually with more flexibility.&lt;br /&gt;
&lt;br /&gt;
==Engine vs. FakeMeta==&lt;br /&gt;
&lt;br /&gt;
Comparison between Engine and FakeMeta:&lt;br /&gt;
&lt;br /&gt;
FakeMeta:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Engine:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public client_PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;return FMRES_IGNORED&amp;quot; section will be covered later on this page.&lt;br /&gt;
&lt;br /&gt;
==General Functionality==&lt;br /&gt;
&lt;br /&gt;
FakeMeta also allows you to do other things, such as retrieve private data (using pev, set_pev / get_pdata_int, get_pdata_float, get_pdata_string, set_pdata_int, set_pdata_float, set_pdata_string), forcing DLL functions to be executed, as well as call Engine (not the module) functions.&lt;br /&gt;
&lt;br /&gt;
==Entvars==&lt;br /&gt;
It is easy to read [[Entvars (Half-Life 1)|entvars]] in FakeMeta, however it can sometimes cause problems if not done correctly (which is why Engine is more commonly used).  Entvars are variables in a player's [[Edicts (Half-Life 1)|edict]] structure (an edict is the basis for an entity).&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to retrieve the armor entvar from an entity in FakeMeta:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink, &amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	new value = pev(id,pev_armorvalue); // gets armor from client/entity&lt;br /&gt;
	&lt;br /&gt;
	client_print(id,print_chat,&amp;quot;%i&amp;quot;,value); // prints armor value to client&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DLL / Engine Function Usage==&lt;br /&gt;
In DLLs and the Engine, there are functions that are called when certain events happen. These can be forced to be called through FakeMeta. Here is a general example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	dllfunc(DLLFunc_RegisterEncoders);&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Refer to the end of the line while viewing the DLLFunc and EngFunc sections, as there is usually some description of paramaters, such as ''edict_t *p_Entity'' or ''void''. ''void'' generally refers to no parameters, while ''edict_t *p_Entity'' means the entity id, so the first parameter in the function would be the entity to call the function onto.&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
There are 4 return values in FakeMeta:&lt;br /&gt;
#define FMRES_HANDLED	2&lt;br /&gt;
#define FMRES_SUPERCEDE	4&lt;br /&gt;
#define FMRES_IGNORED	1&lt;br /&gt;
#define FMRES_OVERRIDE	3&lt;br /&gt;
&lt;br /&gt;
FMRES_HANDLED --&amp;gt; Something was done in this function, but call the one in the DLL / Engine anyways.&lt;br /&gt;
FMRES_SUPERCEDE --&amp;gt; Prevent function in DLL / Engine from being called.&lt;br /&gt;
FMRES_IGNORED --&amp;gt; Call original function.&lt;br /&gt;
FMRES_OVERRIDE --&amp;gt; Call original function, but change return value.&lt;br /&gt;
&lt;br /&gt;
==Constants / General==&lt;br /&gt;
A list of general constants and usage can be found on this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=16&lt;br /&gt;
&lt;br /&gt;
[[Category : Scripting_(AMX_Mod_X)]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2411</id>
		<title>Finding Entities (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2411"/>
		<updated>2006-01-21T01:04:33Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: /* find_ent_by_model */  -- fixed slight typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
It is sometimes necessary to find an entity in the world for some reason. For example, you may need to find a button in the world, and then remove it (this example will be covered later). This article will explain how to do so.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
There are a number of functions built into AMX Mod X / AMXX Modules that allow you to find entities. For a complete list, please consult this page: http://www.amxmodx.org/funcwiki.php?search=find_ent&amp;amp;go=search&lt;br /&gt;
&lt;br /&gt;
(As of last edit, these are the functions included):&lt;br /&gt;
find_ent_by_class&lt;br /&gt;
find_ent_by_model&lt;br /&gt;
find_ent_by_owner&lt;br /&gt;
find_ent_by_target&lt;br /&gt;
find_ent_by_tname&lt;br /&gt;
find_ent_in_sphere &lt;br /&gt;
find_sphere_class&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_class==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function allows you to find an entity based on it's classname. All entities have classnames. For example, a player's classname is &amp;quot;player&amp;quot;, while a button is either &amp;quot;func_button&amp;quot; or &amp;quot;func_rot_button&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would simply use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_class(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_model==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on its model. Some entities do not have models, meaning they cannot be found using this method. Also, it is, most of the time, better to use another type of ent finding, as this can be highly inaccurate and be broken by something as simple as a model changing plugin. This function also takes into account the class name, and is generally used more for isolating a certain model from a set of classnames (ex you have 3 grenades, with different models, and want to find 1 of them)&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_model(-1,&amp;quot;classname_to_find&amp;quot;,&amp;quot;model_to_find&amp;quot;)&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_owner==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&amp;lt;This section cannot be verified. If anyone knows it is true, please remove this tag.&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on an owner. For example, if there is a player in the world, and you want to find if he has thrown a grenade out, you would use this and check for entities that's owner is the player. This function also checks for classname, unless directed not to.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_owner(-1,&amp;quot;classname_to_find&amp;quot;,owner_id,0);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice the last parameter. This is a mode to find in. To see a full list, consult this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=func&amp;amp;id=345&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_target==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function allows one to find an entity based on its target. This function also checks for classname.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_target(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_tname==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This essentially functions the same as find_ent_by_target.&lt;br /&gt;
&lt;br /&gt;
==find_ent_in_sphere==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity within a certain distance of another entity. This can be quite handy to, for example, see if a player is around another player, and then deal damage or slap that player. This is effectively a shortcut to using find_ent_by_class and get_distance(_f) together.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_in_sphere(-1,location_of_ent_vector,radius_float);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_sphere_class==&lt;br /&gt;
This function is probably the most complex of all the find_ent functions. This allows you to find an entity inside a certain radius of another entity, with a certian classname. This is effectively a shortcut to using find_ent_by_class &amp;amp; get_distance &amp;amp; entity_get_string(ent,EV_SZ_classname... or find_ent_in_sphere &amp;amp; entity_get_string(ent,EV_SZ_classname...&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
new entlist[513];&lt;br /&gt;
find_sphere_class(0,&amp;quot;classname_to_find&amp;quot;,radius_float,entlist,512,origin_vector);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, note that origin_vector and the first parameter (_aroundent) should not both be specified. If _aroundent is specified as 0, origin_vector is used. If origin_vector is not specified, or is 0, then _aroundent is used.&lt;br /&gt;
&lt;br /&gt;
==Looping==&lt;br /&gt;
If, for example, one wants to loop one of these, it is quite simple to do so.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
while((ent = find_ent_by_class(ent,&amp;quot;classname_to_find&amp;quot;) != 0)&lt;br /&gt;
{&lt;br /&gt;
	// do whatever&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will find every entity with classname &amp;quot;classname_to_find&amp;quot; and then execute the &amp;quot;// do whatever&amp;quot; code every time it finds one.&lt;br /&gt;
&lt;br /&gt;
==Wrap Up==&lt;br /&gt;
For complete usage, please consult the Engine Module page at:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=3&lt;br /&gt;
&lt;br /&gt;
[[Category: Scripting_(AMX_Mod_X)]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2410</id>
		<title>Finding Entities (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2410"/>
		<updated>2006-01-21T01:02:13Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: Fixed category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
It is sometimes necessary to find an entity in the world for some reason. For example, you may need to find a button in the world, and then remove it (this example will be covered later). This article will explain how to do so.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
There are a number of functions built into AMX Mod X / AMXX Modules that allow you to find entities. For a complete list, please consult this page: http://www.amxmodx.org/funcwiki.php?search=find_ent&amp;amp;go=search&lt;br /&gt;
&lt;br /&gt;
(As of last edit, these are the functions included):&lt;br /&gt;
find_ent_by_class&lt;br /&gt;
find_ent_by_model&lt;br /&gt;
find_ent_by_owner&lt;br /&gt;
find_ent_by_target&lt;br /&gt;
find_ent_by_tname&lt;br /&gt;
find_ent_in_sphere &lt;br /&gt;
find_sphere_class&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_class==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function allows you to find an entity based on it's classname. All entities have classnames. For example, a player's classname is &amp;quot;player&amp;quot;, while a button is either &amp;quot;func_button&amp;quot; or &amp;quot;func_rot_button&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would simply use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_class(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_model==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on its model. Some entities do not have models, meaning they cannot be found using this method. Also, it is, most of the time, better to use another type of ent finding, as this can be highly inaccurate and be broken by something as simple as a model changing plugin. This function also takes into account the class name, and is generally used more for isolating a certain model from a set of classnames (ex you have 3 grenades, with different models, and want to find 1 of them)&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_model(ent,&amp;quot;classname_to_find&amp;quot;,&amp;quot;model_to_find&amp;quot;)&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_owner==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&amp;lt;This section cannot be verified. If anyone knows it is true, please remove this tag.&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on an owner. For example, if there is a player in the world, and you want to find if he has thrown a grenade out, you would use this and check for entities that's owner is the player. This function also checks for classname, unless directed not to.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_owner(-1,&amp;quot;classname_to_find&amp;quot;,owner_id,0);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice the last parameter. This is a mode to find in. To see a full list, consult this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=func&amp;amp;id=345&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_target==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function allows one to find an entity based on its target. This function also checks for classname.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_target(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_tname==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This essentially functions the same as find_ent_by_target.&lt;br /&gt;
&lt;br /&gt;
==find_ent_in_sphere==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity within a certain distance of another entity. This can be quite handy to, for example, see if a player is around another player, and then deal damage or slap that player. This is effectively a shortcut to using find_ent_by_class and get_distance(_f) together.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_in_sphere(-1,location_of_ent_vector,radius_float);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_sphere_class==&lt;br /&gt;
This function is probably the most complex of all the find_ent functions. This allows you to find an entity inside a certain radius of another entity, with a certian classname. This is effectively a shortcut to using find_ent_by_class &amp;amp; get_distance &amp;amp; entity_get_string(ent,EV_SZ_classname... or find_ent_in_sphere &amp;amp; entity_get_string(ent,EV_SZ_classname...&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
new entlist[513];&lt;br /&gt;
find_sphere_class(0,&amp;quot;classname_to_find&amp;quot;,radius_float,entlist,512,origin_vector);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, note that origin_vector and the first parameter (_aroundent) should not both be specified. If _aroundent is specified as 0, origin_vector is used. If origin_vector is not specified, or is 0, then _aroundent is used.&lt;br /&gt;
&lt;br /&gt;
==Looping==&lt;br /&gt;
If, for example, one wants to loop one of these, it is quite simple to do so.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
while((ent = find_ent_by_class(ent,&amp;quot;classname_to_find&amp;quot;) != 0)&lt;br /&gt;
{&lt;br /&gt;
	// do whatever&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will find every entity with classname &amp;quot;classname_to_find&amp;quot; and then execute the &amp;quot;// do whatever&amp;quot; code every time it finds one.&lt;br /&gt;
&lt;br /&gt;
==Wrap Up==&lt;br /&gt;
For complete usage, please consult the Engine Module page at:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=3&lt;br /&gt;
&lt;br /&gt;
[[Category: Scripting_(AMX_Mod_X)]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2409</id>
		<title>Finding Entities (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2409"/>
		<updated>2006-01-21T01:01:52Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
It is sometimes necessary to find an entity in the world for some reason. For example, you may need to find a button in the world, and then remove it (this example will be covered later). This article will explain how to do so.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
There are a number of functions built into AMX Mod X / AMXX Modules that allow you to find entities. For a complete list, please consult this page: http://www.amxmodx.org/funcwiki.php?search=find_ent&amp;amp;go=search&lt;br /&gt;
&lt;br /&gt;
(As of last edit, these are the functions included):&lt;br /&gt;
find_ent_by_class&lt;br /&gt;
find_ent_by_model&lt;br /&gt;
find_ent_by_owner&lt;br /&gt;
find_ent_by_target&lt;br /&gt;
find_ent_by_tname&lt;br /&gt;
find_ent_in_sphere &lt;br /&gt;
find_sphere_class&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_class==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function allows you to find an entity based on it's classname. All entities have classnames. For example, a player's classname is &amp;quot;player&amp;quot;, while a button is either &amp;quot;func_button&amp;quot; or &amp;quot;func_rot_button&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would simply use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_class(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_model==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on its model. Some entities do not have models, meaning they cannot be found using this method. Also, it is, most of the time, better to use another type of ent finding, as this can be highly inaccurate and be broken by something as simple as a model changing plugin. This function also takes into account the class name, and is generally used more for isolating a certain model from a set of classnames (ex you have 3 grenades, with different models, and want to find 1 of them)&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_model(ent,&amp;quot;classname_to_find&amp;quot;,&amp;quot;model_to_find&amp;quot;)&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_owner==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&amp;lt;This section cannot be verified. If anyone knows it is true, please remove this tag.&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on an owner. For example, if there is a player in the world, and you want to find if he has thrown a grenade out, you would use this and check for entities that's owner is the player. This function also checks for classname, unless directed not to.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_owner(-1,&amp;quot;classname_to_find&amp;quot;,owner_id,0);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice the last parameter. This is a mode to find in. To see a full list, consult this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=func&amp;amp;id=345&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_target==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function allows one to find an entity based on its target. This function also checks for classname.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_target(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_tname==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This essentially functions the same as find_ent_by_target.&lt;br /&gt;
&lt;br /&gt;
==find_ent_in_sphere==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity within a certain distance of another entity. This can be quite handy to, for example, see if a player is around another player, and then deal damage or slap that player. This is effectively a shortcut to using find_ent_by_class and get_distance(_f) together.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_in_sphere(-1,location_of_ent_vector,radius_float);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_sphere_class==&lt;br /&gt;
This function is probably the most complex of all the find_ent functions. This allows you to find an entity inside a certain radius of another entity, with a certian classname. This is effectively a shortcut to using find_ent_by_class &amp;amp; get_distance &amp;amp; entity_get_string(ent,EV_SZ_classname... or find_ent_in_sphere &amp;amp; entity_get_string(ent,EV_SZ_classname...&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
new entlist[513];&lt;br /&gt;
find_sphere_class(0,&amp;quot;classname_to_find&amp;quot;,radius_float,entlist,512,origin_vector);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, note that origin_vector and the first parameter (_aroundent) should not both be specified. If _aroundent is specified as 0, origin_vector is used. If origin_vector is not specified, or is 0, then _aroundent is used.&lt;br /&gt;
&lt;br /&gt;
==Looping==&lt;br /&gt;
If, for example, one wants to loop one of these, it is quite simple to do so.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
while((ent = find_ent_by_class(ent,&amp;quot;classname_to_find&amp;quot;) != 0)&lt;br /&gt;
{&lt;br /&gt;
	// do whatever&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will find every entity with classname &amp;quot;classname_to_find&amp;quot; and then execute the &amp;quot;// do whatever&amp;quot; code every time it finds one.&lt;br /&gt;
&lt;br /&gt;
==Wrap Up==&lt;br /&gt;
For complete usage, please consult the Engine Module page at:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=3&lt;br /&gt;
&lt;br /&gt;
[[Category: Scripting_(AMX_Mod_X)}}&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2408</id>
		<title>Finding Entities (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2408"/>
		<updated>2006-01-21T01:01:39Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
It is sometimes necessary to find an entity in the world for some reason. For example, you may need to find a button in the world, and then remove it (this example will be covered later). This article will explain how to do so.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
There are a number of functions built into AMX Mod X / AMXX Modules that allow you to find entities. For a complete list, please consult this page: http://www.amxmodx.org/funcwiki.php?search=find_ent&amp;amp;go=search&lt;br /&gt;
&lt;br /&gt;
(As of last edit, these are the functions included):&lt;br /&gt;
find_ent_by_class&lt;br /&gt;
find_ent_by_model&lt;br /&gt;
find_ent_by_owner&lt;br /&gt;
find_ent_by_target&lt;br /&gt;
find_ent_by_tname&lt;br /&gt;
find_ent_in_sphere &lt;br /&gt;
find_sphere_class&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_class==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function allows you to find an entity based on it's classname. All entities have classnames. For example, a player's classname is &amp;quot;player&amp;quot;, while a button is either &amp;quot;func_button&amp;quot; or &amp;quot;func_rot_button&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would simply use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_class(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_model==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on its model. Some entities do not have models, meaning they cannot be found using this method. Also, it is, most of the time, better to use another type of ent finding, as this can be highly inaccurate and be broken by something as simple as a model changing plugin. This function also takes into account the class name, and is generally used more for isolating a certain model from a set of classnames (ex you have 3 grenades, with different models, and want to find 1 of them)&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_model(ent,&amp;quot;classname_to_find&amp;quot;,&amp;quot;model_to_find&amp;quot;)&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_owner==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&amp;lt;This section cannot be verified. If anyone knows it is true, please remove this tag.&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on an owner. For example, if there is a player in the world, and you want to find if he has thrown a grenade out, you would use this and check for entities that's owner is the player. This function also checks for classname, unless directed not to.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_owner(-1,&amp;quot;classname_to_find&amp;quot;,owner_id,0);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice the last parameter. This is a mode to find in. To see a full list, consult this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=func&amp;amp;id=345&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_target==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function allows one to find an entity based on its target. This function also checks for classname.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_target(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_tname==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This essentially functions the same as find_ent_by_target.&lt;br /&gt;
&lt;br /&gt;
==find_ent_in_sphere==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity within a certain distance of another entity. This can be quite handy to, for example, see if a player is around another player, and then deal damage or slap that player. This is effectively a shortcut to using find_ent_by_class and get_distance(_f) together.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_in_sphere(-1,location_of_ent_vector,radius_float);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_sphere_class==&lt;br /&gt;
This function is probably the most complex of all the find_ent functions. This allows you to find an entity inside a certain radius of another entity, with a certian classname. This is effectively a shortcut to using find_ent_by_class &amp;amp; get_distance &amp;amp; entity_get_string(ent,EV_SZ_classname... or find_ent_in_sphere &amp;amp; entity_get_string(ent,EV_SZ_classname...&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
new entlist[513];&lt;br /&gt;
find_sphere_class(0,&amp;quot;classname_to_find&amp;quot;,radius_float,entlist,512,origin_vector);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, note that origin_vector and the first parameter (_aroundent) should not both be specified. If _aroundent is specified as 0, origin_vector is used. If origin_vector is not specified, or is 0, then _aroundent is used.&lt;br /&gt;
&lt;br /&gt;
==Looping==&lt;br /&gt;
If, for example, one wants to loop one of these, it is quite simple to do so.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
while((ent = find_ent_by_class(ent,&amp;quot;classname_to_find&amp;quot;) != 0)&lt;br /&gt;
{&lt;br /&gt;
	// do whatever&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will find every entity with classname &amp;quot;classname_to_find&amp;quot; and then execute the &amp;quot;// do whatever&amp;quot; code every time it finds one.&lt;br /&gt;
&lt;br /&gt;
==Wrap Up==&lt;br /&gt;
For complete usage, please consult the Engine Module page at:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=3&lt;br /&gt;
&lt;br /&gt;
[[Category : Scripting_(AMX_Mod_X)}}&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2407</id>
		<title>Finding Entities (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Finding_Entities_(AMX_Mod_X)&amp;diff=2407"/>
		<updated>2006-01-21T00:57:47Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
It is sometimes necessary to find an entity in the world for some reason. For example, you may need to find a button in the world, and then remove it (this example will be covered later). This article will explain how to do so.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
There are a number of functions built into AMX Mod X / AMXX Modules that allow you to find entities. For a complete list, please consult this page: http://www.amxmodx.org/funcwiki.php?search=find_ent&amp;amp;go=search&lt;br /&gt;
&lt;br /&gt;
(As of last edit, these are the functions included):&lt;br /&gt;
find_ent_by_class&lt;br /&gt;
find_ent_by_model&lt;br /&gt;
find_ent_by_owner&lt;br /&gt;
find_ent_by_target&lt;br /&gt;
find_ent_by_tname&lt;br /&gt;
find_ent_in_sphere &lt;br /&gt;
find_sphere_class&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_class==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function allows you to find an entity based on it's classname. All entities have classnames. For example, a player's classname is &amp;quot;player&amp;quot;, while a button is either &amp;quot;func_button&amp;quot; or &amp;quot;func_rot_button&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would simply use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_class(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_model==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on its model. Some entities do not have models, meaning they cannot be found using this method. Also, it is, most of the time, better to use another type of ent finding, as this can be highly inaccurate and be broken by something as simple as a model changing plugin. This function also takes into account the class name, and is generally used more for isolating a certain model from a set of classnames (ex you have 3 grenades, with different models, and want to find 1 of them)&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_model(ent,&amp;quot;classname_to_find&amp;quot;,&amp;quot;model_to_find&amp;quot;)&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_owner==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
&amp;lt;This section cannot be verified. If anyone knows it is true, please remove this tag.&amp;gt;&lt;br /&gt;
This function can be used to find an entity based on an owner. For example, if there is a player in the world, and you want to find if he has thrown a grenade out, you would use this and check for entities that's owner is the player. This function also checks for classname, unless directed not to.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_owner(-1,&amp;quot;classname_to_find&amp;quot;,owner_id,0);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice the last parameter. This is a mode to find in. To see a full list, consult this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=func&amp;amp;id=345&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_target==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function allows one to find an entity based on its target. This function also checks for classname.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_by_target(-1,&amp;quot;classname_to_find&amp;quot;);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_ent_by_tname==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This essentially functions the same as find_ent_by_target.&lt;br /&gt;
&lt;br /&gt;
==find_ent_in_sphere==&lt;br /&gt;
&amp;lt;Function is included in Engine&amp;gt;&lt;br /&gt;
This function can be used to find an entity within a certain distance of another entity. This can be quite handy to, for example, see if a player is around another player, and then deal damage or slap that player. This is effectively a shortcut to using find_ent_by_class and get_distance(_f) together.&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
find_ent_in_sphere(-1,location_of_ent_vector,radius_float);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==find_sphere_class==&lt;br /&gt;
This function is probably the most complex of all the find_ent functions. This allows you to find an entity inside a certain radius of another entity, with a certian classname. This is effectively a shortcut to using find_ent_by_class &amp;amp; get_distance &amp;amp; entity_get_string(ent,EV_SZ_classname... or find_ent_in_sphere &amp;amp; entity_get_string(ent,EV_SZ_classname...&lt;br /&gt;
&lt;br /&gt;
To find an entity using this, one would use the following:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
new entlist[513];&lt;br /&gt;
find_sphere_class(0,&amp;quot;classname_to_find&amp;quot;,radius_float,entlist,512,origin_vector);&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, note that origin_vector and the first parameter (_aroundent) should not both be specified. If _aroundent is specified as 0, origin_vector is used. If origin_vector is not specified, or is 0, then _aroundent is used.&lt;br /&gt;
&lt;br /&gt;
==Looping==&lt;br /&gt;
If, for example, one wants to loop one of these, it is quite simple to do so.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
while((ent = find_ent_by_class(ent,&amp;quot;classname_to_find&amp;quot;) != 0)&lt;br /&gt;
{&lt;br /&gt;
	// do whatever&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will find every entity with classname &amp;quot;classname_to_find&amp;quot; and then execute the &amp;quot;// do whatever&amp;quot; code every time it finds one.&lt;br /&gt;
&lt;br /&gt;
==Wrap Up==&lt;br /&gt;
For complete usage, please consult the Engine Module page at:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=3&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2406</id>
		<title>FakeMeta General Usage (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2406"/>
		<updated>2006-01-21T00:25:34Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Current FakeMeta and Old==&lt;br /&gt;
FakeMeta used to be an internal mini-metamod inside [[AMX Mod X]].  This was removed in 1.50, and now only the module remains.  The module is an entirely different concept, which extends [[Metamod]] HL1 programming powers to scripts.&lt;br /&gt;
&lt;br /&gt;
==About==&lt;br /&gt;
FakeMeta is an extremely powerful module for AMX Mod X that effectively allows you to write Metamod plugins in [PAWN].&lt;br /&gt;
&lt;br /&gt;
Unlike Engine, FakeMeta uses no CPU if it is not told to do anything (other than to exist). For this reason, it is recommended to use FakeMeta over Engine. There is nothing in Engine that is not in FakeMeta -- while some functionality might be less [[Abstraction|abstracted]], it is still achievable, and usually with more flexibility.&lt;br /&gt;
&lt;br /&gt;
==Engine vs. FakeMeta==&lt;br /&gt;
&lt;br /&gt;
Comparison between Engine and FakeMeta:&lt;br /&gt;
&lt;br /&gt;
FakeMeta:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Engine:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public client_PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;return FMRES_IGNORED&amp;quot; section will be covered later on this page.&lt;br /&gt;
&lt;br /&gt;
==General Functionality==&lt;br /&gt;
&lt;br /&gt;
FakeMeta also allows you to do other things, such as retrieve private data (using pev, set_pev / get_pdata_int, get_pdata_float, get_pdata_string, set_pdata_int, set_pdata_float, set_pdata_string), forcing DLL functions to be executed, as well as call Engine (not the module) functions.&lt;br /&gt;
&lt;br /&gt;
==Entvars==&lt;br /&gt;
It is easy to read [[Entvars (Half-Life 1)|entvars]] in FakeMeta, however it can sometimes cause problems if not done correctly (which is why Engine is more commonly used).  Entvars are variables in a player's [[Edicts (Half-Life 1)|edict]] structure (an edict is the basis for an entity).&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to retrieve the armor entvar from an entity in FakeMeta:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink, &amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	new value = pev(id,pev_armorvalue); // gets armor from client/entity&lt;br /&gt;
	&lt;br /&gt;
	client_print(id,print_chat,&amp;quot;%i&amp;quot;,value); // prints armor value to client&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DLL / Engine Function Usage==&lt;br /&gt;
In DLLs and the Engine, there are functions that are called when certain events happen. These can be forced to be called through FakeMeta. Here is a general example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	dllfunc(DLLFunc_RegisterEncoders);&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Refer to the end of the line while viewing the DLLFunc and EngFunc sections, as there is usually some description of paramaters, such as ''edict_t *p_Entity'' or ''void''. ''void'' generally refers to no parameters, while ''edict_t *p_Entity'' means the entity id, so the first parameter in the function would be the entity to call the function onto.&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
There are 4 return values in FakeMeta:&lt;br /&gt;
#define FMRES_HANDLED	2&lt;br /&gt;
#define FMRES_SUPERCEDE	4&lt;br /&gt;
#define FMRES_IGNORED	1&lt;br /&gt;
#define FMRES_OVERRIDE	3&lt;br /&gt;
&lt;br /&gt;
FMRES_HANDLED --&amp;gt; Something was done in this function, but call the one in the DLL / Engine anyways.&lt;br /&gt;
FMRES_SUPERCEDE --&amp;gt; Prevent function in DLL / Engine from being called.&lt;br /&gt;
FMRES_IGNORED --&amp;gt; Call original function.&lt;br /&gt;
FMRES_OVERRIDE --&amp;gt; Call original function, but change return value.&lt;br /&gt;
&lt;br /&gt;
==Constants / General==&lt;br /&gt;
A list of general constants and usage can be found on this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=16&lt;br /&gt;
&lt;br /&gt;
[[Category : Scripting_(AMX_Mod_X)]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2404</id>
		<title>FakeMeta General Usage (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2404"/>
		<updated>2006-01-21T00:03:51Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: /* Current FakeMeta and Old */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Current FakeMeta and Old==&lt;br /&gt;
This FakeMeta article is not to be confused with the old FakeMeta included directly in AMX Mod X, which allowed a fix for a problem that arose due to a Steam update. For this context, see [[FakeMeta_(Old) | FakeMeta (Old)]].&lt;br /&gt;
&lt;br /&gt;
==About==&lt;br /&gt;
FakeMeta is an extremely powerful module for AMX Mod X that effectively allows you to write Metamod plugins in [PAWN].&lt;br /&gt;
&lt;br /&gt;
Unlike Engine, FakeMeta uses no CPU if it is not told to do anything (other than to exist). For this reason, it is recommended to use FakeMeta over Engine. There is nothing in Engine that is not in FakeMeta, some way or another.&lt;br /&gt;
&lt;br /&gt;
==Engine vs. FakeMeta==&lt;br /&gt;
&lt;br /&gt;
Comparison between Engine and FakeMeta:&lt;br /&gt;
&lt;br /&gt;
FakeMeta:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Engine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public client_PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;return FMRES_IGNORED&amp;quot; section will be covered later on this page.&lt;br /&gt;
&lt;br /&gt;
==General Functionality==&lt;br /&gt;
&lt;br /&gt;
FakeMeta also allows you to do other things, such as retrieve private data (using pev, set_pev / get_pdata_int, get_pdata_float, get_pdata_string, set_pdata_int, set_pdata_float, set_pdata_string), forcing DLL functions to be executed, as well as call Engine (not the module) functions.&lt;br /&gt;
&lt;br /&gt;
==Private Data Collecting==&lt;br /&gt;
It is easy to read private data in FakeMeta, however it can sometimes cause problems if not done correctly (which is why Engine is more commonly used).&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to retrieve private data from an entity in FakeMeta:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	new value = pev(id,pev_armorvalue); // gets armor from client/entity&lt;br /&gt;
	&lt;br /&gt;
	client_print(id,print_chat,&amp;quot;%i&amp;quot;,value); // prints armor value to client&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DLL / Engine Function Usage==&lt;br /&gt;
In DLLs and the Engine, there are functions that are called when certain events happen. These can be forced to be called through FakeMeta. Here is a general example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	dllfunc(DLLFunc_RegisterEncoders);&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Refer to the end of the line while viewing the DLLFunc and EngFunc sections, as there is usually some description of paramaters, such as ''edict_t *p_Entity'' or ''void''. ''void'' generally refers to no parameters, while ''edict_t *p_Entity'' means the entity id, so the first parameter in the function would be the entity to call the function onto.&lt;br /&gt;
&lt;br /&gt;
==Constants / General==&lt;br /&gt;
A list of general constants and usage can be found on this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=16&lt;br /&gt;
&lt;br /&gt;
[[Category : Scripting_(AMX_Mod_X)]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2403</id>
		<title>FakeMeta General Usage (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2403"/>
		<updated>2006-01-21T00:03:38Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: /* Current FakeMeta and Old */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Current FakeMeta and Old==&lt;br /&gt;
This FakeMeta article is not to be confused with the old FakeMeta included directly in AMX Mod X, which allowed a fix for a problem that arose due to a Steam update. For this context, see [[FakeMeta_(Old)]].&lt;br /&gt;
&lt;br /&gt;
==About==&lt;br /&gt;
FakeMeta is an extremely powerful module for AMX Mod X that effectively allows you to write Metamod plugins in [PAWN].&lt;br /&gt;
&lt;br /&gt;
Unlike Engine, FakeMeta uses no CPU if it is not told to do anything (other than to exist). For this reason, it is recommended to use FakeMeta over Engine. There is nothing in Engine that is not in FakeMeta, some way or another.&lt;br /&gt;
&lt;br /&gt;
==Engine vs. FakeMeta==&lt;br /&gt;
&lt;br /&gt;
Comparison between Engine and FakeMeta:&lt;br /&gt;
&lt;br /&gt;
FakeMeta:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Engine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public client_PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;return FMRES_IGNORED&amp;quot; section will be covered later on this page.&lt;br /&gt;
&lt;br /&gt;
==General Functionality==&lt;br /&gt;
&lt;br /&gt;
FakeMeta also allows you to do other things, such as retrieve private data (using pev, set_pev / get_pdata_int, get_pdata_float, get_pdata_string, set_pdata_int, set_pdata_float, set_pdata_string), forcing DLL functions to be executed, as well as call Engine (not the module) functions.&lt;br /&gt;
&lt;br /&gt;
==Private Data Collecting==&lt;br /&gt;
It is easy to read private data in FakeMeta, however it can sometimes cause problems if not done correctly (which is why Engine is more commonly used).&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to retrieve private data from an entity in FakeMeta:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	new value = pev(id,pev_armorvalue); // gets armor from client/entity&lt;br /&gt;
	&lt;br /&gt;
	client_print(id,print_chat,&amp;quot;%i&amp;quot;,value); // prints armor value to client&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DLL / Engine Function Usage==&lt;br /&gt;
In DLLs and the Engine, there are functions that are called when certain events happen. These can be forced to be called through FakeMeta. Here is a general example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	dllfunc(DLLFunc_RegisterEncoders);&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Refer to the end of the line while viewing the DLLFunc and EngFunc sections, as there is usually some description of paramaters, such as ''edict_t *p_Entity'' or ''void''. ''void'' generally refers to no parameters, while ''edict_t *p_Entity'' means the entity id, so the first parameter in the function would be the entity to call the function onto.&lt;br /&gt;
&lt;br /&gt;
==Constants / General==&lt;br /&gt;
A list of general constants and usage can be found on this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=16&lt;br /&gt;
&lt;br /&gt;
[[Category : Scripting_(AMX_Mod_X)]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2402</id>
		<title>FakeMeta General Usage (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=FakeMeta_General_Usage_(AMX_Mod_X)&amp;diff=2402"/>
		<updated>2006-01-21T00:03:08Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: Added page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Current FakeMeta and Old==&lt;br /&gt;
This FakeMeta article is not to be confused with the old FakeMeta included directly in AMX Mod X, which allowed a fix for a problem that arose due to a Steam update. For this context, see [FakeMeta_(Old)|FakeMeta (Old)].&lt;br /&gt;
&lt;br /&gt;
==About==&lt;br /&gt;
FakeMeta is an extremely powerful module for AMX Mod X that effectively allows you to write Metamod plugins in [PAWN].&lt;br /&gt;
&lt;br /&gt;
Unlike Engine, FakeMeta uses no CPU if it is not told to do anything (other than to exist). For this reason, it is recommended to use FakeMeta over Engine. There is nothing in Engine that is not in FakeMeta, some way or another.&lt;br /&gt;
&lt;br /&gt;
==Engine vs. FakeMeta==&lt;br /&gt;
&lt;br /&gt;
Comparison between Engine and FakeMeta:&lt;br /&gt;
&lt;br /&gt;
FakeMeta:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Engine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public client_PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	// here you would insert some code&lt;br /&gt;
	&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;return FMRES_IGNORED&amp;quot; section will be covered later on this page.&lt;br /&gt;
&lt;br /&gt;
==General Functionality==&lt;br /&gt;
&lt;br /&gt;
FakeMeta also allows you to do other things, such as retrieve private data (using pev, set_pev / get_pdata_int, get_pdata_float, get_pdata_string, set_pdata_int, set_pdata_float, set_pdata_string), forcing DLL functions to be executed, as well as call Engine (not the module) functions.&lt;br /&gt;
&lt;br /&gt;
==Private Data Collecting==&lt;br /&gt;
It is easy to read private data in FakeMeta, however it can sometimes cause problems if not done correctly (which is why Engine is more commonly used).&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to retrieve private data from an entity in FakeMeta:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	new value = pev(id,pev_armorvalue); // gets armor from client/entity&lt;br /&gt;
	&lt;br /&gt;
	client_print(id,print_chat,&amp;quot;%i&amp;quot;,value); // prints armor value to client&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DLL / Engine Function Usage==&lt;br /&gt;
In DLLs and the Engine, there are functions that are called when certain events happen. These can be forced to be called through FakeMeta. Here is a general example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;fakemeta&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;FakeMeta Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	register_forward(FM_PlayerPreThink,&amp;quot;PreThink&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	dllfunc(DLLFunc_RegisterEncoders);&lt;br /&gt;
	&lt;br /&gt;
	return FMRES_IGNORED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Refer to the end of the line while viewing the DLLFunc and EngFunc sections, as there is usually some description of paramaters, such as ''edict_t *p_Entity'' or ''void''. ''void'' generally refers to no parameters, while ''edict_t *p_Entity'' means the entity id, so the first parameter in the function would be the entity to call the function onto.&lt;br /&gt;
&lt;br /&gt;
==Constants / General==&lt;br /&gt;
A list of general constants and usage can be found on this page:&lt;br /&gt;
http://www.amxmodx.org/funcwiki.php?go=module&amp;amp;id=16&lt;br /&gt;
&lt;br /&gt;
[[Category : Scripting_(AMX_Mod_X)]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2360</id>
		<title>User:Hawk552</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2360"/>
		<updated>2006-01-20T02:00:56Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Hawk552==&lt;br /&gt;
&lt;br /&gt;
Hello, my name is Hawk552.&lt;br /&gt;
&lt;br /&gt;
==Something==&lt;br /&gt;
stuff&lt;br /&gt;
&lt;br /&gt;
==AMX(X) Experience==&lt;br /&gt;
Sucks a coding really badly. Hated by all, loved by none.&lt;br /&gt;
&lt;br /&gt;
^&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
LOL THANKS TWILIGHT I LOVE YOU&lt;br /&gt;
&lt;br /&gt;
==gaben==&lt;br /&gt;
&lt;br /&gt;
hello pm, yams.&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Button_constants_(AMX_Mod_X)&amp;diff=2359</id>
		<title>Button constants (AMX Mod X)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Button_constants_(AMX_Mod_X)&amp;diff=2359"/>
		<updated>2006-01-20T01:59:52Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Usage==&lt;br /&gt;
Button constants are generally used to determine when an entity is doing a certain action, such as jumping, attacking, or moving. This is used because +/- commands cannot be hooked by the HL engine (if they are made by the HL engine).&lt;br /&gt;
&lt;br /&gt;
For example, this would work:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
register_concmd(&amp;quot;+explode&amp;quot;,&amp;quot;explode&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However this would not:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
register_concmd(&amp;quot;+attack&amp;quot;,&amp;quot;hook_attack&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Constants==&lt;br /&gt;
&lt;br /&gt;
A full list of constants can be found here:&lt;br /&gt;
http://amxmodx.org/funcwiki.php?go=module&amp;amp;id=3#const_buttons&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
If, for example, it is desired to check when a player is attacking, one would use the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;Attack Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public client_PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	if(entity_get_int(id,EV_INT_BUTTON) &amp;amp; IN_ATTACK)&lt;br /&gt;
	{&lt;br /&gt;
		// do something&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice how this uses the &amp;amp; operator, rather than the &amp;amp;&amp;amp; operator. This is because a bit value is returned, and the &amp;amp; operator checks if a bit value is contained in another bit value.&lt;br /&gt;
&lt;br /&gt;
To set an entity's button, the same type of idea can be implemented:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;Attack Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public client_PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	entity_set_int(id,EV_INT_button,IN_ATTACK);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets the client's attack flag to ''on'' every time a frame is rendered. &lt;br /&gt;
&lt;br /&gt;
To get an entity's buttons, and then ommit a certain button, one would use the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;amxmodx&amp;gt;&lt;br /&gt;
#include &amp;lt;engine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public plugin_init()&lt;br /&gt;
{&lt;br /&gt;
	register_plugin(&amp;quot;Attack Test&amp;quot;,&amp;quot;1.0&amp;quot;,&amp;quot;Hawk552&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public client_PreThink(id)&lt;br /&gt;
{&lt;br /&gt;
	entity_set_int(id,EV_INT_button,entity_get_int(id,EV_INT_button) &amp;amp; ~IN_ATTACK);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Say, for example, during a certain time, the client is jumping and attacking at the same time. In this case, the entity_get_int(id,EV_INT_button) function would return IN_ATTACK and IN_JUMP. Using the ~ operator removes the certain bit value, making it into merely IN_JUMP.&lt;br /&gt;
&lt;br /&gt;
There are many more ways to use button constants, and not all must be used on players. They are simply more commonly implemented when dealing with players.&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2358</id>
		<title>User:Hawk552</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2358"/>
		<updated>2006-01-20T01:48:48Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: /* Hawk552 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Hawk552==&lt;br /&gt;
&lt;br /&gt;
Hello, my name is Hawk552.&lt;br /&gt;
&lt;br /&gt;
[[button constants]]&lt;br /&gt;
&lt;br /&gt;
==Something==&lt;br /&gt;
stuff&lt;br /&gt;
&lt;br /&gt;
==AMX(X) Experience==&lt;br /&gt;
Sucks a coding really badly. Hated by all, loved by none.&lt;br /&gt;
&lt;br /&gt;
^&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
LOL THANKS TWILIGHT I LOVE YOU&lt;br /&gt;
&lt;br /&gt;
==gaben==&lt;br /&gt;
&lt;br /&gt;
hello pm, yams.&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2357</id>
		<title>VALVe Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2357"/>
		<updated>2006-01-20T01:41:34Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Valve Corporation''' is a Bellevue, Washington-based video game developer made famous by its first product, ''[[Half-Life]]'', which was released in November 1998.  The company has continued in the footsteps of ''Half-Life''&amp;lt;nowiki&amp;gt;'&amp;lt;/nowiki&amp;gt;s success by developing mods, spin-offs, and sequels including ''[[Half-Life 2]]''.&lt;br /&gt;
&lt;br /&gt;
==''Half-Life''==&lt;br /&gt;
Long-time Microsoft employees [[Gabe Newell]] and Mike Harrington founded Valve in 1996.  After securing a license to the ''Quake'' engine (through the help of friend Michael Abrash of id Software) in late 1996, they commenced working on ''Half-Life''. Originally planned for release in late 1997, ''Half-Life'' launched on October 31, 1998.  Valve acquired TF Software PTY Ltd., the makers of the ''[[Team Fortress]]'' mod for ''Quake'' with the intent to create a standalone ''Team Fortress 2'' game.  The ''Team Fortress Classic'' mod, essentially a port of the original ''Team Fortress'' quake mod, was released for ''Half-Life'' in 1999; ''TF2'' is still in development.  &lt;br /&gt;
&lt;br /&gt;
Valve continued work on ''Half-Life'', releasing several more extensions to the game and collaborated with other developers to port it to other platforms.  They also took on-board the development of the highly popular ''[[Counter-Strike]]'' and ''[[Day of Defeat]]'' ''Half-Life'' mods. &lt;br /&gt;
==Steam and lawsuits==&lt;br /&gt;
Valve announced its [[Steam]] content delivery system in 2002.  At the time, it looked to be a method of streamlining the patch process common in online computer games.  Steam was later revealed as a replacement for much of the dated framework of [[WON]] and ''Half-Life'' multiplayer and also as a distribution system for entire games.&lt;br /&gt;
&lt;br /&gt;
Between 2002 and 2005, Valve was involved in a complex legal showdown with its publisher, [[Sierra Entertainment]] (which was later bought by Vivendi Universal Games, or VUG).  It officially began on August 14, 2002 when Valve sued Sierra for copyright infringement, alleging that the publisher illegally distributed copies of their games to Internet cafes.  They later added claims of breach of contract, accusing their publisher of withholding royalties and delaying the release of ''[[Counter-Strike: Condition Zero]]'' until after the holiday season.&lt;br /&gt;
&lt;br /&gt;
Vivendi fought back, saying that Gabe Newell and marketing director Doug Lombardi had misrepresented Valve's position in meetings with the publisher.  Vivendi later countersued, claiming that Valve's Steam content distribution system attempted to circumvent their publishing agreement. VUG sought intellectual property rights to ''Half-Life'' and a ruling preventing Valve from using Steam to distribute ''Half-Life 2''.&lt;br /&gt;
&lt;br /&gt;
On November 29, 2004, Judge Thomas S. Zilly of U.S. Federal District Court in Seattle ruled in favor of Valve Corporation. Specifically, the ruling stated that Vivendi Universal Games and its affiliates (including Sierra) were not authorized to distribute Valve games, either directly or indirectly, through cyber cafés to end users for pay-to-play activities pursuant to the parties' current publishing agreement. In addition, Judge Zilly ruled that Valve could recover copyright damages for infringements without regard to the publishing agreement's limitation of liability clause.&lt;br /&gt;
&lt;br /&gt;
On April 29, 2005, Valve posted on the Steam website that the two companies had come to a settlement in court. [http://www.steampowered.com/index.php?area=news&amp;amp;id=413]&lt;br /&gt;
&lt;br /&gt;
==''Half-Life 2''==&lt;br /&gt;
The company created a stir at E³ in May 2003 by debuting what appeared to be a surprisingly complete ''Half-Life 2'' and its [[Source engine]]. Originally scheduled to be released in September 2003, the game's first delay was announced just weeks before its scheduled release. (Valve later admitted that the game was far from completion.) Just before the delay was announced, a leak of ''Half-Life 2'''s source code made worldwide news. At first, Valve called on the FBI, but without results. Then they turned to the internet community, and soon tips came in. A German citizen who went by the name of Axel G. was tried and convicted in United States for the theft. ''Half-Life 2'' was released on November 16, 2004.&lt;br /&gt;
&lt;br /&gt;
In April 2005, Valve announced an expansion pack for ''Half-Life 2'' titled ''[[Half-Life 2: Aftermath]]''. During a discussion about ''Aftermath'', Valve's Jess Cliffe reported that news concerning ''Team Fortress 2'' would &amp;quot;soon&amp;quot; be released.&lt;br /&gt;
&lt;br /&gt;
On July 18, 2005, Electronic Arts announced that they would be teaming up with Valve in a multi-year deal to publish their games. EA will first publish the &amp;quot;Game of the Year&amp;quot; edition of ''Half-Life 2'' and ''Counter-Strike: Source'' for the PC. They will also publish ''Half-Life 2'' for the Xbox and its expansion pack, ''Aftermath''.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*''[[Half-Life]]''&lt;br /&gt;
*''[[Half-Life 2]]''&lt;br /&gt;
*''[[Half-Life 2: Lost Coast]]''&lt;br /&gt;
*''[[Half-Life 2: Aftermath]]''&lt;br /&gt;
*''[[Counter-Strike]]''&lt;br /&gt;
*''[[Day of Defeat]]''&lt;br /&gt;
*''[[Team Fortress Classic]]''&lt;br /&gt;
*''[[Team Fortress 2]]''&lt;br /&gt;
*[[Steam (content delivery)|Steam]]&lt;br /&gt;
*[[List of Half-Life mods]]&lt;br /&gt;
*[[List of Half-Life 2 mods]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.valvesoftware.com/ Official Homepage of Valve Corporation]&lt;br /&gt;
*[http://www.steampowered.com Official Steam Site]&lt;br /&gt;
*[http://www.gamespot.com/features/6112889/index.html GameSpot: &amp;quot;The Final Hours of Half Life 2&amp;quot;]&lt;br /&gt;
*[http://www.gamespot.com/news/2004/09/20/news_6107712.html GameSpot: &amp;quot;Valve vs. Vivendi Universal dogfight heats up in US District Court&amp;quot; (20 Sept 2004)]&lt;br /&gt;
*[http://www.gamespot.com/features/halflife_final/ GameSpot: &amp;quot;The Final Hours of Half-Life: Behind Closed Doors at Valve Corporation&amp;quot;]&lt;br /&gt;
*[http://www.valvesoftware.com/people.html People Of Valve Corporation]&lt;br /&gt;
*[http://www.eagames.com/redesign/editorial.jsp?src=valve_071805 Press release about EA Games and Valve]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2356</id>
		<title>VALVe Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2356"/>
		<updated>2006-01-20T01:40:00Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Valve Corporation''' is a Bellevue, Washington-based video game developer made famous by its first product, ''[[Half-Life]]'', which was released in November 1998.  The company has continued in the footsteps of ''Half-Life''&amp;lt;nowiki&amp;gt;'&amp;lt;/nowiki&amp;gt;s success by developing mods, spin-offs, and sequels including ''[[Half-Life 2]]''.&lt;br /&gt;
&lt;br /&gt;
==''Half-Life''==&lt;br /&gt;
Long-time Microsoft employees [[Gabe Newell]] and Mike Harrington founded Valve in 1996.  After securing a license to the ''Quake'' engine (through the help of friend Michael Abrash of id Software) in late 1996, they commenced working on ''Half-Life''. Originally planned for release in late 1997, ''Half-Life'' launched on October 31, 1998.  Valve acquired TF Software PTY Ltd., the makers of the ''[[Team Fortress]]'' mod for ''Quake'' with the intent to create a standalone ''Team Fortress 2'' game.  The ''Team Fortress Classic'' mod, essentially a port of the original ''Team Fortress'' quake mod, was released for ''Half-Life'' in 1999; ''TF2'' is still in development.  &lt;br /&gt;
&lt;br /&gt;
Valve continued work on ''Half-Life'', releasing several more extensions to the game and collaborated with other developers to port it to other platforms.  They also took on-board the development of the highly popular ''[[Counter-Strike]]'' and ''[[Day of Defeat]]'' ''Half-Life'' mods. &lt;br /&gt;
==Steam and lawsuits==&lt;br /&gt;
Valve announced its [[Steam (content delivery)|Steam]] content delivery system in 2002.  At the time, it looked to be a method of streamlining the patch process common in online computer games.  Steam was later revealed as a replacement for much of the dated framework of [[WON]] and ''Half-Life'' multiplayer and also as a distribution system for entire games.&lt;br /&gt;
&lt;br /&gt;
Between 2002 and 2005, Valve was involved in a complex legal showdown with its publisher, [[Sierra Entertainment]] (which was later bought by Vivendi Universal Games, or VUG).  It officially began on August 14, 2002 when Valve sued Sierra for copyright infringement, alleging that the publisher illegally distributed copies of their games to Internet cafes.  They later added claims of breach of contract, accusing their publisher of withholding royalties and delaying the release of ''[[Counter-Strike: Condition Zero]]'' until after the holiday season.&lt;br /&gt;
&lt;br /&gt;
Vivendi fought back, saying that Gabe Newell and marketing director Doug Lombardi had misrepresented Valve's position in meetings with the publisher.  Vivendi later countersued, claiming that Valve's Steam content distribution system attempted to circumvent their publishing agreement. VUG sought intellectual property rights to ''Half-Life'' and a ruling preventing Valve from using Steam to distribute ''Half-Life 2''.&lt;br /&gt;
&lt;br /&gt;
On November 29, 2004, Judge Thomas S. Zilly of U.S. Federal District Court in Seattle ruled in favor of Valve Corporation. Specifically, the ruling stated that Vivendi Universal Games and its affiliates (including Sierra) were not authorized to distribute Valve games, either directly or indirectly, through cyber cafés to end users for pay-to-play activities pursuant to the parties' current publishing agreement. In addition, Judge Zilly ruled that Valve could recover copyright damages for infringements without regard to the publishing agreement's limitation of liability clause.&lt;br /&gt;
&lt;br /&gt;
On April 29, 2005, Valve posted on the Steam website that the two companies had come to a settlement in court. [http://www.steampowered.com/index.php?area=news&amp;amp;id=413]&lt;br /&gt;
&lt;br /&gt;
==''Half-Life 2''==&lt;br /&gt;
The company created a stir at E³ in May 2003 by debuting what appeared to be a surprisingly complete ''Half-Life 2'' and its [[Source engine]]. Originally scheduled to be released in September 2003, the game's first delay was announced just weeks before its scheduled release. (Valve later admitted that the game was far from completion.) Just before the delay was announced, a leak of ''Half-Life 2'''s source code made worldwide news. At first, Valve called on the FBI, but without results. Then they turned to the internet community, and soon tips came in. A German citizen who went by the name of Axel G. was tried and convicted in United States for the theft. ''Half-Life 2'' was released on November 16, 2004.&lt;br /&gt;
&lt;br /&gt;
In April 2005, Valve announced an expansion pack for ''Half-Life 2'' titled ''[[Half-Life 2: Aftermath]]''. During a discussion about ''Aftermath'', Valve's Jess Cliffe reported that news concerning ''Team Fortress 2'' would &amp;quot;soon&amp;quot; be released.&lt;br /&gt;
&lt;br /&gt;
On July 18, 2005, Electronic Arts announced that they would be teaming up with Valve in a multi-year deal to publish their games. EA will first publish the &amp;quot;Game of the Year&amp;quot; edition of ''Half-Life 2'' and ''Counter-Strike: Source'' for the PC. They will also publish ''Half-Life 2'' for the Xbox and its expansion pack, ''Aftermath''.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*''[[Half-Life]]''&lt;br /&gt;
*''[[Half-Life 2]]''&lt;br /&gt;
*''[[Half-Life 2: Lost Coast]]''&lt;br /&gt;
*''[[Half-Life 2: Aftermath]]''&lt;br /&gt;
*''[[Counter-Strike]]''&lt;br /&gt;
*''[[Day of Defeat]]''&lt;br /&gt;
*''[[Team Fortress Classic]]''&lt;br /&gt;
*''[[Team Fortress 2]]''&lt;br /&gt;
*[[Steam (content delivery)|Steam]]&lt;br /&gt;
*[[List of Half-Life mods]]&lt;br /&gt;
*[[List of Half-Life 2 mods]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.valvesoftware.com/ Official Homepage of Valve Corporation]&lt;br /&gt;
*[http://www.steampowered.com Official Steam Site]&lt;br /&gt;
*[http://www.gamespot.com/features/6112889/index.html GameSpot: &amp;quot;The Final Hours of Half Life 2&amp;quot;]&lt;br /&gt;
*[http://www.gamespot.com/news/2004/09/20/news_6107712.html GameSpot: &amp;quot;Valve vs. Vivendi Universal dogfight heats up in US District Court&amp;quot; (20 Sept 2004)]&lt;br /&gt;
*[http://www.gamespot.com/features/halflife_final/ GameSpot: &amp;quot;The Final Hours of Half-Life: Behind Closed Doors at Valve Corporation&amp;quot;]&lt;br /&gt;
*[http://www.valvesoftware.com/people.html People Of Valve Corporation]&lt;br /&gt;
*[http://www.eagames.com/redesign/editorial.jsp?src=valve_071805 Press release about EA Games and Valve]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2355</id>
		<title>VALVe Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2355"/>
		<updated>2006-01-20T01:39:46Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Valve Corporation''' is a Bellevue, Washington-based video game developer made famous by its first product, ''[[Half-Life]]'', which was released in November]] 1998.  The company has continued in the footsteps of ''Half-Life''&amp;lt;nowiki&amp;gt;'&amp;lt;/nowiki&amp;gt;s success by developing mods, [[spin-off]]s, and sequels including ''[[Half-Life 2]]''.&lt;br /&gt;
&lt;br /&gt;
==''Half-Life''==&lt;br /&gt;
Long-time Microsoft employees [[Gabe Newell]] and Mike Harrington founded Valve in 1996.  After securing a license to the ''Quake'' engine (through the help of friend Michael Abrash of id Software) in late 1996, they commenced working on ''Half-Life''. Originally planned for release in late 1997, ''Half-Life'' launched on October 31, 1998.  Valve acquired TF Software PTY Ltd., the makers of the ''[[Team Fortress]]'' mod for ''Quake'' with the intent to create a standalone ''Team Fortress 2'' game.  The ''Team Fortress Classic'' mod, essentially a port of the original ''Team Fortress'' quake mod, was released for ''Half-Life'' in 1999; ''TF2'' is still in development.  &lt;br /&gt;
&lt;br /&gt;
Valve continued work on ''Half-Life'', releasing several more extensions to the game and collaborated with other developers to port it to other platforms.  They also took on-board the development of the highly popular ''[[Counter-Strike]]'' and ''[[Day of Defeat]]'' ''Half-Life'' mods. &lt;br /&gt;
==Steam and lawsuits==&lt;br /&gt;
Valve announced its [[Steam (content delivery)|Steam]] content delivery system in 2002.  At the time, it looked to be a method of streamlining the patch process common in online computer games.  Steam was later revealed as a replacement for much of the dated framework of [[WON]] and ''Half-Life'' multiplayer and also as a distribution system for entire games.&lt;br /&gt;
&lt;br /&gt;
Between 2002 and 2005, Valve was involved in a complex legal showdown with its publisher, [[Sierra Entertainment]] (which was later bought by Vivendi Universal Games, or VUG).  It officially began on August 14, 2002 when Valve sued Sierra for copyright infringement, alleging that the publisher illegally distributed copies of their games to Internet cafes.  They later added claims of breach of contract, accusing their publisher of withholding royalties and delaying the release of ''[[Counter-Strike: Condition Zero]]'' until after the holiday season.&lt;br /&gt;
&lt;br /&gt;
Vivendi fought back, saying that Gabe Newell and marketing director Doug Lombardi had misrepresented Valve's position in meetings with the publisher.  Vivendi later countersued, claiming that Valve's Steam content distribution system attempted to circumvent their publishing agreement. VUG sought intellectual property rights to ''Half-Life'' and a ruling preventing Valve from using Steam to distribute ''Half-Life 2''.&lt;br /&gt;
&lt;br /&gt;
On November 29, 2004, Judge Thomas S. Zilly of U.S. Federal District Court in Seattle ruled in favor of Valve Corporation. Specifically, the ruling stated that Vivendi Universal Games and its affiliates (including Sierra) were not authorized to distribute Valve games, either directly or indirectly, through cyber cafés to end users for pay-to-play activities pursuant to the parties' current publishing agreement. In addition, Judge Zilly ruled that Valve could recover copyright damages for infringements without regard to the publishing agreement's limitation of liability clause.&lt;br /&gt;
&lt;br /&gt;
On April 29, 2005, Valve posted on the Steam website that the two companies had come to a settlement in court. [http://www.steampowered.com/index.php?area=news&amp;amp;id=413]&lt;br /&gt;
&lt;br /&gt;
==''Half-Life 2''==&lt;br /&gt;
The company created a stir at E³ in May 2003 by debuting what appeared to be a surprisingly complete ''Half-Life 2'' and its [[Source engine]]. Originally scheduled to be released in September 2003, the game's first delay was announced just weeks before its scheduled release. (Valve later admitted that the game was far from completion.) Just before the delay was announced, a leak of ''Half-Life 2'''s source code made worldwide news. At first, Valve called on the FBI, but without results. Then they turned to the internet community, and soon tips came in. A German citizen who went by the name of Axel G. was tried and convicted in United States for the theft. ''Half-Life 2'' was released on November 16, 2004.&lt;br /&gt;
&lt;br /&gt;
In April 2005, Valve announced an expansion pack for ''Half-Life 2'' titled ''[[Half-Life 2: Aftermath]]''. During a discussion about ''Aftermath'', Valve's Jess Cliffe reported that news concerning ''Team Fortress 2'' would &amp;quot;soon&amp;quot; be released.&lt;br /&gt;
&lt;br /&gt;
On July 18, 2005, Electronic Arts announced that they would be teaming up with Valve in a multi-year deal to publish their games. EA will first publish the &amp;quot;Game of the Year&amp;quot; edition of ''Half-Life 2'' and ''Counter-Strike: Source'' for the PC. They will also publish ''Half-Life 2'' for the Xbox and its expansion pack, ''Aftermath''.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*''[[Half-Life]]''&lt;br /&gt;
*''[[Half-Life 2]]''&lt;br /&gt;
*''[[Half-Life 2: Lost Coast]]''&lt;br /&gt;
*''[[Half-Life 2: Aftermath]]''&lt;br /&gt;
*''[[Counter-Strike]]''&lt;br /&gt;
*''[[Day of Defeat]]''&lt;br /&gt;
*''[[Team Fortress Classic]]''&lt;br /&gt;
*''[[Team Fortress 2]]''&lt;br /&gt;
*[[Steam (content delivery)|Steam]]&lt;br /&gt;
*[[List of Half-Life mods]]&lt;br /&gt;
*[[List of Half-Life 2 mods]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.valvesoftware.com/ Official Homepage of Valve Corporation]&lt;br /&gt;
*[http://www.steampowered.com Official Steam Site]&lt;br /&gt;
*[http://www.gamespot.com/features/6112889/index.html GameSpot: &amp;quot;The Final Hours of Half Life 2&amp;quot;]&lt;br /&gt;
*[http://www.gamespot.com/news/2004/09/20/news_6107712.html GameSpot: &amp;quot;Valve vs. Vivendi Universal dogfight heats up in US District Court&amp;quot; (20 Sept 2004)]&lt;br /&gt;
*[http://www.gamespot.com/features/halflife_final/ GameSpot: &amp;quot;The Final Hours of Half-Life: Behind Closed Doors at Valve Corporation&amp;quot;]&lt;br /&gt;
*[http://www.valvesoftware.com/people.html People Of Valve Corporation]&lt;br /&gt;
*[http://www.eagames.com/redesign/editorial.jsp?src=valve_071805 Press release about EA Games and Valve]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2354</id>
		<title>VALVe Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2354"/>
		<updated>2006-01-20T01:39:09Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Valve Corporation''' is a Bellevue, Washington-based video game developer made famous by its first product, ''[[Half-Life]]'', which was released in [[November]] [[1998]].  The company has continued in the footsteps of ''Half-Life''&amp;lt;nowiki&amp;gt;'&amp;lt;/nowiki&amp;gt;s success by developing [[mod (computer gaming)|mods]], [[spin-off]]s, and [[sequel]]s including ''[[Half-Life 2]]''.&lt;br /&gt;
&lt;br /&gt;
==''Half-Life''==&lt;br /&gt;
Long-time Microsoft employees [[Gabe Newell]] and Mike Harrington founded Valve in 1996.  After securing a license to the ''Quake'' engine (through the help of friend Michael Abrash of id Software) in late 1996, they commenced working on ''Half-Life''. Originally planned for release in late 1997, ''Half-Life'' launched on October 31, 1998.  Valve acquired TF Software PTY Ltd., the makers of the ''[[Team Fortress]]'' mod for ''Quake'' with the intent to create a standalone ''Team Fortress 2'' game.  The ''Team Fortress Classic'' mod, essentially a port of the original ''Team Fortress'' quake mod, was released for ''Half-Life'' in 1999; ''TF2'' is still in development.  &lt;br /&gt;
&lt;br /&gt;
Valve continued work on ''Half-Life'', releasing several more extensions to the game and collaborated with other developers to port it to other platforms.  They also took on-board the development of the highly popular ''[[Counter-Strike]]'' and ''[[Day of Defeat]]'' ''Half-Life'' mods. &lt;br /&gt;
==Steam and lawsuits==&lt;br /&gt;
Valve announced its [[Steam (content delivery)|Steam]] content delivery system in 2002.  At the time, it looked to be a method of streamlining the patch process common in online computer games.  Steam was later revealed as a replacement for much of the dated framework of [[WON]] and ''Half-Life'' multiplayer and also as a distribution system for entire games.&lt;br /&gt;
&lt;br /&gt;
Between 2002 and 2005, Valve was involved in a complex legal showdown with its publisher, [[Sierra Entertainment]] (which was later bought by Vivendi Universal Games, or VUG).  It officially began on August 14, 2002 when Valve sued Sierra for copyright infringement, alleging that the publisher illegally distributed copies of their games to Internet cafes.  They later added claims of breach of contract, accusing their publisher of withholding royalties and delaying the release of ''[[Counter-Strike: Condition Zero]]'' until after the holiday season.&lt;br /&gt;
&lt;br /&gt;
Vivendi fought back, saying that Gabe Newell and marketing director Doug Lombardi had misrepresented Valve's position in meetings with the publisher.  Vivendi later countersued, claiming that Valve's Steam content distribution system attempted to circumvent their publishing agreement. VUG sought intellectual property rights to ''Half-Life'' and a ruling preventing Valve from using Steam to distribute ''Half-Life 2''.&lt;br /&gt;
&lt;br /&gt;
On November 29, 2004, Judge Thomas S. Zilly of U.S. Federal District Court in Seattle ruled in favor of Valve Corporation. Specifically, the ruling stated that Vivendi Universal Games and its affiliates (including Sierra) were not authorized to distribute Valve games, either directly or indirectly, through cyber cafés to end users for pay-to-play activities pursuant to the parties' current publishing agreement. In addition, Judge Zilly ruled that Valve could recover copyright damages for infringements without regard to the publishing agreement's limitation of liability clause.&lt;br /&gt;
&lt;br /&gt;
On April 29, 2005, Valve posted on the Steam website that the two companies had come to a settlement in court. [http://www.steampowered.com/index.php?area=news&amp;amp;id=413]&lt;br /&gt;
&lt;br /&gt;
==''Half-Life 2''==&lt;br /&gt;
The company created a stir at E³ in May 2003 by debuting what appeared to be a surprisingly complete ''Half-Life 2'' and its [[Source engine]]. Originally scheduled to be released in September 2003, the game's first delay was announced just weeks before its scheduled release. (Valve later admitted that the game was far from completion.) Just before the delay was announced, a leak of ''Half-Life 2'''s source code made worldwide news. At first, Valve called on the FBI, but without results. Then they turned to the internet community, and soon tips came in. A German citizen who went by the name of Axel G. was tried and convicted in United States for the theft. ''Half-Life 2'' was released on November 16, 2004.&lt;br /&gt;
&lt;br /&gt;
In April 2005, Valve announced an expansion pack for ''Half-Life 2'' titled ''[[Half-Life 2: Aftermath]]''. During a discussion about ''Aftermath'', Valve's Jess Cliffe reported that news concerning ''Team Fortress 2'' would &amp;quot;soon&amp;quot; be released.&lt;br /&gt;
&lt;br /&gt;
On July 18, 2005, Electronic Arts announced that they would be teaming up with Valve in a multi-year deal to publish their games. EA will first publish the &amp;quot;Game of the Year&amp;quot; edition of ''Half-Life 2'' and ''Counter-Strike: Source'' for the PC. They will also publish ''Half-Life 2'' for the Xbox and its expansion pack, ''Aftermath''.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*''[[Half-Life]]''&lt;br /&gt;
*''[[Half-Life 2]]''&lt;br /&gt;
*''[[Half-Life 2: Lost Coast]]''&lt;br /&gt;
*''[[Half-Life 2: Aftermath]]''&lt;br /&gt;
*''[[Counter-Strike]]''&lt;br /&gt;
*''[[Day of Defeat]]''&lt;br /&gt;
*''[[Team Fortress Classic]]''&lt;br /&gt;
*''[[Team Fortress 2]]''&lt;br /&gt;
*[[Steam (content delivery)|Steam]]&lt;br /&gt;
*[[List of Half-Life mods]]&lt;br /&gt;
*[[List of Half-Life 2 mods]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.valvesoftware.com/ Official Homepage of Valve Corporation]&lt;br /&gt;
*[http://www.steampowered.com Official Steam Site]&lt;br /&gt;
*[http://www.gamespot.com/features/6112889/index.html GameSpot: &amp;quot;The Final Hours of Half Life 2&amp;quot;]&lt;br /&gt;
*[http://www.gamespot.com/news/2004/09/20/news_6107712.html GameSpot: &amp;quot;Valve vs. Vivendi Universal dogfight heats up in US District Court&amp;quot; (20 Sept 2004)]&lt;br /&gt;
*[http://www.gamespot.com/features/halflife_final/ GameSpot: &amp;quot;The Final Hours of Half-Life: Behind Closed Doors at Valve Corporation&amp;quot;]&lt;br /&gt;
*[http://www.valvesoftware.com/people.html People Of Valve Corporation]&lt;br /&gt;
*[http://www.eagames.com/redesign/editorial.jsp?src=valve_071805 Press release about EA Games and Valve]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2353</id>
		<title>VALVe Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2353"/>
		<updated>2006-01-20T01:29:44Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  company_name   = Valve [[Corporation]]|&lt;br /&gt;
  company_type   = Private |&lt;br /&gt;
  company_slogan = &amp;quot;With eyes open - turn forward&amp;quot; |&lt;br /&gt;
  foundation     = [[Bellevue, Washington]] ([[1996]]) |&lt;br /&gt;
  location       = Bellevue, Washington |&lt;br /&gt;
  key_people     = [[Gabe Newell]], co-founder and [[managing director]] |&lt;br /&gt;
  num_employees  = 70+ [http://www.valvesoftware.com/about.html] |&lt;br /&gt;
  industry       = [[Software &amp;amp; Programming]]|&lt;br /&gt;
  products       = ''[[Half-Life]]'' &amp;lt;br /&amp;gt;''[[Team Fortress Classic]]'' &amp;lt;br /&amp;gt;''[[Counter-Strike]]'' &amp;lt;br /&amp;gt;''[[Day of Defeat]]'' &amp;lt;br /&amp;gt; ''[[Deathmatch Classic]]'' &amp;lt;br /&amp;gt; [[Steam (content delivery)|Steam]] &amp;lt;br /&amp;gt;''[[Half-Life 2]]'' &amp;lt;br /&amp;gt;[[Source engine]] &amp;lt;br /&amp;gt;|&lt;br /&gt;
  revenue        = $70 million [[United States dollar|USD]] ([[2005]]) [http://www.forbes.com/archive/forbes/2005/1212/064.html]|&lt;br /&gt;
  homepage       = [http://www.valvesoftware.com/ www.valvesoftware.com]&lt;br /&gt;
}}&lt;br /&gt;
'''Valve Corporation''' is a [[Bellevue, Washington]]-based [[video game developer]] made famous by its first product, ''[[Half-Life]]'', which was released in [[November]] [[1998]].  The company has continued in the footsteps of ''Half-Life''&amp;lt;nowiki&amp;gt;'&amp;lt;/nowiki&amp;gt;s success by developing [[mod (computer gaming)|mods]], [[spin-off]]s, and [[sequel]]s including ''[[Half-Life 2]]''.&lt;br /&gt;
&lt;br /&gt;
==''Half-Life''==&lt;br /&gt;
Long-time [[Microsoft]] employees [[Gabe Newell]] and [[Mike Harrington]] founded Valve in [[1996]].  After securing a license to the ''[[Quake]]'' engine (through the help of friend [[Michael Abrash]] of [[id Software]]) in late 1996, they commenced working on ''Half-Life''. Originally planned for release in late [[1997]], ''Half-Life'' launched on [[October 31]], [[1998]].  Valve acquired TF Software PTY Ltd., the makers of the ''[[Team Fortress]]'' [[Mod (computer gaming)|mod]] for ''[[Quake]]'' with the intent to create a standalone ''[[Team Fortress 2]]'' game.  The ''[[Team Fortress Classic]]'' [[Mod (computer gaming)|mod]], essentially a port of the original ''[[Team Fortress]]'' quake mod, was released for ''Half-Life'' in [[1999]]; ''TF2'' is still in development.  &lt;br /&gt;
&lt;br /&gt;
Valve continued work on ''Half-Life'', releasing several more extensions to the game and collaborated with other developers to [[porting|port]] it to other platforms.  They also took on-board the development of the highly popular ''[[Counter-Strike]]'' and ''[[Day of Defeat]]'' ''Half-Life'' mods. &lt;br /&gt;
==Steam and lawsuits==&lt;br /&gt;
Valve announced its [[Steam (content delivery)|Steam]] content delivery system in [[2002]].  At the time, it looked to be a method of streamlining the [[patch (computing)|patch]] process common in online [[computer game]]s.  Steam was later revealed as a replacement for much of the dated framework of [[WON]] and ''Half-Life'' multiplayer and also as a distribution system for entire games.&lt;br /&gt;
&lt;br /&gt;
Between [[2002]] and [[2005]], Valve was involved in a complex legal showdown with its publisher, [[Sierra Entertainment]] (which was later bought by [[Vivendi Universal Games]], or VUG).  It officially began on [[August 14]], 2002 when Valve sued Sierra for [[copyright infringement]], alleging that the publisher illegally distributed copies of their games to [[Internet cafe]]s.  They later added claims of [[breach of contract]], accusing their publisher of withholding royalties and delaying the release of ''[[Counter-Strike: Condition Zero]]'' until after the holiday season.&lt;br /&gt;
&lt;br /&gt;
Vivendi fought back, saying that Gabe Newell and marketing director Doug Lombardi had misrepresented Valve's position in meetings with the publisher.  Vivendi later countersued, claiming that Valve's Steam content distribution system attempted to circumvent their publishing agreement. VUG sought [[intellectual property]] rights to ''Half-Life'' and a ruling preventing Valve from using Steam to distribute ''Half-Life 2''.&lt;br /&gt;
&lt;br /&gt;
On [[November 29]], 2004, Judge Thomas S. Zilly of U.S. Federal District Court in [[Seattle, Washington|Seattle, WA]] ruled in favor of Valve Corporation. Specifically, the ruling stated that Vivendi Universal Games and its affiliates (including Sierra) were not authorized to distribute Valve games, either directly or indirectly, through cyber cafés to end users for pay-to-play activities pursuant to the parties' current publishing agreement. In addition, Judge Zilly ruled that Valve could recover copyright damages for infringements without regard to the publishing agreement's limitation of liability clause.&lt;br /&gt;
&lt;br /&gt;
On [[April 29]], 2005, Valve posted on the Steam website that the two companies had come to a settlement in court. [http://www.steampowered.com/index.php?area=news&amp;amp;id=413]&lt;br /&gt;
&lt;br /&gt;
==''Half-Life 2''==&lt;br /&gt;
The company created a stir at [[E³]] in [[May]] [[2003]] by debuting what appeared to be a surprisingly complete ''Half-Life 2'' and its [[Source engine]]. Originally scheduled to be released in [[September]] [[2003]], the game's first delay was announced just weeks before its scheduled release. (Valve later admitted that the game was far from completion.) Just before the delay was announced, a leak of ''Half-Life 2'''s [[source code]] made worldwide news. At first, Valve called on the FBI, but without results. Then they turned to the internet community, and soon tips came in. A [[Germany|German]] citizen who went by the name of Axel G. was tried and convicted in [[United States]] for the theft. ''Half-Life 2'' was released on [[November 16]], [[2004]].&lt;br /&gt;
&lt;br /&gt;
In April 2005, Valve announced an [[expansion pack]] for ''Half-Life 2'' titled ''[[Half-Life 2: Aftermath]]''. During a discussion about ''Aftermath'', Valve's Jess Cliffe reported that news concerning ''Team Fortress 2'' would &amp;quot;soon&amp;quot; be released.&lt;br /&gt;
&lt;br /&gt;
On [[July 18]], [[2005]], [[Electronic Arts]] announced that they would be teaming up with Valve in a multi-year deal to publish their games. EA will first publish the &amp;quot;Game of the Year&amp;quot; edition of ''Half-Life 2'' and ''Counter-Strike: Source'' for the PC. They will also publish ''Half-Life 2'' for the [[Xbox]] and its expansion pack, ''Aftermath''.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*''[[Half-Life]]''&lt;br /&gt;
*''[[Half-Life 2]]''&lt;br /&gt;
*''[[Half-Life 2: Lost Coast]]''&lt;br /&gt;
*''[[Half-Life 2: Aftermath]]''&lt;br /&gt;
*''[[Counter-Strike]]''&lt;br /&gt;
*''[[Day of Defeat]]''&lt;br /&gt;
*''[[Team Fortress Classic]]''&lt;br /&gt;
*''[[Team Fortress 2]]''&lt;br /&gt;
*[[Steam (content delivery)|Steam]]&lt;br /&gt;
*[[List of Half-Life mods]]&lt;br /&gt;
*[[List of Half-Life 2 mods]]&lt;br /&gt;
*[[PowerPlay (technology)]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.valvesoftware.com/ Official Homepage of Valve Corporation]&lt;br /&gt;
*[http://www.steampowered.com Official Steam Site]&lt;br /&gt;
*[http://www.gamespot.com/features/6112889/index.html GameSpot: &amp;quot;The Final Hours of Half Life 2&amp;quot;]&lt;br /&gt;
*[http://www.gamespot.com/news/2004/09/20/news_6107712.html GameSpot: &amp;quot;Valve vs. Vivendi Universal dogfight heats up in US District Court&amp;quot; (20 Sept 2004)]&lt;br /&gt;
*[http://www.gamespot.com/features/halflife_final/ GameSpot: &amp;quot;The Final Hours of Half-Life: Behind Closed Doors at Valve Corporation&amp;quot;]&lt;br /&gt;
*[http://www.valvesoftware.com/people.html People Of Valve Corporation]&lt;br /&gt;
*[http://www.eagames.com/redesign/editorial.jsp?src=valve_071805 Press release about EA Games and Valve]&lt;br /&gt;
&lt;br /&gt;
[[Category:Computer and video game companies]]&lt;br /&gt;
[[Category:Companies based in Washington]]&lt;br /&gt;
&lt;br /&gt;
[[da:Valve Software]]&lt;br /&gt;
[[de:Valve]]&lt;br /&gt;
[[es:Valve]]&lt;br /&gt;
[[fr:Valve Software]]&lt;br /&gt;
[[it:Valve Software]]&lt;br /&gt;
[[nl:Valve Software Corporation]]&lt;br /&gt;
[[fi:Valve Software]]&lt;br /&gt;
[[sv:Valve Software]]&lt;br /&gt;
[[tr:Valve Software]]&lt;br /&gt;
[[zh:維爾福軟體公司]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2352</id>
		<title>VALVe Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=VALVe_Software&amp;diff=2352"/>
		<updated>2006-01-20T01:29:20Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Company |&lt;br /&gt;
  company_name   = Valve [[Corporation]]|&lt;br /&gt;
  company_type   = Private |&lt;br /&gt;
  company_slogan = &amp;quot;With eyes open - turn forward&amp;quot; |&lt;br /&gt;
  foundation     = [[Bellevue, Washington]] ([[1996]]) |&lt;br /&gt;
  location       = Bellevue, Washington |&lt;br /&gt;
  key_people     = [[Gabe Newell]], co-founder and [[managing director]] |&lt;br /&gt;
  num_employees  = 70+ [http://www.valvesoftware.com/about.html] |&lt;br /&gt;
  industry       = [[Software &amp;amp; Programming]]|&lt;br /&gt;
  products       = ''[[Half-Life]]'' &amp;lt;br /&amp;gt;''[[Team Fortress Classic]]'' &amp;lt;br /&amp;gt;''[[Counter-Strike]]'' &amp;lt;br /&amp;gt;''[[Day of Defeat]]'' &amp;lt;br /&amp;gt; ''[[Deathmatch Classic]]'' &amp;lt;br /&amp;gt; [[Steam (content delivery)|Steam]] &amp;lt;br /&amp;gt;''[[Half-Life 2]]'' &amp;lt;br /&amp;gt;[[Source engine]] &amp;lt;br /&amp;gt;|&lt;br /&gt;
  revenue        = $70 million [[United States dollar|USD]] ([[2005]]) [http://www.forbes.com/archive/forbes/2005/1212/064.html]|&lt;br /&gt;
  homepage       = [http://www.valvesoftware.com/ www.valvesoftware.com]&lt;br /&gt;
}}&lt;br /&gt;
'''Valve Corporation''' is a [[Bellevue, Washington]]-based [[video game developer]] made famous by its first product, ''[[Half-Life]]'', which was released in [[November]] [[1998]].  The company has continued in the footsteps of ''Half-Life''&amp;lt;nowiki&amp;gt;'&amp;lt;/nowiki&amp;gt;s success by developing [[mod (computer gaming)|mods]], [[spin-off]]s, and [[sequel]]s including ''[[Half-Life 2]]''.&lt;br /&gt;
&lt;br /&gt;
==''Half-Life''==&lt;br /&gt;
Long-time [[Microsoft]] employees [[Gabe Newell]] and [[Mike Harrington]] founded Valve in [[1996]].  After securing a license to the ''[[Quake]]'' engine (through the help of friend [[Michael Abrash]] of [[id Software]]) in late 1996, they commenced working on ''Half-Life''. Originally planned for release in late [[1997]], ''Half-Life'' launched on [[October 31]], [[1998]].  Valve acquired TF Software PTY Ltd., the makers of the ''[[Team Fortress]]'' [[Mod (computer gaming)|mod]] for ''[[Quake]]'' with the intent to create a standalone ''[[Team Fortress 2]]'' game.  The ''[[Team Fortress Classic]]'' [[Mod (computer gaming)|mod]], essentially a port of the original ''[[Team Fortress]]'' quake mod, was released for ''Half-Life'' in [[1999]]; ''TF2'' is still in development.  &lt;br /&gt;
&lt;br /&gt;
Valve continued work on ''Half-Life'', releasing several more extensions to the game and collaborated with other developers to [[porting|port]] it to other platforms.  They also took on-board the development of the highly popular ''[[Counter-Strike]]'' and ''[[Day of Defeat]]'' ''Half-Life'' mods. &lt;br /&gt;
==Steam and lawsuits==&lt;br /&gt;
Valve announced its [[Steam (content delivery)|Steam]] content delivery system in [[2002]].  At the time, it looked to be a method of streamlining the [[patch (computing)|patch]] process common in online [[computer game]]s.  Steam was later revealed as a replacement for much of the dated framework of [[WON]] and ''Half-Life'' multiplayer and also as a distribution system for entire games.&lt;br /&gt;
&lt;br /&gt;
Between [[2002]] and [[2005]], Valve was involved in a complex legal showdown with its publisher, [[Sierra Entertainment]] (which was later bought by [[Vivendi Universal Games]], or VUG).  It officially began on [[August 14]], 2002 when Valve sued Sierra for [[copyright infringement]], alleging that the publisher illegally distributed copies of their games to [[Internet cafe]]s.  They later added claims of [[breach of contract]], accusing their publisher of withholding royalties and delaying the release of ''[[Counter-Strike: Condition Zero]]'' until after the holiday season.&lt;br /&gt;
&lt;br /&gt;
Vivendi fought back, saying that Gabe Newell and marketing director Doug Lombardi had misrepresented Valve's position in meetings with the publisher.  Vivendi later countersued, claiming that Valve's Steam content distribution system attempted to circumvent their publishing agreement. VUG sought [[intellectual property]] rights to ''Half-Life'' and a ruling preventing Valve from using Steam to distribute ''Half-Life 2''.&lt;br /&gt;
&lt;br /&gt;
On [[November 29]], 2004, Judge Thomas S. Zilly of U.S. Federal District Court in [[Seattle, Washington|Seattle, WA]] ruled in favor of Valve Corporation. Specifically, the ruling stated that Vivendi Universal Games and its affiliates (including Sierra) were not authorized to distribute Valve games, either directly or indirectly, through cyber cafés to end users for pay-to-play activities pursuant to the parties' current publishing agreement. In addition, Judge Zilly ruled that Valve could recover copyright damages for infringements without regard to the publishing agreement's limitation of liability clause.&lt;br /&gt;
&lt;br /&gt;
On [[April 29]], 2005, Valve posted on the Steam website that the two companies had come to a settlement in court. [http://www.steampowered.com/index.php?area=news&amp;amp;id=413]&lt;br /&gt;
&lt;br /&gt;
==''Half-Life 2''==&lt;br /&gt;
The company created a stir at [[E³]] in [[May]] [[2003]] by debuting what appeared to be a surprisingly complete ''Half-Life 2'' and its [[Source engine]]. Originally scheduled to be released in [[September]] [[2003]], the game's first delay was announced just weeks before its scheduled release. (Valve later admitted that the game was far from completion.) Just before the delay was announced, a leak of ''Half-Life 2'''s [[source code]] made worldwide news. At first, Valve called on the FBI, but without results. Then they turned to the internet community, and soon tips came in. A [[Germany|German]] citizen who went by the name of Axel G. was tried and convicted in [[United States]] for the theft. ''Half-Life 2'' was released on [[November 16]], [[2004]].&lt;br /&gt;
&lt;br /&gt;
In April 2005, Valve announced an [[expansion pack]] for ''Half-Life 2'' titled ''[[Half-Life 2: Aftermath]]''. During a discussion about ''Aftermath'', Valve's Jess Cliffe reported that news concerning ''Team Fortress 2'' would &amp;quot;soon&amp;quot; be released.&lt;br /&gt;
&lt;br /&gt;
On [[July 18]], [[2005]], [[Electronic Arts]] announced that they would be teaming up with Valve in a multi-year deal to publish their games. EA will first publish the &amp;quot;Game of the Year&amp;quot; edition of ''Half-Life 2'' and ''Counter-Strike: Source'' for the PC. They will also publish ''Half-Life 2'' for the [[Xbox]] and its expansion pack, ''Aftermath''.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*''[[Half-Life]]''&lt;br /&gt;
*''[[Half-Life 2]]''&lt;br /&gt;
*''[[Half-Life 2: Lost Coast]]''&lt;br /&gt;
*''[[Half-Life 2: Aftermath]]''&lt;br /&gt;
*''[[Counter-Strike]]''&lt;br /&gt;
*''[[Day of Defeat]]''&lt;br /&gt;
*''[[Team Fortress Classic]]''&lt;br /&gt;
*''[[Team Fortress 2]]''&lt;br /&gt;
*[[Steam (content delivery)|Steam]]&lt;br /&gt;
*[[List of Half-Life mods]]&lt;br /&gt;
*[[List of Half-Life 2 mods]]&lt;br /&gt;
*[[PowerPlay (technology)]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.valvesoftware.com/ Official Homepage of Valve Corporation]&lt;br /&gt;
*[http://www.steampowered.com Official Steam Site]&lt;br /&gt;
*[http://www.gamespot.com/features/6112889/index.html GameSpot: &amp;quot;The Final Hours of Half Life 2&amp;quot;]&lt;br /&gt;
*[http://www.gamespot.com/news/2004/09/20/news_6107712.html GameSpot: &amp;quot;Valve vs. Vivendi Universal dogfight heats up in US District Court&amp;quot; (20 Sept 2004)]&lt;br /&gt;
*[http://www.gamespot.com/features/halflife_final/ GameSpot: &amp;quot;The Final Hours of Half-Life: Behind Closed Doors at Valve Corporation&amp;quot;]&lt;br /&gt;
*[http://www.valvesoftware.com/people.html People Of Valve Corporation]&lt;br /&gt;
*[http://www.eagames.com/redesign/editorial.jsp?src=valve_071805 Press release about EA Games and Valve]&lt;br /&gt;
&lt;br /&gt;
[[Category:Computer and video game companies]]&lt;br /&gt;
[[Category:Companies based in Washington]]&lt;br /&gt;
&lt;br /&gt;
[[da:Valve Software]]&lt;br /&gt;
[[de:Valve]]&lt;br /&gt;
[[es:Valve]]&lt;br /&gt;
[[fr:Valve Software]]&lt;br /&gt;
[[it:Valve Software]]&lt;br /&gt;
[[nl:Valve Software Corporation]]&lt;br /&gt;
[[fi:Valve Software]]&lt;br /&gt;
[[sv:Valve Software]]&lt;br /&gt;
[[tr:Valve Software]]&lt;br /&gt;
[[zh:維爾福軟體公司]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Steam&amp;diff=2351</id>
		<title>Steam</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Steam&amp;diff=2351"/>
		<updated>2006-01-20T01:26:52Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steam is the program used by [[VALVe Software]] in order to deliver game content quickly, securely, and always up to date.&lt;br /&gt;
&lt;br /&gt;
One of the main reasons Steam was implemented was to prevent people from obtaining a cracked serial number and playing online for free, as this reduces profit for the software company.&lt;br /&gt;
&lt;br /&gt;
Steam's necessarity is often disputed. Many see it as too slow, resource consuming, and unnecessary. Others see it as fast, always up to date, and extremely convenient.&lt;br /&gt;
&lt;br /&gt;
Users that would like to get Steam may download it free of charge at http://www.steampowered.com , or for a direct link: http://steampowered.com/download/SteamInstall.exe&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=AlliedModders_Wiki:Protected_page&amp;diff=2350</id>
		<title>AlliedModders Wiki:Protected page</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=AlliedModders_Wiki:Protected_page&amp;diff=2350"/>
		<updated>2006-01-20T01:09:43Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is generally locked from regular users editing it.&lt;br /&gt;
&lt;br /&gt;
Because certain pages are embedded into the wiki database, meaning they can be modified by normal users, there must be locks on some pages. For example, the home page when first coming to this wiki is locked. This is to prevent random people from changing it out of spite (or out of ignorance), causing a ruckus for the staff members.&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:Twilight_Suzuka&amp;diff=2349</id>
		<title>User:Twilight Suzuka</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:Twilight_Suzuka&amp;diff=2349"/>
		<updated>2006-01-20T01:03:50Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Twilight Suzuka, Coder amongst Nooblets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HI TWILIGHT&lt;br /&gt;
&lt;br /&gt;
==hello==&lt;br /&gt;
HEY&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2348</id>
		<title>User:Hawk552</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2348"/>
		<updated>2006-01-20T01:02:39Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: /* AMX(X) Experience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Hawk552==&lt;br /&gt;
&lt;br /&gt;
Hello, my name is Hawk552.&lt;br /&gt;
&lt;br /&gt;
==Something==&lt;br /&gt;
stuff&lt;br /&gt;
&lt;br /&gt;
==AMX(X) Experience==&lt;br /&gt;
Sucks a coding really badly. Hated by all, loved by none.&lt;br /&gt;
&lt;br /&gt;
^&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
LOL THANKS TWILIGHT I LOVE YOU&lt;br /&gt;
&lt;br /&gt;
==gaben==&lt;br /&gt;
&lt;br /&gt;
hello pm, yams.&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2346</id>
		<title>User:Hawk552</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2346"/>
		<updated>2006-01-19T22:09:26Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Hawk552==&lt;br /&gt;
&lt;br /&gt;
Hello, my name is Hawk552.&lt;br /&gt;
&lt;br /&gt;
==Something==&lt;br /&gt;
stuff&lt;br /&gt;
&lt;br /&gt;
==AMX(X) Experience==&lt;br /&gt;
First of all, I shouldn't have included those brackets in the subject line, since AMX SUCKS ASS AND ANYONE THAT THINKS IT DOESN'T SHOULD BE EATEN ALIVE AND THEN PISSED ON BY EVERY SINGLE PERSON AND THEN SOME OTHER STUFF THAT WOULD OFFEND YOU.&lt;br /&gt;
&lt;br /&gt;
Anyway, I do some scripting and stuff but not many people know of me. &amp;lt;.&amp;lt; &amp;gt;.&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==gaben==&lt;br /&gt;
&lt;br /&gt;
hello pm, yams.&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2323</id>
		<title>User:Hawk552</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2323"/>
		<updated>2006-01-19T09:42:04Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am totally awesome and stuff.&lt;br /&gt;
&lt;br /&gt;
That is all.&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2322</id>
		<title>User:Hawk552</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:Hawk552&amp;diff=2322"/>
		<updated>2006-01-19T09:41:50Z</updated>

		<summary type="html">&lt;p&gt;Hawk552: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am totally awesome and stuff.&lt;br /&gt;
&lt;br /&gt;
That is all.&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.amxmodx.org/forums/images/avatars/43839912643c2dec39a0f3.png]]&lt;/div&gt;</summary>
		<author><name>Hawk552</name></author>
		
	</entry>
</feed>