76 lines
10 KiB
Plaintext
76 lines
10 KiB
Plaintext
#using scripts\codescripts\struct;
|
|
|
|
#using scripts\shared\math_shared;
|
|
#using scripts\shared\statemachine_shared;
|
|
#using scripts\shared\system_shared;
|
|
#using scripts\shared\array_shared;
|
|
#using scripts\shared\util_shared;
|
|
|
|
#using scripts\shared\vehicle_shared;
|
|
#using scripts\shared\vehicle_ai_shared;
|
|
#using scripts\shared\vehicle_death_shared;
|
|
#using scripts\shared\clientfield_shared;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#using_animtree( "generic" );
|
|
|
|
#namespace counteruav;
|
|
|
|
function autoexec __init__sytem__() { system::register("counteruav",&__init__,undefined,undefined); }
|
|
|
|
function __init__()
|
|
{
|
|
vehicle::add_main_callback( "counteruav", &counteruav_initialize );
|
|
}
|
|
|
|
function counteruav_initialize()
|
|
{
|
|
self UseAnimTree( #animtree );
|
|
|
|
Target_Set( self, ( 0, 0, 0 ) );
|
|
|
|
self.health = self.healthdefault;
|
|
|
|
self vehicle::friendly_fire_shield();
|
|
|
|
//self EnableAimAssist();
|
|
//self SetNearGoalNotifyDist( 40 );
|
|
|
|
self SetVehicleAvoidance( true ); // this is ORCA avoidance
|
|
|
|
self SetHoverParams( 50.0, 100.0, 100.0 );
|
|
|
|
self.vehAirCraftCollisionEnabled = true;
|
|
|
|
assert( isdefined( self.scriptbundlesettings ) );
|
|
|
|
self.settings = struct::get_script_bundle( "vehiclecustomsettings", self.scriptbundlesettings );
|
|
self.goalRadius = 999999;
|
|
self.goalHeight = 999999;
|
|
self SetGoal( self.origin, false, self.goalRadius, self.goalHeight );
|
|
|
|
self.overrideVehicleDamage = &drone_callback_damage;
|
|
|
|
// self thread vehicle_ai::nudge_collision(); // do we need this?
|
|
|
|
//disable some cybercom abilities
|
|
if( IsDefined( level.vehicle_initializer_cb ) )
|
|
{
|
|
[[level.vehicle_initializer_cb]]( self );
|
|
}
|
|
}
|
|
|
|
function drone_callback_damage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, psOffsetTime, damageFromUnderneath, modelIndex, partName, vSurfaceNormal )
|
|
{
|
|
iDamage = vehicle_ai::shared_callback_damage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, psOffsetTime, damageFromUnderneath, modelIndex, partName, vSurfaceNormal );
|
|
|
|
return iDamage;
|
|
}
|
|
|
|
|