diff --git a/ItemSpawn/scripting/ItemSpawn.sp b/ItemSpawn/scripting/ItemSpawn.sp index 26335bb3..2badfa3e 100644 --- a/ItemSpawn/scripting/ItemSpawn.sp +++ b/ItemSpawn/scripting/ItemSpawn.sp @@ -200,6 +200,13 @@ public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) DispatchKeyFormat(iPlayerSpeed, "targetname", "item_spawn_speedmod"); SpawnAndActivate(iPlayerSpeed); + // filter_activator_class nodamage. + int iNoDamageFilter = CreateEntityByName("filter_activator_class"); + DispatchKeyFormat(iNoDamageFilter, "targetname", "item_spawn_nodamage"); + DispatchKeyFormat(iNoDamageFilter, "Negated", "0"); + DispatchKeyFormat(iNoDamageFilter, "filterclass", "light"); + SpawnAndActivate(iNoDamageFilter); + // filter_activator_team humans. int iHumanFilter = CreateEntityByName("filter_activator_team"); DispatchKeyFormat(iHumanFilter, "targetname", "item_spawn_human_filter"); diff --git a/ItemSpawn/scripting/items/whiteknight.inc b/ItemSpawn/scripting/items/whiteknight.inc index 21bb891f..9829e952 100644 --- a/ItemSpawn/scripting/items/whiteknight.inc +++ b/ItemSpawn/scripting/items/whiteknight.inc @@ -143,6 +143,10 @@ public void SpawnWhiteKnight(float fOrigin[3]) DispatchKeyFormat(iTriggerAttack3, "damagemodel", "0"); DispatchKeyFormat(iTriggerAttack3, "damagecap", "20"); DispatchKeyFormat(iTriggerAttack3, "damage", "800"); + DispatchKeyFormat(iTriggerAttack3, "OnUser1", "!self,AddOutput,damage 800,0,-1"); + DispatchKeyFormat(iTriggerAttack3, "OnUser2", "!self,AddOutput,damage 1500,0,-1"); + DispatchKeyFormat(iTriggerAttack3, "OnUser1", "!self,Enable,,0,-1"); + DispatchKeyFormat(iTriggerAttack3, "OnUser2", "!self,Enable,,0,-1"); SpawnAndActivate(iTriggerAttack3); ParentToEntity(iTriggerAttack3, iKnife); @@ -234,7 +238,25 @@ public void SpawnWhiteKnight(float fOrigin[3]) int iBranchAttack = CreateEntityAtOrigin("logic_branch", fOrigin); DispatchKeyFormat(iBranchAttack, "targetname", "item_knight_attack_branch_%d", g_iCounter); DispatchKeyFormat(iBranchAttack, "spawnflags", "0"); - // IO + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_attack_case_1_%d,PickRandom,,0,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_attack_sound_1_%d,PlaySound,,0.3,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_attack_1_%d,Enable,,0.3,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_attack_3_%d,FireUser1,,0.3,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_attack_1_%d,Disable,,0.5,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_attack_3_%d,Disable,,0.5,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_attack_compare_%d,SetValue,0,1,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_attack_compare_%d,SetCompareValue,0,1,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_shield_compare_%d,SetCompareValue,0,1,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnFalse", "item_knight_nuke_compare_%d,SetCompareValue,0,1,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnTrue", "item_spawn_speedmod,ModifySpeed,0,0,-1"); + DispatchKeyFormat(iBranchAttack, "OnTrue", "item_knight_attack_case_2_%d,PickRandom,,0,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnTrue", "item_knight_attack_sound_2_%d,PlaySound,,1,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnTrue", "item_knight_attack_2_%d,Enable,,1,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnTrue", "item_knight_attack_3_%d,FireUser2,,1,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnTrue", "item_knight_attack_2_%d,Disable,,1.2,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnTrue", "item_knight_attack_3_%d,Disable,,1.2,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnTrue", "item_knight_attack_compare_%d,SetValue,0,2,-1", g_iCounter); + DispatchKeyFormat(iBranchAttack, "OnTrue", "item_knight_walk_%d,Trigger,,2,-1", g_iCounter); SpawnAndActivate(iBranchAttack); ParentToEntity(iBranchAttack, iKnife); @@ -245,9 +267,9 @@ public void SpawnWhiteKnight(float fOrigin[3]) DispatchKeyFormat(iCaseAttack1, "Case01", "1"); DispatchKeyFormat(iCaseAttack1, "Case02", "2"); DispatchKeyFormat(iCaseAttack1, "Case03", "3"); - DispatchKeyFormat(iCaseAttack1, "OnCase01", "item_knight_model_%d,SetAnimation,dog_sword1,0,-1"); - DispatchKeyFormat(iCaseAttack1, "OnCase02", "item_knight_model_%d,SetAnimation,dog_sword2,0,-1"); - DispatchKeyFormat(iCaseAttack1, "OnCase03", "item_knight_model_%d,SetAnimation,dog_sword3,0,-1"); + DispatchKeyFormat(iCaseAttack1, "OnCase01", "item_knight_model_%d,SetAnimation,dog_sword1,0,-1", g_iCounter); + DispatchKeyFormat(iCaseAttack1, "OnCase02", "item_knight_model_%d,SetAnimation,dog_sword2,0,-1", g_iCounter); + DispatchKeyFormat(iCaseAttack1, "OnCase03", "item_knight_model_%d,SetAnimation,dog_sword3,0,-1", g_iCounter); SpawnAndActivate(iCaseAttack1); ParentToEntity(iCaseAttack1, iKnife); @@ -257,8 +279,8 @@ public void SpawnWhiteKnight(float fOrigin[3]) DispatchKeyFormat(iCaseAttack2, "spawnflags", "0"); DispatchKeyFormat(iCaseAttack2, "Case01", "1"); DispatchKeyFormat(iCaseAttack2, "Case02", "2"); - DispatchKeyFormat(iCaseAttack2, "OnCase01", "item_knight_model_%d,SetAnimation,dog_sword1heavy,0,-1"); - DispatchKeyFormat(iCaseAttack2, "OnCase02", "item_knight_model_%d,SetAnimation,dog_sword2heavy,0,-1"); + DispatchKeyFormat(iCaseAttack2, "OnCase01", "item_knight_model_%d,SetAnimation,dog_sword1heavy,0,-1", g_iCounter); + DispatchKeyFormat(iCaseAttack2, "OnCase02", "item_knight_model_%d,SetAnimation,dog_sword2heavy,0,-1", g_iCounter); SpawnAndActivate(iCaseAttack2); ParentToEntity(iCaseAttack2, iKnife); @@ -280,7 +302,12 @@ public void SpawnWhiteKnight(float fOrigin[3]) DispatchKeyFormat(iCompareShield, "OnEqualTo", "!self,SetValue,0,6,-1"); DispatchKeyFormat(iCompareShield, "OnEqualTo", "item_knight_attack_compare_%d,SetCompareValue,-1,0,-1", g_iCounter); DispatchKeyFormat(iCompareShield, "OnEqualTo", "item_knight_shield_compare_%d,SetCompareValue,-1,0,-1", g_iCounter); - // IO + DispatchKeyFormat(iCompareShield, "OnEqualTo", "item_knight_model_%d,SetAnimation,dog_defense,0,-1", g_iCounter); + DispatchKeyFormat(iCompareShield, "OnEqualTo", "item_knight_model_%d,SetDefaultAnimation,dog_defense,0,-1", g_iCounter); + DispatchKeyFormat(iCompareShield, "OnEqualTo", "item_knight_health_%d,SetDamageFilter,item_spawn_nodamage,0,-1", g_iCounter); + DispatchKeyFormat(iCompareShield, "OnEqualTo", "item_knight_health_%d,SetDamageFilter,item_spawn_zombie_filter,0,-1", g_iCounter); + DispatchKeyFormat(iCompareShield, "OnEqualTo", "item_knight_walk_%d,Trigger,,2,-1", g_iCounter); + DispatchKeyFormat(iCompareShield, "OnEqualTo", "item_spawn_speedmod,ModifySpeed,0,0,-1"); SpawnAndActivate(iCompareShield); ParentToEntity(iCompareShield, iKnife); @@ -288,12 +315,11 @@ public void SpawnWhiteKnight(float fOrigin[3]) int iCompareNuke = CreateEntityAtOrigin("logic_compare", fOrigin); DispatchKeyFormat(iCompareNuke, "targetname", "item_knight_nuke_compare_%d", g_iCounter); DispatchKeyFormat(iCompareNuke, "spawnflags", "0"); - DispatchKeyFormat(iCompareNuke, "OnEqualTo", "!self,SetValue,1,0,-1"); - DispatchKeyFormat(iCompareNuke, "OnEqualTo", "!self,SetValue,0,150,-1"); - DispatchKeyFormat(iCompareNuke, "OnEqualTo", "item_knight_attack_compare_%d,SetCompareValue,-1,0,-1", g_iCounter); - DispatchKeyFormat(iCompareNuke, "OnEqualTo", "item_knight_shield_compare_%d,SetCompareValue,-1,0,-1", g_iCounter); - DispatchKeyFormat(iCompareNuke, "OnEqualTo", "item_knight_nuke_compare_%d,SetCompareValue,-1,0,-1", g_iCounter); - // IO +// DispatchKeyFormat(iCompareNuke, "OnEqualTo", "!self,SetValue,1,0,-1"); +// DispatchKeyFormat(iCompareNuke, "OnEqualTo", "!self,SetValue,0,150,-1"); +// DispatchKeyFormat(iCompareNuke, "OnEqualTo", "item_knight_attack_compare_%d,SetCompareValue,-1,0,-1", g_iCounter); +// DispatchKeyFormat(iCompareNuke, "OnEqualTo", "item_knight_shield_compare_%d,SetCompareValue,-1,0,-1", g_iCounter); +// DispatchKeyFormat(iCompareNuke, "OnEqualTo", "item_knight_nuke_compare_%d,SetCompareValue,-1,0,-1", g_iCounter); SpawnAndActivate(iCompareNuke); ParentToEntity(iCompareNuke, iKnife); @@ -497,6 +523,7 @@ public void SpawnWhiteKnight(float fOrigin[3]) DispatchKeyFormat(iHealth, "OnBreak", "item_knight_model_%d,ClearParent,,0,1", g_iCounter); DispatchKeyFormat(iHealth, "OnBreak", "item_knight_model_%d,SetAnimation,dog_die,0,1", g_iCounter); DispatchKeyFormat(iHealth, "OnBreak", "item_knight_model_%d,SetDefaultAnimation,dog_die_loop,0,1", g_iCounter); + DispatchKeyFormat(iHealth, "OnPlayerUse", "item_knight_attack_branch_%d,Toggle,,0,-1", g_iCounter); DispatchKeyFormat(iHealth, "OnUser1", "!activator,SetDamageFilter,item_spawn_human_filter,0,-1"); DispatchKeyFormat(iHealth, "OnUser1", "!activator,AddOutput,rendermode 10,0,-1"); DispatchKeyFormat(iHealth, "OnUser1", "!activator,AddOutput,renderfx 6,0,-1");