<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fprojectiles%2Fsupply_marker.script</id>
	<title>Script:Files:script/projectiles/supply marker.script - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fprojectiles%2Fsupply_marker.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/projectiles/supply_marker.script&amp;action=history"/>
	<updated>2026-04-11T18:08:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Script:Files:script/projectiles/supply_marker.script&amp;diff=1806&amp;oldid=prev</id>
		<title>Wizz at 09:54, 5 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/projectiles/supply_marker.script&amp;diff=1806&amp;oldid=prev"/>
		<updated>2007-11-05T09:54:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; [[ScriptClass:supply_marker|supply_marker]] : [[ScriptClass:projectile_missile|projectile_missile]] {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                preinit();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                CallForSupply();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                CallForSupplyThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delay );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                FreeOldSupplies();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:supply_marker|supply_marker]]::preinit() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !sys.[[ScriptEvent:isClient|isClient]]() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;thread&amp;lt;/span&amp;gt; CallForSupplyThread( [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;supply_wait_time&amp;quot;&amp;lt;/span&amp;gt;, 3.f ) );&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:supply_marker|supply_marker]]::CallForSupplyThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delay ) {    &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; owner = [[ScriptEvent:getOwner|getOwner]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( owner != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         owner.vDelayDeployment( delay );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:startSound|startSound]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_smoke_start&amp;quot;&amp;lt;/span&amp;gt;, SND_WEAPON_FIRE );&lt;br /&gt;
 &lt;br /&gt;
     sys.[[ScriptEvent:wait|wait]]( delay );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt; ok = CallForSupply();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !ok ) {&lt;br /&gt;
         [[ScriptEvent:stopEffect|stopEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_trail&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( owner != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
             sys.[[ScriptEvent:broadcastToolTip|broadcastToolTip]]( GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_unknown_target&amp;quot;&amp;lt;/span&amp;gt; ) ), owner, wstr_empty, wstr_empty, wstr_empty, wstr_empty );&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( ok ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt; ( FreeOldSupplies() ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// loop until we've freed all we need to&amp;lt;/span&amp;gt;&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         sys.[[ScriptEvent:requestDeployment|requestDeployment]]( [[ScriptEvent:getOwner|getOwner]](), GetDeployObject( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;do_supply_item&amp;quot;&amp;lt;/span&amp;gt; ) ), [[ScriptEvent:getWorldOrigin|getWorldOrigin]](), 0.f, 0.f );    &lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     sys.[[ScriptEvent:wait|wait]]( 5.f );&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:startSound|startSound]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_smoke_stop&amp;quot;&amp;lt;/span&amp;gt;, SND_WEAPON_FIRE );&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:remove|remove]]();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; [[ScriptClass:door|door]];&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt; [[ScriptClass:supply_marker|supply_marker]]::CallForSupply() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; owner = [[ScriptEvent:getOwner|getOwner]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( owner == &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( owner.[[ScriptEvent:getGameTeam|getGameTeam]]() != [[ScriptEvent:getGameTeam|getGameTeam]]() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; pos = [[ScriptEvent:getWorldOrigin|getWorldOrigin]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; end = pos;&lt;br /&gt;
     end_z = end_z + 65536.f;&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:forceDisableClip|forceDisableClip]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; contents = sys.[[ScriptEvent:checkContents|checkContents]]( pos, [[ScriptEvent:getMins|getMins]](), [[ScriptEvent:getMaxs|getMaxs]](), MASK_SHOT_BOUNDINGBOX | MASK_SHOT_RENDERMODEL, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( contents != 0 ) {&lt;br /&gt;
         [[ScriptEvent:forceEnableClip|forceEnableClip]]();&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     sys.[[ScriptEvent:tracePoint|tracePoint]]( pos, end, MASK_SHOT_BOUNDINGBOX | MASK_SHOT_RENDERMODEL, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( sys.[[ScriptEvent:getTraceFraction|getTraceFraction]]() == 1.f ) {&lt;br /&gt;
         [[ScriptEvent:forceEnableClip|forceEnableClip]]();&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !( sys.[[ScriptEvent:getTraceSurfaceFlags|getTraceSurfaceFlags]]() &amp;amp; SURF_NOIMPACT ) ) {&lt;br /&gt;
         [[ScriptEvent:forceEnableClip|forceEnableClip]]();&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     sys.[[ScriptEvent:tracePoint|tracePoint]]( pos, pos + '0 0 -64', MASK_SHOT_BOUNDINGBOX | MASK_SHOT_RENDERMODEL, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; );&lt;br /&gt;
     [[ScriptEvent:forceEnableClip|forceEnableClip]]();&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptClass:door|door]] ent = sys.[[ScriptEvent:getTraceEntity|getTraceEntity]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( ent != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( sys.[[ScriptEvent:getTraceFraction|getTraceFraction]]() == 1.0f ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; true;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt; [[ScriptClass:supply_marker|supply_marker]]::FreeOldSupplies() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; owner = [[ScriptEvent:getOwner|getOwner]]();&lt;br /&gt;
     [[ScriptClass:team_base|team_base]] team = owner.[[ScriptEvent:getGameTeam|getGameTeam]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; limit = team.GetMaxSupplies( owner );    &lt;br /&gt;
     sys.[[ScriptEvent:assert|assert]]( limit != 0.f );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; oldest;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; oldestTime;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; count;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// fizzle any existing supply drops&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; i;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; num = owner.[[ScriptEvent:binGetSize|binGetSize]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;for&amp;lt;/span&amp;gt; ( i = 0; i &amp;lt; num; i++ ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; other = owner.[[ScriptEvent:binGet|binGet]]( i );&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( other.vIsSupplyDrop() ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; thisCreationTime = other.vGetSupplyDropCreationTime();&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( oldest == &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; || thisCreationTime &amp;lt; oldestTime ) {&lt;br /&gt;
                 oldestTime = thisCreationTime;&lt;br /&gt;
                 oldest = other;&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
             count++;&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( count &amp;gt;= limit ) {&lt;br /&gt;
         sys.[[ScriptEvent:assert|assert]]( oldest != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; );&lt;br /&gt;
         oldest.vRemoveObject();&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; count &amp;gt; limit;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>