 |
Black Ops 3 Source Code Explorer
0.1
An script explorer for Black Ops 3 by ZeRoY
|
Go to the documentation of this file. 1 #using scripts\codescripts\struct;
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\challenges_shared;
5 #using scripts\shared\clientfield_shared;
6 #using scripts\shared\damagefeedback_shared;
7 #using scripts\shared\killstreaks_shared;
8 #using scripts\shared\math_shared;
9 #using scripts\shared\scoreevents_shared;
10 #using scripts\shared\system_shared;
11 #using scripts\shared\tweakables_shared;
12 #using scripts\shared\util_shared;
13 #using scripts\shared\weapons\_heatseekingmissile;
14 #using scripts\shared\weapons\_weaponobjects;
16 #using scripts\mp\gametypes\_globallogic_audio;
17 #using scripts\mp\killstreaks\_airsupport;
18 #using scripts\mp\killstreaks\_killstreak_bundles;
19 #using scripts\mp\killstreaks\_killstreak_detect;
20 #using scripts\mp\killstreaks\_killstreak_hacking;
21 #using scripts\mp\killstreaks\_killstreakrules;
22 #using scripts\mp\killstreaks\_killstreaks;
23 #using scripts\mp\teams\_teams;
24 #using scripts\mp\_util;
26 #insert scripts\mp\_hacker_tool.gsh;
27 #insert scripts\mp\killstreaks\_killstreaks.gsh;
28 #insert scripts\shared\shared.gsh;
29 #insert scripts\shared\version.gsh;
31 #precache( "eventstring", "mpl_killstreak_radar" );
32 #precache( "string", "KILLSTREAK_EARNED_RADAR" );
33 #precache( "string", "KILLSTREAK_RADAR_INBOUND" );
34 #precache( "string", "KILLSTREAK_RADAR_NOT_AVAILABLE" );
35 #precache( "string", "KILLSTREAK_DESTROYED_UAV" );
36 #precache( "string", "KILLSTREAK_RADAR_HACKED" );
38 #precache( "fx", "killstreaks/fx_uav_damage_trail" );
39 #precache( "fx", "killstreaks/fx_uav_lights" );
40 #precache( "fx", "killstreaks/fx_uav_bunner" );
42 #define UAV_NAME "uav"
48 if ( level.teamBased )
50 foreach( team
in level.teams )
52 level.activeUAVs[ team ] = 0;
57 level.activeUAVs = [];
60 level.activePlayerUAVs = [];
61 level.spawnedUAVs = [];
67 killstreaks::register_dialog(
UAV_NAME,
"mpl_killstreak_radar",
"uavDialogBundle",
"uavPilotDialogBundle",
"friendlyUav",
"enemyUav",
"enemyUavMultiple",
"friendlyUavHacked",
"enemyUavHacked",
"requestUav",
"threatUav" );
76 setMatchFlag(
"radar_allies", 0 );
77 setMatchFlag(
"radar_axis", 0 );
96 uav SetVisibleToAll();
103 assert( isdefined( level.players ) );
111 if ( killstreak_id == -1 )
116 rotator = level.airsupport_rotator;
119 uav =
spawn(
"script_model", rotator getTagOrigin(
"tag_origin" ) );
132 uav SetDrawInfrared(
true );
134 uav.killstreak_id = killstreak_id;
141 uav SetCanDamage(
true );
145 uav.rocketDamage = uav.maxhealth + 1;
150 angle = randomInt( 360 );
152 xOffset = cos( angle ) * radiusOffset;
153 yOffset = sin( angle ) * radiusOffset;
154 angleVector = vectorNormalize( ( xOffset, yOffset, zOffset ) );
155 angleVector = angleVector * zOffset;
156 uav linkTo( rotator,
"tag_origin", angleVector, ( 0, angle + attach_angle, 0 ) );
158 self AddWeaponStat( GetWeapon(
UAV_NAME ),
"used", 1 );
175 self.is_damaged =
true;
176 params = level.killstreakBundle[
UAV_NAME];
177 if( isdefined( params.fxLowHealth ) )
178 PlayFXOnTag( params.fxLowHealth,
self,
"tag_origin" );
188 attacker =
self [[ level.figure_out_attacker ]]( attacker );
189 if( isdefined( attacker ) && ( !isdefined(
self.owner ) ||
self.owner
util::IsEnemyPlayer( attacker ) ) )
193 LUINotifyEvent( &
"player_callout", 2, &
"KILLSTREAK_DESTROYED_UAV", attacker.entnum );
204 self notify(
"crashing" );
206 self playsound (
"evt_helicopter_midair_exp" );
208 params = level.killstreakBundle[
UAV_NAME];
209 if( isdefined( params.ksExplosionFX ) )
210 PlayFXOnTag( params.ksExplosionFX,
self,
"tag_origin" );
212 self StopLoopSound();
213 self setModel(
"tag_origin" );
214 Target_Remove(
self );
219 ArrayRemoveValue( level.spawnedUAVs,
self );
220 self notify(
"delete" );
226 self.entNum =
self getEntityNumber();
228 if ( !level.teambased )
230 level.activeUAVs[
self.entNum ] = 0;
233 level.activePlayerUAVs[
self.entNum ] = 0;
238 self endon(
"disconnect" );
239 if( level.teambased ==
false || level.multiteam ==
true )
241 level notify(
"uav_update" );
267 Target_Remove(
self );
268 ArrayRemoveValue( level.spawnedUAVs,
self );
279 self endon(
"death" );
282 if( isdefined(
self ) )
286 self PlayLoopSound (
"veh_uav_engine_loop", 1);
292 self endon(
"death" );
295 if( isdefined(
self ) )
298 self StopLoopSound();
300 self playsoundtoteam (
"veh_kls_uav_afterburner" , team );
306 return level.activeUAVs[ team_or_entnum ] > 0;
311 if ( level.teamBased )
313 assert( isdefined(
self.team ) );
314 level.activeUAVs[
self.team]++;
318 assert( isdefined(
self.entNum ) );
319 if ( !isdefined(
self.entNum ) )
321 self.entNum =
self GetEntityNumber();
324 level.activeUAVs[
self.entNum ]++;
327 level.activePlayerUAVs[
self.entNum ]++;
329 level notify (
"uav_update" );
341 if ( level.teamBased )
343 level.activeUAVs[
self.team]--;
344 assert( level.activeUAVs[
self.team] >= 0 );
346 if( level.activeUAVs[
self.team] < 0 )
348 level.activeUAVs[
self.team] = 0;
351 else if( isdefined(
self.owner ) )
353 assert( isdefined(
self.owner.entNum ) );
354 if( !isdefined(
self.owner.entNum ) )
356 self.owner.entNum =
self.owner getEntityNumber();
359 level.activeUAVs[
self.owner.entNum]--;
361 assert( level.activeUAVs[
self.owner.entNum] >= 0 );
362 if( level.activeUAVs[
self.owner.entNum] < 0 )
364 level.activeUAVs[
self.owner.entNum] = 0;
368 if ( isdefined(
self.owner ) )
370 level.activePlayerUAVs[
self.owner.entNum]--;
371 assert( level.activePlayerUAVs[
self.owner.entNum] >= 0 );
373 level notify (
"uav_update" );
378 level endon (
"game_ended" );
382 level waittill (
"uav_update" );
387 if( level.teamBased )
389 foreach( team
in level.teams )
391 activeUAVs = level.activeUAVs[ team ];
392 activeUAVsAndSatellites = activeUAVs + ( ( isdefined( level.activeSatellites ) ) ? level.activeSatellites[ team ] : 0 );
394 SetTeamSpyplane( team,
int( min( activeUAVs, 2 ) ) );
400 for( i = 0; i < level.players.size; i++ )
402 player = level.players[ i ];
404 assert( isdefined( player.entNum ) );
405 if( !isdefined( player.entNum ) )
407 player.entNum = player getEntityNumber();
410 activeUAVs = level.activeUAVs[ player.entNum ];
411 activeUAVsAndSatellites = activeUAVs + ( ( isdefined( level.activeSatellites ) ) ? level.activeSatellites[ player.entnum ] : 0 );
413 player SetClientUIVisibilityFlag(
"radar_client", ( activeUAVsAndSatellites > 0 ) );
414 player.hasSpyplane = int( min( activeUAVs, 2 ) );
422 foreach( uav
in level.spawnedUAVs )
424 if ( isdefined( uav ) )
function processScoreEvent(event, player, victim, weapon)
function WaitForTimeout(killstreak, duration, callback, endCondition1, endCondition2, endCondition3)
function PlayAfterburnerFx()
function set_team_radar(team, value)
function HideAllUAVsToSameTeam()
#define UAV_ROTATION_RADIUS
function MissileTarget_ProximityDetonateIncomingMissile(endon1, endon2, allowDirectDamage)
#define UAV_ROTATION_RANDOM_OFFSET
function getMinimumFlyHeight()
function on_joined_team()
function OnPlayerJoinedTeam()
function play_killstreak_start_dialog(killstreakType, team, killstreakId)
#define VAL(__var, __default)
function play_pilot_dialog_on_owner(dialogKey, killstreakType, killstreakId)
function getTweakableValue(category, name)
function addFlySwatterStat(weapon, aircraft)
function DestroyUAV(attacker, weapon)
function spawn(v_origin=(0, 0, 0), v_angles=(0, 0, 0))
function getOtherTeam(team)
function MonitorDamage(killstreak_ref, max_health, destroyed_callback, low_health, low_health_callback, emp_damage, emp_callback, allow_bullet_damage)
function IsEnemyPlayer(player)
function HideToSameTeam()
function OnPlayerSpawned()
function ResetActiveUAV()
function on_spawned(func, obj)
function destroyedAircraft(attacker, weapon, playerControlled)
function play_destroyed_dialog_on_owner(killstreakType, killstreakId)
function isKillstreakAllowed(hardpointType, team)
#define ARRAY_ADD(__array, __item)
function killstreakTargetSet(killstreakEntity, offset)
function HasUAV(team_or_entnum)
#define UAV_DURATION_CHECK
function register_dialog(killstreakType, informDialog, taacomDialogBundleKey, pilotDialogArrayKey, startDialogKey, enemyStartDialogKey, enemyStartMultipleDialogKey, hackedDialogKey, hackedStartDialogKey, requestDialogKey, threatDialogKey, isInventory)
function ConfigureTeamPost(owner, isHacked)
function OnPlayerConnect()
function register_strings(killstreakType, receivedText, notUsableText, inboundText, inboundNearPlayerText, hackedText, utilizesAirspace=true, isInventory=false)
function killstreakStop(hardpointType, team, id)
function OnLowHealth(attacker, weapon)
function killstreakStart(hardpointType, team, hacked, displayTeamMessage)
function set(str_field_name, n_value)
#define FX_UAV_DAMAGE_TRAIL
function WaitForTimecheck(duration, callback, endCondition1, endCondition2, endCondition3)
function WaitUntilTeamChangeSingleTon(player, singletonString, callback, arg, end_condition1, end_condition2, end_condition3)
function OnTeamChange(entNum, event)
function configure_team(killstreakType, killstreakId, owner, influencerType, configureTeamPreFunction, configureTeamPostFunction, isHacked=false)
function player_killstreak_threat_tracking(killstreakType)
function enable_hacking(killstreakName, preHackFunction, postHackFunction)
function HackedPreFunction(hacker)
function Leave(duration)
function RemoveActiveUAV()