<?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%2Fmaps%2Fgeneric%2Fhackable_objective.script</id>
	<title>Script:Files:script/maps/generic/hackable objective.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%2Fmaps%2Fgeneric%2Fhackable_objective.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/maps/generic/hackable_objective.script&amp;action=history"/>
	<updated>2026-04-08T13:08:44Z</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/maps/generic/hackable_objective.script&amp;diff=1894&amp;oldid=prev</id>
		<title>Wizz at 10:15, 5 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/maps/generic/hackable_objective.script&amp;diff=1894&amp;oldid=prev"/>
		<updated>2007-11-05T10:15:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; [[ScriptClass:hackable_objective|hackable_objective]] {&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;                    syncFields();&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;float&amp;lt;/span&amp;gt;                    vGetPliersProgressBarValue( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; action );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                    vCheckActionCode( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; actionCode );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    vMakePrimaryObjective( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt; value );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    vCreateMission();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    vFreeMission();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    vCompleteMission();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    OnUpdateGui( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    OnActivate( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; distance );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    OnUpdateCrosshairInfo( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                    HasHackContext( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; other );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    GetActivateCode( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; distance );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    OnHacked( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    OnHacked_Base( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    OnIsPrimaryObjectiveChanged();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    OnHackCountChanged();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    SetObjectiveIndicator();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    ClearObjectiveIndicator();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    UpdateObjectiveProgress();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    CalcObjectiveProgress();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    UpdateObjectiveThread();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    SetObjectiveReminderTime( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; time );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    KillFizzleThread();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    CreateFizzleThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delay );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    OnFizzled();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    FizzleThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delay );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    SetObjectiveIndex( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; index );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                    AllowHack() { &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;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    vHack( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;                    vGetObjectiveString() { &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;hackObjective&amp;quot;&amp;lt;/span&amp;gt;; }&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptClass:team_base|team_base]]                baseTeam;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                    isPrimaryObjective;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                    vIsPrimaryObjective() { &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; isPrimaryObjective; }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    vOnContextDefend( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                    vOnContextHack( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    hackCount;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    maxHackCount;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    objectiveIndex;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    objectiveGUI;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;handle&amp;lt;/span&amp;gt;                    progressMessage;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    nextProgressMessageTime;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    infoToolTip;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    useMeToolTip1;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    useMeToolTip2;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;handle&amp;lt;/span&amp;gt;                    objectName;&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptClass:task|task]]                    missionTask;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    fizzleTime;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    fizzleEndTime;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                    fizzleThreadActive;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    hackProficiency;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt;                    hacker;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    lastHackTime;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                    forceMessage;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                    nextObjectiveReminderTime;&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptClass:flashpoint_obj|flashpoint_obj]]            flashpoint;&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:hackable_objective|hackable_objective]]::preinit() {&lt;br /&gt;
     [[ScriptEvent:setGameTeam|setGameTeam]]( sys.[[ScriptEvent:getTeam|getTeam]]( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;team&amp;quot;&amp;lt;/span&amp;gt; ) ) );&lt;br /&gt;
 &lt;br /&gt;
     hackProficiency    = GetProficiency( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;prof_hack&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
 &lt;br /&gt;
     baseTeam        = [[ScriptEvent:getGameTeam|getGameTeam]]();&lt;br /&gt;
     objectiveIndex    = [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;objective_index&amp;quot;&amp;lt;/span&amp;gt;, -1 );&lt;br /&gt;
 &lt;br /&gt;
     fizzleTime        = [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fizzle_time&amp;quot;&amp;lt;/span&amp;gt;, 60.f );&lt;br /&gt;
 &lt;br /&gt;
     progressMessage = sys.[[ScriptEvent:localizeString|localizeString]]( [[ScriptEvent:getKeyWithDefault|getKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;progress_message&amp;quot;&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;maps/generic/obj_hacking&amp;quot;&amp;lt;/span&amp;gt; ) ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;//&amp;quot;is hacking the objective!&amp;quot; );&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     maxHackCount    = [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;hack_count&amp;quot;&amp;lt;/span&amp;gt;, 100.f );&lt;br /&gt;
     objectName        = sys.[[ScriptEvent:localizeString|localizeString]]( [[ScriptEvent:getKeyWithDefault|getKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;object_name&amp;quot;&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;maps/generic/obj_hackable&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
 &lt;br /&gt;
     forceMessage    = false;&lt;br /&gt;
 &lt;br /&gt;
     infoToolTip        = GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_intro_info&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
     useMeToolTip1    = GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_intro_use_me_1&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
     useMeToolTip2    = GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_intro_use_me_2&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
 &lt;br /&gt;
     objectiveGUI = -1;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;use_objective_gui&amp;quot;&amp;lt;/span&amp;gt; ) ) {&lt;br /&gt;
         objectiveGUI = [[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:hackable_objective|hackable_objective]]::syncFields() {&lt;br /&gt;
     [[ScriptEvent:sync|sync]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;hackCount&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     [[ScriptEvent:syncCallback|syncCallback]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;hackCount&amp;quot;&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;OnHackCountChanged&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:hackable_objective|hackable_objective]]::destroy() {&lt;br /&gt;
     vFreeMission();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( flashpoint != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         delete flashpoint;&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; ( isPrimaryObjective ) {&lt;br /&gt;
         ClearObjectiveIndicator();&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:hackable_objective|hackable_objective]]::OnIsPrimaryObjectiveChanged() {&lt;br /&gt;
     ClearObjectiveIndicator();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( isPrimaryObjective ) {&lt;br /&gt;
         SetObjectiveIndicator();&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:hackable_objective|hackable_objective]]::SetObjectiveReminderTime( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; time ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( time &amp;gt; nextObjectiveReminderTime ) {&lt;br /&gt;
         nextObjectiveReminderTime = time;&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:hackable_objective|hackable_objective]]::UpdateObjectiveThread() {&lt;br /&gt;
     waitUntil( objManager.gameState == GS_GAMEON );&lt;br /&gt;
 &lt;br /&gt;
     objManager.PlaySound( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_intro_strogg&amp;quot;&amp;lt;/span&amp;gt; ), stroggTeam );&lt;br /&gt;
     objManager.PlaySound( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_intro_gdf&amp;quot;&amp;lt;/span&amp;gt; ), gdfTeam );&lt;br /&gt;
 &lt;br /&gt;
     SetObjectiveReminderTime( sys.[[ScriptEvent:getTime|getTime]]() + OBJECTIVEMESSAGE_WAIT_TIME );&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;
         UpdateObjectiveProgress();&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; ( sys.[[ScriptEvent:getTime|getTime]]() &amp;gt;= nextObjectiveReminderTime ) {&lt;br /&gt;
                 objManager.PlaySound( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_reminder_strogg&amp;quot;&amp;lt;/span&amp;gt; ), stroggTeam );&lt;br /&gt;
                 objManager.PlaySound( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_reminder_gdf&amp;quot;&amp;lt;/span&amp;gt; ), gdfTeam );&lt;br /&gt;
 &lt;br /&gt;
                 SetObjectiveReminderTime( sys.[[ScriptEvent:getTime|getTime]]() + OBJECTIVEMESSAGE_WAIT_TIME );&lt;br /&gt;
             }&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:hackable_objective|hackable_objective]]::SetObjectiveIndicator() {&lt;br /&gt;
     UpdateObjectiveProgress();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;thread&amp;lt;/span&amp;gt; UpdateObjectiveThread();&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;
         sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( GUI_GLOBALS_HANDLE, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;hackObjective.active&amp;quot;&amp;lt;/span&amp;gt;, 1.f );&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;void&amp;lt;/span&amp;gt; [[ScriptClass:hackable_objective|hackable_objective]]::ClearObjectiveIndicator() {&lt;br /&gt;
     sys.[[ScriptEvent:killThread|killThread]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;UpdateObjectiveThread_&amp;quot;&amp;lt;/span&amp;gt; + [[ScriptEvent:getName|getName]]() );&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;
         sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( GUI_GLOBALS_HANDLE, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;hackObjective.active&amp;quot;&amp;lt;/span&amp;gt;, 0.f );&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:hackable_objective|hackable_objective]]::UpdateObjectiveProgress() {&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;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; progress = CalcObjectiveProgress();&lt;br /&gt;
         sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( GUI_GLOBALS_HANDLE, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;hackObjective.progress&amp;quot;&amp;lt;/span&amp;gt;, progress );        &lt;br /&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; [[ScriptClass:hackable_objective|hackable_objective]]::CalcObjectiveProgress() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; hackCount / maxHackCount;&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:hackable_objective|hackable_objective]]::vMakePrimaryObjective( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt; value ) {&lt;br /&gt;
     isPrimaryObjective = value;&lt;br /&gt;
 &lt;br /&gt;
     OnIsPrimaryObjectiveChanged();&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:hackable_objective|hackable_objective]]::vCheckActionCode( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; actionCode ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( objManager.gameState != GS_GAMEON ) {&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; ( actionCode == AC_HACK &amp;amp;&amp;amp; AllowHack() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p.[[ScriptEvent:getGameTeam|getGameTeam]]() == baseTeam ) {&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;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; [[ScriptEvent:getEntityAllegiance|getEntityAllegiance]]( p ) == TA_ENEMY;&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:hackable_objective|hackable_objective]]::OnHacked( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p ) {&lt;br /&gt;
     OnHacked_Base( p );&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:hackable_objective|hackable_objective]]::OnHacked_Base( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; newTeam = p.[[ScriptEvent:getGameTeam|getGameTeam]]();    &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 = newTeam.[[ScriptEvent:getName|getName]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( objectiveIndex != -1 ) {&lt;br /&gt;
         statName = statName + &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;_primary&amp;quot;&amp;lt;/span&amp;gt;;&lt;br /&gt;
         objManager.CompleteObjective( objectiveIndex, p );&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
         statName = statName + &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;_secondary&amp;quot;&amp;lt;/span&amp;gt;;&lt;br /&gt;
     }&lt;br /&gt;
     statName = statName + &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;_objective_hacked&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; ( p != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         sys.[[ScriptEvent:increaseStatInt|increaseStatInt]]( sys.[[ScriptEvent:allocStatInt|allocStatInt]]( statName ), p.[[ScriptEvent:getEntityNumber|getEntityNumber]](), 1 );&lt;br /&gt;
         sys.[[ScriptEvent:increaseStatInt|increaseStatInt]]( sys.[[ScriptEvent:allocStatInt|allocStatInt]]( newTeam.[[ScriptEvent:getName|getName]]() + &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;_hack_uses&amp;quot;&amp;lt;/span&amp;gt; ), p.[[ScriptEvent:getEntityNumber|getEntityNumber]](), 1 );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     objManager.OnHackComplete( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;self&amp;lt;/span&amp;gt; );&lt;br /&gt;
 &lt;br /&gt;
     G_PlayObjectiveCompletedRollEnt( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;self&amp;lt;/span&amp;gt; );&lt;br /&gt;
     objManager.PlaySound( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_finished_strogg&amp;quot;&amp;lt;/span&amp;gt; ), stroggTeam );&lt;br /&gt;
     objManager.PlaySound( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_finished_gdf&amp;quot;&amp;lt;/span&amp;gt; ), gdfTeam );&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:setGameTeam|setGameTeam]]( newTeam );&lt;br /&gt;
 &lt;br /&gt;
     KillFizzleThread();&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:hackable_objective|hackable_objective]]::OnUpdateGui( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;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;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( 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;if&amp;lt;/span&amp;gt; ( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;self&amp;lt;/span&amp;gt;.[[ScriptEvent:getEntityAllegiance|getEntityAllegiance]]( p ) != TA_FRIEND ) {&lt;br /&gt;
         sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( guiHandle, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;disabled&amp;quot;&amp;lt;/span&amp;gt;, 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;
         sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( guiHandle, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;disabled&amp;quot;&amp;lt;/span&amp;gt;, 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;boolean&amp;lt;/span&amp;gt; [[ScriptClass:hackable_objective|hackable_objective]]::HasHackContext( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; other ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; otherTeam = other.[[ScriptEvent:getGameTeam|getGameTeam]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( otherTeam == baseTeam ) {&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; ( otherTeam == [[ScriptEvent:getGameTeam|getGameTeam]]() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !AllowHack() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; true;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; [[ScriptClass:hackable_objective|hackable_objective]]::GetActivateCode( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; distance ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( objManager.gameState != GS_GAMEON ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; AK_INWARMUP;&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; ( p.[[ScriptEvent:getViewingEntity|getViewingEntity]]() != p ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; AK_NONE;&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; ( p.[[ScriptEvent:getHealth|getHealth]]() &amp;lt;= 0 ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; AK_NONE;&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; allegiance = [[ScriptEvent:getEntityAllegiance|getEntityAllegiance]]( p );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p.[[ScriptEvent:getGameTeam|getGameTeam]]() == baseTeam ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; AK_NONE;&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; ( p.[[ScriptEvent:getGameTeam|getGameTeam]]() == [[ScriptEvent:getGameTeam|getGameTeam]]() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; AK_NONE;&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; ( distance &amp;lt; DISTANCE_FOR_ACTION ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( AllowHack() ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p.[[ScriptEvent:hasAbility|hasAbility]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;hack&amp;quot;&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; AK_HACK;&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; AK_NONE;&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; [[ScriptClass:hackable_objective|hackable_objective]]::OnUpdateCrosshairInfo( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p ) {&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;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; 1.f;&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; allegiance = [[ScriptEvent:getEntityAllegiance|getEntityAllegiance]]( p );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; color = GetAllegianceColor( allegiance );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; distance = [[ScriptEvent:chGetDistance|chGetDistance]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; range = InchesToMetres( distance );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; health = [[ScriptEvent:getHealth|getHealth]]();&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:chSetNumLines|chSetNumLines]]( 0 );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; index;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p.[[ScriptEvent:isLocalPlayer|isLocalPlayer]]() &amp;amp;&amp;amp; objectiveIndex != -1 ) {&lt;br /&gt;
         p.[[ScriptEvent:sendToolTip|sendToolTip]]( infoToolTip );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// see if theres a valid action to perform&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; code = GetActivateCode( p, distance );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( code != AK_NONE &amp;amp;&amp;amp; p.vHasActionItem( code ) ) {&lt;br /&gt;
         index = [[ScriptEvent:chAddLine|chAddLine]]();&lt;br /&gt;
         [[ScriptEvent:chSetLineMaterial|chSetLineMaterial]]( index, p.vGetActionIcon( code ) );&lt;br /&gt;
         [[ScriptEvent:chSetLineType|chSetLineType]]( index, CI_IMAGE );&lt;br /&gt;
         [[ScriptEvent:chSetLineSize|chSetLineSize]]( index, 64, 64 );&lt;br /&gt;
         [[ScriptEvent:chSetLineColor|chSetLineColor]]( index, g_colorWhite, 0.9f );&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p.[[ScriptEvent:isLocalPlayer|isLocalPlayer]]() ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !p.[[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]]() - p.[[ScriptEvent:getCrosshairStartTime|getCrosshairStartTime]]() &amp;gt; 1.f ) {&lt;br /&gt;
                     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p.[[ScriptEvent:getCurrentWeapon|getCurrentWeapon]]() != p.vGetActionItem( code ) ) {&lt;br /&gt;
                         p.[[ScriptEvent:sendToolTip|sendToolTip]]( useMeToolTip1 );&lt;br /&gt;
                     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
                         p.[[ScriptEvent:sendToolTip|sendToolTip]]( useMeToolTip2 );&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;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( code == AK_INWARMUP ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p.[[ScriptEvent:isLocalPlayer|isLocalPlayer]]() &amp;amp;&amp;amp; distance &amp;lt; DISTANCE_FOR_ACTION ) {&lt;br /&gt;
             [[ScriptClass:team_base|team_base]] team = p.[[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 != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
                 p.[[ScriptEvent:sendToolTip|sendToolTip]]( GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_noobjective&amp;quot;&amp;lt;/span&amp;gt; ) ) );&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     index = [[ScriptEvent:chAddLine|chAddLine]]();&lt;br /&gt;
     [[ScriptEvent:chSetLineTextIndex|chSetLineTextIndex]]( index, objectName );&lt;br /&gt;
     [[ScriptEvent:chSetLineColor|chSetLineColor]]( index, color, 1.f );&lt;br /&gt;
     [[ScriptEvent:chSetLineType|chSetLineType]]( index, CI_TEXT );&lt;br /&gt;
     [[ScriptEvent:chSetLineSize|chSetLineSize]]( index, 0, 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; 1.f;&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; [[ScriptClass:hackable_objective|hackable_objective]]::vGetPliersProgressBarValue( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; action ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( action == AC_HACK ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; hackCount / maxHackCount;&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; 0.f;&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:hackable_objective|hackable_objective]]::vHack( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; time = sys.[[ScriptEvent:getTime|getTime]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; oldHacker = hacker;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( hacker == &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; || lastHackTime &amp;lt; time - 2 ) {&lt;br /&gt;
         hacker = p;&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( lastHackTime &amp;lt; time - 10 ) {&lt;br /&gt;
             oldHacker = &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&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;if&amp;lt;/span&amp;gt; ( objectiveIndex != -1 || forceMessage ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p == hacker ) {&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; nextProgressMessageTime ) {&lt;br /&gt;
                 objManager.PushCPrintString( p.[[ScriptEvent:getUserName|getUserName]]() );&lt;br /&gt;
                 objManager.CPrintEvent( progressMessage, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; );&lt;br /&gt;
                 nextProgressMessageTime = sys.[[ScriptEvent:getTime|getTime]]() + 5.f;&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; ( hacker != oldHacker ) {&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;
                     objManager.[[ScriptEvent:setBotActionStateForEvent|setBotActionStateForEvent]]( ACTION_STATE_START_HACK, hacker ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;//mal: let the bots know someone is hacking the obj!&amp;lt;/span&amp;gt;&lt;br /&gt;
                 }&lt;br /&gt;
 &lt;br /&gt;
                 objManager.PlaySound( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_hacking_strogg&amp;quot;&amp;lt;/span&amp;gt; ), stroggTeam );&lt;br /&gt;
                 objManager.PlaySound( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_hacking_gdf&amp;quot;&amp;lt;/span&amp;gt; ), gdfTeam );&lt;br /&gt;
 &lt;br /&gt;
                 SetObjectiveReminderTime( sys.[[ScriptEvent:getTime|getTime]]() + ( OBJECTIVEMESSAGE_WAIT_TIME * 0.5f ) );&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     lastHackTime = time;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( hackCount &amp;gt;= maxHackCount ) {&lt;br /&gt;
         hackCount = 0;&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; count = 1;&lt;br /&gt;
     [[ScriptClass:team_base|team_base]] team = p.[[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.HasFastHackBonus( p ) ) {&lt;br /&gt;
         count = count * 1.25f;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     hackCount = hackCount + count;&lt;br /&gt;
     OnHackCountChanged();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( hackProficiency != -1 ) {&lt;br /&gt;
         p.[[ScriptEvent:giveProficiency|giveProficiency]]( hackProficiency, ( count / maxHackCount ), missionTask, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;hacking objective&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;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; ( hackCount &amp;gt;= maxHackCount ) {&lt;br /&gt;
             OnHacked( p );&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; ( fizzleTime &amp;gt; 0.f ) {&lt;br /&gt;
                 CreateFizzleThread( fizzleTime );&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;float&amp;lt;/span&amp;gt; [[ScriptClass:hackable_objective|hackable_objective]]::OnActivate( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; distance ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( distance &amp;gt; 128.f ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; 0.0f;&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; ( p.[[ScriptEvent:getViewingEntity|getViewingEntity]]() != p ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; 0.0f;&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; ( vCheckActionCode( p, AC_HACK ) ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p.[[ScriptEvent:isDisguised|isDisguised]]() ) {&lt;br /&gt;
             p.[[ScriptEvent:disguise|disguise]]( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; );&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         [[ScriptClass:team_base|team_base]] team = p.[[ScriptEvent:getGameTeam|getGameTeam]]();&lt;br /&gt;
         team.SelectActionItem( p, AK_HACK );&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; 1.f;&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:hackable_objective|hackable_objective]]::SetObjectiveIndex( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; index ) {&lt;br /&gt;
     objectiveIndex = index;&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:hackable_objective|hackable_objective]]::vCreateMission() {&lt;br /&gt;
     vFreeMission();&lt;br /&gt;
     missionTask = taskManager.[[ScriptEvent:allocEntityTask|allocEntityTask]]( GetPlayerTask( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;task_hack&amp;quot;&amp;lt;/span&amp;gt; ) ), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;self&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:hackable_objective|hackable_objective]]::vFreeMission() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( missionTask != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         missionTask.[[ScriptEvent:free|free]]();&lt;br /&gt;
         missionTask = &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&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:hackable_objective|hackable_objective]]::vCompleteMission() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( missionTask != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         missionTask.[[ScriptEvent:complete|complete]]();&lt;br /&gt;
         missionTask.[[ScriptEvent:free|free]]();&lt;br /&gt;
         missionTask = &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&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:hackable_objective|hackable_objective]]::KillFizzleThread() {&lt;br /&gt;
     fizzleEndTime = 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:hackable_objective|hackable_objective]]::CreateFizzleThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delay ) {&lt;br /&gt;
     fizzleEndTime = sys.[[ScriptEvent:getTime|getTime]]() + delay;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !fizzleThreadActive ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;thread&amp;lt;/span&amp;gt; FizzleThread( delay );&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:hackable_objective|hackable_objective]]::OnFizzled() {&lt;br /&gt;
     hackCount = 0;&lt;br /&gt;
     OnHackCountChanged();&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;
         objManager.[[ScriptEvent:setBotActionStateForEvent|setBotActionStateForEvent]]( ACTION_STATE_HACK_FIZZLED, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;self&amp;lt;/span&amp;gt; ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;//mal: let the bots know the hack has fizzled&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:hackable_objective|hackable_objective]]::FizzleThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delay ) {&lt;br /&gt;
     fizzleThreadActive = true;&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; fizzleEndTime ) {&lt;br /&gt;
         sys.[[ScriptEvent:wait|wait]]( fizzleEndTime - sys.[[ScriptEvent:getTime|getTime]]() );&lt;br /&gt;
     }&lt;br /&gt;
     fizzleThreadActive = false;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( fizzleEndTime != 0 ) {&lt;br /&gt;
         OnFizzled();&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:hackable_objective|hackable_objective]]::vOnContextDefend( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p ) {&lt;br /&gt;
     [[ScriptClass:player|player]] local = sys.[[ScriptEvent:getLocalViewPlayer|getLocalViewPlayer]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( local == &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; || p == &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;;&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; ( flashpoint != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         delete flashpoint;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     flashpoint = new [[ScriptClass:flashpoint_obj|flashpoint_obj]];&lt;br /&gt;
     flashpoint.SetOwner( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;self&amp;lt;/span&amp;gt; );&lt;br /&gt;
     flashpoint.SetMaterial( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;mtr_icon_flash_defend&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:hackable_objective|hackable_objective]]::vOnContextHack( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; p ) {&lt;br /&gt;
     [[ScriptClass:player|player]] local = sys.[[ScriptEvent:getLocalViewPlayer|getLocalViewPlayer]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( local == &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; || p == &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;;&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; ( flashpoint != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         delete flashpoint;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     flashpoint = new [[ScriptClass:flashpoint_obj|flashpoint_obj]];&lt;br /&gt;
     flashpoint.SetOwner( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;self&amp;lt;/span&amp;gt; );&lt;br /&gt;
     flashpoint.SetMaterial( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;mtr_icon_flash&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:hackable_objective|hackable_objective]]::OnHackCountChanged() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( objectiveGUI != -1 ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( sys.[[ScriptEvent:doClientSideStuff|doClientSideStuff]]() ) {&lt;br /&gt;
             sys.[[ScriptEvent:setGUIFloat|setGUIFloat]]( objectiveGUI, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;progress&amp;quot;&amp;lt;/span&amp;gt;, CalcObjectiveProgress() );&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>