From 28f398d3f2557311129535c07a2c519a911a4162 Mon Sep 17 00:00:00 2001 From: NachosChipeados <103285866+NachosChipeados@users.noreply.github.com> Date: Mon, 11 Nov 2024 07:55:16 -0400 Subject: Allow executing ``npc_pilot_elite`` NPCs (#888) Allows players to execute pilot NPCs --- .../keyvalues/scripts/aisettings/npc_pilot_elite.txt | 5 +++++ .../mod/scripts/vscripts/melee/sh_melee.gnut | 20 +++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 Northstar.Custom/keyvalues/scripts/aisettings/npc_pilot_elite.txt diff --git a/Northstar.Custom/keyvalues/scripts/aisettings/npc_pilot_elite.txt b/Northstar.Custom/keyvalues/scripts/aisettings/npc_pilot_elite.txt new file mode 100644 index 00000000..349277c3 --- /dev/null +++ b/Northstar.Custom/keyvalues/scripts/aisettings/npc_pilot_elite.txt @@ -0,0 +1,5 @@ +npc_pilot_elite +{ + GibModel0 "models/gibs/human_gibs.mdl" + headshotFX "P_headshot_pilot" +} \ No newline at end of file diff --git a/Northstar.Custom/mod/scripts/vscripts/melee/sh_melee.gnut b/Northstar.Custom/mod/scripts/vscripts/melee/sh_melee.gnut index 95ab3915..a34def67 100644 --- a/Northstar.Custom/mod/scripts/vscripts/melee/sh_melee.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/melee/sh_melee.gnut @@ -969,10 +969,28 @@ string function GetVictimSyncedMeleeTargetType( entity ent ) { targetType = "prowler" } + + // Disabled to allow for executing NPC Pilots + + // The way this function works, is that if an entity gets added here, then whatever "targetType" it returns + // gets passed to sh_melee_synced_human.gnut or sh_melee_synced_titan.gnut, + // which determines what animation set that entity should use when getting executed + // If an entity is not included, the it uses its BodyType to determine it ( see line 83 in sh_melee_synced_human) + // As you can see: Grunts, and Spectres are not included here, so it gets their BodyType (human) and goes from there + + // I imagine the reason Respawn added the NPC Pilots to this function, is so they could make unique executions for them, + // just like the Prowlers + // Unfortunately, they either scrapped them, or simply never got around to making them + // That means this piece of code has basically no reason to exist anymore + // The only thing it does is break executions and thats it + // Since NPC Pilots also use the "human" BodyType, it means we can execute them with no issues + +/* else if ( IsPilotElite( ent ) ) { targetType = "pilotelite" } +*/ else if ( ent.IsNPC() ) { targetType = ent.GetBodyType() @@ -1223,4 +1241,4 @@ SyncedMelee ornull function PickRandomExecution( SyncedMeleeChooser actions, ent return possibleExecutions[0] } #endif -#endif \ No newline at end of file +#endif -- cgit v1.2.3