‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_waterfall.csc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\filter_shared;
5 #using scripts\shared\postfx_shared;
6 #using scripts\shared\trigger_shared;
7 #using scripts\shared\util_shared;
8 #using scripts\shared\water_surface;
9 
10 #using scripts\mp\_load;
11 #using scripts\mp\_util;
12 
13 #insert scripts\shared\shared.gsh;
14 
15 #namespace waterfall;
16 
17 function ‪waterfallOverlay( localClientNum )
18 {
19  triggers = GetEntArray( localClientNum, "waterfall", "targetname" );
20  foreach( trigger in triggers )
21  {
22  trigger thread ‪setupWaterfall( localClientNum );
23  }
24 }
25 
26 function ‪waterfallMistOverlay( localClientNum )
27 {
28  triggers = GetEntArray( localClientNum, "waterfall_mist", "targetname" );
29  foreach( trigger in triggers )
30  {
31  trigger thread ‪setupWaterfallMist( localClientNum );
32  }
33 }
34 
35 function ‪waterfallMistOverlayReset( localClientNum )
36 {
37  localPlayer = GetLocalPlayer( localClientNum );
38  localPlayer.rainOpacity = 0.0;
39 }
40 
41 function ‪setupWaterfallMist( localClientNum )
42 {
43  level notify( "setupWaterfallmist_waterfall_csc" + localclientnum );
44  level endon ( "setupWaterfallmist_waterfall_csc" + localclientnum );
45 
46  trigger = self;
47  for(;;)
48  {
49  trigger waittill( "trigger", trigPlayer );
50 
51  if ( !trigPlayer islocalplayer() )
52  {
53  continue;
54  }
55 
56  localclientnum = trigPlayer getlocalclientnumber();
57  if ( isdefined( localclientnum ) )
58  {
59  localplayer = getlocalplayer( localclientnum );
60  }
61  else
62  {
63  localplayer = trigPlayer;
64  }
65 
68  }
69 }
70 
71 function ‪setupWaterfall( localClientNum, localowner )
72 {
73  level notify( "setupWaterfall_waterfall_csc" + localclientnum );
74  level endon ( "setupWaterfall_waterfall_csc" + localclientnum );
75 
76  trigger = self;
77  for(;;)
78  {
79  trigger waittill( "trigger", trigPlayer );
80 
81  if ( !trigPlayer islocalplayer() )
82  {
83  continue;
84  }
85 
86  localclientnum = trigPlayer getlocalclientnumber();
87  if ( isdefined( localclientnum ) )
88  {
89  localplayer = getlocalplayer( localclientnum );
90  }
91  else
92  {
93  localplayer = trigPlayer;
94  }
95 
97  }
98 }
99 
100 function ‪trig_enter_waterfall( localplayer )
101 {
102  trigger = self;
103  localclientnum = localplayer.localclientnum;
104  localplayer thread ‪postfx::playPostfxBundle( "pstfx_waterfall" );
105 
106  playsound(0, "amb_waterfall_hit", (0,0,0));
107 
108  while ( trigger istouching( localplayer ) )
109  {
110  localplayer PlayRumbleOnEntity( localClientNum, "waterfall_rumble" );
111  wait( 0.1 );
112  }
113 }
114 
115 function ‪trig_leave_waterfall( localplayer )
116 {
117  trigger = self;
118  localClientNum = localplayer.localClientNum;
119  localplayer postfx::StopPostfxBundle();
120  if ( IsUnderwater( localClientNum ) == false )
121  {
122  localplayer thread ‪water_surface::startWaterSheeting();
123  }
124 }
125 
126 function ‪trig_enter_waterfall_mist( localPlayer )
127 {
128  localPlayer endon( "entityshutdown" );
129  trigger = self;
130 
131  if ( !isdefined( localPlayer.rainOpacity ) )
132  localPlayer.rainOpacity = 0;
133 
134  if ( localPlayer.rainOpacity == 0 )
135  {
137  }
138 
140  while ( trigger istouching( localPlayer ) )
141  {
142  localClientNum = trigger.localClientNum;
143  if ( !isdefined( localClientNum ) )
144  {
145  localClientNum = localPlayer getlocalclientnumber();
146  }
147  if ( IsUnderwater( localClientNum ) )
148  {
150  break;
151  }
152 
153  localPlayer.rainOpacity += 0.003;
154  if ( localPlayer.rainOpacity > 1 )
155  {
156  localPlayer.rainOpacity = 1;
157  }
158  ‪filter::set_filter_sprite_rain_opacity( localPlayer, ‪FILTER_INDEX_WATER_MIST, localPlayer.rainOpacity );
159  ‪filter::set_filter_sprite_rain_elapsed( localPlayer, ‪FILTER_INDEX_WATER_MIST, localPlayer getClientTime() );
160 
162  }
163 
164 }
165 
166 function ‪trig_leave_waterfall_mist( localPlayer )
167 {
168  localPlayer endon( "entityshutdown" );
169  trigger = self;
170 
171  if ( isdefined( localPlayer.rainOpacity ) )
172  {
173  while ( !( trigger istouching( localPlayer ) ) && localPlayer.rainOpacity > 0.0 )
174  {
175  localClientNum = trigger.localClientNum;
176  if ( IsUnderwater( localClientNum ) )
177  {
179  break;
180  }
181 
182  localPlayer.rainOpacity -= 0.005;
183  ‪filter::set_filter_sprite_rain_opacity( localPlayer, ‪FILTER_INDEX_WATER_MIST, localPlayer.rainOpacity );
184  ‪filter::set_filter_sprite_rain_elapsed( localPlayer, ‪FILTER_INDEX_WATER_MIST, localPlayer getClientTime() );
186  }
187  }
188 
189  localPlayer.rainOpacity = 0;
191 }
‪trig_enter_waterfall
‪function trig_enter_waterfall(localplayer)
Definition: _waterfall.csc:100
‪trig_leave_waterfall_mist
‪function trig_leave_waterfall_mist(localPlayer)
Definition: _waterfall.csc:166
‪waterfallMistOverlay
‪function waterfallMistOverlay(localClientNum)
Definition: _waterfall.csc:26
‪waterfallOverlay
‪function waterfallOverlay(localClientNum)
Definition: _waterfall.csc:17
‪set_filter_sprite_rain_elapsed
‪function set_filter_sprite_rain_elapsed(player, filterid, time)
Definition: filter_shared.csc:1175
‪enable_filter_sprite_rain
‪function enable_filter_sprite_rain(player, filterid)
Definition: filter_shared.csc:1158
‪init_filter_sprite_rain
‪function init_filter_sprite_rain(player)
Definition: filter_shared.csc:1152
‪set_filter_sprite_rain_seed_offset
‪function set_filter_sprite_rain_seed_offset(player, filterid, offset)
Definition: filter_shared.csc:1170
‪FILTER_INDEX_WATER_MIST
‪#define FILTER_INDEX_WATER_MIST
Definition: shared.gsh:482
‪setupWaterfallMist
‪function setupWaterfallMist(localClientNum)
Definition: _waterfall.csc:41
‪set_filter_sprite_rain_opacity
‪function set_filter_sprite_rain_opacity(player, filterid, opacity)
Definition: filter_shared.csc:1165
‪waterfallMistOverlayReset
‪function waterfallMistOverlayReset(localClientNum)
Definition: _waterfall.csc:35
‪trig_leave_waterfall
‪function trig_leave_waterfall(localplayer)
Definition: _waterfall.csc:115
‪setupWaterfall
‪function setupWaterfall(localClientNum, localowner)
Definition: _waterfall.csc:71
‪disable_filter_sprite_rain
‪function disable_filter_sprite_rain(player, filterid)
Definition: filter_shared.csc:1180
‪function_thread
‪function function_thread(ent, on_enter_payload, on_exit_payload)
Definition: trigger_shared.csc:6
‪startWaterSheeting
‪function startWaterSheeting()
Definition: water_surface.csc:181
‪playPostfxBundle
‪function playPostfxBundle(playBundleName)
Definition: postfx_shared.csc:44
‪trig_enter_waterfall_mist
‪function trig_enter_waterfall_mist(localPlayer)
Definition: _waterfall.csc:126
‪WAIT_CLIENT_FRAME
‪#define WAIT_CLIENT_FRAME
Definition: shared.gsh:266