<?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%2Fitems%2Fhecharge.script</id>
	<title>Script:Files:script/items/hecharge.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%2Fitems%2Fhecharge.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/items/hecharge.script&amp;action=history"/>
	<updated>2026-04-13T07:47:23Z</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/items/hecharge.script&amp;diff=1785&amp;oldid=prev</id>
		<title>Wizz at 18:18, 2 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/items/hecharge.script&amp;diff=1785&amp;oldid=prev"/>
		<updated>2007-11-02T18:18:11Z</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; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;/***********************************************************************&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;item_he_charge.script&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;***********************************************************************/&amp;lt;/span&amp;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:item_he_charge|item_he_charge]] : [[ScriptClass:weapon_base|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;        destroy();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Raise();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Idle();&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;boolean&amp;lt;/span&amp;gt;        CanAttack();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        DoTrace();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        CheckNoPlant();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        meleeDistance;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        cancelFire;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        ToolTipThread_Raise();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        nextInvalidPositionToolTipTime;    &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        nextChargeToolTipTime;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        vCancelFire() { cancelFire = true; }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;handle&amp;lt;/span&amp;gt;        statNumUsed;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        clientWait;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// cached trace information&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt;        meleeEntity;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt;        meleeNormal;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt;        meleeEndPos;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;        meleeJoint;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        meleeSurfaceFlags;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        meleeInfoValid;&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:item_he_charge|item_he_charge]]::preinit() {&lt;br /&gt;
     meleeDistance        = [[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;melee_distance&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;string&amp;lt;/span&amp;gt; statName = [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;stat_name&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; ( statName != &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;&amp;quot;&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         statNumUsed            = sys.[[ScriptEvent:allocStatInt|allocStatInt]]( statName + &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;_uses&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:item_he_charge|item_he_charge]]::init() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( myPlayer.[[ScriptEvent:isLocalPlayer|isLocalPlayer]]() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;thread&amp;lt;/span&amp;gt; ToolTipThread_Raise();&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:weaponState|weaponState]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;Raise&amp;quot;&amp;lt;/span&amp;gt;, 0 );&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:item_he_charge|item_he_charge]]::destroy() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; myPlayer = [[ScriptEvent:getOwner|getOwner]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( myPlayer != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         myPlayer.[[ScriptEvent:freeze|freeze]]( 0 );&lt;br /&gt;
         myPlayer.[[ScriptEvent:freezeTurning|freezeTurning]]( 0 );&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:item_he_charge|item_he_charge]]::Raise() {&lt;br /&gt;
     UpdateCharge();&lt;br /&gt;
 &lt;br /&gt;
     Base_Raise();&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:item_he_charge|item_he_charge]]::CheckNoPlant() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; count = [[ScriptEvent:entitiesInRadius|entitiesInRadius]]( g_vectorZero, 0.f, CONTENTS_TRIGGER, 0 );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; index = 0;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;for&amp;lt;/span&amp;gt; ( index = 0; index &amp;lt; count; index++ ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; ent = [[ScriptEvent:getBoundsCacheEntity|getBoundsCacheEntity]]( index );&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( ent.[[ScriptEvent:getGameTeam|getGameTeam]]() == [[ScriptEvent:getGameTeam|getGameTeam]]() ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( ent.vDisablePlant() ) {&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;
     }&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:item_he_charge|item_he_charge]]::CanAttack() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !CanRemove( chargePerUse ) ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( myPlayer.[[ScriptEvent:isLocalPlayer|isLocalPlayer]]() &amp;amp;&amp;amp; !mainFireDown ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !myPlayer.[[ScriptEvent:isToolTipPlaying|isToolTipPlaying]]() ) {&lt;br /&gt;
                 myPlayer.[[ScriptEvent:sendToolTip|sendToolTip]]( GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_need_charge&amp;quot;&amp;lt;/span&amp;gt; ) ) );&lt;br /&gt;
             }&lt;br /&gt;
             sys.[[ScriptEvent:startSoundDirect|startSoundDirect]]( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_need_charge&amp;quot;&amp;lt;/span&amp;gt; ), SND_ANY );&lt;br /&gt;
             G_NotifyNoCharge( myPlayer );&lt;br /&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; ( !CheckNoPlant() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !myPlayer.[[ScriptEvent:isToolTipPlaying|isToolTipPlaying]]() ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( sys.[[ScriptEvent:getTime|getTime]]() &amp;gt; nextChargeToolTipTime ) {&lt;br /&gt;
                 nextChargeToolTipTime = sys.[[ScriptEvent:getTime|getTime]]() + 5.f;&lt;br /&gt;
                 myPlayer.[[ScriptEvent:sendToolTip|sendToolTip]]( GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_action_failed&amp;quot;&amp;lt;/span&amp;gt; ) ) );&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; false;&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; valid = true;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !DoTrace() ) {&lt;br /&gt;
         valid = false;&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:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; other = meleeEntity;&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; shaderFlags = meleeSurfaceFlags;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( other == &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; || shaderFlags &amp;amp; SURF_NOPLANT ) {&lt;br /&gt;
             valid = false;&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
             valid = !other.vDisablePlantCharge();&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; ( !valid ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !myPlayer.[[ScriptEvent:isToolTipPlaying|isToolTipPlaying]]() ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( sys.[[ScriptEvent:getTime|getTime]]() &amp;gt; nextInvalidPositionToolTipTime ) {&lt;br /&gt;
                 nextInvalidPositionToolTipTime = sys.[[ScriptEvent:getTime|getTime]]() + 5.f;&lt;br /&gt;
                 myPlayer.[[ScriptEvent:sendToolTip|sendToolTip]]( GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_action_failed&amp;quot;&amp;lt;/span&amp;gt; ) ) );&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;return&amp;lt;/span&amp;gt; valid;&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:item_he_charge|item_he_charge]]::Idle() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; other;&lt;br /&gt;
     [[ScriptEvent:weaponReady|weaponReady]]();&lt;br /&gt;
     [[ScriptEvent:playCycle|playCycle]]( ANIMCHANNEL_ALL, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;idle&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;if&amp;lt;/span&amp;gt; ( clientWait ) {&lt;br /&gt;
         sys.[[ScriptEvent:wait|wait]]( 0.2 );&lt;br /&gt;
         clientWait = false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt; ( true ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( WEAPON_LOWERWEAPON ) {&lt;br /&gt;
             [[ScriptEvent:weaponState|weaponState]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;Lower&amp;quot;&amp;lt;/span&amp;gt;, 0 );&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; ( WEAPON_ATTACK || myPlayer.[[ScriptEvent:getButton|getButton]]( PK_ACTIVATE ) ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt;( !mainFireDown ) {&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( CanAttack() ) {&lt;br /&gt;
                     mainFireDown = true;&lt;br /&gt;
                     [[ScriptEvent:weaponState|weaponState]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;Fire&amp;quot;&amp;lt;/span&amp;gt;, 0 );&lt;br /&gt;
                 }&lt;br /&gt;
                 mainFireDown = true;&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;
             mainFireDown = false;&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         UpdateCharge();&lt;br /&gt;
 &lt;br /&gt;
         sys.[[ScriptEvent:waitFrame|waitFrame]]();&lt;br /&gt;
     }&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:item_he_charge|item_he_charge]]::DoTrace() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( ![[ScriptEvent:melee|melee]]( MASK_SHOT_BOUNDINGBOX | MASK_PROJECTILE, meleeDistance, true, false ) ) {&lt;br /&gt;
         meleeInfoValid = false;&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;
     meleeEntity = [[ScriptEvent:getMeleeEntity|getMeleeEntity]]();&lt;br /&gt;
     meleeNormal = [[ScriptEvent:getMeleeNormal|getMeleeNormal]]();&lt;br /&gt;
     meleeEndPos = [[ScriptEvent:getMeleeEndPos|getMeleeEndPos]]();&lt;br /&gt;
     meleeSurfaceFlags = [[ScriptEvent:getMeleeSurfaceFlags|getMeleeSurfaceFlags]]();&lt;br /&gt;
     meleeInfoValid = true;&lt;br /&gt;
     meleeJoint = [[ScriptEvent:getMeleeJoint|getMeleeJoint]]();&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;void&amp;lt;/span&amp;gt; [[ScriptClass:item_he_charge|item_he_charge]]::Fire() {&lt;br /&gt;
     cancelFire = false;&lt;br /&gt;
 &lt;br /&gt;
     myPlayer.[[ScriptEvent:freeze|freeze]]( 1 );&lt;br /&gt;
     myPlayer.[[ScriptEvent:freezeTurning|freezeTurning]]( 1 );&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:fired|fired]]();&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:playAnim|playAnim]]( ANIMCHANNEL_ALL, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fire&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     waitUntil( [[ScriptEvent:animDone|animDone]]( ANIMCHANNEL_ALL, 0 ) );&lt;br /&gt;
 &lt;br /&gt;
     myPlayer.[[ScriptEvent:freeze|freeze]]( 0 );&lt;br /&gt;
     myPlayer.[[ScriptEvent:freezeTurning|freezeTurning]]( 0 );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cancelFire ) {&lt;br /&gt;
         [[ScriptEvent:weaponState|weaponState]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;Idle&amp;quot;&amp;lt;/span&amp;gt;, 0 );&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:isClient|isClient]]() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( CanAttack() ) {    &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; charge = sys.[[ScriptEvent:spawn|spawn]]( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;def_charge&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// we don't want to get the message just after we have planted, as we'll switch to the arming tool anyway&amp;lt;/span&amp;gt;&lt;br /&gt;
             nextChargeToolTipTime = sys.[[ScriptEvent:getTime|getTime]]() + 2.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; other = meleeEntity;&lt;br /&gt;
             charge.[[ScriptEvent:setOrigin|setOrigin]]( meleeEndPos - ( meleeNormal * 0.5f ) );&lt;br /&gt;
             charge.[[ScriptEvent:alignToAxis|alignToAxis]]( meleeNormal, 0 );&lt;br /&gt;
             charge.vSetOwner( myPlayer );&lt;br /&gt;
             charge.[[ScriptEvent:setGameTeam|setGameTeam]]( myPlayer.[[ScriptEvent:getGameTeam|getGameTeam]]() );&lt;br /&gt;
             charge.vSetNewTarget( other );&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( other != &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;float&amp;lt;/span&amp;gt; jointHandle = other.[[ScriptEvent:getJointHandle|getJointHandle]]( meleeJoint );&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( jointHandle != INVALID_JOINT ) {&lt;br /&gt;
                     charge.[[ScriptEvent:bindToJoint|bindToJoint]]( other, meleeJoint, 1 );&lt;br /&gt;
                 } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
                     charge.[[ScriptEvent:bind|bind]]( other );&lt;br /&gt;
                 }&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
             Remove( chargePerUse );&lt;br /&gt;
 &lt;br /&gt;
             [[ScriptClass:team_base|team_base]] team = myPlayer.[[ScriptEvent:getGameTeam|getGameTeam]]();&lt;br /&gt;
             team.SelectActionItem( myPlayer, AK_CHARGEARM );&lt;br /&gt;
 &lt;br /&gt;
             myPlayer.[[ScriptEvent:setPlayerChargeOrigin|setPlayerChargeOrigin]]( charge ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;//mal: set the origin of the placed charge, so the bots know where to go to arm/disarm it.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
             sys.[[ScriptEvent:increaseStatInt|increaseStatInt]]( statNumUsed, myPlayer.[[ScriptEvent:getEntityNumber|getEntityNumber]](), 1 );&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;
         &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// wait for server to select weapon&amp;lt;/span&amp;gt;&lt;br /&gt;
         clientWait = true;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:weaponState|weaponState]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;Idle&amp;quot;&amp;lt;/span&amp;gt;, 0 );&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:item_he_charge|item_he_charge]]::ToolTipThread_Raise() {&lt;br /&gt;
     myPlayer.[[ScriptEvent:cancelToolTips|cancelToolTips]]();&lt;br /&gt;
     sys.[[ScriptEvent:wait|wait]]( myPlayer.CalcTooltipWait() );&lt;br /&gt;
 &lt;br /&gt;
     WAIT_FOR_TOOLTIP;&lt;br /&gt;
     myPlayer.[[ScriptEvent:sendToolTip|sendToolTip]]( GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_intro_1&amp;quot;&amp;lt;/span&amp;gt; ) ) );&lt;br /&gt;
 &lt;br /&gt;
     WAIT_FOR_TOOLTIP;&lt;br /&gt;
     myPlayer.[[ScriptEvent:sendToolTip|sendToolTip]]( GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_intro_2&amp;quot;&amp;lt;/span&amp;gt; ) ) );&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>