<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[SourceOP - Coding]]></title>
		<link>http://forums.sourceop.com/</link>
		<description><![CDATA[SourceOP - http://forums.sourceop.com]]></description>
		<pubDate>Fri, 17 Apr 2026 10:28:42 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Radio crashes server.]]></title>
			<link>http://forums.sourceop.com/Radio-crashes-server-thread</link>
			<pubDate>Thu, 13 Dec 2012 05:11:45 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=25548">Wiseguy</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/Radio-crashes-server-thread</guid>
			<description><![CDATA[I am currently running SourceOp in hl2dm, when I place a radio the server crashes. Any ideas?<br />
<br />
<br />
Error log:<br />
<br />
[SPOILER=Errors from console.]<span style="color: #FFFFFF;" class="mycode_color"><span style="font-family: Lucida Console;" class="mycode_font">L 12/13/2012 - 00:03:17: "hl2dm.Opiophile&lt;2&gt;&lt;STEAM_0:0:39835951&gt;&lt;&gt;" connected, address </span></span>"98.199.206.54:27005"<br />
Client "hl2dm.Opiophile" connected (98.199.206.54:27005).<br />
L 12/13/2012 - 00:03:17: "hl2dm.Opiophile&lt;2&gt;&lt;STEAM_0:0:39835951&gt;&lt;&gt;" STEAM USERID validated<br />
L 12/13/2012 - 00:03:20: "hl2dm.Opiophile&lt;2&gt;&lt;STEAM_0:0:39835951&gt;&lt;&gt;" entered the game<br />
L 12/13/2012 - 00:03:20: [SOURCEOP] "hl2dm.Opiophile&lt;2&gt;&lt;STEAM_0:0:39835951&gt;&lt;Unassigned&gt;" loaded credits "0" new player<br />
scripts/npc_sounds_turret.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_scanner.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_rollermine.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_poisonzombie.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_metropolice.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_combinecamera.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_manhack.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_ichthyosaur.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_blackheadcrab.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_fastheadcrab.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_headcrab.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_fastzombie.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_birds.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_gunship.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_dropship.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_barnacle.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_attackheli.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_antlionguard.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_antlion.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_env_headcrabcanister.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_combine_mine.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_sniper.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_stalker.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_gman.txt<br />
PARTICLE SYSTEM: Unable to load manifest file 'particles/particles_manifest.txt'<br />
[SOURCEOP] SourceOP loading...[/SPOILER]]]></description>
			<content:encoded><![CDATA[I am currently running SourceOp in hl2dm, when I place a radio the server crashes. Any ideas?<br />
<br />
<br />
Error log:<br />
<br />
[SPOILER=Errors from console.]<span style="color: #FFFFFF;" class="mycode_color"><span style="font-family: Lucida Console;" class="mycode_font">L 12/13/2012 - 00:03:17: "hl2dm.Opiophile&lt;2&gt;&lt;STEAM_0:0:39835951&gt;&lt;&gt;" connected, address </span></span>"98.199.206.54:27005"<br />
Client "hl2dm.Opiophile" connected (98.199.206.54:27005).<br />
L 12/13/2012 - 00:03:17: "hl2dm.Opiophile&lt;2&gt;&lt;STEAM_0:0:39835951&gt;&lt;&gt;" STEAM USERID validated<br />
L 12/13/2012 - 00:03:20: "hl2dm.Opiophile&lt;2&gt;&lt;STEAM_0:0:39835951&gt;&lt;&gt;" entered the game<br />
L 12/13/2012 - 00:03:20: [SOURCEOP] "hl2dm.Opiophile&lt;2&gt;&lt;STEAM_0:0:39835951&gt;&lt;Unassigned&gt;" loaded credits "0" new player<br />
scripts/npc_sounds_turret.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_scanner.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_rollermine.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_poisonzombie.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_metropolice.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_combinecamera.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_manhack.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_ichthyosaur.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_blackheadcrab.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_fastheadcrab.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_headcrab.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_fastzombie.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_birds.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_gunship.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_dropship.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_barnacle.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_attackheli.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_antlionguard.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_antlion.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_env_headcrabcanister.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_combine_mine.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_sniper.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_stalker.txt<br />
CSoundEmitterSystem::AddSoundsFromFile: No such file scripts/npc_sounds_gman.txt<br />
PARTICLE SYSTEM: Unable to load manifest file 'particles/particles_manifest.txt'<br />
[SOURCEOP] SourceOP loading...[/SPOILER]]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Plz fix DAF4]]></title>
			<link>http://forums.sourceop.com/Plz-fix-DAF4-thread</link>
			<pubDate>Sun, 28 Oct 2012 00:31:06 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=14814">tommytnt</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/Plz-fix-DAF4-thread</guid>
			<description><![CDATA[DoS Attack Fixer Linux for HL2DM doesn't work after the last update.]]></description>
			<content:encoded><![CDATA[DoS Attack Fixer Linux for HL2DM doesn't work after the last update.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[compiling source op]]></title>
			<link>http://forums.sourceop.com/compiling-source-op-thread</link>
			<pubDate>Sat, 12 May 2012 21:07:03 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=444">lastpaepae</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/compiling-source-op-thread</guid>
			<description><![CDATA[hey guys im trying to compile source op with VC 2010 <br />
<br />
and i get this error X72 times with allmost all the .h files how do i fix this?<br />
and i checked thay are there<br />
<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Error&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;error C1083: Cannot open include file: 'utlvector.h': No such file or directory</code></div></div>]]></description>
			<content:encoded><![CDATA[hey guys im trying to compile source op with VC 2010 <br />
<br />
and i get this error X72 times with allmost all the .h files how do i fix this?<br />
and i checked thay are there<br />
<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Error&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;error C1083: Cannot open include file: 'utlvector.h': No such file or directory</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SourceOP Code Released]]></title>
			<link>http://forums.sourceop.com/SourceOP-Code-Released-thread</link>
			<pubDate>Thu, 28 Jul 2011 23:32:05 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=3">Drunken F00l</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/SourceOP-Code-Released-thread</guid>
			<description><![CDATA[You can view it here:<br />
<a href="http://code.google.com/p/sourceop/source/browse/#hg%2Ftrunk" target="_blank" rel="noopener" class="mycode_url">http://code.google.com/p/sourceop/source...hg%2Ftrunk</a><br />
<br />
Code for other projects coming soon.<br />
<br />
Sorry that some of it is a mess. It's a fairly old project (2004/2005) and it hasn't really ever been cleaned up. There are gems spread all over, though.<ul class="mycode_list"><li>AdminOP.cpp and adminopplayer.cpp contain more code than they probably should.<br />
</li>
<li>bans.cpp contains all the code for loading and dealing with MySQL bans.<br />
</li>
<li>CAOP* are the code files for the SourceOP entities. All entities created in Lua are handled by CAOPLuaNormal.cpp.<br />
</li>
<li>DFBaseent/Radio are old and I don't think compiled any more but I've included them anyways in case something useful is in there, but not likely.<br />
</li>
<li>gamerulesproxy.cpp is responsible for finding the game rules object and hooking/interacting with it.<br />
</li>
<li>isopgamesystem.cpp is similar to the SDK's IGameSystem.<br />
</li>
<li>l_class_* files are the implementation for various Lua classes and are exposed via a modified version of Lunar.<br />
</li>
<li>Other l* code files are libraries.<br />
</li>
<li>playerdatabase.cpp contains all the code for maintaining the MySQL player database.<br />
</li>
<li>plugin_mm.cpp allows for the plugin to be loaded with Metamod Source. The plugin can also be loaded as a VSP which is exposed in serverplugin_empty.cpp.<br />
</li>
<li>queuethread.h is a thread-safe template class that inherits Valve's CThread and provides a queue for handling items of any type. You provide the implementation for handling each item. Items can be added to the queue from any thread and are serviced/handled on their own thread.<br />
</li>
<li>reservedslots.cpp load and handle the MySQL reserved slots.<br />
</li>
<li>sopmysql is a thin wrapper around the raw MySQL library calls.<br />
</li>
<li>specialitems loads custom TF2 items from a MySQL database. These are applied in HookGiveNamedScriptItem in AdminOP.cpp.<br />
</li>
<li>sourceopadmin.cpp contains the server-side implementation for the remote admin client.<br />
</li>
<li>vfuncs.cpp is responsible for loading the DF_funcoffs.txt file and allowing calls to the virtual functions specified there. It also searches the data tables for offsets to various member variables and exposes functions to get/set them.</li>
</ul>
You can use this thread and subforum to ask questions, share things you found that were helpful, etc.]]></description>
			<content:encoded><![CDATA[You can view it here:<br />
<a href="http://code.google.com/p/sourceop/source/browse/#hg%2Ftrunk" target="_blank" rel="noopener" class="mycode_url">http://code.google.com/p/sourceop/source...hg%2Ftrunk</a><br />
<br />
Code for other projects coming soon.<br />
<br />
Sorry that some of it is a mess. It's a fairly old project (2004/2005) and it hasn't really ever been cleaned up. There are gems spread all over, though.<ul class="mycode_list"><li>AdminOP.cpp and adminopplayer.cpp contain more code than they probably should.<br />
</li>
<li>bans.cpp contains all the code for loading and dealing with MySQL bans.<br />
</li>
<li>CAOP* are the code files for the SourceOP entities. All entities created in Lua are handled by CAOPLuaNormal.cpp.<br />
</li>
<li>DFBaseent/Radio are old and I don't think compiled any more but I've included them anyways in case something useful is in there, but not likely.<br />
</li>
<li>gamerulesproxy.cpp is responsible for finding the game rules object and hooking/interacting with it.<br />
</li>
<li>isopgamesystem.cpp is similar to the SDK's IGameSystem.<br />
</li>
<li>l_class_* files are the implementation for various Lua classes and are exposed via a modified version of Lunar.<br />
</li>
<li>Other l* code files are libraries.<br />
</li>
<li>playerdatabase.cpp contains all the code for maintaining the MySQL player database.<br />
</li>
<li>plugin_mm.cpp allows for the plugin to be loaded with Metamod Source. The plugin can also be loaded as a VSP which is exposed in serverplugin_empty.cpp.<br />
</li>
<li>queuethread.h is a thread-safe template class that inherits Valve's CThread and provides a queue for handling items of any type. You provide the implementation for handling each item. Items can be added to the queue from any thread and are serviced/handled on their own thread.<br />
</li>
<li>reservedslots.cpp load and handle the MySQL reserved slots.<br />
</li>
<li>sopmysql is a thin wrapper around the raw MySQL library calls.<br />
</li>
<li>specialitems loads custom TF2 items from a MySQL database. These are applied in HookGiveNamedScriptItem in AdminOP.cpp.<br />
</li>
<li>sourceopadmin.cpp contains the server-side implementation for the remote admin client.<br />
</li>
<li>vfuncs.cpp is responsible for loading the DF_funcoffs.txt file and allowing calls to the virtual functions specified there. It also searches the data tables for offsets to various member variables and exposes functions to get/set them.</li>
</ul>
You can use this thread and subforum to ask questions, share things you found that were helpful, etc.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PHP to get steam id of players in server]]></title>
			<link>http://forums.sourceop.com/PHP-to-get-steam-id-of-players-in-server-thread</link>
			<pubDate>Fri, 08 Jul 2011 12:37:14 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=10443">dranzer</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/PHP-to-get-steam-id-of-players-in-server-thread</guid>
			<description><![CDATA[Hey, I'm a PHP programmer, and I'm trying to find a way to receive players steam id that are in a server, without rcon access.<br />
<br />
Can you help?<br />
<br />
Thanks, Guy]]></description>
			<content:encoded><![CDATA[Hey, I'm a PHP programmer, and I'm trying to find a way to receive players steam id that are in a server, without rcon access.<br />
<br />
Can you help?<br />
<br />
Thanks, Guy]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Adding wheels to entities]]></title>
			<link>http://forums.sourceop.com/Adding-wheels-to-entities-thread</link>
			<pubDate>Tue, 15 Feb 2011 07:53:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=3">Drunken F00l</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/Adding-wheels-to-entities-thread</guid>
			<description><![CDATA[I was recently asked how to add wheels to entities and also how to rotate the ones that align incorrectly. Below is the solution SourceOP uses:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>const char szTires[][64] = {"models/props_vehicles/tire001c_car.mdl",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"models/props_vehicles/apc_tire001.mdl",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"models/props_vehicles/tire001a_tractor.mdl",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"models/props_wasteland/wheel01a.mdl",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"models/props_wasteland/wheel02a.mdl"};<br />
<br />
...<br />
<br />
////MAKE WHEEL////<br />
CBaseEntity *pProp = NULL;<br />
pProp = CreateEntityByName( "prop_physics_multiplayer" );<br />
<br />
if(!pProp)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Spawn failure.&#92;n", pAdminOP.adminname));<br />
&nbsp;&nbsp;&nbsp;&nbsp;return PLUGIN_STOP;<br />
}<br />
<br />
QAngle angles;<br />
VectorAngles(tr.plane.normal, angles);<br />
<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"model", szTires[wheel] );<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"spawnflags", "256" );<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"physdamagescale", "0.1" );<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"ExplodeDamage", "0" );<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"ExplodeRadius", "0" );<br />
VFuncs::Spawn(pProp);<br />
VFuncs::Activate(pProp);<br />
VFuncs::SetModel( pProp, szTires[wheel] );<br />
//////////////////<br />
<br />
////GET SIZE////<br />
int i = modelinfo-&gt;GetModelIndex( szTires[wheel] );<br />
if ( i &lt; 0 )<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Wheel not precached.&#92;n", pAdminOP.adminname));<br />
&nbsp;&nbsp;&nbsp;&nbsp;return PLUGIN_STOP;<br />
}<br />
const model_t *mod = modelinfo-&gt;GetModel( i );<br />
if ( !mod )<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Wheel has no model_t. This is an engine error.&#92;n", pAdminOP.adminname));<br />
&nbsp;&nbsp;&nbsp;&nbsp;return PLUGIN_STOP;<br />
}<br />
modelinfo-&gt;GetModelBounds( mod, mins, maxs );<br />
VectorSubtract( maxs, mins, vecSize );<br />
////////////////<br />
<br />
if(wheel &lt; 3)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;VFuncs::Teleport(pProp, &amp;(tr.endpos + (tr.plane.normal * (vecSize.x/2))), &amp;angles, NULL );<br />
}<br />
else<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;matrix3x4_t&nbsp;&nbsp;&nbsp;&nbsp; m_rgflCoordinateFrame;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Vector vecorigin = tr.endpos + tr.plane.normal * (maxs.y - (mins.y + maxs.y));<br />
&nbsp;&nbsp;&nbsp;&nbsp;VFuncs::Teleport(pProp, &amp;vecorigin, &amp;angles, NULL );<br />
&nbsp;&nbsp;&nbsp;&nbsp;/////////////ROTATE WHEELS THAT FACE WRONG DIRECTION/////////<br />
&nbsp;&nbsp;&nbsp;&nbsp;const float rotationAngle = -90;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// calculate coordinate frame so that we don't have to use EntityToWorldTransform()<br />
&nbsp;&nbsp;&nbsp;&nbsp;AngleMatrix( angles, vecorigin, m_rgflCoordinateFrame );<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// compute rotation axis in entity local space<br />
&nbsp;&nbsp;&nbsp;&nbsp;// compute the transform as a matrix so we can concatenate it with the entity's current transform<br />
&nbsp;&nbsp;&nbsp;&nbsp;Vector rotationAxisLs = Vector(0,0,1);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// build a transform that rotates around that axis in local space by the angle<br />
&nbsp;&nbsp;&nbsp;&nbsp;// if there were an AxisAngleMatrix() routine we could use that directly, but there isn't <br />
&nbsp;&nbsp;&nbsp;&nbsp;// so convert to a quaternion first, then a matrix<br />
&nbsp;&nbsp;&nbsp;&nbsp;Quaternion q;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// NOTE: assumes axis is a unit vector, non-unit vectors will bias the resulting rotation angle (but not the axis)<br />
&nbsp;&nbsp;&nbsp;&nbsp;AxisAngleQuaternion( rotationAxisLs, rotationAngle, q );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;// convert to a matrix<br />
&nbsp;&nbsp;&nbsp;&nbsp;matrix3x4_t xform;<br />
&nbsp;&nbsp;&nbsp;&nbsp;QuaternionMatrix( q, vec3_origin, xform );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;// apply the rotation to the entity input space (local)<br />
&nbsp;&nbsp;&nbsp;&nbsp;matrix3x4_t localToWorldMatrix;<br />
&nbsp;&nbsp;&nbsp;&nbsp;ConcatTransforms( m_rgflCoordinateFrame, xform, localToWorldMatrix );<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// extract the compound rotation as a QAngle<br />
&nbsp;&nbsp;&nbsp;&nbsp;QAngle localAngles;<br />
&nbsp;&nbsp;&nbsp;&nbsp;MatrixAngles( localToWorldMatrix, localAngles );<br />
&nbsp;&nbsp;&nbsp;&nbsp;/////////END ROTATE WHEELS THAT FACE WRONG DIRECTION/////////<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;VFuncs::SetAbsAngles(pProp, localAngles);<br />
}<br />
<br />
spawnedEnts.AddToTail(VFuncs::entindex(pProp));<br />
pAdminOP.spawnedServerEnts.AddToTail(VFuncs::entindex(pProp));<br />
//////////////////<br />
<br />
//////ADD HINGE//////////<br />
IPhysicsConstraint&nbsp;&nbsp;*m_pConstraint;<br />
IPhysicsObject *pReference = VFuncs::VPhysicsGetObject(pSet);<br />
IPhysicsObject *pAttached = VFuncs::VPhysicsGetObject(pProp);<br />
if ( !pReference || !pAttached )<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;return PLUGIN_STOP;<br />
}<br />
<br />
constraint_hingeparams_t hinged;<br />
hinged.Defaults();<br />
hinged.worldPosition = tr.endpos;<br />
hinged.worldAxisDirection = tr.plane.normal;<br />
<br />
m_pConstraint = physenv-&gt;CreateHingeConstraint( pReference, pAttached, NULL, hinged );<br />
////////////////////////////<br />
<br />
pConstraint = m_pConstraint;<br />
if(pConstraint)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;physConstraints.AddToTail(pConstraint);<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Wheel added to ent %i. New ent = %i with constraint ID %i&#92;n", pAdminOP.adminname, VFuncs::entindex(pSet), VFuncs::entindex(pProp), physConstraints.Tail()));<br />
}<br />
else<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Unable to add constraint.&#92;n", pAdminOP.adminname));<br />
}</code></div></div><br />
Hopefully this is useful. You should be able to take the important parts and make it work in a SourceMod extension/plugin.<br />
<br />
<span style="color: white;" class="mycode_color">streeeeeeeeeeeeetchingpostwidthforeasierreadabilitysorrymyforumsucksandisfromninetyninetyninestreeeeeeeeeeeeetchingpostwidthforeasierreadabilitysorrymyforumsucksandisfromninetyninetynine</span>]]></description>
			<content:encoded><![CDATA[I was recently asked how to add wheels to entities and also how to rotate the ones that align incorrectly. Below is the solution SourceOP uses:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>const char szTires[][64] = {"models/props_vehicles/tire001c_car.mdl",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"models/props_vehicles/apc_tire001.mdl",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"models/props_vehicles/tire001a_tractor.mdl",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"models/props_wasteland/wheel01a.mdl",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"models/props_wasteland/wheel02a.mdl"};<br />
<br />
...<br />
<br />
////MAKE WHEEL////<br />
CBaseEntity *pProp = NULL;<br />
pProp = CreateEntityByName( "prop_physics_multiplayer" );<br />
<br />
if(!pProp)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Spawn failure.&#92;n", pAdminOP.adminname));<br />
&nbsp;&nbsp;&nbsp;&nbsp;return PLUGIN_STOP;<br />
}<br />
<br />
QAngle angles;<br />
VectorAngles(tr.plane.normal, angles);<br />
<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"model", szTires[wheel] );<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"spawnflags", "256" );<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"physdamagescale", "0.1" );<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"ExplodeDamage", "0" );<br />
VFuncs::KeyValue(pProp,&nbsp;&nbsp;"ExplodeRadius", "0" );<br />
VFuncs::Spawn(pProp);<br />
VFuncs::Activate(pProp);<br />
VFuncs::SetModel( pProp, szTires[wheel] );<br />
//////////////////<br />
<br />
////GET SIZE////<br />
int i = modelinfo-&gt;GetModelIndex( szTires[wheel] );<br />
if ( i &lt; 0 )<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Wheel not precached.&#92;n", pAdminOP.adminname));<br />
&nbsp;&nbsp;&nbsp;&nbsp;return PLUGIN_STOP;<br />
}<br />
const model_t *mod = modelinfo-&gt;GetModel( i );<br />
if ( !mod )<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Wheel has no model_t. This is an engine error.&#92;n", pAdminOP.adminname));<br />
&nbsp;&nbsp;&nbsp;&nbsp;return PLUGIN_STOP;<br />
}<br />
modelinfo-&gt;GetModelBounds( mod, mins, maxs );<br />
VectorSubtract( maxs, mins, vecSize );<br />
////////////////<br />
<br />
if(wheel &lt; 3)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;VFuncs::Teleport(pProp, &amp;(tr.endpos + (tr.plane.normal * (vecSize.x/2))), &amp;angles, NULL );<br />
}<br />
else<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;matrix3x4_t&nbsp;&nbsp;&nbsp;&nbsp; m_rgflCoordinateFrame;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Vector vecorigin = tr.endpos + tr.plane.normal * (maxs.y - (mins.y + maxs.y));<br />
&nbsp;&nbsp;&nbsp;&nbsp;VFuncs::Teleport(pProp, &amp;vecorigin, &amp;angles, NULL );<br />
&nbsp;&nbsp;&nbsp;&nbsp;/////////////ROTATE WHEELS THAT FACE WRONG DIRECTION/////////<br />
&nbsp;&nbsp;&nbsp;&nbsp;const float rotationAngle = -90;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// calculate coordinate frame so that we don't have to use EntityToWorldTransform()<br />
&nbsp;&nbsp;&nbsp;&nbsp;AngleMatrix( angles, vecorigin, m_rgflCoordinateFrame );<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// compute rotation axis in entity local space<br />
&nbsp;&nbsp;&nbsp;&nbsp;// compute the transform as a matrix so we can concatenate it with the entity's current transform<br />
&nbsp;&nbsp;&nbsp;&nbsp;Vector rotationAxisLs = Vector(0,0,1);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// build a transform that rotates around that axis in local space by the angle<br />
&nbsp;&nbsp;&nbsp;&nbsp;// if there were an AxisAngleMatrix() routine we could use that directly, but there isn't <br />
&nbsp;&nbsp;&nbsp;&nbsp;// so convert to a quaternion first, then a matrix<br />
&nbsp;&nbsp;&nbsp;&nbsp;Quaternion q;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// NOTE: assumes axis is a unit vector, non-unit vectors will bias the resulting rotation angle (but not the axis)<br />
&nbsp;&nbsp;&nbsp;&nbsp;AxisAngleQuaternion( rotationAxisLs, rotationAngle, q );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;// convert to a matrix<br />
&nbsp;&nbsp;&nbsp;&nbsp;matrix3x4_t xform;<br />
&nbsp;&nbsp;&nbsp;&nbsp;QuaternionMatrix( q, vec3_origin, xform );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;// apply the rotation to the entity input space (local)<br />
&nbsp;&nbsp;&nbsp;&nbsp;matrix3x4_t localToWorldMatrix;<br />
&nbsp;&nbsp;&nbsp;&nbsp;ConcatTransforms( m_rgflCoordinateFrame, xform, localToWorldMatrix );<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// extract the compound rotation as a QAngle<br />
&nbsp;&nbsp;&nbsp;&nbsp;QAngle localAngles;<br />
&nbsp;&nbsp;&nbsp;&nbsp;MatrixAngles( localToWorldMatrix, localAngles );<br />
&nbsp;&nbsp;&nbsp;&nbsp;/////////END ROTATE WHEELS THAT FACE WRONG DIRECTION/////////<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;VFuncs::SetAbsAngles(pProp, localAngles);<br />
}<br />
<br />
spawnedEnts.AddToTail(VFuncs::entindex(pProp));<br />
pAdminOP.spawnedServerEnts.AddToTail(VFuncs::entindex(pProp));<br />
//////////////////<br />
<br />
//////ADD HINGE//////////<br />
IPhysicsConstraint&nbsp;&nbsp;*m_pConstraint;<br />
IPhysicsObject *pReference = VFuncs::VPhysicsGetObject(pSet);<br />
IPhysicsObject *pAttached = VFuncs::VPhysicsGetObject(pProp);<br />
if ( !pReference || !pAttached )<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;return PLUGIN_STOP;<br />
}<br />
<br />
constraint_hingeparams_t hinged;<br />
hinged.Defaults();<br />
hinged.worldPosition = tr.endpos;<br />
hinged.worldAxisDirection = tr.plane.normal;<br />
<br />
m_pConstraint = physenv-&gt;CreateHingeConstraint( pReference, pAttached, NULL, hinged );<br />
////////////////////////////<br />
<br />
pConstraint = m_pConstraint;<br />
if(pConstraint)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;physConstraints.AddToTail(pConstraint);<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Wheel added to ent %i. New ent = %i with constraint ID %i&#92;n", pAdminOP.adminname, VFuncs::entindex(pSet), VFuncs::entindex(pProp), physConstraints.Tail()));<br />
}<br />
else<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;SayTextChatHud(UTIL_VarArgs("[%s] Unable to add constraint.&#92;n", pAdminOP.adminname));<br />
}</code></div></div><br />
Hopefully this is useful. You should be able to take the important parts and make it work in a SourceMod extension/plugin.<br />
<br />
<span style="color: white;" class="mycode_color">streeeeeeeeeeeeetchingpostwidthforeasierreadabilitysorrymyforumsucksandisfromninetyninetyninestreeeeeeeeeeeeetchingpostwidthforeasierreadabilitysorrymyforumsucksandisfromninetyninetynine</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Accesing tf2 with C++]]></title>
			<link>http://forums.sourceop.com/Accesing-tf2-with-C-thread</link>
			<pubDate>Fri, 25 Dec 2009 00:06:06 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=1577">Samppaa</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/Accesing-tf2-with-C-thread</guid>
			<description><![CDATA[How it is done that you can access tf2 with the code like making your program to make your tf2 to connect to server like source tools has the idler thing with auto reconnect and such? Is there some functions for it in some libraries or? I would like to make auto connector program for practise and yes I have programmed before. I tried to google but just got a punch of warez sites...]]></description>
			<content:encoded><![CDATA[How it is done that you can access tf2 with the code like making your program to make your tf2 to connect to server like source tools has the idler thing with auto reconnect and such? Is there some functions for it in some libraries or? I would like to make auto connector program for practise and yes I have programmed before. I tried to google but just got a punch of warez sites...]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[The bind menus?]]></title>
			<link>http://forums.sourceop.com/The-bind-menus-thread</link>
			<pubDate>Tue, 15 Dec 2009 05:47:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=1181">nicatronTg</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/The-bind-menus-thread</guid>
			<description><![CDATA[Well, I was just looking around my server trying to figure out a way to improve it for new players, and I thought, "what if I could have a menu to bind keys? That would stop every noob in the world from typing +rotate or e_freeze in chat every 2 seconds wondering why it doesn't work!" Then I remembered: SourceOP has a bind menu if you type !jetpack or !radio. Any chance I could get what SDK call you did/a hint in the right direction as to how I can setup a bind menu for a couple commands, like +hook, e_freeze, e_unfreeze, etc?]]></description>
			<content:encoded><![CDATA[Well, I was just looking around my server trying to figure out a way to improve it for new players, and I thought, "what if I could have a menu to bind keys? That would stop every noob in the world from typing +rotate or e_freeze in chat every 2 seconds wondering why it doesn't work!" Then I remembered: SourceOP has a bind menu if you type !jetpack or !radio. Any chance I could get what SDK call you did/a hint in the right direction as to how I can setup a bind menu for a couple commands, like +hook, e_freeze, e_unfreeze, etc?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[CPP Problem :]]></title>
			<link>http://forums.sourceop.com/CPP-Problem-thread</link>
			<pubDate>Mon, 14 Dec 2009 20:42:28 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=851">Banksy</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/CPP-Problem-thread</guid>
			<description><![CDATA[hey, i have to write a recursive function that computes the factorial of a number given the following prototype:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>void factorial (long argument, long *result)</code></div></div><br />
<br />
here's what i have written, it compiles, but whenever i run it i get a segmentation fault. i'm pretty sure i'm just not using the pointer properly, any help would be greatly appreciated.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#include &lt;stdio&gt; <br />
<br />
void factorial(long argument, long *result); <br />
<br />
int main(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;long a;<br />
&nbsp;&nbsp;&nbsp;&nbsp;long *result;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;*result = 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Enter a number: ");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%l", &amp;a);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;factorial(a, result);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br />
}<br />
<br />
void factorial(long argument, long *result){<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (argument == 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("The factorial of %l is: %l", argument,*result);<br />
&nbsp;&nbsp;&nbsp;&nbsp;else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*result = *result * argument;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factorial(argument-1, result);&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</code></div></div><br />
<br />
i'm pretty new to C so if there are any other obvious flaws feel free to point them out.]]></description>
			<content:encoded><![CDATA[hey, i have to write a recursive function that computes the factorial of a number given the following prototype:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>void factorial (long argument, long *result)</code></div></div><br />
<br />
here's what i have written, it compiles, but whenever i run it i get a segmentation fault. i'm pretty sure i'm just not using the pointer properly, any help would be greatly appreciated.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#include &lt;stdio&gt; <br />
<br />
void factorial(long argument, long *result); <br />
<br />
int main(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;long a;<br />
&nbsp;&nbsp;&nbsp;&nbsp;long *result;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;*result = 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Enter a number: ");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%l", &amp;a);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;factorial(a, result);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br />
}<br />
<br />
void factorial(long argument, long *result){<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (argument == 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("The factorial of %l is: %l", argument,*result);<br />
&nbsp;&nbsp;&nbsp;&nbsp;else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*result = *result * argument;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factorial(argument-1, result);&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</code></div></div><br />
<br />
i'm pretty new to C so if there are any other obvious flaws feel free to point them out.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Weapon Attributes :]]></title>
			<link>http://forums.sourceop.com/Weapon-Attributes-thread</link>
			<pubDate>Mon, 16 Nov 2009 20:54:15 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=851">Banksy</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/Weapon-Attributes-thread</guid>
			<description><![CDATA[I'm not sure on how to create a plugin to give peopel custom weapons. I am not sure if its going through the networked vars or steam api's . Im really lost and not sure how to get started.]]></description>
			<content:encoded><![CDATA[I'm not sure on how to create a plugin to give peopel custom weapons. I am not sure if its going through the networked vars or steam api's . Im really lost and not sure how to get started.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DoS Fix plugin - how to?]]></title>
			<link>http://forums.sourceop.com/DoS-Fix-plugin-how-to-thread</link>
			<pubDate>Mon, 20 Jul 2009 14:53:05 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=933">Forlix</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/DoS-Fix-plugin-how-to-thread</guid>
			<description><![CDATA[Hey<br />
recently my CS:S server was DoS'd (i didnt have any fixes installed).<br />
Now i would like to code a plugin myself, much like the DoS Fix Plugin on this site.<br />
I just wonder how do i access the network communication of the server? I dont suppose there is any callback function for incoming UDP packets or stuff like that right?<br />
Drunken_F00l - you wrote such a plugin, maybe you can give me some insights on where to start?]]></description>
			<content:encoded><![CDATA[Hey<br />
recently my CS:S server was DoS'd (i didnt have any fixes installed).<br />
Now i would like to code a plugin myself, much like the DoS Fix Plugin on this site.<br />
I just wonder how do i access the network communication of the server? I dont suppose there is any callback function for incoming UDP packets or stuff like that right?<br />
Drunken_F00l - you wrote such a plugin, maybe you can give me some insights on where to start?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Halp again. C woes... >_>]]></title>
			<link>http://forums.sourceop.com/Halp-again-C-woes-thread</link>
			<pubDate>Thu, 26 Feb 2009 17:13:49 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=398">jwstohr</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/Halp-again-C-woes-thread</guid>
			<description><![CDATA[Ok this time it is a simple thing that I just cannot "get".<br />
<br />
I need to fill an array b[6] with random unique numbers 1-15. I can generate random numbers and everything just fine... I just cannot figure out a way to compare the generated number to the array already done to check if it is a duplicate. And of course if not a duplicate, put it in the array. Rinse and repeat.<br />
<br />
Any ideas? <img src="http://forums.sourceop.com/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />]]></description>
			<content:encoded><![CDATA[Ok this time it is a simple thing that I just cannot "get".<br />
<br />
I need to fill an array b[6] with random unique numbers 1-15. I can generate random numbers and everything just fine... I just cannot figure out a way to compare the generated number to the array already done to check if it is a duplicate. And of course if not a duplicate, put it in the array. Rinse and repeat.<br />
<br />
Any ideas? <img src="http://forums.sourceop.com/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Halp with C code assignment!]]></title>
			<link>http://forums.sourceop.com/Halp-with-C-code-assignment-thread</link>
			<pubDate>Tue, 27 Jan 2009 01:27:37 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=398">jwstohr</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/Halp-with-C-code-assignment-thread</guid>
			<description><![CDATA[So I have not programmed in a couple years and last week my professor gave the class an assignment that is kinda tricky. I got most of the program to do what it is supposed to do, but there are a couple problems.<br />
<br />
First of a short summary of the assignment:<br />
Problem: Simple encryption/decryption of text will be investigated in this assignment.<br />
<br />
Background: Alphabet rotation<br />
â€¢	Rotate characters within the alphabet sequence<br />
o	For example, A rotated forward 4 is E<br />
o	For example, b rotated backward 2 is z <br />
â€¢	Applied only to letters. All other characters remain unchanged<br />
â€¢	Uppercase remains upper, lowercase remains lower<br />
<br />
Encryption algorithm v0:<br />
â€¢	+1, -2, +3,  -4, +1, -2, +3, -4, â€¦  repeating sequence of rotates for the entire string<br />
â€¢	Non-letters still take up the space in the sequence even though the rotation is not applied<br />
â€¢	For example:<br />
o	My pc! &#61664; Nw ld!<br />
<br />
<br />
Basically, the user enters a string and it is then encrypted to the above algorithm. Encryption is not applied to the non letters, but they still take up a place in the algorithm. <br />
<br />
My Problem:<br />
I got the encryption to work unless, for example, the letter 'a' were to fall in the -2 slot. I don't know how to make it roll back and read 'y'. Also when I tried the "My pc!" example the '!' does not show up, everything else worked perfect. Hopefully it is just some simple mistake.<br />
<br />
After typing all this I found out VMware wont let me copy my code from my virtual box, I will reply to this with the code I have.<br />
<br />
Edit:<br />
Some reason the ".h" after stdio and string wont show up. They are in my code though. Actually alot of the code is broken after pasting it in here. Even when using the code tags. :S Fixed it I think, had to un-check some boxes that were conflicting with the post. The code should be correct now.]]></description>
			<content:encoded><![CDATA[So I have not programmed in a couple years and last week my professor gave the class an assignment that is kinda tricky. I got most of the program to do what it is supposed to do, but there are a couple problems.<br />
<br />
First of a short summary of the assignment:<br />
Problem: Simple encryption/decryption of text will be investigated in this assignment.<br />
<br />
Background: Alphabet rotation<br />
â€¢	Rotate characters within the alphabet sequence<br />
o	For example, A rotated forward 4 is E<br />
o	For example, b rotated backward 2 is z <br />
â€¢	Applied only to letters. All other characters remain unchanged<br />
â€¢	Uppercase remains upper, lowercase remains lower<br />
<br />
Encryption algorithm v0:<br />
â€¢	+1, -2, +3,  -4, +1, -2, +3, -4, â€¦  repeating sequence of rotates for the entire string<br />
â€¢	Non-letters still take up the space in the sequence even though the rotation is not applied<br />
â€¢	For example:<br />
o	My pc! &#61664; Nw ld!<br />
<br />
<br />
Basically, the user enters a string and it is then encrypted to the above algorithm. Encryption is not applied to the non letters, but they still take up a place in the algorithm. <br />
<br />
My Problem:<br />
I got the encryption to work unless, for example, the letter 'a' were to fall in the -2 slot. I don't know how to make it roll back and read 'y'. Also when I tried the "My pc!" example the '!' does not show up, everything else worked perfect. Hopefully it is just some simple mistake.<br />
<br />
After typing all this I found out VMware wont let me copy my code from my virtual box, I will reply to this with the code I have.<br />
<br />
Edit:<br />
Some reason the ".h" after stdio and string wont show up. They are in my code though. Actually alot of the code is broken after pasting it in here. Even when using the code tags. :S Fixed it I think, had to un-check some boxes that were conflicting with the post. The code should be correct now.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[prefabs]]></title>
			<link>http://forums.sourceop.com/prefabs-thread</link>
			<pubDate>Thu, 08 Jun 2006 03:41:40 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=131">Retribution</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/prefabs-thread</guid>
			<description><![CDATA[are the sites where you can download pre-made prefabs<br />
like the choppers or jet on the helicave level<br />
or the cannon on docks]]></description>
			<content:encoded><![CDATA[are the sites where you can download pre-made prefabs<br />
like the choppers or jet on the helicave level<br />
or the cannon on docks]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[QUIT POSTING RANDOM CHINESE SHIT!!!!]]></title>
			<link>http://forums.sourceop.com/QUIT-POSTING-RANDOM-CHINESE-SHIT-thread</link>
			<pubDate>Sun, 21 May 2006 09:07:51 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://forums.sourceop.com/member.php?action=profile&uid=11">OmegaZero_Alpha</a>]]></dc:creator>
			<guid isPermaLink="false">http://forums.sourceop.com/QUIT-POSTING-RANDOM-CHINESE-SHIT-thread</guid>
			<description><![CDATA[REALLY, STOP IT, WHOEVER STARTED IT NEEDS TO DIE!!!!<br />
ITS NOT CODING, ITS NOT ENGLISH AND ITS NOT CUTE!!!!!!!]]></description>
			<content:encoded><![CDATA[REALLY, STOP IT, WHOEVER STARTED IT NEEDS TO DIE!!!!<br />
ITS NOT CODING, ITS NOT ENGLISH AND ITS NOT CUTE!!!!!!!]]></content:encoded>
		</item>
	</channel>
</rss>