diff --git a/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_body.vmt b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_body.vmt new file mode 100644 index 00000000..29f4ae73 --- /dev/null +++ b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_body.vmt @@ -0,0 +1,7 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/player/slow/amberlyn/lotr/balrog/slow_body" + + "$selfillum" 1 + +} diff --git a/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_body.vtf b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_body.vtf new file mode 100644 index 00000000..b1a7da65 Binary files /dev/null and b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_body.vtf differ diff --git a/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_body_2.vmt b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_body_2.vmt new file mode 100644 index 00000000..299786dd --- /dev/null +++ b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_body_2.vmt @@ -0,0 +1,9 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/player/slow/amberlyn/lotr/balrog/slow_body" + + + "$selfillum" 1 + + +} diff --git a/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_eyes.vmt b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_eyes.vmt new file mode 100644 index 00000000..75d643bd --- /dev/null +++ b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_eyes.vmt @@ -0,0 +1,13 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/player/slow/amberlyn/lotr/balrog/slow_body" + "$bumpmap" "models/player/slow/amberlyn/lotr/balrog/slow_body_bump" + + "$selfillum" 1 + + "$envmap" "env_cubemap" + "$normalmapalphaenvmapmask" 1 + "$envmaptint" "[1 1 1]" + "$envmapcontrast" .25 + "$envmapsaturation" 1 +} \ No newline at end of file diff --git a/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon.vmt b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon.vmt new file mode 100644 index 00000000..06c872a4 --- /dev/null +++ b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon.vmt @@ -0,0 +1,10 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/player/slow/amberlyn/lotr/balrog/slow_weapon" + "$bumpmap" "models/player/slow/amberlyn/lotr/balrog/slow_weapon_bump" + + "$phong" "1" + "$phongexponent" "25" + "$phongboost" "1" + "$phongfresnelranges" "[.15 .5 1]" +} \ No newline at end of file diff --git a/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon.vtf b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon.vtf new file mode 100644 index 00000000..0d13c105 Binary files /dev/null and b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon.vtf differ diff --git a/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon_blade.vmt b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon_blade.vmt new file mode 100644 index 00000000..a516bc21 --- /dev/null +++ b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon_blade.vmt @@ -0,0 +1,13 @@ +"UnlitGeneric" +{ + "$basetexture" "models/player/slow/amberlyn/lotr/balrog/slow_weapon" + + "$model" 1 + "$additive" 1 + + "$envmap" "env_cubemap" + "$normalmapalphaenvmapmask" 1 + "$envmaptint" "{230 200 36}" + "$envmapcontrast" 1 + "$envmapsaturation" 1 +} \ No newline at end of file diff --git a/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon_bump.vtf b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon_bump.vtf new file mode 100644 index 00000000..f4e5a525 Binary files /dev/null and b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon_bump.vtf differ diff --git a/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_wings.vmt b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_wings.vmt new file mode 100644 index 00000000..2ae14cb6 --- /dev/null +++ b/ItemSpawn/content/materials/models/player/slow/amberlyn/lotr/balrog/slow_wings.vmt @@ -0,0 +1,20 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/player/slow/amberlyn/lotr/balrog/slow_body" + + "$selfillum" 1 + + + + "Proxies" + { + "Sine" + { + + "resultVar" "$alpha" + "sineperiod" 0 + "sinemin" .75 + "sinemax" .75 + } + } +} diff --git a/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.dx80.vtx b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.dx80.vtx new file mode 100644 index 00000000..770996fd Binary files /dev/null and b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.dx80.vtx differ diff --git a/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.dx90.vtx b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.dx90.vtx new file mode 100644 index 00000000..c5aa7671 Binary files /dev/null and b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.dx90.vtx differ diff --git a/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.mdl b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.mdl new file mode 100644 index 00000000..e5eac0a3 Binary files /dev/null and b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.mdl differ diff --git a/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.sw.vtx b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.sw.vtx new file mode 100644 index 00000000..0b514188 Binary files /dev/null and b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.sw.vtx differ diff --git a/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.vvd b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.vvd new file mode 100644 index 00000000..f8d9cf05 Binary files /dev/null and b/ItemSpawn/content/models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.vvd differ diff --git a/ItemSpawn/content/sound/unloze/balrog_scream.mp3 b/ItemSpawn/content/sound/unloze/balrog_scream.mp3 new file mode 100644 index 00000000..b917afbf Binary files /dev/null and b/ItemSpawn/content/sound/unloze/balrog_scream.mp3 differ diff --git a/ItemSpawn/scripting/ItemSpawn.sp b/ItemSpawn/scripting/ItemSpawn.sp new file mode 100644 index 00000000..0cc370f7 --- /dev/null +++ b/ItemSpawn/scripting/ItemSpawn.sp @@ -0,0 +1,839 @@ +#include +#include +#include + +#pragma semicolon 1 +#pragma newdecls required + +int g_iCounter = 0; + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public Plugin myinfo = +{ + name = "ItemSpawn", + author = "Neon", + description = "", + version = "1.0", + url = "https://steamcommunity.com/id/n3ontm" +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnPluginStart() +{ + HookEvent("round_start", OnRoundStart, EventHookMode_Post); + RegAdminCmd("sm_vortigaunt", Command_Vortigaunt, ADMFLAG_RCON); + RegAdminCmd("sm_balrog", Command_Balrog, ADMFLAG_RCON); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnMapStart() +{ + PrecacheModel("models/props/cs_militia/crate_extrasmallmill.mdl"); + + // Vortigaunt + PrecacheModel("models/vortigaunt_slave.mdl"); + + // Balrog + AddFileToDownloadsTable("models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.dx80.vtx"); + AddFileToDownloadsTable("models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.dx90.vtx"); + AddFileToDownloadsTable("models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.mdl"); + AddFileToDownloadsTable("models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.sw.vtx"); + AddFileToDownloadsTable("models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.vvd"); + + AddFileToDownloadsTable("materials/models/player/slow/amberlyn/lotr/balrog/slow_body.vmt"); + AddFileToDownloadsTable("materials/models/player/slow/amberlyn/lotr/balrog/slow_body.vtf"); + AddFileToDownloadsTable("materials/models/player/slow/amberlyn/lotr/balrog/slow_body_2.vmt"); + AddFileToDownloadsTable("materials/models/player/slow/amberlyn/lotr/balrog/slow_eyes.vmt"); + AddFileToDownloadsTable("materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon.vmt"); + AddFileToDownloadsTable("materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon.vtf"); + AddFileToDownloadsTable("materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon_blade.vmt"); + AddFileToDownloadsTable("materials/models/player/slow/amberlyn/lotr/balrog/slow_weapon_bump.vtf"); + AddFileToDownloadsTable("materials/models/player/slow/amberlyn/lotr/balrog/slow_wings.vmt"); + PrecacheModel("models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.mdl"); + AddFileToDownloadsTable("sound/unloze/balrog_scream.mp3"); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) +{ + g_iCounter = 0; + + // Human filter + int iHumanFilter = CreateEntityByName("filter_activator_team"); + DispatchKeyValue(iHumanFilter, "targetname", "item_spawn_human_filter"); + DispatchKeyValue(iHumanFilter, "Negated", "0"); + DispatchKeyValue(iHumanFilter, "filterteam", "3"); + DispatchSpawn(iHumanFilter); + ActivateEntity(iHumanFilter); + + // Zombie filter + int iZombieFilter = CreateEntityByName("filter_activator_team"); + DispatchKeyValue(iZombieFilter, "targetname", "item_spawn_zombie_filter"); + DispatchKeyValue(iZombieFilter, "Negated", "0"); + DispatchKeyValue(iZombieFilter, "filterteam", "2"); + DispatchSpawn(iZombieFilter); + ActivateEntity(iZombieFilter); + + // player_weaponstrip + int iWeaponStrip = CreateEntityByName("player_weaponstrip"); + DispatchKeyValue(iWeaponStrip, "targetname", "item_spawn_weaponstrip"); + DispatchSpawn(iWeaponStrip); + ActivateEntity(iWeaponStrip); + + // speedmod + int iSpeedMod = CreateEntityByName("player_speedmod"); + DispatchKeyValue(iSpeedMod, "targetname", "item_spawn_speed"); + DispatchSpawn(iSpeedMod); + ActivateEntity(iSpeedMod); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public Action Command_Balrog(int client, int argc) +{ + float fOrigin[3]; + + if (argc < 1) + { + GetClientEyePosition(client, fOrigin); + SpawnBalrog(fOrigin); + return Plugin_Handled; + } + + char sArgs[64]; + char sTargetName[MAX_TARGET_LENGTH]; + int iTargets[MAXPLAYERS]; + int iTargetCount; + bool bIsML; + + GetCmdArg(1, sArgs, sizeof(sArgs)); + + if ((iTargetCount = ProcessTargetString(sArgs, client, iTargets, MAXPLAYERS, COMMAND_FILTER_CONNECTED, sTargetName, sizeof(sTargetName), bIsML)) <= 0) + { + ReplyToTargetError(client, iTargetCount); + return Plugin_Handled; + } + + for (int i = 0; i < iTargetCount; i++) + { + if(IsClientInGame(iTargets[i]) && IsPlayerAlive(iTargets[i]) && (ZR_IsClientZombie(iTargets[i]))) + { + GetClientEyePosition(iTargets[i], fOrigin); + SpawnBalrog(fOrigin); + } + } + return Plugin_Handled; +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public Action Command_Vortigaunt(int client, int argc) +{ + float fOrigin[3]; + + if (argc < 1) + { + GetClientEyePosition(client, fOrigin); + SpawnVortigaunt(fOrigin); + return Plugin_Handled; + } + + char sArgs[64]; + char sTargetName[MAX_TARGET_LENGTH]; + int iTargets[MAXPLAYERS]; + int iTargetCount; + bool bIsML; + + GetCmdArg(1, sArgs, sizeof(sArgs)); + + if ((iTargetCount = ProcessTargetString(sArgs, client, iTargets, MAXPLAYERS, COMMAND_FILTER_CONNECTED, sTargetName, sizeof(sTargetName), bIsML)) <= 0) + { + ReplyToTargetError(client, iTargetCount); + return Plugin_Handled; + } + + for (int i = 0; i < iTargetCount; i++) + { + if(IsClientInGame(iTargets[i]) && IsPlayerAlive(iTargets[i]) && (ZR_IsClientZombie(iTargets[i]))) + { + GetClientEyePosition(iTargets[i], fOrigin); + SpawnVortigaunt(fOrigin); + } + } + return Plugin_Handled; +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void SpawnBalrog(float fOrigin[3]) +{ + char sBuffer[256]; + float fOriginTemp[3]; + + // Knife + int iKnife = CreateEntityByName("weapon_knife"); + Format(sBuffer, sizeof(sBuffer), "balrog_knife_%d", g_iCounter); + DispatchKeyValue(iKnife, "targetname", sBuffer); + Format(sBuffer, sizeof(sBuffer), "11051995%d", g_iCounter); + DispatchKeyValue(iKnife, "hammerid", sBuffer); + DispatchKeyValue(iKnife, "spawnflags", "1"); + DispatchKeyValue(iKnife, "angles", "0 0 0"); + DispatchKeyValueVector(iKnife, "origin", fOrigin); + DispatchKeyValue(iKnife, "OnPlayerPickUp", "!activator,AddOutput,renderfx 6,0,-1"); + Format(sBuffer, sizeof(sBuffer), "balrog_knife_%d,AddOutput,renderfx 6,0.03,-1", g_iCounter); + DispatchKeyValue(iKnife, "OnPlayerPickup", sBuffer); + DispatchKeyValue(iKnife, "OnPlayerPickup", "item_spawn_speed,ModifySpeed,0.8,0,-1"); + Format(sBuffer, sizeof(sBuffer), "balrog_model_%d,SetAnimation,balrog_attack1,0,-1", g_iCounter); + DispatchKeyValue(iKnife, "OnPlayerPickup", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_ui_%d,Activate,,0,-1", g_iCounter); + DispatchKeyValue(iKnife, "OnPlayerPickup", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_timer_%d,Enable,,0,-1", g_iCounter); + DispatchKeyValue(iKnife, "OnPlayerPickup", sBuffer); + DispatchKeyValue(iKnife, "OnPlayerPickUp", "!activator,AddOutput,rendermode 10,0,-1"); + DispatchKeyValue(iKnife, "OnPlayerPickUp", "!activator,AddOutput,health 2000000000,0,-1"); + DispatchKeyValue(iKnife, "OnPlayerPickUp", "!activator,SetDamageFilter, ,0,-1"); + DispatchKeyValue(iKnife, "OnUser3", "!self,FireUser3,,5,-1"); + DispatchKeyValue(iKnife, "OnUser3", "!activator,AddOutput,gravity 2,0,-1"); + DispatchKeyValue(iKnife, "OnPlayerPickUp", "!self,FireUser3,,0,-1"); + DispatchKeyValue(iKnife, "OnPlayerPickUp", "!activator,AddOutput,health 25000,15,-1"); + DispatchSpawn(iKnife); + ActivateEntity(iKnife); + HookSingleEntityOutput(iKnife, "OnPlayerPickup", BalrogPickup, false); + + // Model + int iModel = CreateEntityByName("prop_dynamic"); + Format(sBuffer, sizeof(sBuffer), "balrog_model_%d", g_iCounter); + DispatchKeyValue(iModel, "targetname", sBuffer); + DispatchKeyValue(iModel, "model", "models/player/slow/amberlyn/lotr/balrog/balrog_rafuron_hannibal.mdl"); + DispatchKeyValue(iModel, "DisableBoneFollowers", "1"); + DispatchKeyValue(iModel, "DefaultAnim", "crouch_walk_lower"); + DispatchKeyValue(iModel, "angles", "0 2 0"); + DispatchKeyValue(iModel, "solid", "0"); + fOriginTemp[0] = fOrigin[0] + 4.5; + fOriginTemp[1] = fOrigin[1] + 1.26; + fOriginTemp[2] = fOrigin[2] - 28.9; + DispatchKeyValueVector(iModel, "origin", fOriginTemp); + DispatchSpawn(iModel); + ActivateEntity(iModel); + //HookSingleEntityOutput(iModel, "OnTakeDamage", Balrogxxx, false); + + // pickup trigger_once + int iTrigger = CreateEntityByName("trigger_once"); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_%d", g_iCounter); + DispatchKeyValue(iTrigger, "targetname", sBuffer); + DispatchKeyValue(iTrigger, "spawnflags", "1"); + DispatchKeyValue(iTrigger, "startdisabled", "1"); + DispatchKeyValue(iTrigger, "filtername", "item_spawn_zombie_filter"); + DispatchKeyValue(iTrigger, "OnStartTouch", "item_spawn_weaponstrip,StripWeaponsAndSuit,,0,-1"); + DispatchKeyValueVector(iTrigger, "origin", fOrigin); + DispatchSpawn(iTrigger); + ActivateEntity(iTrigger); + SetEntityModel(iTrigger, "models/vortigaunt_slave.mdl"); + float fMinbounds[3] = {-10.0, -10.0, -36.0}; + float fMaxbounds[3] = {10.0, 10.0, 36.0}; + SetEntPropVector(iTrigger, Prop_Send, "m_vecMins", fMinbounds); + SetEntPropVector(iTrigger, Prop_Send, "m_vecMaxs", fMaxbounds); + SetEntProp(iTrigger, Prop_Send, "m_nSolidType", 2); + int enteffects = GetEntProp(iTrigger, Prop_Send, "m_fEffects"); + enteffects |= 32; + SetEntProp(iTrigger, Prop_Send, "m_fEffects", enteffects); + + // kill trigger_once + int iKillTrigger = CreateEntityByName("trigger_hurt"); + Format(sBuffer, sizeof(sBuffer), "balrog_kill_trigger_%d", g_iCounter); + DispatchKeyValue(iKillTrigger, "targetname", sBuffer); + DispatchKeyValue(iKillTrigger, "spawnflags", "1"); + DispatchKeyValue(iKillTrigger, "startdisabled", "1"); + DispatchKeyValue(iKillTrigger, "filtername", "item_spawn_zombie_filter"); + DispatchKeyValue(iKillTrigger, "damagetype", "0"); + DispatchKeyValue(iKillTrigger, "damagemodel", "0"); + DispatchKeyValue(iKillTrigger, "damagecap", "20"); + DispatchKeyValue(iKillTrigger, "damage", "200000"); + DispatchKeyValueVector(iKillTrigger, "origin", fOrigin); + DispatchSpawn(iKillTrigger); + ActivateEntity(iKillTrigger); + SetEntityModel(iKillTrigger, "models/vortigaunt_slave.mdl"); + float fMinbounds4[3] = {-10.0, -10.0, -36.0}; + float fMaxbounds4[3] = {10.0, 10.0, 36.0}; + SetEntPropVector(iKillTrigger, Prop_Send, "m_vecMins", fMinbounds4); + SetEntPropVector(iKillTrigger, Prop_Send, "m_vecMaxs", fMaxbounds4); + SetEntProp(iKillTrigger, Prop_Send, "m_nSolidType", 3); + int enteffects4 = GetEntProp(iKillTrigger, Prop_Send, "m_fEffects"); + enteffects4 |= 32; + SetEntProp(iKillTrigger, Prop_Send, "m_fEffects", enteffects4); + + // trigger_hurt walking + int iKillTriggerWalking = CreateEntityByName("trigger_hurt"); + Format(sBuffer, sizeof(sBuffer), "balrog_kill_trigger_walking_%d", g_iCounter); + DispatchKeyValue(iKillTriggerWalking, "targetname", sBuffer); + DispatchKeyValue(iKillTriggerWalking, "spawnflags", "9"); + DispatchKeyValue(iKillTriggerWalking, "startdisabled", "0"); + DispatchKeyValue(iKillTriggerWalking, "filtername", "item_spawn_human_filter"); + DispatchKeyValue(iKillTriggerWalking, "damagetype", "128"); + DispatchKeyValue(iKillTriggerWalking, "damagemodel", "0"); + DispatchKeyValue(iKillTriggerWalking, "damagecap", "20"); + DispatchKeyValue(iKillTriggerWalking, "damage", "190"); + fOriginTemp[0] = fOrigin[0] + 28.5; + fOriginTemp[1] = fOrigin[1] - 2.74; + fOriginTemp[2] = fOrigin[2] - 4.9; + DispatchKeyValueVector(iKillTriggerWalking, "origin", fOriginTemp); + DispatchSpawn(iKillTriggerWalking); + ActivateEntity(iKillTriggerWalking); + SetEntityModel(iKillTriggerWalking, "models/vortigaunt_slave.mdl"); + float fMinbounds5[3] = {-32.0, -72.0, -84.0}; + float fMaxbounds5[3] = {32.0, 72.0, 84.0}; + SetEntPropVector(iKillTriggerWalking, Prop_Send, "m_vecMins", fMinbounds5); + SetEntPropVector(iKillTriggerWalking, Prop_Send, "m_vecMaxs", fMaxbounds5); + SetEntProp(iKillTriggerWalking, Prop_Send, "m_nSolidType", 3); + int enteffects5 = GetEntProp(iKillTriggerWalking, Prop_Send, "m_fEffects"); + enteffects5 |= 32; + SetEntProp(iKillTriggerWalking, Prop_Send, "m_fEffects", enteffects5); + + // trigger roar 1 + int iTriggerRoar = CreateEntityByName("trigger_multiple"); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar1_%d", g_iCounter); + DispatchKeyValue(iTriggerRoar, "targetname", sBuffer); + DispatchKeyValue(iTriggerRoar, "spawnflags", "1"); + DispatchKeyValue(iTriggerRoar, "startdisabled", "1"); + DispatchKeyValue(iTriggerRoar, "filtername", "item_spawn_zombie_filter"); + DispatchKeyValue(iTriggerRoar, "wait", "1"); + DispatchKeyValue(iTriggerRoar, "OnStartTouch", "item_spawn_speed,ModifySpeed,0,0,-1"); + DispatchKeyValue(iTriggerRoar, "OnStartTouch", "item_spawn_speed,speed,ModifySpeed,0.8,3,-1"); + fOriginTemp[0] = fOrigin[0] + 5.0; + fOriginTemp[1] = fOrigin[1] - 0.0; + fOriginTemp[2] = fOrigin[2] - 0.0; + DispatchKeyValueVector(iTriggerRoar, "origin", fOriginTemp); + DispatchSpawn(iTriggerRoar); + ActivateEntity(iTriggerRoar); + SetEntityModel(iTriggerRoar, "models/vortigaunt_slave.mdl"); + float fMinbounds6[3] = {-0.5, -0.5, -36.0}; + float fMaxbounds6[3] = {0.5, 0.5, 36.0}; + SetEntPropVector(iTriggerRoar, Prop_Send, "m_vecMins", fMinbounds6); + SetEntPropVector(iTriggerRoar, Prop_Send, "m_vecMaxs", fMaxbounds6); + SetEntProp(iTriggerRoar, Prop_Send, "m_nSolidType", 3); + int enteffects6 = GetEntProp(iTriggerRoar, Prop_Send, "m_fEffects"); + enteffects6 |= 32; + SetEntProp(iTriggerRoar, Prop_Send, "m_fEffects", enteffects6); + + // trigger roar 2 + int iTriggerRoar2 = CreateEntityByName("trigger_multiple"); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar2_%d", g_iCounter); + DispatchKeyValue(iTriggerRoar2, "targetname", sBuffer); + DispatchKeyValue(iTriggerRoar2, "spawnflags", "1"); + DispatchKeyValue(iTriggerRoar2, "startdisabled", "1"); + DispatchKeyValue(iTriggerRoar2, "filtername", "item_spawn_zombie_filter"); + DispatchKeyValue(iTriggerRoar2, "wait", "1"); + DispatchKeyValue(iTriggerRoar2, "OnStartTouch", "!activator,AddOutput,health 10000,0,-1"); + DispatchKeyValue(iTriggerRoar2, "OnStartTouch", "item_spawn_speed,ModifySpeed,1.5,0,-1"); + DispatchKeyValue(iTriggerRoar2, "OnStartTouch", "item_spawn_speed,ModifySpeed,1.0,10,-1"); + DispatchKeyValue(iTriggerRoar2, "OnStartTouch", "!activator,AddOutput,color 255 0 0,0,-1"); + DispatchKeyValue(iTriggerRoar2, "OnStartTouch", "!activator,AddOutput,color 255 255 255,10,-1"); + fOriginTemp[0] = fOrigin[0] - 15.5; + fOriginTemp[1] = fOrigin[1] + 5.0; + fOriginTemp[2] = fOrigin[2] + 31.0; + DispatchKeyValueVector(iTriggerRoar2, "origin", fOriginTemp); + DispatchSpawn(iTriggerRoar2); + ActivateEntity(iTriggerRoar2); + SetEntityModel(iTriggerRoar2, "models/vortigaunt_slave.mdl"); + float fMinbounds7[3] = {-736.0, -736.0, -560.0}; + float fMaxbounds7[3] = {736.0, 736.0, 560.0}; + SetEntPropVector(iTriggerRoar2, Prop_Send, "m_vecMins", fMinbounds7); + SetEntPropVector(iTriggerRoar2, Prop_Send, "m_vecMaxs", fMaxbounds7); + SetEntProp(iTriggerRoar2, Prop_Send, "m_nSolidType", 3); + int enteffects7 = GetEntProp(iTriggerRoar2, Prop_Send, "m_fEffects"); + enteffects7 |= 32; + SetEntProp(iTriggerRoar2, Prop_Send, "m_fEffects", enteffects7); + + // trigger_hurt attack + int iKillTriggerAttack = CreateEntityByName("trigger_hurt"); + Format(sBuffer, sizeof(sBuffer), "balrog_kill_trigger_attack_%d", g_iCounter); + DispatchKeyValue(iKillTriggerAttack, "targetname", sBuffer); + DispatchKeyValue(iKillTriggerAttack, "spawnflags", "9"); + DispatchKeyValue(iKillTriggerAttack, "startdisabled", "1"); + DispatchKeyValue(iKillTriggerAttack, "filtername", "item_spawn_human_filter"); + DispatchKeyValue(iKillTriggerAttack, "damagetype", "128"); + DispatchKeyValue(iKillTriggerAttack, "damagemodel", "0"); + DispatchKeyValue(iKillTriggerAttack, "damagecap", "20"); + DispatchKeyValue(iKillTriggerAttack, "damage", "500"); + fOriginTemp[0] = fOrigin[0] + 360.5; + fOriginTemp[1] = fOrigin[1] - 58.74; + fOriginTemp[2] = fOrigin[2] + 35.6; + DispatchKeyValueVector(iKillTriggerAttack, "origin", fOriginTemp); + DispatchSpawn(iKillTriggerAttack); + ActivateEntity(iKillTriggerAttack); + SetEntityModel(iKillTriggerAttack, "models/vortigaunt_slave.mdl"); + float fMinbounds8[3] = {-152.0, -256.0, -71.5}; + float fMaxbounds8[3] = {152.0, 256.0, 71.5}; + SetEntPropVector(iKillTriggerAttack, Prop_Send, "m_vecMins", fMinbounds8); + SetEntPropVector(iKillTriggerAttack, Prop_Send, "m_vecMaxs", fMaxbounds8); + SetEntProp(iKillTriggerAttack, Prop_Send, "m_nSolidType", 3); + int enteffects8 = GetEntProp(iKillTriggerAttack, Prop_Send, "m_fEffects"); + enteffects8 |= 32; + SetEntProp(iKillTriggerAttack, Prop_Send, "m_fEffects", enteffects8); + + // Sound 1 + int iSound1 = CreateEntityByName("ambient_generic"); + Format(sBuffer, sizeof(sBuffer), "balrog_sound1_%d", g_iCounter); + DispatchKeyValue(iSound1, "targetname", sBuffer); + DispatchKeyValue(iSound1, "spawnflags", "49"); + DispatchKeyValue(iSound1, "radius", "8250"); + Format(sBuffer, sizeof(sBuffer), "balrog_knife_%d", g_iCounter); + DispatchKeyValue(iSound1, "SourceEntityName", sBuffer); + DispatchKeyValue(iSound1, "message", "unloze/balrog_scream.mp3"); + DispatchKeyValue(iSound1, "volume", "10"); + DispatchKeyValue(iSound1, "health", "10"); + DispatchKeyValue(iSound1, "pitch", "100"); + DispatchKeyValue(iSound1, "pitchstart", "100"); + DispatchSpawn(iSound1); + ActivateEntity(iSound1); + + // Sound 2 + int iSound2 = CreateEntityByName("ambient_generic"); + Format(sBuffer, sizeof(sBuffer), "balrog_sound2_%d", g_iCounter); + DispatchKeyValue(iSound2, "targetname", sBuffer); + DispatchKeyValue(iSound2, "spawnflags", "48"); + DispatchKeyValue(iSound2, "radius", "8250"); + Format(sBuffer, sizeof(sBuffer), "balrog_knife_%d", g_iCounter); + DispatchKeyValue(iSound2, "SourceEntityName", sBuffer); + DispatchKeyValue(iSound2, "message", "npc/strider/strider_step2.wav"); + DispatchKeyValue(iSound2, "volume", "10"); + DispatchKeyValue(iSound2, "health", "10"); + DispatchKeyValue(iSound2, "pitch", "100"); + DispatchKeyValue(iSound2, "pitchstart", "100"); + DispatchSpawn(iSound2); + ActivateEntity(iSound2); + + // Sound 3 + int iSound3 = CreateEntityByName("ambient_generic"); + Format(sBuffer, sizeof(sBuffer), "balrog_sound3_%d", g_iCounter); + DispatchKeyValue(iSound3, "targetname", sBuffer); + DispatchKeyValue(iSound3, "spawnflags", "48"); + DispatchKeyValue(iSound3, "radius", "8250"); + Format(sBuffer, sizeof(sBuffer), "balrog_knife_%d", g_iCounter); + DispatchKeyValue(iSound3, "SourceEntityName", sBuffer); + DispatchKeyValue(iSound3, "message", "npc/strider/strider_skewer1.wav"); + DispatchKeyValue(iSound3, "volume", "10"); + DispatchKeyValue(iSound3, "health", "10"); + DispatchKeyValue(iSound3, "pitch", "100"); + DispatchKeyValue(iSound3, "pitchstart", "100"); + DispatchSpawn(iSound3); + ActivateEntity(iSound3); + + // Timer + int iTimer = CreateEntityByName("logic_timer"); + Format(sBuffer, sizeof(sBuffer), "balrog_timer_%d", g_iCounter); + DispatchKeyValue(iTimer, "targetname", sBuffer); + DispatchKeyValue(iTimer, "spawnflags", "0"); + DispatchKeyValue(iTimer, "startdisabled", "1"); + DispatchKeyValue(iTimer, "UseRandomTime", "0"); + DispatchKeyValue(iTimer, "RefireTime", "0.95"); + Format(sBuffer, sizeof(sBuffer), "balrog_sound2_%d,PlaySound,,0,-1", g_iCounter); + DispatchKeyValue(iTimer, "OnTimer", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_kill_trigger_walking_%d,Disable,,0,-1", g_iCounter); + DispatchKeyValue(iTimer, "OnTimer", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_kill_trigger_walking_%d,Enable,,0.1,-1", g_iCounter); + DispatchKeyValue(iTimer, "OnTimer", sBuffer); + DispatchSpawn(iTimer); + ActivateEntity(iTimer); + + // Roar + int iRoar = CreateEntityByName("logic_relay"); + Format(sBuffer, sizeof(sBuffer), "balrog_relay1_%d", g_iCounter); + DispatchKeyValue(iRoar, "targetname", sBuffer); + DispatchKeyValue(iRoar, "spawnflags", "0"); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar2_%d,Enable,,0,-1", g_iCounter); + DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar2_%d,Disable,,4,-1", g_iCounter); + DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_model_%d,SetAnimation,balrog_groar,0,-1", g_iCounter); + DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar1_%d,Enable,,0,-1", g_iCounter); + //DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar1_%d,Disable,,3.05,-1", g_iCounter); + //DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar1_%d,Disable,,0.1,-1", g_iCounter); + //DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar1_%d,Disable,,3.01,-1", g_iCounter); + //DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_relay2_%d,Disable,,0,-1", g_iCounter); + DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_relay2_%d,Enable,,4,-1", g_iCounter); + DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_sound1_%d,PlaySound,,1,-1", g_iCounter); + DispatchKeyValue(iRoar, "OnTrigger", sBuffer); + DispatchKeyValue(iRoar, "OnTrigger", "!activator,AddOutput,gravity 2,0,-1"); + DispatchKeyValue(iRoar, "OnTrigger", "!self,Disable,,0,-1"); + DispatchKeyValue(iRoar, "OnTrigger", "!self,Enable,,25,-1"); + DispatchSpawn(iRoar); + ActivateEntity(iRoar); + + // Attack + int iAttack = CreateEntityByName("logic_relay"); + Format(sBuffer, sizeof(sBuffer), "balrog_relay2_%d", g_iCounter); + DispatchKeyValue(iAttack, "targetname", sBuffer); + DispatchKeyValue(iAttack, "spawnflags", "0"); + Format(sBuffer, sizeof(sBuffer), "balrog_model_%d,SetAnimation,balrog_attack1,0,-1", g_iCounter); + DispatchKeyValue(iAttack, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_sound3_%d,PlaySound,,1,-1", g_iCounter); + DispatchKeyValue(iAttack, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar1_%d,Enable,,0,-1", g_iCounter); + //DispatchKeyValue(iAttack, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_trigger_roar1_%d,Disable,,0.1,-1", g_iCounter); + //DispatchKeyValue(iAttack, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_kill_trigger_attack_%d,Enable,,1.75,-1", g_iCounter); + DispatchKeyValue(iAttack, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_kill_trigger_attack_%d,Disable,,2.2,-1", g_iCounter); + DispatchKeyValue(iAttack, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_relay1_%d,Disable,,0,-1", g_iCounter); + DispatchKeyValue(iAttack, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_relay1_%d,Enable,,4,-1", g_iCounter); + DispatchKeyValue(iAttack, "OnTrigger", sBuffer); + DispatchKeyValue(iAttack, "OnTrigger", "!activator,AddOutput,gravity 2,0,-1"); + DispatchKeyValue(iAttack, "OnTrigger", "!self,Disable,,0,-1"); + DispatchKeyValue(iAttack, "OnTrigger", "!self,Enable,,4.1,-1"); + DispatchSpawn(iAttack); + ActivateEntity(iAttack); + + // Physbox + int iPhysbox = CreateEntityByName("func_physbox_multiplayer"); + Format(sBuffer, sizeof(sBuffer), "balrog_physbox_%d", g_iCounter); + DispatchKeyValue(iPhysbox, "targetname", sBuffer); + DispatchKeyValue(iPhysbox, "spawnflags", "574464"); + DispatchKeyValue(iPhysbox, "rendermode", "0"); + DispatchKeyValue(iPhysbox, "renderfx", "0"); + DispatchKeyValue(iPhysbox, "rendercolor", "255 255 255"); + DispatchKeyValue(iPhysbox, "renderamt", "255 255 255"); + DispatchKeyValue(iPhysbox, "propdata", "0"); + DispatchKeyValue(iPhysbox, "pressuredelay", "0"); + DispatchKeyValue(iPhysbox, "preferredcarryangles", "0 0 0"); + DispatchKeyValue(iPhysbox, "PerformanceMode", "0"); + DispatchKeyValue(iPhysbox, "notsolid", "0"); + DispatchKeyValue(iPhysbox, "nodamageforces", "0"); + DispatchKeyValue(iPhysbox, "material", "0"); + DispatchKeyValue(iPhysbox, "massScale", "0"); + DispatchKeyValue(iPhysbox, "health", "32500"); + DispatchKeyValue(iPhysbox, "gibdir", "0 0 0"); + DispatchKeyValue(iPhysbox, "forcetoenablemotion", "0"); + DispatchKeyValue(iPhysbox, "explosion", "0"); + DispatchKeyValue(iPhysbox, "ExplodeRadius", "0"); + DispatchKeyValue(iPhysbox, "explodemagnitude", "0"); + DispatchKeyValue(iPhysbox, "ExplodeDamage", "0"); + DispatchKeyValue(iPhysbox, "disableshadows", "1"); + DispatchKeyValue(iPhysbox, "disablereceiveshadows", "0"); + DispatchKeyValue(iPhysbox, "Damagetype", "0"); + DispatchKeyValue(iPhysbox, "damagetoenablemotion", "0"); + DispatchKeyValue(iPhysbox, "model", "models/props/cs_militia/crate_extrasmallmill.mdl"); + Format(sBuffer, sizeof(sBuffer), "balrog_model_%d,EmitBlood,,0,-1", g_iCounter); + DispatchKeyValue(iPhysbox, "OnDamaged", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_model_%d,ClearParent,,0,-1", g_iCounter); + DispatchKeyValue(iPhysbox, "OnBreak", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_model_%d,SetAnimation,balrog_death,0,-1", g_iCounter); + DispatchKeyValue(iPhysbox, "OnBreak", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_model_%d,SetDefaultAnimation,balrog_death_idle,0,-1", g_iCounter); + DispatchKeyValue(iPhysbox, "OnBreak", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_kill_trigger_%d,Enable,,1,-1", g_iCounter); + DispatchKeyValue(iPhysbox, "OnBreak", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_kill_trigger_%d,Disable,,2,-1", g_iCounter); + DispatchKeyValue(iPhysbox, "OnBreak", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_relay1_%d,Disable,,0,-1", g_iCounter); + DispatchKeyValue(iPhysbox, "OnBreak", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_relay2_%d,Disable,,0,-1", g_iCounter); + DispatchKeyValue(iPhysbox, "OnBreak", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_timer_%d,Disable,,0,-1", g_iCounter); + DispatchKeyValue(iPhysbox, "OnBreak", sBuffer); + fOriginTemp[0] = fOrigin[0] + 44.0; + fOriginTemp[1] = fOrigin[1] - 18.74; + fOriginTemp[2] = fOrigin[2] + 126.89; + DispatchKeyValueVector(iPhysbox, "origin", fOriginTemp); + DispatchSpawn(iPhysbox); + ActivateEntity(iPhysbox); + float fMinbounds3[3] = {-124.0, -120.0, -188.2}; + float fMaxbounds3[3] = {124.0, 120.0, 188.2}; + SetEntPropVector(iPhysbox, Prop_Send, "m_vecMins", fMinbounds3); + SetEntPropVector(iPhysbox, Prop_Send, "m_vecMaxs", fMaxbounds3); + SetEntProp(iPhysbox, Prop_Send, "m_nSolidType", 3); + int enteffects3 = GetEntProp(iPhysbox, Prop_Send, "m_fEffects"); + enteffects3 |= 32; + SetEntProp(iPhysbox, Prop_Send, "m_fEffects", enteffects3); + + // Game UI + int iUI = CreateEntityByName("game_ui"); + Format(sBuffer, sizeof(sBuffer), "balrog_ui_%d", g_iCounter); + DispatchKeyValue(iUI, "targetname", sBuffer); + DispatchKeyValue(iUI, "spawnflags", "0"); + DispatchKeyValue(iUI, "FieldOfView", "-1.0"); + Format(sBuffer, sizeof(sBuffer), "balrog_relay2_%d,Trigger,,0,-1", g_iCounter); + DispatchKeyValue(iUI, "PressedAttack", sBuffer); + Format(sBuffer, sizeof(sBuffer), "balrog_relay1_%d,Trigger,,0,-1", g_iCounter); + DispatchKeyValue(iUI, "PressedAttack2", sBuffer); + DispatchKeyValue(iUI, "PressedAttack2", "item_spawn_speed,ModifySpeed,0,0,-1"); + DispatchKeyValue(iUI, "PressedAttack2", "item_spawn_speed,ModifySpeed,0,0.1,-1"); + DispatchKeyValue(iUI, "PressedAttack2", "item_spawn_speed,ModifySpeed,0,0.2,-1"); + DispatchKeyValue(iUI, "PressedAttack2", "item_spawn_speed,ModifySpeed,0,0.3,-1"); + DispatchKeyValue(iUI, "PressedAttack2", "item_spawn_speed,ModifySpeed,0.8,3.0,-1"); + DispatchKeyValue(iUI, "PressedAttack", "item_spawn_speed,ModifySpeed,0,0,-1"); + DispatchKeyValue(iUI, "PressedAttack", "item_spawn_speed,ModifySpeed,0.8,3.0,-1"); + DispatchSpawn(iUI); + ActivateEntity(iUI); + + SetVariantString("!activator"); + AcceptEntityInput(iModel, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iTrigger, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iPhysbox, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iKillTrigger, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iKillTriggerWalking, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iTriggerRoar, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iTriggerRoar2, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iKillTriggerAttack, "SetParent", iKnife); + + SetVariantString("!activator"); + AcceptEntityInput(iTrigger, "Enable"); + + g_iCounter ++; +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void SpawnVortigaunt(float fOrigin[3]) +{ + char sBuffer[256]; + float fOriginTemp[3]; + + // Knife + int iKnife = CreateEntityByName("weapon_knife"); + Format(sBuffer, sizeof(sBuffer), "vort_knife_%d", g_iCounter); + DispatchKeyValue(iKnife, "targetname", sBuffer); + Format(sBuffer, sizeof(sBuffer), "11051995%d", g_iCounter); + DispatchKeyValue(iKnife, "hammerid", sBuffer); + DispatchKeyValue(iKnife, "spawnflags", "1"); + DispatchKeyValue(iKnife, "angles", "0 0 0"); + DispatchKeyValueVector(iKnife, "origin", fOrigin); + DispatchKeyValue(iKnife, "OnPlayerPickUp", "!activator,AddOutput,renderfx 6,0,-1"); + Format(sBuffer, sizeof(sBuffer), "vort_knife_%d,AddOutput,renderfx 6,0.03,-1", g_iCounter); + DispatchKeyValue(iKnife, "OnPlayerPickup", sBuffer); + Format(sBuffer, sizeof(sBuffer), "vort_ui_%d,Activate,,0,-1", g_iCounter); + DispatchKeyValue(iKnife, "OnPlayerPickup", sBuffer); + DispatchSpawn(iKnife); + ActivateEntity(iKnife); + HookSingleEntityOutput(iKnife, "OnPlayerPickup", VortigauntPickup, false); + + // Model + int iModel = CreateEntityByName("prop_dynamic"); + Format(sBuffer, sizeof(sBuffer), "vort_model_%d", g_iCounter); + DispatchKeyValue(iModel, "targetname", sBuffer); + DispatchKeyValue(iModel, "model", "models/vortigaunt_slave.mdl"); + DispatchKeyValue(iModel, "DisableBoneFollowers", "1"); + DispatchKeyValue(iModel, "DefaultAnim", "Run_all"); + fOriginTemp[0] = fOrigin[0] + 7.0; + fOriginTemp[1] = fOrigin[1] - 0.0; + fOriginTemp[2] = fOrigin[2] - 34.24; + DispatchKeyValueVector(iModel, "origin", fOriginTemp); + DispatchSpawn(iModel); + ActivateEntity(iModel); + + // pickup trigger_once + int iTrigger = CreateEntityByName("trigger_once"); + Format(sBuffer, sizeof(sBuffer), "vort_trigger_%d", g_iCounter); + DispatchKeyValue(iTrigger, "targetname", sBuffer); + DispatchKeyValue(iTrigger, "spawnflags", "1"); + DispatchKeyValue(iTrigger, "startdisabled", "1"); + DispatchKeyValue(iTrigger, "filtername", "item_spawn_zombie_filter"); + DispatchKeyValue(iTrigger, "OnStartTouch", "item_spawn_weaponstrip,StripWeaponsAndSuit,,0,-1"); + DispatchKeyValueVector(iTrigger, "origin", fOrigin); + DispatchSpawn(iTrigger); + ActivateEntity(iTrigger); + SetEntityModel(iTrigger, "models/vortigaunt_slave.mdl"); + float fMinbounds[3] = {-10.0, -10.0, -36.0}; + float fMaxbounds[3] = {10.0, 10.0, 36.0}; + SetEntPropVector(iTrigger, Prop_Send, "m_vecMins", fMinbounds); + SetEntPropVector(iTrigger, Prop_Send, "m_vecMaxs", fMaxbounds); + SetEntProp(iTrigger, Prop_Send, "m_nSolidType", 2); + int enteffects = GetEntProp(iTrigger, Prop_Send, "m_fEffects"); + enteffects |= 32; + SetEntProp(iTrigger, Prop_Send, "m_fEffects", enteffects); + + // Sound + int iSound = CreateEntityByName("ambient_generic"); + Format(sBuffer, sizeof(sBuffer), "vort_sound_%d", g_iCounter); + DispatchKeyValue(iSound, "targetname", sBuffer); + DispatchKeyValue(iSound, "spawnflags", "48"); + DispatchKeyValue(iSound, "radius", "2250"); + Format(sBuffer, sizeof(sBuffer), "vort_knife_%d", g_iCounter); + DispatchKeyValue(iSound, "SourceEntityName", sBuffer); + DispatchKeyValue(iSound, "message", "ambient/energy/zap9.wav"); + DispatchKeyValue(iSound, "volume", "10"); + DispatchKeyValue(iSound, "health", "10"); + DispatchKeyValue(iSound, "pitch", "100"); + DispatchKeyValue(iSound, "pitchstart", "100"); + DispatchSpawn(iSound); + ActivateEntity(iSound); + + // Push + int iPush = CreateEntityByName("trigger_push"); + Format(sBuffer, sizeof(sBuffer), "vort_push_%d", g_iCounter); + DispatchKeyValue(iPush, "targetname", sBuffer); + DispatchKeyValue(iPush, "spawnflags", "1"); + DispatchKeyValue(iPush, "startdisabled", "1"); + DispatchKeyValue(iPush, "speed", "1800"); + DispatchKeyValue(iPush, "pushdir", "0 180 0"); + DispatchKeyValue(iPush, "filtername", "item_spawn_human_filter"); + fOriginTemp[0] = fOrigin[0] + 899.0; + fOriginTemp[1] = fOrigin[1] - 0.0; + fOriginTemp[2] = fOrigin[2] - 8.0; + DispatchKeyValueVector(iPush, "origin", fOriginTemp); + DispatchSpawn(iPush); + ActivateEntity(iPush); + SetEntityModel(iPush, "models/vortigaunt_slave.mdl"); + float fMinbounds2[3] = {-852.0, -16.0, -9.0}; + float fMaxbounds2[3] = {852.0, 16.0, 17.0}; + SetEntPropVector(iPush, Prop_Send, "m_vecMins", fMinbounds2); + SetEntPropVector(iPush, Prop_Send, "m_vecMaxs", fMaxbounds2); + SetEntProp(iPush, Prop_Send, "m_nSolidType", 3); + int enteffects2 = GetEntProp(iPush, Prop_Send, "m_fEffects"); + enteffects2 |= 32; + SetEntProp(iPush, Prop_Send, "m_fEffects", enteffects2); + + // Relay + int iRelay = CreateEntityByName("logic_relay"); + Format(sBuffer, sizeof(sBuffer), "vort_relay_%d", g_iCounter); + DispatchKeyValueVector(iRelay, "origin", fOrigin); + DispatchKeyValue(iRelay, "targetname", sBuffer); + DispatchKeyValue(iRelay, "spawnflags", "0"); + DispatchKeyValue(iRelay, "startdisabled", "0"); + DispatchKeyValue(iRelay, "OnTrigger", "!self,Disable,,0,-1"); + DispatchKeyValue(iRelay, "OnTrigger", "!self,Enable,,4,-1"); + Format(sBuffer, sizeof(sBuffer), "vort_model_%d,SetAnimation,zapattack1,0,-1", g_iCounter); + DispatchKeyValue(iRelay, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "vort_push_%d,Enable,,1.5,-1", g_iCounter); + DispatchKeyValue(iRelay, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "vort_push_%d,Disable,,2,-1", g_iCounter); + DispatchKeyValue(iRelay, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "vort_sound_%d,PlaySound,,1.5,-1", g_iCounter); + DispatchKeyValue(iRelay, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "vort_beam_%d,TurnOn,,1.5,-1", g_iCounter); + DispatchKeyValue(iRelay, "OnTrigger", sBuffer); + Format(sBuffer, sizeof(sBuffer), "vort_beam_%d,TurnOff,,2.5,-1", g_iCounter); + DispatchKeyValue(iRelay, "OnTrigger", sBuffer); + DispatchSpawn(iRelay); + ActivateEntity(iRelay); + + // Game UI + int iUI = CreateEntityByName("game_ui"); + Format(sBuffer, sizeof(sBuffer), "vort_ui_%d", g_iCounter); + DispatchKeyValue(iUI, "targetname", sBuffer); + DispatchKeyValue(iUI, "spawnflags", "0"); + DispatchKeyValue(iUI, "FieldOfView", "-1.0"); + DispatchKeyValue(iUI, "PressedAttack2", "item_spawn_speed,ModifySpeed,0,0,-1"); + DispatchKeyValue(iUI, "PressedAttack2", "item_spawn_speed,ModifySpeed,1.15,3.25,-1"); + Format(sBuffer, sizeof(sBuffer), "vort_relay_%d,Trigger,,0,-1", g_iCounter); + DispatchKeyValue(iUI, "PressedAttack2", sBuffer); + DispatchSpawn(iUI); + ActivateEntity(iUI); + + // beam start + int iBeamStart = CreateEntityByName("prop_dynamic_override"); + Format(sBuffer, sizeof(sBuffer), "vort_beam_start_%d", g_iCounter); + DispatchKeyValue(iBeamStart, "targetname", sBuffer); + DispatchKeyValue(iBeamStart, "model", "models/props/cs_italy/bananna.mdl"); + DispatchKeyValue(iBeamStart, "disableshadows", "1"); + DispatchKeyValue(iBeamStart, "disablereceiveshadows", "1"); + DispatchKeyValue(iBeamStart, "DisableBoneFollowers", "1"); + DispatchKeyValue(iBeamStart, "rendermode", "10"); + fOriginTemp[0] = fOrigin[0] + 29.0; + fOriginTemp[1] = fOrigin[1] - 0.0; + fOriginTemp[2] = fOrigin[2] - 8.0; + DispatchKeyValueVector(iBeamStart, "origin", fOriginTemp); + DispatchSpawn(iBeamStart); + ActivateEntity(iBeamStart); + + // beam end + int iBeamEnd = CreateEntityByName("prop_dynamic_override"); + Format(sBuffer, sizeof(sBuffer), "vort_beam_end_%d", g_iCounter); + DispatchKeyValue(iBeamEnd, "targetname", sBuffer); + DispatchKeyValue(iBeamEnd, "model", "models/props/cs_italy/bananna.mdl"); + DispatchKeyValue(iBeamEnd, "disableshadows", "1"); + DispatchKeyValue(iBeamEnd, "disablereceiveshadows", "1"); + DispatchKeyValue(iBeamEnd, "DisableBoneFollowers", "1"); + DispatchKeyValue(iBeamEnd, "rendermode", "10"); + fOriginTemp[0] = fOrigin[0] + 1743.0; + fOriginTemp[1] = fOrigin[1] - 0.0; + fOriginTemp[2] = fOrigin[2] - 8.0; + DispatchKeyValueVector(iBeamEnd, "origin", fOriginTemp); + DispatchSpawn(iBeamEnd); + ActivateEntity(iBeamEnd); + + // Beam + int iBeam = CreateEntityByName("env_beam"); + Format(sBuffer, sizeof(sBuffer), "vort_beam_%d", g_iCounter); + DispatchKeyValue(iBeam, "targetname", sBuffer); + Format(sBuffer, sizeof(sBuffer), "vort_beam_start_%d", g_iCounter); + DispatchKeyValue(iBeam, "LightningStart", sBuffer); + Format(sBuffer, sizeof(sBuffer), "vort_beam_end_%d", g_iCounter); + DispatchKeyValue(iBeam, "LightningEnd", sBuffer); + DispatchKeyValue(iBeam, "BoltWidth", "3"); + DispatchKeyValue(iBeam, "NoiseAmplitude", "1"); + DispatchKeyValue(iBeam, "decalname", "Bigshot"); + DispatchKeyValue(iBeam, "framerate", "0"); + DispatchKeyValue(iBeam, "framestart", "0"); + DispatchKeyValue(iBeam, "life", "1"); + DispatchKeyValue(iBeam, "spawnflags", "48"); + DispatchKeyValue(iBeam, "TouchType", "1"); + DispatchKeyValue(iBeam, "rendercolor", "0 200 0"); + DispatchKeyValue(iBeam, "texture", "sprites/laserbeam.spr"); + DispatchSpawn(iBeam); + + SetVariantString("!activator"); + AcceptEntityInput(iModel, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iTrigger, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iBeamStart, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iBeamEnd, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iRelay, "SetParent", iKnife); + SetVariantString("!activator"); + AcceptEntityInput(iPush, "SetParent", iKnife); + + SetVariantString("!activator"); + AcceptEntityInput(iTrigger, "Enable"); + + g_iCounter ++; +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void VortigauntPickup(const char[] output, int caller, int activator, float delay) +{ + PrintToChatAll("** %N has picked up Vortigaunt **", activator); + PrintToChat(activator, "Right Click to Pull Humans in front of you."); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void BalrogPickup(const char[] output, int caller, int activator, float delay) +{ + PrintToChatAll("** %N has picked up Balrog **", activator); + PrintToChat(activator, " RIGHT CLICK = MOTIVATE ZOMBIES and LEFT CLICK = ATTACK."); +} \ No newline at end of file diff --git a/Vortigaunt/scripting/Vortigaunt.sp b/Vortigaunt/scripting/Vortigaunt.sp deleted file mode 100644 index 1284e2bb..00000000 --- a/Vortigaunt/scripting/Vortigaunt.sp +++ /dev/null @@ -1,306 +0,0 @@ -#include -#include -#include - -#pragma semicolon 1 -#pragma newdecls required - -int g_iCounter = 0; - -//---------------------------------------------------------------------------------------------------- -// Purpose: -//---------------------------------------------------------------------------------------------------- -public Plugin myinfo = -{ - name = "Vortigaunt", - author = "Neon", - description = "Spawn Vortigaunts on every map", - version = "1.0", - url = "https://steamcommunity.com/id/n3ontm" -} - -//---------------------------------------------------------------------------------------------------- -// Purpose: -//---------------------------------------------------------------------------------------------------- -public void OnPluginStart() -{ - HookEvent("round_start", OnRoundStart, EventHookMode_Post); - RegAdminCmd("sm_vortigaunt", Command_Vortigaunt, ADMFLAG_RCON); -} - -//---------------------------------------------------------------------------------------------------- -// Purpose: -//---------------------------------------------------------------------------------------------------- -public void OnMapStart() -{ - PrecacheModel("models/vortigaunt_slave.mdl"); -} - -//---------------------------------------------------------------------------------------------------- -// Purpose: -//---------------------------------------------------------------------------------------------------- -public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) -{ - g_iCounter = 0; - - // Human filter - int iHumanFilter = CreateEntityByName("filter_activator_team"); - DispatchKeyValue(iHumanFilter, "targetname", "vort_human_filter"); - DispatchKeyValue(iHumanFilter, "Negated", "0"); - DispatchKeyValue(iHumanFilter, "filterteam", "3"); - DispatchSpawn(iHumanFilter); - ActivateEntity(iHumanFilter); - - // Zombie filter - int iZombieFilter = CreateEntityByName("filter_activator_team"); - DispatchKeyValue(iZombieFilter, "targetname", "vort_zombie_filter"); - DispatchKeyValue(iZombieFilter, "Negated", "0"); - DispatchKeyValue(iZombieFilter, "filterteam", "2"); - DispatchSpawn(iZombieFilter); - ActivateEntity(iZombieFilter); - - // player_weaponstrip - int iWeaponStrip = CreateEntityByName("player_weaponstrip"); - DispatchKeyValue(iWeaponStrip, "targetname", "vort_weaponstrip"); - DispatchSpawn(iWeaponStrip); - ActivateEntity(iWeaponStrip); - - // speedmod - int iSpeedMod = CreateEntityByName("player_speedmod"); - DispatchKeyValue(iSpeedMod, "targetname", "vort_speed"); - DispatchSpawn(iSpeedMod); - ActivateEntity(iSpeedMod); -} - -//---------------------------------------------------------------------------------------------------- -// Purpose: -//---------------------------------------------------------------------------------------------------- -public Action Command_Vortigaunt(int client, int args) -{ - float fOrigin[3]; - GetClientEyePosition(client, fOrigin); - SpawnVortigaunt(fOrigin); - return Plugin_Handled; - -} - -//---------------------------------------------------------------------------------------------------- -// Purpose: -//---------------------------------------------------------------------------------------------------- -public void SpawnVortigaunt(float fOrigin[3]) -{ - char sBuffer[256]; - float fOriginTemp[3]; - - // Knife - int iKnife = CreateEntityByName("weapon_knife"); - Format(sBuffer, sizeof(sBuffer), "vort_knife_%d", g_iCounter); - DispatchKeyValue(iKnife, "targetname", sBuffer); - Format(sBuffer, sizeof(sBuffer), "11051995%d", g_iCounter); - DispatchKeyValue(iKnife, "hammerid", sBuffer); - DispatchKeyValue(iKnife, "spawnflags", "1"); - DispatchKeyValue(iKnife, "angles", "0 0 0"); - DispatchKeyValueVector(iKnife, "origin", fOrigin); - DispatchKeyValue(iKnife, "OnPlayerPickUp", "!activator,AddOutput,renderfx 6,0,-1"); - Format(sBuffer, sizeof(sBuffer), "vort_knife_%d,AddOutput,renderfx 6,0.03,-1", g_iCounter); - DispatchKeyValue(iKnife, "OnPlayerPickup", sBuffer); - Format(sBuffer, sizeof(sBuffer), "vort_ui_%d,Activate,,0,-1", g_iCounter); - DispatchKeyValue(iKnife, "OnPlayerPickup", sBuffer); - DispatchSpawn(iKnife); - ActivateEntity(iKnife); - HookSingleEntityOutput(iKnife, "OnPlayerPickup", VortigauntPickup, false); - - // Model - int iModel = CreateEntityByName("prop_dynamic"); - Format(sBuffer, sizeof(sBuffer), "vort_model_%d", g_iCounter); - DispatchKeyValue(iModel, "targetname", sBuffer); - DispatchKeyValue(iModel, "model", "models/vortigaunt_slave.mdl"); - DispatchKeyValue(iModel, "DisableBoneFollowers", "1"); - DispatchKeyValue(iModel, "DefaultAnim", "Run_all"); - fOriginTemp[0] = fOrigin[0] + 7.0; - fOriginTemp[1] = fOrigin[1] - 0.0; - fOriginTemp[2] = fOrigin[2] - 34.24; - DispatchKeyValueVector(iModel, "origin", fOriginTemp); - DispatchSpawn(iModel); - ActivateEntity(iModel); - - // pickup trigger_once - int iTrigger = CreateEntityByName("trigger_once"); - Format(sBuffer, sizeof(sBuffer), "vort_trigger_%d", g_iCounter); - DispatchKeyValue(iTrigger, "targetname", sBuffer); - DispatchKeyValue(iTrigger, "spawnflags", "1"); - DispatchKeyValue(iTrigger, "startdisabled", "1"); - DispatchKeyValue(iTrigger, "filtername", "vort_zombie_filter"); - DispatchKeyValue(iTrigger, "OnStartTouch", "vort_weaponstrip,StripWeaponsAndSuit,,0,-1"); - DispatchKeyValueVector(iTrigger, "origin", fOrigin); - DispatchSpawn(iTrigger); - ActivateEntity(iTrigger); - SetEntityModel(iTrigger, "models/vortigaunt_slave.mdl"); - float fMinbounds[3] = {-10.0, -10.0, -36.0}; - float fMaxbounds[3] = {10.0, 10.0, 36.0}; - SetEntPropVector(iTrigger, Prop_Send, "m_vecMins", fMinbounds); - SetEntPropVector(iTrigger, Prop_Send, "m_vecMaxs", fMaxbounds); - SetEntProp(iTrigger, Prop_Send, "m_nSolidType", 2); - int enteffects = GetEntProp(iTrigger, Prop_Send, "m_fEffects"); - enteffects |= 32; - SetEntProp(iTrigger, Prop_Send, "m_fEffects", enteffects); - - // Sound - int iSound = CreateEntityByName("ambient_generic"); - Format(sBuffer, sizeof(sBuffer), "vort_sound_%d", g_iCounter); - DispatchKeyValue(iSound, "targetname", sBuffer); - DispatchKeyValue(iSound, "spawnflags", "48"); - DispatchKeyValue(iSound, "radius", "2250"); - Format(sBuffer, sizeof(sBuffer), "vort_knife_%d", g_iCounter); - DispatchKeyValue(iSound, "SourceEntityName", sBuffer); - DispatchKeyValue(iSound, "message", "ambient/energy/zap9.wav"); - DispatchKeyValue(iSound, "volume", "10"); - DispatchKeyValue(iSound, "health", "10"); - DispatchKeyValue(iSound, "pitch", "100"); - DispatchKeyValue(iSound, "pitchstart", "100"); - DispatchSpawn(iSound); - ActivateEntity(iSound); - - // Push - int iPush = CreateEntityByName("trigger_push"); - Format(sBuffer, sizeof(sBuffer), "vort_push_%d", g_iCounter); - DispatchKeyValue(iPush, "targetname", sBuffer); - DispatchKeyValue(iPush, "spawnflags", "1"); - DispatchKeyValue(iPush, "startdisabled", "1"); - DispatchKeyValue(iPush, "speed", "1800"); - DispatchKeyValue(iPush, "pushdir", "0 180 0"); - DispatchKeyValue(iPush, "filtername", "vort_human_filter"); - fOriginTemp[0] = fOrigin[0] + 899.0; - fOriginTemp[1] = fOrigin[1] - 0.0; - fOriginTemp[2] = fOrigin[2] - 8.0; - DispatchKeyValueVector(iPush, "origin", fOriginTemp); - DispatchSpawn(iPush); - ActivateEntity(iPush); - SetEntityModel(iPush, "models/vortigaunt_slave.mdl"); - float fMinbounds2[3] = {-852.0, -16.0, -9.0}; - float fMaxbounds2[3] = {852.0, 16.0, 17.0}; - SetEntPropVector(iPush, Prop_Send, "m_vecMins", fMinbounds2); - SetEntPropVector(iPush, Prop_Send, "m_vecMaxs", fMaxbounds2); - SetEntProp(iPush, Prop_Send, "m_nSolidType", 3); - int enteffects2 = GetEntProp(iPush, Prop_Send, "m_fEffects"); - enteffects2 |= 32; - SetEntProp(iPush, Prop_Send, "m_fEffects", enteffects2); - - // Relay - int iRelay = CreateEntityByName("logic_relay"); - Format(sBuffer, sizeof(sBuffer), "vort_relay_%d", g_iCounter); - DispatchKeyValueVector(iRelay, "origin", fOrigin); - DispatchKeyValue(iRelay, "targetname", sBuffer); - DispatchKeyValue(iRelay, "spawnflags", "0"); - DispatchKeyValue(iRelay, "startdisabled", "0"); - DispatchKeyValue(iRelay, "OnTrigger", "!self,Disable,,0,-1"); - DispatchKeyValue(iRelay, "OnTrigger", "!self,Enable,,4,-1"); - Format(sBuffer, sizeof(sBuffer), "vort_model_%d,SetAnimation,zapattack1,0,-1", g_iCounter); - DispatchKeyValue(iRelay, "OnTrigger", sBuffer); - Format(sBuffer, sizeof(sBuffer), "vort_push_%d,Enable,,1.5,-1", g_iCounter); - DispatchKeyValue(iRelay, "OnTrigger", sBuffer); - Format(sBuffer, sizeof(sBuffer), "vort_push_%d,Disable,,2,-1", g_iCounter); - DispatchKeyValue(iRelay, "OnTrigger", sBuffer); - Format(sBuffer, sizeof(sBuffer), "vort_sound_%d,PlaySound,,1.5,-1", g_iCounter); - DispatchKeyValue(iRelay, "OnTrigger", sBuffer); - Format(sBuffer, sizeof(sBuffer), "vort_beam_%d,TurnOn,,1.5,-1", g_iCounter); - DispatchKeyValue(iRelay, "OnTrigger", sBuffer); - Format(sBuffer, sizeof(sBuffer), "vort_beam_%d,TurnOff,,2.5,-1", g_iCounter); - DispatchKeyValue(iRelay, "OnTrigger", sBuffer); - DispatchSpawn(iRelay); - ActivateEntity(iRelay); - - // Game UI - int iUI = CreateEntityByName("game_ui"); - Format(sBuffer, sizeof(sBuffer), "vort_ui_%d", g_iCounter); - DispatchKeyValue(iUI, "targetname", sBuffer); - DispatchKeyValue(iUI, "spawnflags", "0"); - DispatchKeyValue(iUI, "FieldOfView", "-1.0"); - DispatchKeyValue(iUI, "PressedAttack2", "vort_speed,ModifySpeed,0,0,-1"); - DispatchKeyValue(iUI, "PressedAttack2", "vort_speed,ModifySpeed,1.15,3.25,-1"); - Format(sBuffer, sizeof(sBuffer), "vort_relay_%d,Trigger,,0,-1", g_iCounter); - DispatchKeyValue(iUI, "PressedAttack2", sBuffer); - DispatchSpawn(iUI); - ActivateEntity(iUI); - - // beam start - int iBeamStart = CreateEntityByName("prop_dynamic_override"); - Format(sBuffer, sizeof(sBuffer), "vort_beam_start_%d", g_iCounter); - DispatchKeyValue(iBeamStart, "targetname", sBuffer); - DispatchKeyValue(iBeamStart, "model", "models/props/cs_italy/bananna.mdl"); - DispatchKeyValue(iBeamStart, "disableshadows", "1"); - DispatchKeyValue(iBeamStart, "disablereceiveshadows", "1"); - DispatchKeyValue(iBeamStart, "DisableBoneFollowers", "1"); - DispatchKeyValue(iBeamStart, "rendermode", "10"); - fOriginTemp[0] = fOrigin[0] + 29.0; - fOriginTemp[1] = fOrigin[1] - 0.0; - fOriginTemp[2] = fOrigin[2] - 8.0; - DispatchKeyValueVector(iBeamStart, "origin", fOriginTemp); - DispatchSpawn(iBeamStart); - ActivateEntity(iBeamStart); - - // beam end - int iBeamEnd = CreateEntityByName("prop_dynamic_override"); - Format(sBuffer, sizeof(sBuffer), "vort_beam_end_%d", g_iCounter); - DispatchKeyValue(iBeamEnd, "targetname", sBuffer); - DispatchKeyValue(iBeamEnd, "model", "models/props/cs_italy/bananna.mdl"); - DispatchKeyValue(iBeamEnd, "disableshadows", "1"); - DispatchKeyValue(iBeamEnd, "disablereceiveshadows", "1"); - DispatchKeyValue(iBeamEnd, "DisableBoneFollowers", "1"); - DispatchKeyValue(iBeamEnd, "rendermode", "10"); - fOriginTemp[0] = fOrigin[0] + 1743.0; - fOriginTemp[1] = fOrigin[1] - 0.0; - fOriginTemp[2] = fOrigin[2] - 8.0; - DispatchKeyValueVector(iBeamEnd, "origin", fOriginTemp); - DispatchSpawn(iBeamEnd); - ActivateEntity(iBeamEnd); - - // Beam - int iBeam = CreateEntityByName("env_beam"); - Format(sBuffer, sizeof(sBuffer), "vort_beam_%d", g_iCounter); - DispatchKeyValue(iBeam, "targetname", sBuffer); - Format(sBuffer, sizeof(sBuffer), "vort_beam_start_%d", g_iCounter); - DispatchKeyValue(iBeam, "LightningStart", sBuffer); - Format(sBuffer, sizeof(sBuffer), "vort_beam_end_%d", g_iCounter); - DispatchKeyValue(iBeam, "LightningEnd", sBuffer); - DispatchKeyValue(iBeam, "BoltWidth", "3"); - DispatchKeyValue(iBeam, "NoiseAmplitude", "1"); - DispatchKeyValue(iBeam, "decalname", "Bigshot"); - DispatchKeyValue(iBeam, "framerate", "0"); - DispatchKeyValue(iBeam, "framestart", "0"); - DispatchKeyValue(iBeam, "life", "1"); - DispatchKeyValue(iBeam, "spawnflags", "48"); - DispatchKeyValue(iBeam, "TouchType", "1"); - DispatchKeyValue(iBeam, "rendercolor", "0 200 0"); - DispatchKeyValue(iBeam, "texture", "sprites/laserbeam.spr"); - DispatchSpawn(iBeam); - - - SetVariantString("!activator"); - AcceptEntityInput(iModel, "SetParent", iKnife); - SetVariantString("!activator"); - AcceptEntityInput(iTrigger, "SetParent", iKnife); - SetVariantString("!activator"); - AcceptEntityInput(iBeamStart, "SetParent", iKnife); - SetVariantString("!activator"); - AcceptEntityInput(iBeamEnd, "SetParent", iKnife); - SetVariantString("!activator"); - AcceptEntityInput(iRelay, "SetParent", iKnife); - SetVariantString("!activator"); - AcceptEntityInput(iPush, "SetParent", iKnife); - - SetVariantString("!activator"); - AcceptEntityInput(iTrigger, "Enable"); - - g_iCounter ++; - -} - -//---------------------------------------------------------------------------------------------------- -// Purpose: -//---------------------------------------------------------------------------------------------------- -public void VortigauntPickup(const char[] output, int caller, int activator, float delay) -{ - PrintToChatAll("** Vortigaunt has been picked up **"); - PrintToChat(activator, "Right Click to Pull Humans in front of you."); -} \ No newline at end of file