‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_mechtank.gsc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #using scripts\shared\clientfield_shared;
4 #using scripts\shared\gameskill_shared;
5 #using scripts\shared\math_shared;
6 #using scripts\shared\statemachine_shared;
7 #using scripts\shared\system_shared;
8 #using scripts\shared\util_shared;
9 #using scripts\shared\turret_shared;
10 #using scripts\shared\flag_shared;
11 #using scripts\shared\damagefeedback_shared;
12 #using scripts\shared\laststand_shared;
13 #using scripts\shared\gameobjects_shared;
14 
15 #insert scripts\shared\shared.gsh;
16 #insert scripts\shared\statemachine.gsh;
17 #insert scripts\shared\version.gsh;
18 #insert scripts\shared\archetype_shared\archetype_shared.gsh;
19 
20 #using scripts\shared\ai\systems\blackboard;
21 #using scripts\shared\ai\blackboard_vehicle;
22 #insert scripts\shared\ai\utility.gsh;
23 
24 #using scripts\shared\vehicle_shared;
25 #using scripts\shared\vehicle_ai_shared;
26 #using scripts\shared\vehicle_death_shared;
27 
28 #using scripts\mp\killstreaks\_killstreaks;
29 #using scripts\mp\killstreaks\_killstreak_bundles;
30 
31 #define MECHTANK_BUNDLE "mechtank"
32 
33 #namespace mechtank;
34 
35 ‪REGISTER_SYSTEM( "mechtank", &‪__init__, undefined )
36 
37 #using_animtree( "generic" );
38 
39 function ‪__init__()
40 {
41  vehicle::add_main_callback( "mechtank", &‪mechtank_initialize );
42 }
43 
45 {
46  self useanimtree( #animtree );
47 
48  self.targetOffset = ( 0, 0, 60 );
49 
50  self EnableAimAssist();
51 
52  self.fovcosine = 0; // +/-90 degrees = 180 fov, err 0 actually means 360 degree view
53  self.fovcosinebusy = 0;
54  self.maxsightdistsqrd = ‪SQR( 10000 );
55  self.allow_movement = true;
56 
57  assert( isdefined( self.scriptbundlesettings ) );
58 
59  self.settings = ‪struct::get_script_bundle( "vehiclecustomsettings", self.scriptbundlesettings );
60 
61  self.overrideVehicleDamage = &‪MechtankCallback_VehicleDamage;
62 
65  self.heatlh = self.maxhealth;
66 }
67 
68 function ‪MechtankCallback_VehicleDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, psOffsetTime, damageFromUnderneath, modelIndex, partName, vSurfaceNormal )
69 {
70  if ( isdefined( eAttacker ) && ( eAttacker == self || isplayer( eAttacker ) && eAttacker.usingvehicle && eAttacker.viewlockedentity === self ) )
71  {
72  return 0;
73  }
74 
75  if ( sMeansOfDeath === "MOD_MELEE" || sMeansOfDeath === "MOD_MELEE_WEAPON_BUTT" || sMeansOfDeath === "MOD_MELEE_ASSASSINATE" || sMeansOfDeath === "MOD_ELECTROCUTED" || sMeansOfDeath === "MOD_CRUSH" || weapon.isEmp )
76  {
77  return 0;
78  }
79 
80  iDamage = self ‪killstreaks::OnDamagePerWeapon( ‪MECHTANK_BUNDLE, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, self.maxhealth, undefined, self.maxhealth * 0.4, undefined, 0, undefined, true, 1.0 );
81 
82 
83  driver = self GetSeatOccupant( 0 );
84  if ( isPlayer( driver ) )
85  {
86  driver ‪vehicle::update_damage_as_occupant( self.maxhealth - ( self.health - iDamage ), self.maxhealth );
87  }
88 
89  return iDamage;
90 }
‪register_killstreak_bundle
‪function register_killstreak_bundle(killstreakType)
Definition: _killstreak_bundles.gsc:20
‪OnDamagePerWeapon
‪function OnDamagePerWeapon(killstreak_ref, attacker, damage, flags, type, weapon, max_health, destroyed_callback, low_health, low_health_callback, emp_damage, emp_callback, allow_bullet_damage, chargeLevel)
Definition: _killstreaks.gsc:2667
‪MECHTANK_BUNDLE
‪#define MECHTANK_BUNDLE
Definition: _mechtank.gsc:31
‪SQR
‪#define SQR(__var)
Definition: shared.gsh:293
‪MechtankCallback_VehicleDamage
‪function MechtankCallback_VehicleDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, psOffsetTime, damageFromUnderneath, modelIndex, partName, vSurfaceNormal)
Definition: _mechtank.gsc:68
‪mechtank_initialize
‪function mechtank_initialize()
Definition: _mechtank.gsc:44
‪get_max_health
‪function get_max_health(killstreakType)
Definition: _killstreak_bundles.gsc:188
‪update_damage_as_occupant
‪function update_damage_as_occupant(damage_taken, max_health)
Definition: vehicle_shared.gsc:3709
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪__init__
‪function __init__()
Definition: _mechtank.gsc:39
‪get_script_bundle
‪function get_script_bundle(str_type, str_name)
Definition: struct.csc:45