‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
blackboard_vehicle.gsc
Go to the documentation of this file.
1 #using scripts\shared\ai\systems\blackboard;
2 #using scripts\shared\ai\systems\shared;
3 #using scripts\shared\ai\archetype_utility;
4 
5 #insert scripts\shared\ai\systems\blackboard.gsh;
6 #insert scripts\shared\ai\utility.gsh;
7 #insert scripts\shared\shared.gsh;
8 
9 #namespace Blackboard;
10 
11 //*****************************************************************************
12 // NOTE! When adding a new blackboard variable you must also declare the
13 // blackboard variable within the ast_definitions file found at:
14 //
15 // //t7/main/game/share/raw/animtables/ast_definitions.json
16 //
17 // This allows the Animation Selector Table system to determine how to create
18 // queries based on the blackboard variable.
19 //
20 // Also, all blackboard values must be lowercased! No convert to lower is
21 // perform when assigning values to the blackboard.
22 //
23 //*****************************************************************************
25 {
26  Assert(IsVehicle(self), "RegisterVehicleBlackBoardAttributes: Should only be called on vehicles");
27 
30 }
31 
32 function ‪BB_GetSpeed()
33 {
34  velocity = self GetVelocity();
35  return Length( velocity );
36 }
37 
38 #define DEFAULT_ENEMY_YAW 0
40 {
41  enemy = self.enemy;
42 
43  if( !IsDefined( enemy ) )
44  return ‪DEFAULT_ENEMY_YAW;
45 
46  toEnemyYaw = ‪VehGetPredictedYawToEnemy( self, 0.2 );
47 
48  return toEnemyYaw;
49 }
50 
51 function ‪VehGetPredictedYawToEnemy( entity, lookAheadTime )
52 {
53  // don't run this more than once per frame
54  if( IsDefined(entity.predictedYawToEnemy) && IsDefined(entity.predictedYawToEnemyTime) && entity.predictedYawToEnemyTime == GetTime() )
55  return entity.predictedYawToEnemy;
56 
57  selfPredictedPos = entity.origin;
58  moveAngle = entity.angles[1] + entity getMotionAngle();
59  selfPredictedPos += (cos( moveAngle ), sin( moveAngle ), 0) * 200.0 * lookAheadTime;
60 
61  yaw = VectorToAngles(entity.enemy.origin - selfPredictedPos)[1] - entity.angles[1];
62  yaw = AbsAngleClamp360( yaw );
63 
64  // cache
65  entity.predictedYawToEnemy = yaw;
66  entity.predictedYawToEnemyTime = GetTime();
67 
68  return yaw;
69 }
‪BB_VehGetEnemyYaw
‪function BB_VehGetEnemyYaw()
Definition: blackboard_vehicle.gsc:39
‪BB_REGISTER_ATTRIBUTE
‪#define BB_REGISTER_ATTRIBUTE(name, defaultValue, getter)
Definition: blackboard.gsh:1
‪VehGetPredictedYawToEnemy
‪function VehGetPredictedYawToEnemy(entity, lookAheadTime)
Definition: blackboard_vehicle.gsc:51
‪BB_GetSpeed
‪function BB_GetSpeed()
Definition: blackboard_vehicle.gsc:32
‪ENEMY_YAW
‪#define ENEMY_YAW
Definition: blackboard.gsh:87
‪RegisterVehicleBlackBoardAttributes
‪function RegisterVehicleBlackBoardAttributes()
Definition: blackboard_vehicle.gsc:24
‪DEFAULT_ENEMY_YAW
‪#define DEFAULT_ENEMY_YAW
Definition: blackboard_vehicle.gsc:38
‪SPEED
‪#define SPEED
Definition: blackboard.gsh:131