<?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%2Fweapons%2Fgrenade.script</id>
	<title>Script:Files:script/weapons/grenade.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%2Fweapons%2Fgrenade.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/weapons/grenade.script&amp;action=history"/>
	<updated>2026-04-07T16:56:40Z</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/weapons/grenade.script&amp;diff=1754&amp;oldid=prev</id>
		<title>Wizz at 18:05, 2 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/weapons/grenade.script&amp;diff=1754&amp;oldid=prev"/>
		<updated>2007-11-02T18:05:52Z</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;weapon_grenade.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;#define&amp;lt;/span&amp;gt; GRENADE_MINRELEASETIME        0.05&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; GRENADE_QUICKTHROWTIME        0.2&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; GRENADE_MINPOWER            0.25&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; GRENADE_MAXPOWER            1.5&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:weapon_grenade|weapon_grenade]] : [[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;        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;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        OwnerDied();&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;        powerMultiplier;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        throwQuick;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        throwNormal;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        fuseStart;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        allowAltFire;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        rollAltFire;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        currentMode;&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;
     &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;boolean&amp;lt;/span&amp;gt;        AllowSprint();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt;        projectile;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;//mal: gonna need this to get the times on grenades.&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;        GetFuseStart() { &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; fuseStart; }&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:weapon_grenade|weapon_grenade]]::preinit() {&lt;br /&gt;
     powerMultiplier = 200;&lt;br /&gt;
     fuseStart = -1;&lt;br /&gt;
     allowAltFire = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;allow_alt_fire&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     rollAltFire = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;roll_alt_fire&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     idleEffectOn = 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:weapon_grenade|weapon_grenade]]::init() {&lt;br /&gt;
 &lt;br /&gt;
     throwQuick = [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;throw_quick&amp;quot;&amp;lt;/span&amp;gt;, 0.2f );&lt;br /&gt;
     throwNormal = [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;throw_normal&amp;quot;&amp;lt;/span&amp;gt;, 0.2f );&lt;br /&gt;
 &lt;br /&gt;
     ShowUseCount();&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: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:weapon_grenade|weapon_grenade]]::destroy() {&lt;br /&gt;
     HideUseCount();&lt;br /&gt;
     [[ScriptEvent:stopAllEffects|stopAllEffects]]();&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]]( 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:weapon_grenade|weapon_grenade]]::Idle() {&lt;br /&gt;
     myPlayer.[[ScriptEvent:freeze|freeze]]( false );&lt;br /&gt;
 &lt;br /&gt;
     fuseStart = -1;&lt;br /&gt;
 &lt;br /&gt;
     StartIdleEffect();&lt;br /&gt;
 &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;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt;( 1 ) {&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;, 4 );&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:ammoAvailable|ammoAvailable]]( 0 ) &amp;gt; [[ScriptEvent:ammoInClip|ammoInClip]]( 0 ) ) &amp;amp;&amp;amp; ( [[ScriptEvent:ammoInClip|ammoInClip]]( 0 ) &amp;lt; [[ScriptEvent:clipSize|clipSize]]( 0 ) ) ) {&lt;br /&gt;
             [[ScriptEvent:addToClip|addToClip]]( 0, 1 );&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:ammoInClip|ammoInClip]]( 0 ) != 0 ) {&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;
                 myPlayer.[[ScriptEvent:disableSprint|disableSprint]]( 1.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:getTime|getTime]]() &amp;gt; reFire ) {&lt;br /&gt;
                     StopIdleEffect();&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;, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;joint2&amp;quot;&amp;lt;/span&amp;gt;, 0 );&lt;br /&gt;
 &lt;br /&gt;
                     currentMode = 0;&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;, 4 );&lt;br /&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; ( allowAltFire &amp;amp;&amp;amp; WEAPON_ALTFIRE ) {&lt;br /&gt;
                 myPlayer.[[ScriptEvent:disableSprint|disableSprint]]( 1.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:getTime|getTime]]() &amp;gt; reFire ) {&lt;br /&gt;
                     StopIdleEffect();&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;, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;joint2&amp;quot;&amp;lt;/span&amp;gt;, 0 );&lt;br /&gt;
 &lt;br /&gt;
                     currentMode = 1;&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;, 4 );&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; ( AllowSprint() ) {&lt;br /&gt;
             myPlayer.[[ScriptEvent:disableSprint|disableSprint]]( 0.f );&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( myPlayer.AI_SPRINT ) {&lt;br /&gt;
                 StopIdleEffect();&lt;br /&gt;
                 [[ScriptEvent:weaponState|weaponState]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;Sprint&amp;quot;&amp;lt;/span&amp;gt;, 4 );&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;
             myPlayer.[[ScriptEvent:disableSprint|disableSprint]]( 1.f );&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:weapon_grenade|weapon_grenade]]::Fire() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt; animStart, animQuickThrow, animThrow;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; fuse;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; fuseEnd;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; currentTime;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; timeHeld;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; power;&lt;br /&gt;
 &lt;br /&gt;
     cancelFire = false;&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.AI_PRONE ) {&lt;br /&gt;
         myPlayer.[[ScriptEvent:freeze|freeze]]( 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; ( currentMode == 0 ) {&lt;br /&gt;
         animStart = &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;throw_start&amp;quot;&amp;lt;/span&amp;gt;;&lt;br /&gt;
         animQuickThrow = &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;throw_quick&amp;quot;&amp;lt;/span&amp;gt;;&lt;br /&gt;
         animThrow = &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;throw&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; {&lt;br /&gt;
         animStart = &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;alt_throw_start&amp;quot;&amp;lt;/span&amp;gt;;&lt;br /&gt;
         animQuickThrow = &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;alt_throw_quick&amp;quot;&amp;lt;/span&amp;gt;;&lt;br /&gt;
         animThrow = &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;alt_throw&amp;quot;&amp;lt;/span&amp;gt;;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:playAnim|playAnim]]( ANIMCHANNEL_ALL, animStart );&lt;br /&gt;
 &lt;br /&gt;
     fuse = 4.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; ( ShouldRunGuis() ) {&lt;br /&gt;
         [[ScriptEvent:startSound|startSound]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_grenade_timer&amp;quot;&amp;lt;/span&amp;gt;, SND_WEAPON_SIG );&lt;br /&gt;
         sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( GUI_GLOBALS_HANDLE, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;gameHud.weaponGrenadeExpireTime&amp;quot;&amp;lt;/span&amp;gt;, 0 ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// make sure to override any previous grenades&amp;lt;/span&amp;gt;&lt;br /&gt;
         sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( GUI_GLOBALS_HANDLE, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;gameHud.weaponGrenadeExpireTime&amp;quot;&amp;lt;/span&amp;gt;, fuse );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     currentTime = sys.[[ScriptEvent:getTime|getTime]]();&lt;br /&gt;
     fuseStart = currentTime;&lt;br /&gt;
     fuseEnd = currentTime + fuse;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( currentMode == 0 ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt;( currentTime &amp;lt; fuseEnd ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( ( currentTime &amp;gt; fuseStart + GRENADE_MINRELEASETIME ) &amp;amp;&amp;amp; !WEAPON_ATTACK ) {&lt;br /&gt;
                 break;&lt;br /&gt;
             }&lt;br /&gt;
             sys.[[ScriptEvent:waitFrame|waitFrame]]();&lt;br /&gt;
             currentTime = sys.[[ScriptEvent:getTime|getTime]]();&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:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt;( currentTime &amp;lt; fuseEnd ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( ( currentTime &amp;gt; fuseStart + GRENADE_MINRELEASETIME ) &amp;amp;&amp;amp; !WEAPON_ALTFIRE ) {&lt;br /&gt;
                 break;&lt;br /&gt;
             }&lt;br /&gt;
             sys.[[ScriptEvent:waitFrame|waitFrame]]();&lt;br /&gt;
             currentTime = sys.[[ScriptEvent:getTime|getTime]]();&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     timeHeld = sys.[[ScriptEvent:getTime|getTime]]() - fuseStart;&lt;br /&gt;
     power = timeHeld + GRENADE_MINPOWER;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( power &amp;gt; GRENADE_MAXPOWER ) {&lt;br /&gt;
         power = GRENADE_MAXPOWER;&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; ( timeHeld &amp;lt; GRENADE_QUICKTHROWTIME ) {&lt;br /&gt;
         [[ScriptEvent:playAnim|playAnim]]( ANIMCHANNEL_ALL, animQuickThrow );&lt;br /&gt;
         sys.[[ScriptEvent:wait|wait]]( throwQuick );&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
         [[ScriptEvent:playAnim|playAnim]]( ANIMCHANNEL_ALL, animThrow );&lt;br /&gt;
         sys.[[ScriptEvent:wait|wait]]( throwNormal );&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; ( myPlayer == sys.[[ScriptEvent:getLocalPlayer|getLocalPlayer]]() ) {&lt;br /&gt;
         [[ScriptEvent:stopSound|stopSound]]( SND_WEAPON_SIG );&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; ( cancelFire ) {&lt;br /&gt;
         myPlayer.[[ScriptEvent:freeze|freeze]]( false );&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( ShouldRunGuis() ) {&lt;br /&gt;
             sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( GUI_GLOBALS_HANDLE, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;gameHud.weaponGrenadeExpireTime&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; ( ![[ScriptEvent:ammoAvailable|ammoAvailable]]( 0 ) ) {&lt;br /&gt;
             myPlayer.[[ScriptEvent:selectBestWeapon|selectBestWeapon]]( false );&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;, 4 );&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_fireinthehole&amp;quot;&amp;lt;/span&amp;gt;, SND_PLAYER_VO );&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;
         projectile = [[ScriptEvent:createProjectile|createProjectile]]( currentMode );&lt;br /&gt;
         projectile.[[ScriptEvent:addOwner|addOwner]]( [[ScriptEvent:getOwner|getOwner]]() );&lt;br /&gt;
         [[ScriptEvent:launchProjectiles|launchProjectiles]]( numProjectiles, currentMode, 0, sys.[[ScriptEvent:getTime|getTime]]() - fuseStart, power * powerMultiplier, 1.0 );&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;//vector newVelocity = projectile.getLinearVelocity() + myPlayer.getLinearVelocity();&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; newVelocity = projectile.[[ScriptEvent:getLinearVelocity|getLinearVelocity]]();&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( currentMode == 1 &amp;amp;&amp;amp; rollAltFire ) {&lt;br /&gt;
             newVelocity = newVelocity + [[ScriptEvent:getVectorKey|getVectorKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;roll_velocity&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
         }&lt;br /&gt;
         projectile.[[ScriptEvent:setLinearVelocity|setLinearVelocity]]( newVelocity );&lt;br /&gt;
         myPlayer.[[ScriptEvent:setPlayerGrenadeState|setPlayerGrenadeState]]( projectile, false ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;//mal: let the bots know there is a grenade out there in the world!&amp;lt;/span&amp;gt;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     UseAmmo( 0 );&lt;br /&gt;
 &lt;br /&gt;
     reFire = sys.[[ScriptEvent:getTime|getTime]]() + fireRate;&lt;br /&gt;
 &lt;br /&gt;
     fuseStart = -1;&lt;br /&gt;
 &lt;br /&gt;
     waitUntil( [[ScriptEvent:animDone|animDone]]( ANIMCHANNEL_ALL, 4 ) );&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:ammoAvailable|ammoAvailable]]( 0 ) ) {&lt;br /&gt;
         myPlayer.[[ScriptEvent:selectBestWeapon|selectBestWeapon]]( false );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     myPlayer.[[ScriptEvent:freeze|freeze]]( false );&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;, 4 );&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:weapon_grenade|weapon_grenade]]::OwnerDied() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; timeHeld;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( fuseStart != -1 ) {&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;
             timeHeld = sys.[[ScriptEvent:getTime|getTime]]() - fuseStart;&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; projectile = [[ScriptEvent:createProjectile|createProjectile]]( currentMode );&lt;br /&gt;
             projectile.[[ScriptEvent:addOwner|addOwner]]( [[ScriptEvent:getOwner|getOwner]]() );&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// allow grenade to drop&amp;lt;/span&amp;gt;&lt;br /&gt;
             [[ScriptEvent:launchProjectiles|launchProjectiles]]( numProjectiles, currentMode, 0, timeHeld, 0, 1.0 );&lt;br /&gt;
             myPlayer.[[ScriptEvent:setPlayerGrenadeState|setPlayerGrenadeState]]( projectile, false ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;//mal: let the bots know there is a grenade out there in the world!&amp;lt;/span&amp;gt;&lt;br /&gt;
             projectile.[[ScriptEvent:setLinearVelocity|setLinearVelocity]]( g_vectorZero );&lt;br /&gt;
 &lt;br /&gt;
             UseAmmo( 0 );&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         fuseStart = -1;&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:weapon_grenade|weapon_grenade]]::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;boolean&amp;lt;/span&amp;gt; [[ScriptClass:weapon_grenade|weapon_grenade]]::AllowSprint() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; sys.[[ScriptEvent:getTime|getTime]]() &amp;gt; reFire;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>