<?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%2Fvehicles%2Fweapons%2Fplasmacannon.script</id>
	<title>Script:Files:script/vehicles/weapons/plasmacannon.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%2Fvehicles%2Fweapons%2Fplasmacannon.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/vehicles/weapons/plasmacannon.script&amp;action=history"/>
	<updated>2026-04-07T18:27:31Z</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/vehicles/weapons/plasmacannon.script&amp;diff=1848&amp;oldid=prev</id>
		<title>Wizz at 10:03, 5 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/vehicles/weapons/plasmacannon.script&amp;diff=1848&amp;oldid=prev"/>
		<updated>2007-11-05T10:03:24Z</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;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; [[ScriptClass:vehicle_weapon_plasmacannon|vehicle_weapon_plasmacannon]] : [[ScriptClass:vehicle_weapon_base|vehicle_weapon_base]] {&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;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            init();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            Fire();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            UpdateCharge();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;            muzzleFlashFX;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            spread;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            projectileIndex;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            spreadSiege;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            chargePerUseSiegeScale;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            jointHandle;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            jointHandleParent;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            feedback;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            baseChargeMax;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt;            velocity;&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:vehicle_weapon_plasmacannon|vehicle_weapon_plasmacannon]]::preinit() {&lt;br /&gt;
     projectileIndex        = GetEntityDef( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;def_projectile&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; vehicle        = [[ScriptEvent:getVehicle|getVehicle]]();&lt;br /&gt;
     jointHandle            = vehicle.[[ScriptEvent:getJointHandle|getJointHandle]]( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;muzzle&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
     jointHandleParent    = vehicle.[[ScriptEvent:getJointHandle|getJointHandle]]( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;muzzle_parent&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
 &lt;br /&gt;
     muzzleFlashFX        = [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;muzzle_flash&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
 &lt;br /&gt;
     spread                = [[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;spread&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     velocity            = [[ScriptEvent:getVectorKey|getVectorKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;velocity&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     feedback            = [[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;feedback&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
 &lt;br /&gt;
     spreadSiege            = [[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;spread_siege&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     chargePerUseSiegeScale    = [[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;charge_per_use_siege_scale&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     baseChargeMax        = [[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;charge_max&amp;quot;&amp;lt;/span&amp;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;void&amp;lt;/span&amp;gt; [[ScriptClass:vehicle_weapon_plasmacannon|vehicle_weapon_plasmacannon]]::init() {&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:vehicle_weapon_plasmacannon|vehicle_weapon_plasmacannon]]::Fire() {&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; origin = myVehicle.[[ScriptEvent:getJointPos|getJointPos]]( jointHandle );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt; allowFire = true;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( jointHandleParent != INVALID_JOINT ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; muzzleCheckOrigin = myVehicle.[[ScriptEvent:getJointPos|getJointPos]]( jointHandleParent );        &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( sys.[[ScriptEvent:tracePoint|tracePoint]]( muzzleCheckOrigin, origin, MASK_PROJECTILE, myVehicle ) != 1.f ) {&lt;br /&gt;
             allowFire = false;&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; ( allowFire ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; spreadActual = spread;&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( myVehicle.[[ScriptEvent:inSiegeMode|inSiegeMode]]() ) {&lt;br /&gt;
             myVehicle.[[ScriptEvent:startSound|startSound]] ( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_recharge_2s&amp;quot;&amp;lt;/span&amp;gt;, SND_VEHICLE_INTERIOR_POWERUP );&lt;br /&gt;
             spreadActual = spreadSiege;&lt;br /&gt;
         }&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; { &lt;br /&gt;
             myVehicle.[[ScriptEvent:startSound|startSound]] ( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_recharge_4s&amp;quot;&amp;lt;/span&amp;gt;, SND_VEHICLE_INTERIOR_POWERUP );&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         RemoveCharge();&lt;br /&gt;
 &lt;br /&gt;
         myVehicle.[[ScriptEvent:launchMissileSimple|launchMissileSimple]]( user, myVehicle, $null_entity, projectileIndex, -1, spreadActual, origin, myVehicle.[[ScriptEvent:jointToWorldSpace|jointToWorldSpace]]( jointHandle, velocity ) );&lt;br /&gt;
         myVehicle.[[ScriptEvent:applyImpulse|applyImpulse]]( origin, -feedback * myVehicle.[[ScriptEvent:getJointAxis|getJointAxis]]( jointHandle, 0 ) );&lt;br /&gt;
         myVehicle.[[ScriptEvent:playJointEffect|playJointEffect]]( muzzleFlashFX, jointHandle, 0 );&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// Gordon: FIXME: Play error sound/tooltip&amp;lt;/span&amp;gt;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     GoToIdle();&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:vehicle_weapon_plasmacannon|vehicle_weapon_plasmacannon]]::UpdateCharge() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; percentChargeUsed = CalcChargeUsed() / chargeMax;&lt;br /&gt;
 &lt;br /&gt;
     chargePerUse = userChargePerUse;&lt;br /&gt;
     chargeMax = baseChargeMax;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( myVehicle.[[ScriptEvent:inSiegeMode|inSiegeMode]]() ) {&lt;br /&gt;
         chargePerUse = chargePerUse * chargePerUseSiegeScale;&lt;br /&gt;
         chargeMax = chargeMax * chargePerUseSiegeScale;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// recalculate the charge time to be the same %&amp;lt;/span&amp;gt;&lt;br /&gt;
     chargeTime = sys.[[ScriptEvent:getTime|getTime]]() + chargeMax * percentChargeUsed;&lt;br /&gt;
 &lt;br /&gt;
     UpdateCharge_Base();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>