‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
ctf.csc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\clientfield_shared;
5 #using scripts\shared\util_shared;
6 
7 #using scripts\mp\_shoutcaster;
8 
9 #insert scripts\shared\shared.gsh;
10 #insert scripts\shared\version.gsh;
11 
12 #precache( "client_fx", "ui/fx_ctf_flag_base_team" );
13 #precache( "client_fx", "ui/fx_ctf_flag_base_white" );
14 
15 function ‪main()
16 {
18 }
19 
20 function ‪on_localclient_connect( localClientNum )
21 {
22  objective_ids = [];
23 
24  while ( !isdefined( objective_ids["allies_base"] ) )
25  {
26  objective_ids["allies_base"] = ServerObjective_GetObjective( localClientNum, "allies_base" );
27  objective_ids["axis_base"] = ServerObjective_GetObjective( localClientNum, "axis_base" );
28  wait(0.05);
29  }
30 
31  foreach( key, objective in objective_ids )
32  {
33  level.ctfFlags[key] = SpawnStruct();
34  level.ctfFlags[key].objectiveId = objective;
35  ‪setup_flag( localClientNum, level.ctfFlags[key] );
36  }
37 
38  ‪setup_fx( localClientNum );
39 }
40 
41 function ‪setup_flag( localClientNum, flag )
42 {
43  flag.origin = ServerObjective_GetObjectiveOrigin( localClientNum, flag.objectiveId );
44  flag_entity = ServerObjective_GetObjectiveEntity( localClientNum, flag.objectiveId );
45  flag.angles = (0,0,0);
46 
47  if ( isdefined(flag_entity) )
48  {
49  flag.origin = flag_entity.origin;
50  flag.angles = flag_entity.angles;
51  }
52 
53  flag.team = ServerObjective_GetObjectiveTeam( localClientNum, flag.objectiveId );
54 }
55 
56 function ‪setup_flag_fx( localClientNum, flag, effects )
57 {
58  if ( isdefined( flag.base_fx ) )
59  {
60  StopFx( localClientNum, flag.base_fx );
61  }
62 
63  up = anglesToUp(flag.angles);
64  forward = anglesToForward(flag.angles);
65  flag.base_fx = ‪PlayFx(localClientNum, effects[flag.team], flag.origin, up, forward );
66  SetFxTeam( localClientNum, flag.base_fx, flag.team );
67 
68  thread ‪watch_for_team_change( localClientNum );
69 }
70 
71 function ‪setup_fx( localClientNum )
72 {
73  effects = [];
74 
76  {
77  if ( GetDvarInt("tu11_programaticallyColoredGameFX") )
78  {
79  effects["allies"] = "ui/fx_ctf_flag_base_white";
80  effects["axis"] = "ui/fx_ctf_flag_base_white";
81  }
82  else
83  {
84  effects = ‪shoutcaster::get_color_fx( localClientNum, level.effect_scriptbundle );
85  }
86  }
87  else
88  {
89  effects["allies"] = "ui/fx_ctf_flag_base_team";
90  effects["axis"] = "ui/fx_ctf_flag_base_team";
91  }
92 
93  foreach( flag in level.ctfFlags)
94  {
95  thread ‪setup_flag_fx(localClientNum, flag, effects );
96  }
97 }
98 
99 function ‪watch_for_team_change( localClientNum )
100 {
101  level notify( "end_team_change_watch" );
102  level endon( "end_team_change_watch" );
103 
104  level waittill( "team_changed" );
105 
106  thread ‪setup_fx( localClientNum );
107 }
‪setup_flag
‪function setup_flag(localClientNum, flag)
Definition: ctf.csc:41
‪setup_fx
‪function setup_fx(localClientNum)
Definition: ctf.csc:71
‪get_color_fx
‪function get_color_fx(localClientNum, script_bundle)
Definition: _shoutcaster.csc:38
‪on_localclient_connect
‪function on_localclient_connect(localClientNum)
Definition: ctf.csc:20
‪is_shoutcaster_using_team_identity
‪function is_shoutcaster_using_team_identity(localClientNum)
Definition: _shoutcaster.csc:17
‪setup_flag_fx
‪function setup_flag_fx(localClientNum, flag, effects)
Definition: ctf.csc:56
‪watch_for_team_change
‪function watch_for_team_change(localClientNum)
Definition: ctf.csc:99
‪main
‪function main()
Definition: ctf.csc:15
‪PlayFx
‪function PlayFx(name)
Definition: _counteruav.gsc:390