diff --git a/ItemSpawn/content/materials/models/player/pil/re1/dog/0000a.vmt b/ItemSpawn/content/materials/models/player/pil/re1/dog/0000a.vmt new file mode 100644 index 0000000..9b4bad7 --- /dev/null +++ b/ItemSpawn/content/materials/models/player/pil/re1/dog/0000a.vmt @@ -0,0 +1,4 @@ +"VertexLitGeneric" +{ + "$baseTexture" "models\player\pil\re1\dog\0000a" +} diff --git a/ItemSpawn/content/materials/models/player/pil/re1/dog/0000a.vtf b/ItemSpawn/content/materials/models/player/pil/re1/dog/0000a.vtf new file mode 100644 index 0000000..4d8f17d Binary files /dev/null and b/ItemSpawn/content/materials/models/player/pil/re1/dog/0000a.vtf differ diff --git a/ItemSpawn/content/materials/models/poo/curlypoo.vmt b/ItemSpawn/content/materials/models/poo/curlypoo.vmt new file mode 100644 index 0000000..752da26 --- /dev/null +++ b/ItemSpawn/content/materials/models/poo/curlypoo.vmt @@ -0,0 +1,4 @@ +"VertexLitGeneric" +{ + "$baseTexture" "models/poo/curlypoo" +} diff --git a/ItemSpawn/content/materials/models/poo/curlypoo.vtf b/ItemSpawn/content/materials/models/poo/curlypoo.vtf new file mode 100644 index 0000000..eb56a4b Binary files /dev/null and b/ItemSpawn/content/materials/models/poo/curlypoo.vtf differ diff --git a/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.dx80.vtx b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.dx80.vtx new file mode 100644 index 0000000..fd958b3 Binary files /dev/null and b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.dx80.vtx differ diff --git a/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.dx90.vtx b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.dx90.vtx new file mode 100644 index 0000000..cd602dd Binary files /dev/null and b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.dx90.vtx differ diff --git a/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.mdl b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.mdl new file mode 100644 index 0000000..9ce56ec Binary files /dev/null and b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.mdl differ diff --git a/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.phy b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.phy new file mode 100644 index 0000000..b057023 Binary files /dev/null and b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.phy differ diff --git a/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.sw.vtx b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.sw.vtx new file mode 100644 index 0000000..04a5745 Binary files /dev/null and b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.sw.vtx differ diff --git a/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.vvd b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.vvd new file mode 100644 index 0000000..f1a1270 Binary files /dev/null and b/ItemSpawn/content/models/player/pil/re1/dog/dog_pil.vvd differ diff --git a/ItemSpawn/content/models/poo/curlygpoo.dx80.vtx b/ItemSpawn/content/models/poo/curlygpoo.dx80.vtx new file mode 100644 index 0000000..ffff499 Binary files /dev/null and b/ItemSpawn/content/models/poo/curlygpoo.dx80.vtx differ diff --git a/ItemSpawn/content/models/poo/curlygpoo.dx90.vtx b/ItemSpawn/content/models/poo/curlygpoo.dx90.vtx new file mode 100644 index 0000000..580fe57 Binary files /dev/null and b/ItemSpawn/content/models/poo/curlygpoo.dx90.vtx differ diff --git a/ItemSpawn/content/models/poo/curlygpoo.mdl b/ItemSpawn/content/models/poo/curlygpoo.mdl new file mode 100644 index 0000000..4ee4d92 Binary files /dev/null and b/ItemSpawn/content/models/poo/curlygpoo.mdl differ diff --git a/ItemSpawn/content/models/poo/curlygpoo.phy b/ItemSpawn/content/models/poo/curlygpoo.phy new file mode 100644 index 0000000..b8a1811 Binary files /dev/null and b/ItemSpawn/content/models/poo/curlygpoo.phy differ diff --git a/ItemSpawn/content/models/poo/curlygpoo.sw.vtx b/ItemSpawn/content/models/poo/curlygpoo.sw.vtx new file mode 100644 index 0000000..a57dba2 Binary files /dev/null and b/ItemSpawn/content/models/poo/curlygpoo.sw.vtx differ diff --git a/ItemSpawn/content/models/poo/curlygpoo.vvd b/ItemSpawn/content/models/poo/curlygpoo.vvd new file mode 100644 index 0000000..31f8001 Binary files /dev/null and b/ItemSpawn/content/models/poo/curlygpoo.vvd differ diff --git a/ItemSpawn/scripting/ItemSpawn.sp b/ItemSpawn/scripting/ItemSpawn.sp index 2ece7ba..3a25596 100644 --- a/ItemSpawn/scripting/ItemSpawn.sp +++ b/ItemSpawn/scripting/ItemSpawn.sp @@ -30,6 +30,7 @@ public void OnPluginStart() RegAdminCmd("sm_vortigaunt", Command_Vortigaunt, ADMFLAG_KICK); RegAdminCmd("sm_balrog", Command_Balrog, ADMFLAG_KICK); RegAdminCmd("sm_tnt", Command_TNT, ADMFLAG_KICK); + RegAdminCmd("sm_humandog", Command_HumanDog, ADMFLAG_KICK); } //---------------------------------------------------------------------------------------------------- @@ -73,6 +74,27 @@ public void OnMapStart() AddFileToDownloadsTable("materials/models/barrel01b/wood_barrel01b_no_metal.vtf"); PrecacheModel("models/props/furnitures/humans/barrel01b.mdl"); + // Dog + AddFileToDownloadsTable("models/player/pil/re1/dog/dog_pil.dx80.vtx"); + AddFileToDownloadsTable("models/player/pil/re1/dog/dog_pil.dx90.vtx"); + AddFileToDownloadsTable("models/player/pil/re1/dog/dog_pil.mdl"); + AddFileToDownloadsTable("models/player/pil/re1/dog/dog_pil.phy"); + AddFileToDownloadsTable("models/player/pil/re1/dog/dog_pil.sw.vtx"); + AddFileToDownloadsTable("models/player/pil/re1/dog/dog_pil.vvd"); + AddFileToDownloadsTable("materials/models/player/pil/re1/dog/0000a.vmt"); + AddFileToDownloadsTable("materials/models/player/pil/re1/dog/0000a.vtf"); + PrecacheModel("models/player/pil/re1/dog/dog_pil.mdl"); + + AddFileToDownloadsTable("models/poo/curlygpoo.dx80.vtx"); + AddFileToDownloadsTable("models/poo/curlygpoo.dx90.vtx"); + AddFileToDownloadsTable("models/poo/curlygpoo.mdl"); + AddFileToDownloadsTable("models/poo/curlygpoo.phy"); + AddFileToDownloadsTable("models/poo/curlygpoo.sw.vtx"); + AddFileToDownloadsTable("models/poo/curlygpoo.vvd"); + AddFileToDownloadsTable("materials/models/poo/curlypoo.vmt"); + AddFileToDownloadsTable("materials/models/poo/curlypoo.vtf"); + PrecacheModel("models/poo/curlygpoo.mdl"); + } //---------------------------------------------------------------------------------------------------- @@ -115,6 +137,7 @@ public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) DispatchKeyValue(iSpeedMod, "targetname", "item_spawn_speed"); DispatchSpawn(iSpeedMod); ActivateEntity(iSpeedMod); + } //---------------------------------------------------------------------------------------------------- @@ -240,6 +263,47 @@ public Action Command_TNT(int client, int argc) return Plugin_Handled; } +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public Action Command_HumanDog(int client, int argc) +{ + float fOrigin[3]; + + if (argc < 1) + { + GetClientEyePosition(client, fOrigin); + SpawnHumanDog(fOrigin); + LogAction(client, -1, "\"%L\" spawned Human Dog at <%f><%f><%f>.", client, fOrigin[0], fOrigin[1], fOrigin[2]); + 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_IsClientHuman(iTargets[i]))) + { + GetClientEyePosition(iTargets[i], fOrigin); + SpawnHumanDog(fOrigin); + LogAction(client, -1, "\"%L\" gave Human Dog to \"%L\".", client, iTargets[i]); + } + } + return Plugin_Handled; +} + //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- @@ -1148,6 +1212,115 @@ public void SpawnTNT(float fOrigin[3]) g_iCounter ++; } +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void SpawnHumanDog(float fOrigin[3]) +{ + char sBuffer[256]; + float fOriginTemp[3]; + + // Knife + int iKnife = CreateEntityByName("weapon_knife"); + Format(sBuffer, sizeof(sBuffer), "human_dog_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), "human_dog_ui_%d,Activate,,0,-1", g_iCounter); + DispatchKeyValue(iKnife, "OnPlayerPickup", sBuffer); + DispatchSpawn(iKnife); + ActivateEntity(iKnife); + HookSingleEntityOutput(iKnife, "OnPlayerPickup", HumanDogPickup, true); + + // Model + int iModel = CreateEntityByName("prop_dynamic"); + Format(sBuffer, sizeof(sBuffer), "human_dog_model_%d", g_iCounter); + DispatchKeyValue(iModel, "targetname", sBuffer); + DispatchKeyValue(iModel, "model", "models/player/pil/re1/dog/dog_pil.mdl"); + DispatchKeyValue(iModel, "DisableBoneFollowers", "1"); + DispatchKeyValue(iModel, "angles", "0 0 0"); + DispatchKeyValue(iModel, "solid", "0"); + DispatchKeyValue(iModel, "skin", "1"); + DispatchKeyValue(iModel, "DefaultAnim", "Run_lower"); + fOriginTemp[0] = fOrigin[0] + 10.4; + fOriginTemp[1] = fOrigin[1] - 2.0; + fOriginTemp[2] = fOrigin[2] - 40.32; + DispatchKeyValueVector(iModel, "origin", fOriginTemp); + DispatchSpawn(iModel); + ActivateEntity(iModel); + SetVariantString("!activator"); + AcceptEntityInput(iModel, "SetParent", iKnife); + + // pickup trigger_once + int iTrigger = CreateEntityByName("trigger_once"); + Format(sBuffer, sizeof(sBuffer), "tnt_trigger_%d", g_iCounter); + DispatchKeyValue(iTrigger, "targetname", sBuffer); + DispatchKeyValue(iTrigger, "spawnflags", "1"); + DispatchKeyValue(iTrigger, "startdisabled", "1"); + DispatchKeyValue(iTrigger, "filtername", "item_spawn_human_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] = {-1.0, -1.0, -10.0}; + float fMaxbounds[3] = {1.0, 1.0, 10.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); + SetVariantString("!activator"); + AcceptEntityInput(iTrigger, "SetParent", iKnife); + + // Relay Trigger + int iRelayTrigger = CreateEntityByName("logic_relay"); + Format(sBuffer, sizeof(sBuffer), "human_dog_relay_trigger_%d", g_iCounter); + DispatchKeyValue(iRelayTrigger, "targetname", sBuffer); + DispatchKeyValue(iRelayTrigger, "spawnflags", "0"); + Format(sBuffer, sizeof(sBuffer), "human_dog_relay_trigger2_%d,Trigger,,0,4", g_iCounter); + DispatchKeyValue(iRelayTrigger, "OnTrigger", sBuffer); + DispatchSpawn(iRelayTrigger); + ActivateEntity(iRelayTrigger); + SetVariantString("!activator"); + AcceptEntityInput(iRelayTrigger, "SetParent", iKnife); + + // Relay Trigger2 + int iRelayTrigger2 = CreateEntityByName("logic_relay"); + Format(sBuffer, sizeof(sBuffer), "human_dog_relay_trigger2_%d", g_iCounter); + DispatchKeyValue(iRelayTrigger2, "targetname", sBuffer); + DispatchKeyValue(iRelayTrigger2, "spawnflags", "0"); + DispatchSpawn(iRelayTrigger2); + ActivateEntity(iRelayTrigger2); + SetVariantString("!activator"); + AcceptEntityInput(iRelayTrigger2, "SetParent", iKnife); + HookSingleEntityOutput(iRelayTrigger2, "OnTrigger", HumanDogUse, false); + + // Game UI + int iUI = CreateEntityByName("game_ui"); + Format(sBuffer, sizeof(sBuffer), "human_dog_ui_%d", g_iCounter); + DispatchKeyValue(iUI, "targetname", sBuffer); + DispatchKeyValue(iUI, "spawnflags", "0"); + DispatchKeyValue(iUI, "FieldOfView", "-1.0"); + Format(sBuffer, sizeof(sBuffer), "human_dog_relay_trigger_%d,Trigger,,0,-1", g_iCounter); + DispatchKeyValue(iUI, "PressedAttack2", sBuffer); + DispatchSpawn(iUI); + ActivateEntity(iUI); + SetVariantString("!activator"); + AcceptEntityInput(iUI, "SetParent", iKnife); + + // enable pickup trigger + SetVariantString("!activator"); + AcceptEntityInput(iTrigger, "Enable"); + + g_iCounter ++; +} + //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- @@ -1193,7 +1366,7 @@ public void TNTPickup(const char[] output, int caller, int activator, float dela Format(sBuffer, sizeof(sBuffer), "say ** %N has picked up TNT **", activator); SetVariantString(sBuffer); AcceptEntityInput(g_iConsole, "Command"); - //PrintToChat(activator, " RIGHT CLICK = MOTIVATE ZOMBIES and LEFT CLICK = ATTACK."); + PrintToChat(activator, " RIGHT CLICK = Launch TNT and LEFT CLICK = Switch between 'put down' and 'throw'."); } //---------------------------------------------------------------------------------------------------- @@ -1304,6 +1477,139 @@ public void TNTUse(const char[] output, int caller, int activator, float delay) g_iCounter ++; } +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void HumanDogPickup(const char[] output, int caller, int activator, float delay) +{ + char sBuffer[128]; + Format(sBuffer, sizeof(sBuffer), "say ** %N has picked up Human Dog **", activator); + SetVariantString(sBuffer); + AcceptEntityInput(g_iConsole, "Command"); + PrintToChat(activator, "RIGHT CLICK with your KNIFE to leave a present for the Zombies (max 4)"); + CreateTimer(2.0, EquipWeapons, GetClientUserId(activator), TIMER_FLAG_NO_MAPCHANGE); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void HumanDogUse(const char[] output, int caller, int activator, float delay) +{ + char sBuffer[256]; + float fOrigin[3]; + float fAngles[3]; + GetClientEyeAngles(activator, fAngles); + GetClientEyePosition(activator, fOrigin); + fAngles[0] = 0.0; + fAngles[2] = 0.0; + fOrigin[0] = fOrigin[0] + Cosine(DegToRad(fAngles[1])) * -50.0; + fOrigin[1] = fOrigin[1] + Sine(DegToRad(fAngles[1])) * -50.0; + fOrigin[2] = fOrigin[2] - 62.00; + + // Prop + int iProp = CreateEntityByName("prop_dynamic"); + Format(sBuffer, sizeof(sBuffer), "human_dog_poo_%d", g_iCounter); + DispatchKeyValue(iProp, "targetname", sBuffer); + DispatchKeyValue(iProp, "model", "models/poo/curlygpoo.mdl"); + DispatchKeyValue(iProp, "spawnflags", "0"); + DispatchKeyValue(iProp, "PerformanceMode", "0"); + DispatchKeyValue(iProp, "solid", "0"); + DispatchKeyValueVector(iProp, "origin", fOrigin); + DispatchSpawn(iProp); + ActivateEntity(iProp); + + // trigger + int iTrigger = CreateEntityByName("trigger_once"); + Format(sBuffer, sizeof(sBuffer), "human_dog_poo_trigger_%d", g_iCounter); + DispatchKeyValue(iTrigger, "targetname", sBuffer); + DispatchKeyValue(iTrigger, "spawnflags", "1"); + DispatchKeyValue(iTrigger, "startdisabled", "0"); + DispatchKeyValue(iTrigger, "filtername", "item_spawn_zombie_filter"); + Format(sBuffer, sizeof(sBuffer), "human_dog_poo_%d,Kill,,1,1", g_iCounter); + DispatchKeyValue(iTrigger, "OnStartTouch", sBuffer); + Format(sBuffer, sizeof(sBuffer), "human_dog_poo_hurt_%d,Enable,,0,1", g_iCounter); + DispatchKeyValue(iTrigger, "OnStartTouch", sBuffer); + Format(sBuffer, sizeof(sBuffer), "human_dog_poo_hurt_%d,Disable,,0.25,1", g_iCounter); + DispatchKeyValue(iTrigger, "OnStartTouch", sBuffer); + Format(sBuffer, sizeof(sBuffer), "human_dog_particles_%d,Start,,0,-1", g_iCounter); + DispatchKeyValue(iTrigger, "OnStartTouch", sBuffer); + Format(sBuffer, sizeof(sBuffer), "human_dog_particles_%d,Kill,,1,-1", g_iCounter); + DispatchKeyValue(iTrigger, "OnStartTouch", sBuffer); + Format(sBuffer, sizeof(sBuffer), "human_dog_sound_%d,PlaySound,,0,-1", g_iCounter); + DispatchKeyValue(iTrigger, "OnStartTouch", sBuffer); + DispatchKeyValueVector(iTrigger, "origin", fOrigin); + DispatchSpawn(iTrigger); + ActivateEntity(iTrigger); + SetEntityModel(iTrigger, "models/vortigaunt_slave.mdl"); + float fMinbounds[3] = {-12.0, -12.0, -7.5}; + float fMaxbounds[3] = {12.0, 12.0, 7.5}; + 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); + SetVariantString("!activator"); + AcceptEntityInput(iTrigger, "SetParent", iProp); + + // poo hurt + int iHurt = CreateEntityByName("trigger_hurt"); + Format(sBuffer, sizeof(sBuffer), "human_dog_poo_hurt_%d", g_iCounter); + DispatchKeyValue(iHurt, "targetname", sBuffer); + DispatchKeyValue(iHurt, "spawnflags", "1"); + DispatchKeyValue(iHurt, "startdisabled", "1"); + DispatchKeyValue(iHurt, "filtername", "item_spawn_zombie_filter"); + DispatchKeyValue(iHurt, "damagetype", "0"); + DispatchKeyValue(iHurt, "damagemodel", "0"); + DispatchKeyValue(iHurt, "damagecap", "20"); + DispatchKeyValue(iHurt, "damage", "8000"); + DispatchKeyValueVector(iHurt, "origin", fOrigin); + DispatchSpawn(iHurt); + ActivateEntity(iHurt); + SetEntityModel(iHurt, "models/vortigaunt_slave.mdl"); + float fMinbounds2[3] = {-96.0, -112.0, -142.0}; + float fMaxbounds2[3] = {96.0, 112.0, 142.0}; + SetEntPropVector(iHurt, Prop_Send, "m_vecMins", fMinbounds2); + SetEntPropVector(iHurt, Prop_Send, "m_vecMaxs", fMaxbounds2); + SetEntProp(iHurt, Prop_Send, "m_nSolidType", 3); + int enteffects2 = GetEntProp(iHurt, Prop_Send, "m_fEffects"); + enteffects2 |= 32; + SetEntProp(iHurt, Prop_Send, "m_fEffects", enteffects2); + SetVariantString("!activator"); + AcceptEntityInput(iHurt, "SetParent", iProp); + + // Particles + int iParticles = CreateEntityByName("info_particle_system"); + Format(sBuffer, sizeof(sBuffer), "human_dog_particles_%d", g_iCounter); + DispatchKeyValue(iParticles, "targetname", sBuffer); + DispatchKeyValue(iParticles, "effect_name", "fire_small_01"); + DispatchKeyValue(iParticles, "start_active", "0"); + DispatchKeyValueVector(iParticles, "origin", fOrigin); + DispatchSpawn(iParticles); + ActivateEntity(iParticles); + SetVariantString("!activator"); + AcceptEntityInput(iParticles, "SetParent", iProp); + + // Sound + int iSound = CreateEntityByName("ambient_generic"); + Format(sBuffer, sizeof(sBuffer), "human_dog_sound_%d", g_iCounter); + DispatchKeyValue(iSound, "targetname", sBuffer); + DispatchKeyValue(iSound, "spawnflags", "49"); + DispatchKeyValue(iSound, "radius", "1250"); + DispatchKeyValue(iSound, "message", "ambient/explosions/explode_9.wav"); + DispatchKeyValue(iSound, "volume", "10"); + DispatchKeyValue(iSound, "health", "10"); + DispatchKeyValue(iSound, "pitch", "100"); + DispatchKeyValue(iSound, "pitchstart", "100"); + DispatchKeyValueVector(iSound, "origin", fOrigin); + DispatchSpawn(iSound); + ActivateEntity(iSound); + SetVariantString("!activator"); + AcceptEntityInput(iSound, "SetParent", iProp); + + g_iCounter ++; +} + //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- @@ -1335,4 +1641,20 @@ int FindEntityByTargetname(int entity, const char[] sTargetname, const char[] sC } return INVALID_ENT_REFERENCE; +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public Action EquipWeapons(Handle timer, any userid) +{ + int client = GetClientOfUserId(userid); + + if (client != 0) + { + GivePlayerItem(client, "weapon_p90"); + GivePlayerItem(client, "weapon_elite"); + GivePlayerItem(client, "item_kevlar"); + GivePlayerItem(client, "weapon_hegrenade"); + } } \ No newline at end of file