 |
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\array_shared;
4 #using scripts\shared\callbacks_shared;
5 #using scripts\shared\clientfield_shared;
6 #using scripts\shared\flag_shared;
7 #using scripts\shared\flagsys_shared;
8 #using scripts\shared\system_shared;
9 #using scripts\shared\util_shared;
10 #using scripts\shared\weapons\_weaponobjects;
11 #using scripts\shared\visionset_mgr_shared;
13 #using scripts\shared\abilities\_ability_gadgets;
14 #using scripts\shared\abilities\_ability_player;
15 #using scripts\shared\abilities\_ability_power;
16 #using scripts\shared\abilities\_ability_util;
18 #using scripts\shared\_burnplayer;
20 #insert scripts\shared\shared.gsh;
21 #insert scripts\shared\version.gsh;
22 #insert scripts\shared\abilities\_ability_util.gsh;
28 #define ROULETTE_STATE_DEFAULT 0
29 #define ROULETTE_STATE_WAIT_FOR_RESPIN 1
30 #define ROULETTE_STATE_SPINNING 2
31 #define ROULETTE_STATE_RESPIN_PROMPT 3 //used in LUA
34 #define ROULETTE_ACTIVATION_WAIT 1.1
35 #define ROULETTE_PRE_RESPIN_WAIT_TIME 1.3
36 #define ROULETTE_RESPIN_ACTIVATION_WAIT 1.2
38 #define PRIMARY_CATEGORY 0
39 #define SECONDARY_CATEGORY 1
40 #define PRIMARY_CATEGORY_TOTAL 0
41 #define SECONDARY_CATEGORY_TOTAL 1
58 if ( SessionModeIsMultiplayerGame() )
60 level.gadgetRouletteProbabilities = [];
64 level.weaponNone = getWeapon(
"none" );
65 level.gadget_roulette = GetWeapon(
"gadget_roulette" );
92 return self GadgetIsActive( slot );
98 return self GadgetFlickering( slot );
114 if ( SessionModeIsMultiplayerGame() )
116 self.isRoulette =
true;
134 if (
self.isRoulette ===
true )
136 if ( !isdefined(
self.pers[#
"rouletteAllowSpin"] ) )
138 self.pers[#
"rouletteAllowSpin"] =
true;
159 if (
self GadgetIsActive( slot ) )
170 self playsoundtoplayer (
"mpl_bm_specialist_roulette",
self);
181 self endon(
"death" );
182 self endon(
"disconnect" );
183 self endon(
"roulette_respin_activate" );
185 self DisableOffhandSpecial();
189 self EnableOffhandSpecial();
194 self endon(
"watchRespinGadgetActivated" );
195 self endon(
"death" );
196 self endon(
"disconnect" );
198 self waittill(
"hero_gadget_activated" );
206 self endon(
"hero_gadget_activated" );
208 self notify(
"watchRespin" );
209 self endon(
"watchRespin" );
211 if ( !isdefined(
self.pers[#
"rouletteAllowSpin"] ) ||
self.pers[#
"rouletteAllowSpin"] ==
false )
226 if ( !isdefined(
self ) )
231 self.pers[#
"rouletteWeapon"] = undefined;
233 self.pers[#
"rouletteAllowSpin"] =
false;
235 self notify(
"watchRespinGadgetActivated" );
236 self notify(
"roulette_respin_activate" );
238 self playsoundtoplayer (
"mpl_bm_specialist_roulette",
self);
259 if ( isdefined(
self ) )
261 self notify(
"watchRespinGadgetActivated" );
267 self endon(
"end_failsafe_reenable_offhand_special" );
271 if ( isdefined(
self ) )
273 self EnableOffhandSpecial();
279 self endon(
"death" );
280 self endon(
"disconnect" );
288 self endon(
"death" );
290 self notify(
"watchGadgetActivated" );
291 self endon (
"watchGadgetActivated" );
293 self waittill(
"hero_gadget_activated" );
295 self.pers[#
"rouletteAllowSpin"] =
true;
297 if ( isdefined( weapon ) || weapon.name !=
"gadget_roulette" )
307 if ( isdefined(
self._gadgets_player[i] ) )
309 self TakeWeapon(
self._gadgets_player[i] );
313 randomWeapon = weapon;
315 if ( isdefined(
self.pers[#
"rouletteWeapon"] ) )
317 randomWeapon =
self.pers[#
"rouletteWeapon"];
319 else if ( isdefined(
self.pers[#
"previousRouletteWeapon1"] ) || isdefined(
self.pers[#
"previousRouletteWeapon2"] ) )
322 while ( randomWeapon ==
self.pers[#
"previousRouletteWeapon1"] ||
323 ( isdefined(
self.pers[#
"previousRouletteWeapon2"] ) && randomWeapon ==
self.pers[#
"previousRouletteWeapon2"] ) )
333 if ( isdefined( level.playGadgetReady ) && !isPrimaryRoll )
336 self thread [[level.playGadgetReady]]( randomWeapon, !isPrimaryRoll );
341 self GiveWeapon( randomWeapon );
343 self.pers[#
"rouletteWeapon"] = randomWeapon;
344 self.pers[#
"previousRouletteWeapon2"] =
self.pers[#
"previousRouletteWeapon1"];
345 self.pers[#
"previousRouletteWeapon1"] = randomWeapon;
355 self notify(
"gadget_roulette_on_deactivate_helper" );
356 self endon(
"gadget_roulette_on_deactivate_helper" );
358 self waittill(
"heroAbility_off", weapon_off );
359 if ( isdefined( weapon_off ) && ( weapon_off.name ==
"gadget_speed_burst" ) )
361 self waittill(
"heroAbility_off", weapon_off );
365 if ( isdefined(
self ) && isdefined(
self._gadgets_player[i] ) )
367 self TakeWeapon(
self._gadgets_player[i] );
371 if ( isdefined(
self ) )
373 self GiveWeapon( level.gadget_roulette );
374 self.pers[#
"rouletteWeapon"] = undefined;
386 if ( IsDefined( time ) )
388 timeStr =
"^3" +
", time: " + time;
391 if ( GetDvarInt(
"scr_cpower_debug_prints" ) > 0 )
392 self IPrintlnBold(
"Gadget Roulette: " + status + timeStr );
397 return self ActionSlotThreeButtonPressed();
413 randomGadgetNumber = randomIntRange( 1, level.gadgetRouletteProbabilities[totalCategory] + 1 );
414 gadgetNames = GetArrayKeys( level.gadgetRouletteProbabilities );
418 foreach( gadget
in gadgetNames )
420 randomGadgetNumber -= level.gadgetRouletteProbabilities[gadget][category];
421 if ( randomgadgetnumber <= 0 )
423 selectedGadget = gadget;
427 return selectedGadget;
432 gadgetWeapon = GetWeapon( gadgetNameString );
433 assert( isdefined( gadgetWeapon ) );
434 if ( gadgetWeapon == level.weaponNone)
436 assertmsg( gadgetNameString +
" is not a gadget, _gadget_roulette.gsc" );
439 if ( !isdefined(level.gadgetRouletteProbabilities[gadgetWeapon]) )
441 level.gadgetRouletteProbabilities[gadgetWeapon] = [];
444 level.gadgetRouletteProbabilities[gadgetWeapon][
PRIMARY_CATEGORY] = primaryWeight;
function dpad_left_pressed()
#define ROULETTE_STATE_DEFAULT
function gadget_roulette_flicker(slot, weapon)
function register_gadget_is_flickering_callbacks(type, flickering_func)
function register_gadget_possession_callbacks(type, on_give, on_take)
function watchGadgetActivated(weapon)
function set_to_player(str_field_name, n_value)
function register_gadget_is_inuse_callbacks(type, inuse_func)
#define PRIMARY_CATEGORY_TOTAL
function registerGadgetType(gadgetNameString, primaryWeight, secondaryWeight)
function giveRandomWeapon(weapon, isPrimaryRoll)
function watchRespinGadgetActivated()
function reset_roulette_state_to_default()
function register_gadget_should_notify(type, should_notify)
function gadget_roulette_is_flickering(slot)
function register_gadget_flicker_callbacks(type, on_flicker)
function register_gadget_ready_callbacks(type, ready_func)
function gadget_roulette_on_deactivate(slot, weapon)
#define ROULETTE_PRE_RESPIN_WAIT_TIME
function roulette_init_allow_spin()
function set_gadget_status(status, time)
function gadget_roulette_on_flicker(slot, weapon)
function on_spawned(func, obj)
function getRandomGadget(isPrimaryRoll)
#define GADGET_HELD_COUNT
function gadget_roulette_is_ready(slot, weapon)
function watch_entity_shutdown()
function gadget_roulette_on_player_spawn()
function register_gadget_activation_callbacks(type, turn_on, turn_off)
function gadget_roulette_on_activate(slot, weapon)
function gadget_roulette_on_give(slot, weapon)
#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
function failsafe_reenable_offhand_special()
function gadget_roulette_on_connect()
#define ROULETTE_STATE_WAIT_FOR_RESPIN
function disable_hero_gadget_activation(duration)
#define SECONDARY_CATEGORY_TOTAL
function gadget_roulette_on_deactivate_helper(weapon)
function gadget_roulette_give_earned_specialist(weapon, playSound)
function watchRespin(weapon)
#define SECONDARY_CATEGORY
#define ROULETTE_STATE_SPINNING
#define PRIMARY_CATEGORY
function gadget_roulette_is_inuse(slot)
#define GADGET_TYPE_ROULETTE
#define WAIT_SERVER_FRAME
function gadget_roulette_on_take(slot, weapon)