<?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=C0ldfyr3</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=C0ldfyr3"/>
	<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/Special:Contributions/C0ldfyr3"/>
	<updated>2026-05-09T15:53:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.6</generator>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Porting_to_Orange_Box&amp;diff=7808</id>
		<title>Porting to Orange Box</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Porting_to_Orange_Box&amp;diff=7808"/>
		<updated>2010-08-30T19:33:15Z</updated>

		<summary type="html">&lt;p&gt;C0ldfyr3: RegisterConCommandBase is a bool return type, added return to the function it calls...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Porting Valve Server Plugins or Metamod:Source plugins to Orange Box is not very difficult.  This article explores some of the changes and how to simplify them.&lt;br /&gt;
&lt;br /&gt;
Users of Metamod:Source should upgrade to Metamod:Source 1.7 and use the 1.6+ API (see [[MM:S API Differences]]).&lt;br /&gt;
&lt;br /&gt;
This document will assume a single preprocessor macro, &amp;lt;tt&amp;gt;ORANGEBOX_BUILD&amp;lt;/tt&amp;gt;, determines that an Orange Box build is being made.&lt;br /&gt;
&lt;br /&gt;
=Command Callbacks=&lt;br /&gt;
In the original Half-Life 2 engine, all commands used &amp;lt;tt&amp;gt;IVEngineServer::Cmd_Arg*&amp;lt;/tt&amp;gt; in order to receive information about the current command's tokenization.  However, these functions have been completely removed, and a new re-entrant version is in place.&lt;br /&gt;
&lt;br /&gt;
Each of the following callbacks:&lt;br /&gt;
&amp;lt;cpp&amp;gt;void IServerGameClients::ClientCommand(edict_t *pEdict);&lt;br /&gt;
typedef void (*FnCommandCallback)(void);&amp;lt;/cpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is now:&lt;br /&gt;
&amp;lt;cpp&amp;gt;void IServerGameClients::ClientCommand(edict_t *pEdict, const CCommand &amp;amp;args);&lt;br /&gt;
typedef void (*FnCommandCallback)(const CCommand &amp;amp;args);&amp;lt;/cpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definitions for &amp;lt;tt&amp;gt;CCommand&amp;lt;/tt&amp;gt; can be found in &amp;lt;tt&amp;gt;convar.h&amp;lt;/tt&amp;gt;.  A simple way to work around this change is to use wrapper functions.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cpp&amp;gt;&lt;br /&gt;
#if defined ORANGEBOX_BUILD&lt;br /&gt;
SH_DECL_HOOK2_void(IServerGameClients, ClientCommand, SH_NOATTRIB, 0, edict_t *, const CCommand &amp;amp;);&lt;br /&gt;
#else&lt;br /&gt;
SH_DECL_HOOK1_void(IServerGameClients, ClientCommand, SH_NOATTRIB, 0, edict_t *);&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if !defined ORANGEBOX_BUILD&lt;br /&gt;
class CCommand&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
	const char *ArgS()&lt;br /&gt;
	{&lt;br /&gt;
		return engine-&amp;gt;Cmd_Args();&lt;br /&gt;
	}&lt;br /&gt;
	int ArgC()&lt;br /&gt;
	{&lt;br /&gt;
		return engine-&amp;gt;Cmd_Argc();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	const char *Arg(int index)&lt;br /&gt;
	{&lt;br /&gt;
		return engine-&amp;gt;Cmd_Argv(index);&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if defined ORANGEBOX_BUILD&lt;br /&gt;
void Hook_ClientCommand(edict_t *pEntity, const CCommand &amp;amp;args)&lt;br /&gt;
#else&lt;br /&gt;
void Hook_ClientCommand(edict_t *pEntity)&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
#if !defined ORANGEBOX_BUILD&lt;br /&gt;
	CCommand args;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
	const char *cmd = args.Arg(0);&lt;br /&gt;
	/* ... stuff ... */&lt;br /&gt;
}&amp;lt;/cpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ConCommandBaseMgr Removed=&lt;br /&gt;
ConCommandBaseMgr has been removed.  That means the normal call, &amp;lt;tt&amp;gt;ConCommandBaseMgr::OneTimeInit()&amp;lt;/tt&amp;gt;, is no longer applicable.  There are two other solutions to registering your ConVars and ConCommands:&lt;br /&gt;
*Use &amp;lt;tt&amp;gt;ConVar_Register&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
*Use &amp;lt;tt&amp;gt;META_REGCVAR&amp;lt;/tt&amp;gt; on each pointer (it will work on any ConCommandBase *) pointer, or &amp;lt;tt&amp;gt;META_REGCMD&amp;lt;/tt&amp;gt; on each individual command name.&lt;br /&gt;
&lt;br /&gt;
It is highly recommended that Metamod:Source plugins go through Metamod:Source's ConCommandBase registration process.  This will make your plugin more compatible across engines and other plugins.  Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cpp&amp;gt;&lt;br /&gt;
class BaseAccessor : public IConCommandBaseAccessor&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
	bool RegisterConCommandBase(ConCommandBase *pVar)&lt;br /&gt;
	{&lt;br /&gt;
		return META_REGCVAR(pVar);&lt;br /&gt;
	}&lt;br /&gt;
} s_BaseAccessor;&lt;br /&gt;
&lt;br /&gt;
void SetupEverything()&lt;br /&gt;
{&lt;br /&gt;
#if defined ORANGEBOX_BUILD&lt;br /&gt;
	/* NOTE! g_pCvar must be set to a valid ICvar instance first. */&lt;br /&gt;
	ConVar_Register(0, &amp;amp;s_BaseAccessor);&lt;br /&gt;
#else&lt;br /&gt;
	ConCommandBaseMgr::OneTimeInit(&amp;amp;s_BaseAccessor);&lt;br /&gt;
#endif&lt;br /&gt;
}&amp;lt;/cpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that Valve Server Plugins can pass &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt; to use the default accessor.  '''Metamod:Source plugins should not do this.'''  Otherwise, Metamod:Source will not be able to keep track of the ConCommandBase allocations per-plugin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Renamings/Removals=&lt;br /&gt;
*&amp;lt;tt&amp;gt;VENGINE_CVAR_INTERFACE_VERSION&amp;lt;/tt&amp;gt; was renamed to &amp;lt;tt&amp;gt;CVAR_INTERFACE_VERSION&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;FCVAR_PLUGIN&amp;lt;/tt&amp;gt; was removed.  It is probably no longer needed with the advent of &amp;lt;tt&amp;gt;ConVar_Unregister&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Sample Port=&lt;br /&gt;
An example of a plugin that fully supports both versions is [http://www.bailopan.net/stripper Stripper:Source] ([http://svn.alliedmods.net/viewvc.cgi/sourcemm/stripper/?root=dvander SVN here]).  &lt;br /&gt;
&lt;br /&gt;
Note that this plugin uses the new &amp;quot;extended loading&amp;quot; API available in Metamod:Source 1.6.0.  The thin-loader library runs on any Metamod:Source version, and will correctly pick one of 6 child plugins to load.  This allows Stripper:Source to be distributed as one package with no configuration hassle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Metamod:Source Development]]&lt;/div&gt;</summary>
		<author><name>C0ldfyr3</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:C0ldfyr3&amp;diff=2528</id>
		<title>User:C0ldfyr3</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:C0ldfyr3&amp;diff=2528"/>
		<updated>2006-01-31T13:10:13Z</updated>

		<summary type="html">&lt;p&gt;C0ldfyr3: /* Latest Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About c0ldfyr3 ==&lt;br /&gt;
Regular joe, hobbiest at the best of times.&lt;br /&gt;
&lt;br /&gt;
== Current Projects ==&lt;br /&gt;
*[http://www.c0ld.net/GoreMod/ GoreMod]&lt;br /&gt;
*[http://www.c0ld.net ProjectX]&lt;br /&gt;
*[http://www.c0ld.net/SprayMod SprayMod]&lt;br /&gt;
&lt;br /&gt;
== Accomplishments ==&lt;br /&gt;
* www.EliteProdigy.com 2,000,000 uniques in two years.&lt;br /&gt;
* First program I ever wrote was downloaded over 500,000 times from my server alone.&lt;br /&gt;
* Was the king of Yahoo! for the entire duration.&lt;br /&gt;
&lt;br /&gt;
== Latest Links ==&lt;br /&gt;
*[http://www.LobItInThereBoss.com LobItInThereBoss.com - A place for me and my friends.]&lt;br /&gt;
&lt;br /&gt;
== Home Page ==&lt;br /&gt;
*[http://www.c0ld.net c0ld.net]&lt;/div&gt;</summary>
		<author><name>C0ldfyr3</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:C0ldfyr3&amp;diff=2527</id>
		<title>User:C0ldfyr3</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:C0ldfyr3&amp;diff=2527"/>
		<updated>2006-01-31T13:09:29Z</updated>

		<summary type="html">&lt;p&gt;C0ldfyr3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About c0ldfyr3 ==&lt;br /&gt;
Regular joe, hobbiest at the best of times.&lt;br /&gt;
&lt;br /&gt;
== Current Projects ==&lt;br /&gt;
*[http://www.c0ld.net/GoreMod/ GoreMod]&lt;br /&gt;
*[http://www.c0ld.net ProjectX]&lt;br /&gt;
*[http://www.c0ld.net/SprayMod SprayMod]&lt;br /&gt;
&lt;br /&gt;
== Accomplishments ==&lt;br /&gt;
* www.EliteProdigy.com 2,000,000 uniques in two years.&lt;br /&gt;
* First program I ever wrote was downloaded over 500,000 times from my server alone.&lt;br /&gt;
* Was the king of Yahoo! for the entire duration.&lt;br /&gt;
&lt;br /&gt;
== Latest Links ==&lt;br /&gt;
*NONE&lt;br /&gt;
&lt;br /&gt;
== Home Page ==&lt;br /&gt;
*[http://www.c0ld.net c0ld.net]&lt;/div&gt;</summary>
		<author><name>C0ldfyr3</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=User:C0ldfyr3&amp;diff=2526</id>
		<title>User:C0ldfyr3</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=User:C0ldfyr3&amp;diff=2526"/>
		<updated>2006-01-31T13:08:10Z</updated>

		<summary type="html">&lt;p&gt;C0ldfyr3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About c0ldfyr3 ==&lt;br /&gt;
Regular joe, hobbiest at the best of times.&lt;br /&gt;
&lt;br /&gt;
== Current Projects ==&lt;br /&gt;
*[http://www.c0ld.net/GoreMod/ GoreMod]&lt;br /&gt;
*[http://www.c0ld.net ProjectX]&lt;br /&gt;
*[http://www.c0ld.net/SprayMod SprayMod]&lt;br /&gt;
&lt;br /&gt;
== Latest Links ==&lt;br /&gt;
*NONE&lt;br /&gt;
&lt;br /&gt;
== Home Page ==&lt;br /&gt;
*[http://www.c0ld.net c0ld.net]&lt;/div&gt;</summary>
		<author><name>C0ldfyr3</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Cross_Compiling_Plugins_(Metamod:Source)&amp;diff=2457</id>
		<title>Cross Compiling Plugins (Metamod:Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Cross_Compiling_Plugins_(Metamod:Source)&amp;diff=2457"/>
		<updated>2006-01-23T23:12:29Z</updated>

		<summary type="html">&lt;p&gt;C0ldfyr3: /* Installing Cygwin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The aim of this tutorial is to allow Windows Half-Life 2 plugin coders to compile their plugins on the same machine as the windows binaries.&lt;br /&gt;
The binaries are compatible with 99% of all linux servers and do not suffer from bulky file sizes.&lt;br /&gt;
One of the main benefits to using this method of compiling is that your code can be left wherever you currently have it so that compile time reluctance is removed and coders can concentrate on coding the plugins instead of &amp;quot;How on earth am I to compile this for linux ???&amp;quot;.&lt;br /&gt;
All you need to get started are the base Cygwin installation, the CrossTool.tar.gz file and the makefile. Links to the latter two are included at the end of the tutorial.&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes the following.&lt;br /&gt;
&amp;lt;OL&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;You currently have a plugin which you can compile on windows using MSVC.&lt;br /&gt;
&amp;lt;LI&amp;gt;You have a copy of the HL2SDK Source Code installed on your hard drive.&lt;br /&gt;
&amp;lt;LI&amp;gt;You have a copy of the [http://www.sourcemm.net Metamod:Source] source code on your hard drive.&lt;br /&gt;
&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although the cross compiler will allow for compiling of Valves standard plugins, I do not include a Makefile or instructions on how to successfuly occomplish this.&lt;br /&gt;
&lt;br /&gt;
==Installing Cygwin==&lt;br /&gt;
First, download CygWin from [http://www.cygwin.com www.CygWin.com] by clicking on &amp;quot;Install Now&amp;quot; located in the middle of the page.&lt;br /&gt;
&lt;br /&gt;
Once the download finishes, run &amp;lt;i&amp;gt;setup.exe&amp;lt;/i&amp;gt;&lt;br /&gt;
Click 'Next' on the introduction screen.&lt;br /&gt;
&lt;br /&gt;
On the second page, select 'Install from Internet'.&amp;lt;br&amp;gt;&lt;br /&gt;
The following page is all user preferances, except the 'Default Text File Type' which is recommended you use 'Unix / binary'.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After clicking next, you are prompted for a CygWin temporary folder, any folder will suffice, the default is usually the better option.&amp;lt;br&amp;gt;&lt;br /&gt;
The next screen's options are firewall/proxy settings, these are specific to the Computer/Network you are currently using.&amp;lt;br&amp;gt;&lt;br /&gt;
Once you click next on the previous screen, the installer will download a list of mirror sites containing the CygWin binaries. Select one which you think is closest to you for a faster installation time.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Finaly, you are presented with a 'Select Packages' screen.&amp;lt;br&amp;gt;&lt;br /&gt;
I *think* it should work fine without all of the dev packages.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If anyone has gotten this to work by selecting less packages, please let me know so I can remove them from this list.&amp;lt;br&amp;gt;&lt;br /&gt;
Items marked in bold are extremely important.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*binutils&lt;br /&gt;
*&amp;lt;b&amp;gt;bzip2&amp;lt;/b&amp;gt;&lt;br /&gt;
*cygutils&lt;br /&gt;
*gcc&lt;br /&gt;
*&amp;lt;b&amp;gt;glib&amp;lt;/b&amp;gt;&lt;br /&gt;
*&amp;lt;b&amp;gt;gzip&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*libiconv&lt;br /&gt;
*&amp;lt;b&amp;gt;make&amp;lt;/b&amp;gt;&lt;br /&gt;
*&amp;lt;b&amp;gt;zlib&amp;lt;/b&amp;gt;&lt;br /&gt;
*&amp;lt;b&amp;gt;grep&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click next and it should install the packages to the target path you specified.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing CrossTool==&lt;br /&gt;
Download the CrossCompiler from one of the mirrors below to the root cygwin folder &amp;lt;i&amp;gt;(c:\cygwin)&amp;lt;/i&amp;gt;.&lt;br /&gt;
If it gets renamed to 'crosstool_gcc-3.4.1.tar.tar' please rename it to 'crosstool_gcc-3.4.1.tar.gz'.&lt;br /&gt;
Download Mirrors for 'crosstool_gcc.tar.gz'&lt;br /&gt;
*[http://files.filefront.com/crosstool_gcc_341targz/;4650645;;/fileinfo.html FileFront]&lt;br /&gt;
*[http://rapidshare.de/files/11588086/crosstool_gcc-3.4.1.tar.gz.html RapidShare.de]&lt;br /&gt;
*[http://downloads.punkassfraggers.com/redirect.php?dlid=1224 PunkAssFraggers.com]&lt;br /&gt;
&lt;br /&gt;
This is the most important part of the entire tutorial.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Do not try and extract 'crosstool_gcc-3.4.1.tar.gz' using any Windows Archiving utility !&amp;lt;/b&amp;gt;&lt;br /&gt;
They do not extract the files correctly and if you don't get errors during the extraction, you will while trying to compile !&lt;br /&gt;
Once the download is complete, run cygwin by navigating to the cygwin root folder, and double clicking on &amp;lt;i&amp;gt;'cygwin.bat'&amp;lt;/i&amp;gt;.&lt;br /&gt;
Type the following two commands in order into the cygwin bash shell followed by the enter key:&lt;br /&gt;
&lt;br /&gt;
  cd /&lt;br /&gt;
  tar -xzf crosstool_gcc-3.4.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
This will start extracting the tar file to the '&amp;lt;cygroot&amp;gt;/opt' folder on your hard drive.&lt;br /&gt;
And thats it, now you have the pre-compiled GCC 3.4.1 [http://www.lduke.com (Thanks LDuke)] installed on your computer you can compile server plugins for both regular and SourceMM flavours with ease and compatibility with Valves GCC 3.4.1 requirements.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling Plugins==&lt;br /&gt;
Download the Makefile by clicking on [http://www.c0ld.net/Tutorials/CrossTool/Makefile this link.]&lt;br /&gt;
&lt;br /&gt;
Save it to your project's root source folder and open it with a text editor like notepad.&amp;lt;br&amp;gt;&lt;br /&gt;
Inside the Makfile I have shown examples on how your paths are translated into unix/cygwin hybrid paths.&amp;lt;br&amp;gt;&lt;br /&gt;
So, before trying any compling just yet, you need to insert the paths for the following.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;HL2SDK&amp;lt;/b&amp;gt;: The path to where your HL2SDK files are located.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;SMM_ROOT&amp;lt;/b&amp;gt;: The path to where you extracted the contents of the [http://www.sourcemm.net/ SourceMM package]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;SRCDS&amp;lt;/b&amp;gt;: The path to the linux SRCDS binaries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;PLUGIN&amp;lt;/b&amp;gt;: The plugin filename.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the convenience of those who dont have access to a linux srcds installation, you can grab the files required at one of the mirrors below.&amp;lt;br&amp;gt;&lt;br /&gt;
Extract them to a new folder which will be your SRCDS path in the Makefile.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;The bin folder must be inside the srcds folder for maximum compatibility. For example, your files end up being something like this 'C:\MyFiles\srcds_l\bin\vstdlib_i486.so'.&lt;br /&gt;
&lt;br /&gt;
So, in your Makefile, SRCDS would be '/cygdrive/c/MyFiles/srcds_l'&lt;br /&gt;
&lt;br /&gt;
Download Mirrors for 'srcds_l_binaries.zip'&lt;br /&gt;
*[http://files.filefront.com/srcds_l_binarieszip/;4651213;;/fileinfo.html FileFront Mirror]&lt;br /&gt;
*[http://rapidshare.de/files/11597264/srcds_l_binaries.zip.html RapidShare.de Mirror]&lt;br /&gt;
Now you're ready to try compiling.&lt;br /&gt;
Back to the cygwin bash window, and we're now going to have to navigate to your code's location.&lt;br /&gt;
An exmaple path could be 'C:\MyCode\MyPlugin\' so in the bash shell we type the following:&lt;br /&gt;
&lt;br /&gt;
  cd /cygdrive/c/MyCode/MyPlugin/&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
If all your paths are set correctly, it should start compiling the plugin.&lt;br /&gt;
Ignore all the warnings in the HL2SDK, they are harmless.&lt;br /&gt;
What you should be looking out for are errors and warnings located inside your own code.&lt;br /&gt;
Unfortunately I cannot compile plugins for you, but there is a forum dedicated to helping you with hl2sdk coding problems.&lt;br /&gt;
&lt;br /&gt;
[http://www.sourcemod.net/forums/viewforum.php?f=24 Click here to visit the forum]&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
*Tutorial by: Jason &amp;quot;c0ldfyr3&amp;quot; Croghan&lt;br /&gt;
*Cross Compiler compiled by: L. Duke&lt;br /&gt;
*Makefile originally written by: David &amp;quot;BAILOPAN&amp;quot; Anderson&lt;br /&gt;
*Converted to Wiki by: James &amp;quot;sslice&amp;quot; Gray&lt;br /&gt;
&lt;br /&gt;
Original Location: http://www.c0ld.net/index.php?inc=CrossTool&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation (SourceMM)]]&lt;/div&gt;</summary>
		<author><name>C0ldfyr3</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Cross_Compiling_Plugins_(Metamod:Source)&amp;diff=2456</id>
		<title>Cross Compiling Plugins (Metamod:Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Cross_Compiling_Plugins_(Metamod:Source)&amp;diff=2456"/>
		<updated>2006-01-23T23:11:02Z</updated>

		<summary type="html">&lt;p&gt;C0ldfyr3: /* Compiling Plugins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The aim of this tutorial is to allow Windows Half-Life 2 plugin coders to compile their plugins on the same machine as the windows binaries.&lt;br /&gt;
The binaries are compatible with 99% of all linux servers and do not suffer from bulky file sizes.&lt;br /&gt;
One of the main benefits to using this method of compiling is that your code can be left wherever you currently have it so that compile time reluctance is removed and coders can concentrate on coding the plugins instead of &amp;quot;How on earth am I to compile this for linux ???&amp;quot;.&lt;br /&gt;
All you need to get started are the base Cygwin installation, the CrossTool.tar.gz file and the makefile. Links to the latter two are included at the end of the tutorial.&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes the following.&lt;br /&gt;
&amp;lt;OL&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;You currently have a plugin which you can compile on windows using MSVC.&lt;br /&gt;
&amp;lt;LI&amp;gt;You have a copy of the HL2SDK Source Code installed on your hard drive.&lt;br /&gt;
&amp;lt;LI&amp;gt;You have a copy of the [http://www.sourcemm.net Metamod:Source] source code on your hard drive.&lt;br /&gt;
&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although the cross compiler will allow for compiling of Valves standard plugins, I do not include a Makefile or instructions on how to successfuly occomplish this.&lt;br /&gt;
&lt;br /&gt;
==Installing Cygwin==&lt;br /&gt;
First, download CygWin from [http://www.cygwin.com www.CygWin.com] by clicking on &amp;quot;Install Now&amp;quot; located in the middle of the page.&lt;br /&gt;
&lt;br /&gt;
Once the download finishes, run &amp;lt;i&amp;gt;setup.exe&amp;lt;/i&amp;gt;&lt;br /&gt;
Click 'Next' on the introduction screen.&lt;br /&gt;
&lt;br /&gt;
On the second page, select 'Install from Internet'.&lt;br /&gt;
The following page is all user preferances, except the 'Default Text File Type' which is recommended you use 'Unix / binary'.&lt;br /&gt;
After clicking next, you are prompted for a CygWin temporary folder, any folder will suffice, the default is usually the better option.&lt;br /&gt;
The next screen's options are firewall/proxy settings, these are specific to the Computer/Network you are currently using.&lt;br /&gt;
Once you click next on the previous screen, the installer will download a list of mirror sites containing the CygWin binaries. Select one which you think is closest to you for a faster installation time.&lt;br /&gt;
Finaly, you are presented with a 'Select Packages' screen.&lt;br /&gt;
I *think* it should work fine without all of the dev packages.&lt;br /&gt;
&lt;br /&gt;
If anyone has gotten this to work by selecting less packages, please let me know so I can remove them from this list.&lt;br /&gt;
Items marked in bold are extremely important.&lt;br /&gt;
&lt;br /&gt;
*binutils&lt;br /&gt;
*&amp;lt;b&amp;gt;bzip2&amp;lt;/b&amp;gt;&lt;br /&gt;
*cygutils&lt;br /&gt;
*gcc&lt;br /&gt;
*&amp;lt;b&amp;gt;glib&amp;lt;/b&amp;gt;&lt;br /&gt;
*&amp;lt;b&amp;gt;gzip&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*libiconv&lt;br /&gt;
*&amp;lt;b&amp;gt;make&amp;lt;/b&amp;gt;&lt;br /&gt;
*&amp;lt;b&amp;gt;zlib&amp;lt;/b&amp;gt;&lt;br /&gt;
*&amp;lt;b&amp;gt;grep&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click next and it should install the packages to the target path you specified.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing CrossTool==&lt;br /&gt;
Download the CrossCompiler from one of the mirrors below to the root cygwin folder &amp;lt;i&amp;gt;(c:\cygwin)&amp;lt;/i&amp;gt;.&lt;br /&gt;
If it gets renamed to 'crosstool_gcc-3.4.1.tar.tar' please rename it to 'crosstool_gcc-3.4.1.tar.gz'.&lt;br /&gt;
Download Mirrors for 'crosstool_gcc.tar.gz'&lt;br /&gt;
*[http://files.filefront.com/crosstool_gcc_341targz/;4650645;;/fileinfo.html FileFront]&lt;br /&gt;
*[http://rapidshare.de/files/11588086/crosstool_gcc-3.4.1.tar.gz.html RapidShare.de]&lt;br /&gt;
*[http://downloads.punkassfraggers.com/redirect.php?dlid=1224 PunkAssFraggers.com]&lt;br /&gt;
&lt;br /&gt;
This is the most important part of the entire tutorial.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Do not try and extract 'crosstool_gcc-3.4.1.tar.gz' using any Windows Archiving utility !&amp;lt;/b&amp;gt;&lt;br /&gt;
They do not extract the files correctly and if you don't get errors during the extraction, you will while trying to compile !&lt;br /&gt;
Once the download is complete, run cygwin by navigating to the cygwin root folder, and double clicking on &amp;lt;i&amp;gt;'cygwin.bat'&amp;lt;/i&amp;gt;.&lt;br /&gt;
Type the following two commands in order into the cygwin bash shell followed by the enter key:&lt;br /&gt;
&lt;br /&gt;
  cd /&lt;br /&gt;
  tar -xzf crosstool_gcc-3.4.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
This will start extracting the tar file to the '&amp;lt;cygroot&amp;gt;/opt' folder on your hard drive.&lt;br /&gt;
And thats it, now you have the pre-compiled GCC 3.4.1 [http://www.lduke.com (Thanks LDuke)] installed on your computer you can compile server plugins for both regular and SourceMM flavours with ease and compatibility with Valves GCC 3.4.1 requirements.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling Plugins==&lt;br /&gt;
Download the Makefile by clicking on [http://www.c0ld.net/Tutorials/CrossTool/Makefile this link.]&lt;br /&gt;
&lt;br /&gt;
Save it to your project's root source folder and open it with a text editor like notepad.&amp;lt;br&amp;gt;&lt;br /&gt;
Inside the Makfile I have shown examples on how your paths are translated into unix/cygwin hybrid paths.&amp;lt;br&amp;gt;&lt;br /&gt;
So, before trying any compling just yet, you need to insert the paths for the following.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;HL2SDK&amp;lt;/b&amp;gt;: The path to where your HL2SDK files are located.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;SMM_ROOT&amp;lt;/b&amp;gt;: The path to where you extracted the contents of the [http://www.sourcemm.net/ SourceMM package]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;SRCDS&amp;lt;/b&amp;gt;: The path to the linux SRCDS binaries.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;PLUGIN&amp;lt;/b&amp;gt;: The plugin filename.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the convenience of those who dont have access to a linux srcds installation, you can grab the files required at one of the mirrors below.&amp;lt;br&amp;gt;&lt;br /&gt;
Extract them to a new folder which will be your SRCDS path in the Makefile.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;The bin folder must be inside the srcds folder for maximum compatibility. For example, your files end up being something like this 'C:\MyFiles\srcds_l\bin\vstdlib_i486.so'.&lt;br /&gt;
&lt;br /&gt;
So, in your Makefile, SRCDS would be '/cygdrive/c/MyFiles/srcds_l'&lt;br /&gt;
&lt;br /&gt;
Download Mirrors for 'srcds_l_binaries.zip'&lt;br /&gt;
*[http://files.filefront.com/srcds_l_binarieszip/;4651213;;/fileinfo.html FileFront Mirror]&lt;br /&gt;
*[http://rapidshare.de/files/11597264/srcds_l_binaries.zip.html RapidShare.de Mirror]&lt;br /&gt;
Now you're ready to try compiling.&lt;br /&gt;
Back to the cygwin bash window, and we're now going to have to navigate to your code's location.&lt;br /&gt;
An exmaple path could be 'C:\MyCode\MyPlugin\' so in the bash shell we type the following:&lt;br /&gt;
&lt;br /&gt;
  cd /cygdrive/c/MyCode/MyPlugin/&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
If all your paths are set correctly, it should start compiling the plugin.&lt;br /&gt;
Ignore all the warnings in the HL2SDK, they are harmless.&lt;br /&gt;
What you should be looking out for are errors and warnings located inside your own code.&lt;br /&gt;
Unfortunately I cannot compile plugins for you, but there is a forum dedicated to helping you with hl2sdk coding problems.&lt;br /&gt;
&lt;br /&gt;
[http://www.sourcemod.net/forums/viewforum.php?f=24 Click here to visit the forum]&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
*Tutorial by: Jason &amp;quot;c0ldfyr3&amp;quot; Croghan&lt;br /&gt;
*Cross Compiler compiled by: L. Duke&lt;br /&gt;
*Makefile originally written by: David &amp;quot;BAILOPAN&amp;quot; Anderson&lt;br /&gt;
*Converted to Wiki by: James &amp;quot;sslice&amp;quot; Gray&lt;br /&gt;
&lt;br /&gt;
Original Location: http://www.c0ld.net/index.php?inc=CrossTool&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation (SourceMM)]]&lt;/div&gt;</summary>
		<author><name>C0ldfyr3</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Gabe_Newell&amp;diff=2046</id>
		<title>Gabe Newell</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Gabe_Newell&amp;diff=2046"/>
		<updated>2006-01-15T20:42:22Z</updated>

		<summary type="html">&lt;p&gt;C0ldfyr3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Gaben|C’mon, people, you can’t show the player a really big bomb and not let them blow it up.|Half-Life 1}}&lt;br /&gt;
&lt;br /&gt;
{{Gaben|Yes.|turning into cows when eating grass}}&lt;br /&gt;
&lt;br /&gt;
{{Gaben|this extents the original player_death by a new fields|Counter-Strike:Source modevents.res}}&lt;/div&gt;</summary>
		<author><name>C0ldfyr3</name></author>
		
	</entry>
</feed>