1 #using scripts\codescripts\struct;
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\clientfield_shared;
5 #using scripts\shared\util_shared;
7 #using scripts\mp\_shoutcaster;
9 #insert scripts\shared\shared.gsh;
10 #insert scripts\shared\version.gsh;
12 #precache( "client_fx", "ui/fx_ctf_flag_base_team" );
13 #precache( "client_fx", "ui/fx_ctf_flag_base_white" );
24 while ( !isdefined( objective_ids[
"allies_base"] ) )
26 objective_ids[
"allies_base"] = ServerObjective_GetObjective( localClientNum,
"allies_base" );
27 objective_ids[
"axis_base"] = ServerObjective_GetObjective( localClientNum,
"axis_base" );
31 foreach( key, objective
in objective_ids )
33 level.ctfFlags[key] = SpawnStruct();
34 level.ctfFlags[key].objectiveId = objective;
43 flag.origin = ServerObjective_GetObjectiveOrigin( localClientNum, flag.objectiveId );
44 flag_entity = ServerObjective_GetObjectiveEntity( localClientNum, flag.objectiveId );
45 flag.angles = (0,0,0);
47 if ( isdefined(flag_entity) )
49 flag.origin = flag_entity.origin;
50 flag.angles = flag_entity.angles;
53 flag.team = ServerObjective_GetObjectiveTeam( localClientNum, flag.objectiveId );
58 if ( isdefined( flag.base_fx ) )
60 StopFx( localClientNum, flag.base_fx );
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 );
77 if ( GetDvarInt(
"tu11_programaticallyColoredGameFX") )
79 effects[
"allies"] =
"ui/fx_ctf_flag_base_white";
80 effects[
"axis"] =
"ui/fx_ctf_flag_base_white";
89 effects[
"allies"] =
"ui/fx_ctf_flag_base_team";
90 effects[
"axis"] =
"ui/fx_ctf_flag_base_team";
93 foreach( flag
in level.ctfFlags)
101 level notify(
"end_team_change_watch" );
102 level endon(
"end_team_change_watch" );
104 level waittill(
"team_changed" );