<?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%2Ftools%2Fpliers.script</id>
	<title>Script:Files:script/tools/pliers.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%2Ftools%2Fpliers.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/tools/pliers.script&amp;action=history"/>
	<updated>2026-04-08T11:36:28Z</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/tools/pliers.script&amp;diff=1778&amp;oldid=prev</id>
		<title>Wizz at 18:14, 2 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/tools/pliers.script&amp;diff=1778&amp;oldid=prev"/>
		<updated>2007-11-02T18:14:01Z</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;tool_pliers.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:green&amp;quot;&amp;gt;// blend times&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; PLIERS_IDLE_TO_LOWER        4&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; PLIERS_IDLE_TO_PUNCH        0&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; PLIERS_RAISE_TO_IDLE        4&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; PLIERS_PUNCH_TO_IDLE        1&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; GUI_STATE_IDLE                0&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; GUI_STATE_ARMING            1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt;    GUI_STATE_CONNECTED            2&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:tool_pliers|tool_pliers]] : [[ScriptClass:weapon_base|weapon_base]] {&lt;br /&gt;
 &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;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Lower();&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;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Attack();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        CheckAttack( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; mask );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        StartFireEffect();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        StopFireEffect();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        fireEffectOn;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        AttackValid();&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;void&amp;lt;/span&amp;gt;        Repair();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Arm();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Disarm();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Construct();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Hack();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Possess();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        UpdateGUI();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;handle&amp;lt;/span&amp;gt;        GetTextHandleForState( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; state );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        fireRate;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        repairCount;&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: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;entity&amp;lt;/span&amp;gt;        cachedEntity;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        cachedAction;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        disarmCharge;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        armCharge;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        armNormal;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        canRepair;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        canConstruct;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        canHack;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        canDisguise;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        playingFireSound;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        nextActionFailMessageTime;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        guiHandle;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;handle&amp;lt;/span&amp;gt;        guiTextHandle;&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:tool_pliers|tool_pliers]]::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;
     armNormal        = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;can_arm_normal&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     armCharge        = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;can_arm_charge&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     disarmCharge    = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;can_disarm_charge&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     canRepair        = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;can_repair&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     canConstruct    = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;can_construct&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     canHack            = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;can_hack&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     canDisguise        = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;can_disguise&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
 &lt;br /&gt;
     fireRate        = [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fire_rate&amp;quot;&amp;lt;/span&amp;gt;, 0.1f );&lt;br /&gt;
     repairCount        = [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;repair_count&amp;quot;&amp;lt;/span&amp;gt;, 5.f );&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:getLocalPlayer|getLocalPlayer]]() != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         guiHandle        = [[ScriptEvent:getGUI|getGUI]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;0&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:tool_pliers|tool_pliers]]::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:tool_pliers|tool_pliers]]::destroy() {&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.AI_HOLD_WEAPON = false;&lt;br /&gt;
     }&lt;br /&gt;
     [[ScriptEvent:stopAllEffects|stopAllEffects]]();&lt;br /&gt;
     DestroySound();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( playingFireSound ) {&lt;br /&gt;
         playingFireSound = false;&lt;br /&gt;
         [[ScriptEvent:startSound|startSound]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_stop&amp;quot;&amp;lt;/span&amp;gt;, SND_WEAPON_FIRE );&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:tool_pliers|tool_pliers]]::Lower() {&lt;br /&gt;
     StopFireEffect();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( playingFireSound ) {&lt;br /&gt;
         playingFireSound = false;&lt;br /&gt;
         [[ScriptEvent:startSound|startSound]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_stop&amp;quot;&amp;lt;/span&amp;gt;, SND_WEAPON_FIRE );&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_lower&amp;quot;&amp;lt;/span&amp;gt;, SND_WEAPON_IDLE );&lt;br /&gt;
 &lt;br /&gt;
     Base_Lower();&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:tool_pliers|tool_pliers]]::AttackValid() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt; performAction = CheckAttack( MASK_VEHICLESOLID | CONTENTS_PLAYERCLIP );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !performAction ) {&lt;br /&gt;
         performAction = CheckAttack( CONTENTS_TRIGGER );&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; ( !performAction ) {&lt;br /&gt;
         performAction = CheckAttack( CONTENTS_RENDERMODEL );&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; performAction;&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:tool_pliers|tool_pliers]]::Idle() {&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;
     StopFireEffect();&lt;br /&gt;
 &lt;br /&gt;
     UpdateCharge();&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;
         UpdateGUI();&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_LOWERWEAPON ) {&lt;br /&gt;
             myPlayer.SetProgressBarVisible( false );&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;, PLIERS_IDLE_TO_LOWER );&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 ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( AttackValid() ) {&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !playingFireSound ) {&lt;br /&gt;
                     playingFireSound = true;&lt;br /&gt;
                     [[ScriptEvent:startSound|startSound]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_start&amp;quot;&amp;lt;/span&amp;gt;, SND_WEAPON_FIRE );&lt;br /&gt;
                 }&lt;br /&gt;
 &lt;br /&gt;
                 nextActionFailMessageTime = sys.[[ScriptEvent:getTime|getTime]]() + 2.f;&lt;br /&gt;
 &lt;br /&gt;
                 [[ScriptEvent:weaponState|weaponState]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;Attack&amp;quot;&amp;lt;/span&amp;gt;, PLIERS_IDLE_TO_PUNCH );&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;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; nextActionFailMessageTime ) {&lt;br /&gt;
                         nextActionFailMessageTime = sys.[[ScriptEvent:getTime|getTime]]() + 5.f;&lt;br /&gt;
                         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedAction == AC_NONE ) {&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;
                         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedAction == AC_ENEMY_REPAIR ) {&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_enemy_repair&amp;quot;&amp;lt;/span&amp;gt; ) ) );&lt;br /&gt;
                         }&lt;br /&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;if&amp;lt;/span&amp;gt; ( playingFireSound ) {&lt;br /&gt;
             playingFireSound = false;&lt;br /&gt;
             [[ScriptEvent:startSound|startSound]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_stop&amp;quot;&amp;lt;/span&amp;gt;, SND_WEAPON_FIRE );&lt;br /&gt;
         }&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;void&amp;lt;/span&amp;gt; [[ScriptClass:tool_pliers|tool_pliers]]::StartFireEffect() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !fireEffectOn ) {&lt;br /&gt;
         [[ScriptEvent:playEffect|playEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_fire&amp;quot;&amp;lt;/span&amp;gt;, idleEffectJoint, 1 );&lt;br /&gt;
         fireEffectOn = true;&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:tool_pliers|tool_pliers]]::StopFireEffect() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( fireEffectOn ) {&lt;br /&gt;
         [[ScriptEvent:stopEffect|stopEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_fire&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
         fireEffectOn = false;&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:tool_pliers|tool_pliers]]::Attack() {&lt;br /&gt;
     myPlayer.AI_HOLD_WEAPON = true;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; currentCachedAction = cachedAction;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( [[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;has_startfire_anim&amp;quot;&amp;lt;/span&amp;gt; ) &amp;gt; 0 ) {&lt;br /&gt;
         [[ScriptEvent:playAnim|playAnim]]( ANIMCHANNEL_ALL, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fire_start&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
         waitUntil( [[ScriptEvent:animDone|animDone]]( ANIMCHANNEL_ALL, 0 ) );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     StartFireEffect();&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;
         UpdateGUI();&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedAction == AC_REPAIR ) {&lt;br /&gt;
             Repair();&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedAction == AC_ARM || cachedAction == AC_ARM_CHARGE ) {&lt;br /&gt;
             Arm();&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedAction == AC_DISARM || cachedAction == AC_DISARM_CHARGE ) {&lt;br /&gt;
             Disarm();&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedAction == AC_CONSTRUCT ) {&lt;br /&gt;
             Construct();&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedAction == AC_HACK ) {&lt;br /&gt;
             Hack();&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedAction == AC_POSSESS ) {&lt;br /&gt;
             Possess();&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; finishTime = sys.[[ScriptEvent:getTime|getTime]]() + fireRate;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt; ( sys.[[ScriptEvent:getTime|getTime]]() &amp;lt; finishTime ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( [[ScriptEvent:animDone|animDone]]( ANIMCHANNEL_ALL, PLIERS_PUNCH_TO_IDLE ) ) {&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;
             }&lt;br /&gt;
 &lt;br /&gt;
             sys.[[ScriptEvent:waitFrame|waitFrame]]();&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// re-enable running for any player that had it disabled AFTER the animation (otherwise it's pointless)&amp;lt;/span&amp;gt;&lt;br /&gt;
         myPlayer.[[ScriptEvent:disableRun|disableRun]]( 0.f );&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 ) {&lt;br /&gt;
             break;&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_LOWERWEAPON ) {&lt;br /&gt;
             break;&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; ( !AttackValid() ) {&lt;br /&gt;
             break;&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; ( [[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;has_endfire_anim&amp;quot;&amp;lt;/span&amp;gt; ) &amp;gt; 0 ) {&lt;br /&gt;
         [[ScriptEvent:playAnim|playAnim]]( ANIMCHANNEL_ALL, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fire_end&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
         waitUntil( [[ScriptEvent:animDone|animDone]]( ANIMCHANNEL_ALL, 0 ) );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     myPlayer.AI_HOLD_WEAPON = false;&lt;br /&gt;
 &lt;br /&gt;
     nextActionFailMessageTime = sys.[[ScriptEvent:getTime|getTime]]() + 2.f;&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;, PLIERS_PUNCH_TO_IDLE );&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:tool_pliers|tool_pliers]]::CheckAttack( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; mask ) {&lt;br /&gt;
     cachedEntity = myPlayer.[[ScriptEvent:getCrosshairEntity|getCrosshairEntity]]();&lt;br /&gt;
     cachedAction = AC_NONE;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( myPlayer.[[ScriptEvent:getCrosshairDistance|getCrosshairDistance]]( true ) &amp;gt; meleeDistance ) {&lt;br /&gt;
         cachedEntity = &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; ( cachedEntity == &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:green&amp;quot;&amp;gt;// there is no crosshair entity to take priority&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// try doing a melee trace&amp;lt;/span&amp;gt;&lt;br /&gt;
         [[ScriptEvent:melee|melee]]( mask, meleeDistance, false, false );&lt;br /&gt;
         cachedEntity = [[ScriptEvent:getMeleeEntity|getMeleeEntity]]();&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedEntity == &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;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( armCharge ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedEntity.vCheckActionCode( myPlayer, AC_ARM_CHARGE ) ) {&lt;br /&gt;
             cachedAction = AC_ARM_CHARGE;&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;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( disarmCharge ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedEntity.vCheckActionCode( myPlayer, AC_DISARM_CHARGE ) ) {&lt;br /&gt;
             cachedAction = AC_DISARM_CHARGE;&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;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( canRepair ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedEntity.vCheckActionCode( myPlayer, AC_REPAIR ) ) {&lt;br /&gt;
             cachedAction = AC_REPAIR;&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;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedEntity.vCheckActionCode( myPlayer, AC_ENEMY_REPAIR ) ) {&lt;br /&gt;
             cachedAction = AC_ENEMY_REPAIR;&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;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( armNormal ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedEntity.vCheckActionCode( myPlayer, AC_ARM ) ) {&lt;br /&gt;
             cachedAction = AC_ARM;&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;if&amp;lt;/span&amp;gt; ( cachedEntity.vCheckActionCode( myPlayer, AC_DISARM ) ) {&lt;br /&gt;
             cachedAction = AC_DISARM;&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;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( canConstruct ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedEntity.vCheckActionCode( myPlayer, AC_CONSTRUCT ) ) {&lt;br /&gt;
             cachedAction = AC_CONSTRUCT;&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;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( canHack ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedEntity.vCheckActionCode( myPlayer, AC_HACK ) ) {&lt;br /&gt;
             cachedAction = AC_HACK;&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;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( canDisguise ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedEntity.vCheckActionCode( myPlayer, AC_POSSESS ) ) {&lt;br /&gt;
             cachedAction = AC_POSSESS;&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;
 &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;void&amp;lt;/span&amp;gt; [[ScriptClass:tool_pliers|tool_pliers]]::Construct() {&lt;br /&gt;
     myPlayer.[[ScriptEvent:disableRun|disableRun]]( 1.f );&lt;br /&gt;
     cachedEntity.vConstruct( myPlayer );&lt;br /&gt;
     myPlayer.ShowProgressBar( cachedEntity, AC_CONSTRUCT );&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:tool_pliers|tool_pliers]]::Hack() {&lt;br /&gt;
     myPlayer.[[ScriptEvent:disableRun|disableRun]]( 1.f );&lt;br /&gt;
     cachedEntity.vHack( myPlayer );&lt;br /&gt;
     myPlayer.ShowProgressBar( cachedEntity, AC_HACK );&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:tool_pliers|tool_pliers]]::Possess() {&lt;br /&gt;
     myPlayer.[[ScriptEvent:disableRun|disableRun]]( 1.f );&lt;br /&gt;
     cachedEntity.vPossess( myPlayer );&lt;br /&gt;
     myPlayer.ShowProgressBar( cachedEntity, AC_POSSESS );&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:tool_pliers|tool_pliers]]::Repair() {&lt;br /&gt;
     myPlayer.[[ScriptEvent:disableRun|disableRun]]( 1.f );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; scale = 1.f;&lt;br /&gt;
     [[ScriptClass:team_base|team_base]] team = myPlayer.[[ScriptEvent:getGameTeam|getGameTeam]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( team.HasRepairBonus( myPlayer ) ) {&lt;br /&gt;
         scale = 1.20f;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     cachedEntity.vRepair( repairCount * scale, myPlayer );&lt;br /&gt;
     myPlayer.ShowProgressBar( cachedEntity, AC_REPAIR );&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:tool_pliers|tool_pliers]]::Disarm() {&lt;br /&gt;
     cachedEntity.vArm( myPlayer );&lt;br /&gt;
     myPlayer.ShowProgressBar( cachedEntity, AC_DISARM );&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:tool_pliers|tool_pliers]]::Arm() {&lt;br /&gt;
     cachedEntity.vArm( myPlayer );&lt;br /&gt;
     myPlayer.ShowProgressBar( cachedEntity, AC_ARM );&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:tool_pliers|tool_pliers]]::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;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:tool_pliers|tool_pliers]]::UpdateGUI() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( myPlayer != sys.[[ScriptEvent:getLocalViewPlayer|getLocalViewPlayer]]() || guiHandle == GUI_INVALID ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&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;float&amp;lt;/span&amp;gt; guiState = GUI_STATE_IDLE;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( myPlayer.AI_HOLD_WEAPON ) {&lt;br /&gt;
         guiState = GUI_STATE_ARMING;&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( CheckAttack( MASK_VEHICLESOLID | CONTENTS_PLAYERCLIP ) ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( cachedAction == AC_ARM || cachedAction == AC_ARM_CHARGE ) {&lt;br /&gt;
             guiState = GUI_STATE_CONNECTED;&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     guiTextHandle = GetTextHandleForState( guiState );&lt;br /&gt;
     sys.[[ScriptEvent:setGUIHandle|setGUIHandle]]( GUI_GLOBALS_HANDLE, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;armTool.statusTextHandle&amp;quot;&amp;lt;/span&amp;gt;, guiTextHandle );&lt;br /&gt;
     sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( GUI_GLOBALS_HANDLE, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;armTool.isSearching&amp;quot;&amp;lt;/span&amp;gt;, guiState == GUI_STATE_IDLE );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;handle&amp;lt;/span&amp;gt; [[ScriptClass:tool_pliers|tool_pliers]]::GetTextHandleForState( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; state ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( state == GUI_STATE_ARMING ) {                    &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; sys.[[ScriptEvent:localizeString|localizeString]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;game/arm/arming&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( state == GUI_STATE_CONNECTED ) {        &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; sys.[[ScriptEvent:localizeString|localizeString]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;game/arm/connected&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( state == GUI_STATE_IDLE ) {                &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; sys.[[ScriptEvent:localizeString|localizeString]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;game/arm/search&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {                                            sys.[[ScriptEvent:assert|assert]]( 0 );&lt;br /&gt;
     }&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; 0;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>