From 3cdb375291267de867a971705c44d118de29ca64 Mon Sep 17 00:00:00 2001 From: zaCade Date: Tue, 7 Aug 2018 19:08:27 +0200 Subject: [PATCH] ItemSpawn: Make a kill relay instead of trigger. --- ItemSpawn/scripting/items/balrog.inc | 67 +++++++++++++++------------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/ItemSpawn/scripting/items/balrog.inc b/ItemSpawn/scripting/items/balrog.inc index c4bf799a..8302456e 100644 --- a/ItemSpawn/scripting/items/balrog.inc +++ b/ItemSpawn/scripting/items/balrog.inc @@ -54,18 +54,12 @@ public void SpawnBalrog(float fOrigin[3]) DispatchKeyFormat(iKnife, "angles", "0 0 0"); DispatchKeyFormat(iKnife, "OnPlayerPickup", "item_balrog_knife_%d,AddOutput,renderfx 6,0.02,1", g_iCounter); DispatchKeyFormat(iKnife, "OnPlayerPickup", "item_balrog_model_%d,SetAnimation,balrog_attack1,0,1", g_iCounter); + DispatchKeyFormat(iKnife, "OnPlayerPickup", "item_balrog_health_%d,FireUser1,,0,1", g_iCounter); + DispatchKeyFormat(iKnife, "OnPlayerPickup", "item_balrog_health_%d,FireUser2,,0,1", g_iCounter); + DispatchKeyFormat(iKnife, "OnPlayerPickup", "item_balrog_health_%d,FireUser3,,0,1", g_iCounter); DispatchKeyFormat(iKnife, "OnPlayerPickup", "item_balrog_ui_%d,Activate,,0,1", g_iCounter); - DispatchKeyFormat(iKnife, "OnPlayerPickup", "item_spawn_speedmod,ModifySpeed,0.8,0,1"); DispatchKeyFormat(iKnife, "OnPlayerPickup", "!activator,AddOutput,health 50000,0,1"); - DispatchKeyFormat(iKnife, "OnPlayerPickup", "!self,FireUser1,,0,1"); - DispatchKeyFormat(iKnife, "OnPlayerPickup", "!self,FireUser2,,0,1"); - DispatchKeyFormat(iKnife, "OnUser1", "!activator,AddOutput,rendermode 10,0,-1"); - DispatchKeyFormat(iKnife, "OnUser1", "!activator,AddOutput,renderfx 6,0,-1"); - DispatchKeyFormat(iKnife, "OnUser1", "!self,FireUser1,,1,-1"); - DispatchKeyFormat(iKnife, "OnUser2", "item_balrog_walk_%d,Disable,,0,-1", g_iCounter); - DispatchKeyFormat(iKnife, "OnUser2", "item_balrog_walk_%d,Enable,,0.1,-1", g_iCounter); - DispatchKeyFormat(iKnife, "OnUser2", "item_balrog_walk_sound_%d,PlaySound,,0,-1", g_iCounter); - DispatchKeyFormat(iKnife, "OnUser2", "!self,FireUser2,,0.95,-1"); + DispatchKeyFormat(iKnife, "OnPlayerPickup", "item_spawn_speedmod,ModifySpeed,0.8,0,1"); SpawnAndActivate(iKnife); HookSingleEntityOutput(iKnife, "OnPlayerPickup", BalrogPickup, true); @@ -101,24 +95,6 @@ public void SpawnBalrog(float fOrigin[3]) SetEntitySolid(iTriggerStrip); SetEntityNodraw(iTriggerStrip); - // trigger_once death. - int iTriggerDeath = CreateEntityAtOrigin("trigger_once", fOrigin); - DispatchKeyFormat(iTriggerDeath, "targetname", "item_balrog_death_%d", g_iCounter); - DispatchKeyFormat(iTriggerDeath, "filtername", "item_spawn_zombie_filter"); - DispatchKeyFormat(iTriggerDeath, "spawnflags", "1"); - DispatchKeyFormat(iTriggerDeath, "startdisabled", "1"); - DispatchKeyFormat(iTriggerDeath, "OnStartTouch", "!activator,SetDamageFilter,,0,-1"); - DispatchKeyFormat(iTriggerDeath, "OnStartTouch", "!activator,SetHealth,0,0.02,-1"); - DispatchKeyFormat(iTriggerDeath, "OnStartTouch", "!activator,AddOutput,rendermode 0,1,-1"); - DispatchKeyFormat(iTriggerDeath, "OnStartTouch", "!activator,AddOutput,renderfx 0,1,-1"); - SpawnAndActivate(iTriggerDeath); - ParentToEntity(iTriggerDeath, iKnife); - - // make the trigger work. - SetEntityBBox(iTriggerDeath, view_as({-8.0, -8.0, -8.0}), view_as({8.0, 8.0, 8.0})); - SetEntitySolid(iTriggerDeath); - SetEntityNodraw(iTriggerDeath); - // walk origin. fOriginTemp[0] = fOrigin[0] + 28.5; fOriginTemp[1] = fOrigin[1] - 2.74; @@ -270,6 +246,28 @@ public void SpawnBalrog(float fOrigin[3]) SpawnAndActivate(iRelayAttack); ParentToEntity(iRelayAttack, iKnife); + // logic_relay death. + int iRelayDeath = CreateEntityAtOrigin("logic_compare", fOrigin); + DispatchKeyFormat(iRelayDeath, "targetname", "item_balrog_death_%d", g_iCounter); + DispatchKeyFormat(iRelayDeath, "spawnflags", "0"); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_knife_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_strip_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_walk_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_roar_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_attack_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_walk_sound_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_roar_sound_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_attack_sound_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_roar_compare_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "item_balrog_attack_compare_%d,Kill,,1,-1", g_iCounter); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "!activator,AddOutput,rendermode 0,1,-1"); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "!activator,AddOutput,renderfx 0,1,-1"); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "!activator,AddOutput,gravity 1,0,-1"); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "!activator,SetDamageFilter,,1,-1"); + DispatchKeyFormat(iRelayDeath, "OnTrigger", "!activator,SetHealth,0,1.02,-1"); + SpawnAndActivate(iRelayDeath); + ParentToEntity(iRelayDeath, iKnife); + // health origin. fOriginTemp[0] = fOrigin[0] + 44.0; fOriginTemp[1] = fOrigin[1] - 18.74; @@ -317,8 +315,17 @@ public void SpawnBalrog(float fOrigin[3]) DispatchKeyFormat(iHealth, "OnBreak", "item_balrog_model_%d,ClearParent,,0,-1", g_iCounter); DispatchKeyFormat(iHealth, "OnBreak", "item_balrog_model_%d,SetAnimation,balrog_death,0,-1", g_iCounter); DispatchKeyFormat(iHealth, "OnBreak", "item_balrog_model_%d,SetDefaultAnimation,balrog_death_idle,0,-1", g_iCounter); - DispatchKeyFormat(iHealth, "OnBreak", "item_balrog_death_%d,Enable,,1,-1", g_iCounter); - DispatchKeyFormat(iHealth, "OnBreak", "item_balrog_death_%d,Kill,,2,-1", g_iCounter); + DispatchKeyFormat(iHealth, "OnUser1", "!activator,AddOutput,rendermode 10,0,-1"); + DispatchKeyFormat(iHealth, "OnUser1", "!activator,AddOutput,renderfx 6,0,-1"); + DispatchKeyFormat(iHealth, "OnUser1", "!activator,AddOutput,gravity 2,0,-1"); + DispatchKeyFormat(iHealth, "OnUser1", "!self,FireUser1,,1,-1"); + DispatchKeyFormat(iHealth, "OnUser2", "item_balrog_walk_sound_%d,PlaySound,,0,-1", g_iCounter); + DispatchKeyFormat(iHealth, "OnUser2", "item_balrog_walk_%d,Disable,,0,-1", g_iCounter); + DispatchKeyFormat(iHealth, "OnUser2", "item_balrog_walk_%d,Enable,,0.1,-1", g_iCounter); + DispatchKeyFormat(iHealth, "OnUser2", "!self,FireUser2,,0.95,-1"); + DispatchKeyFormat(iHealth, "OnUser3", "item_balrog_death_%d,CancelPending,,0,-1", g_iCounter); + DispatchKeyFormat(iHealth, "OnUser3", "item_balrog_death_%d,Trigger,,0.1,-1", g_iCounter); + DispatchKeyFormat(iHealth, "OnUser3", "!self,FireUser3,,0.2,-1"); SpawnAndActivate(iHealth); ParentToEntity(iHealth, iKnife);