Move funcommands material and sound defs to gamedata (bug 6085, r=asherkin).
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/gamedata/funcommands.games.txt Sat Mar 29 15:07:07 2014 -0400
1.3 @@ -0,0 +1,74 @@
1.4 +"Games"
1.5 +{
1.6 + "#default"
1.7 + {
1.8 + "Keys"
1.9 + {
1.10 + "SpriteBeam" "sprites/laser.vmt"
1.11 + "SpriteBeam2" "sprites/bluelight1.vmt"
1.12 + "SpriteExplosion" "sprites/sprite_fire01.vmt"
1.13 + "SpriteGlow" "sprites/blueglow2.vmt"
1.14 + "SpriteHalo" "sprites/halo01.vmt"
1.15 +
1.16 + "SoundBlip" "buttons/blip1.wav"
1.17 + "SoundBeep" "buttons/button17.wav"
1.18 + "SoundFinal" "weapons/cguard/charging.wav"
1.19 + "SoundBoom" "weapons/explode3.wav"
1.20 + "SoundFreeze" "physics/glass/glass_impact_bullet4.wav"
1.21 + }
1.22 + }
1.23 +
1.24 + "csgo"
1.25 + {
1.26 + "Keys"
1.27 + {
1.28 + "SpriteBeam" "sprites/laserbeam.vmt"
1.29 + "SpriteBeam2" "sprites/physbeam.vmt"
1.30 + "SpriteExplosion" ""
1.31 + "SpriteGlow" "sprites/blueflare1.vmt"
1.32 + "SpriteHalo" "sprites/glow01.vmt"
1.33 + }
1.34 + }
1.35 +
1.36 + "$INSURGENCY" // Standalone game
1.37 + {
1.38 + "Keys"
1.39 + {
1.40 + "SpriteBeam" "sprites/laserbeam.vmt"
1.41 + "SpriteBeam2" ""
1.42 + "SpriteExplosion" "sprites/sprite_fire01.vmt"
1.43 + "SpriteGlow" ""
1.44 + "SpriteHalo" "sprites/glow01.vmt"
1.45 + }
1.46 + }
1.47 +
1.48 + "swarm"
1.49 + {
1.50 + "Keys"
1.51 + {
1.52 + "SpriteBeam" "sprites/laserbeam.vmt"
1.53 + "SpriteBeam2" ""
1.54 + "SpriteExplosion" "sprites/flamelet1.vmt"
1.55 + "SpriteGlow" "sprites/blueflare1.vmt"
1.56 + "SpriteHalo" "sprites/glow01.vmt"
1.57 + }
1.58 + }
1.59 +
1.60 + "#default"
1.61 + {
1.62 + "#supported"
1.63 + {
1.64 + "game" "left4dead"
1.65 + "game" "left4dead2"
1.66 + }
1.67 +
1.68 + "Keys"
1.69 + {
1.70 + "SpriteBeam" "sprites/laserbeam.vmt"
1.71 + "SpriteBeam2" "sprites/physbeam.vmt"
1.72 + "SpriteExplosion" "sprites/floorfire4_.vmt"
1.73 + "SpriteGlow" "sprites/blueflare1.vmt"
1.74 + "SpriteHalo" "sprites/glow01.vmt"
1.75 + }
1.76 + }
1.77 +}
1.78 \ No newline at end of file
2.1 --- a/plugins/funcommands.sp Sun Mar 30 14:07:14 2014 -0400
2.2 +++ b/plugins/funcommands.sp Sat Mar 29 15:07:07 2014 -0400
2.3 @@ -51,11 +51,11 @@
2.4 new Handle:hTopMenu = INVALID_HANDLE;
2.5
2.6 // Sounds
2.7 -#define SOUND_BLIP "buttons/blip1.wav"
2.8 -#define SOUND_BEEP "buttons/button17.wav"
2.9 -#define SOUND_FINAL "weapons/cguard/charging.wav"
2.10 -#define SOUND_BOOM "weapons/explode3.wav"
2.11 -#define SOUND_FREEZE "physics/glass/glass_impact_bullet4.wav"
2.12 +new String:g_BlipSound[PLATFORM_MAX_PATH];
2.13 +new String:g_BeepSound[PLATFORM_MAX_PATH];
2.14 +new String:g_FinalSound[PLATFORM_MAX_PATH];
2.15 +new String:g_BoomSound[PLATFORM_MAX_PATH];
2.16 +new String:g_FreezeSound[PLATFORM_MAX_PATH];
2.17
2.18 // Following are model indexes for temp entities
2.19 new g_BeamSprite = -1;
2.20 @@ -179,45 +179,65 @@
2.21
2.22 public OnMapStart()
2.23 {
2.24 - PrecacheSound(SOUND_BLIP, true);
2.25 - PrecacheSound(SOUND_BEEP, true);
2.26 - PrecacheSound(SOUND_FINAL, true);
2.27 - PrecacheSound(SOUND_BOOM, true);
2.28 - PrecacheSound(SOUND_FREEZE, true);
2.29 -
2.30 - new EngineVersion:sdkversion = GetEngineVersion();
2.31 - if (sdkversion == Engine_Left4Dead || sdkversion == Engine_Left4Dead2
2.32 - || sdkversion == Engine_AlienSwarm || sdkversion == Engine_CSGO)
2.33 + new Handle:gameConfig = LoadGameConfigFile("funcommands.games");
2.34 + if (gameConfig == INVALID_HANDLE)
2.35 + {
2.36 + SetFailState("Unable to load game config funcommands.games");
2.37 + return;
2.38 + }
2.39 +
2.40 + if (GameConfGetKeyValue(gameConfig, "SoundBlip", g_BlipSound, sizeof(g_BlipSound)) && g_BlipSound[0])
2.41 {
2.42 - g_BeamSprite = PrecacheModel("materials/sprites/laserbeam.vmt");
2.43 - g_HaloSprite = PrecacheModel("materials/sprites/glow01.vmt");
2.44 -
2.45 - // l4d, l4d2, and csgo have this. swarm does not.
2.46 - if (sdkversion != Engine_AlienSwarm)
2.47 - {
2.48 - g_BeamSprite2 = PrecacheModel("materials/sprites/physbeam.vmt");
2.49 - }
2.50 -
2.51 - g_GlowSprite = PrecacheModel("materials/sprites/blueflare1.vmt");
2.52 -
2.53 - if (sdkversion == Engine_Left4Dead || sdkversion == Engine_Left4Dead2)
2.54 - {
2.55 - g_ExplosionSprite = PrecacheModel("sprites/floorfire4_.vmt");
2.56 - }
2.57 - else if (sdkversion == Engine_AlienSwarm)
2.58 - {
2.59 - g_ExplosionSprite = PrecacheModel("sprites/flamelet1.vmt");
2.60 - }
2.61 + PrecacheSound(g_BlipSound, true);
2.62 + }
2.63 +
2.64 + if (GameConfGetKeyValue(gameConfig, "SoundBeep", g_BeepSound, sizeof(g_BeepSound)) && g_BeepSound[0])
2.65 + {
2.66 + PrecacheSound(g_BeepSound, true);
2.67 }
2.68 - else
2.69 +
2.70 + if (GameConfGetKeyValue(gameConfig, "SoundFinal", g_FinalSound, sizeof(g_FinalSound)) && g_FinalSound[0])
2.71 {
2.72 - g_BeamSprite = PrecacheModel("materials/sprites/laser.vmt");
2.73 - g_HaloSprite = PrecacheModel("materials/sprites/halo01.vmt");
2.74 - g_BeamSprite2 = PrecacheModel("sprites/bluelight1.vmt");
2.75 - g_GlowSprite = PrecacheModel("sprites/blueglow2.vmt");
2.76 - g_ExplosionSprite = PrecacheModel("sprites/sprite_fire01.vmt");
2.77 + PrecacheSound(g_FinalSound, true);
2.78 + }
2.79 +
2.80 + if (GameConfGetKeyValue(gameConfig, "SoundBoom", g_BoomSound, sizeof(g_BoomSound)) && g_BoomSound[0])
2.81 + {
2.82 + PrecacheSound(g_BoomSound, true);
2.83 }
2.84
2.85 + if (GameConfGetKeyValue(gameConfig, "SoundFreeze", g_FreezeSound, sizeof(g_FreezeSound)) && g_FreezeSound[0])
2.86 + {
2.87 + PrecacheSound(g_FreezeSound, true);
2.88 + }
2.89 +
2.90 + new String:buffer[PLATFORM_MAX_PATH];
2.91 + if (GameConfGetKeyValue(gameConfig, "SpriteBeam", buffer, sizeof(buffer)) && buffer[0])
2.92 + {
2.93 + g_BeamSprite = PrecacheModel(buffer);
2.94 + }
2.95 +
2.96 + if (GameConfGetKeyValue(gameConfig, "SpriteBeam2", buffer, sizeof(buffer)) && buffer[0])
2.97 + {
2.98 + g_BeamSprite2 = PrecacheModel(buffer);
2.99 + }
2.100 +
2.101 + if (GameConfGetKeyValue(gameConfig, "SpriteExplosion", buffer, sizeof(buffer)) && buffer[0])
2.102 + {
2.103 + g_ExplosionSprite = PrecacheModel(buffer);
2.104 + }
2.105 +
2.106 + if (GameConfGetKeyValue(gameConfig, "SpriteGlow", buffer, sizeof(buffer)) && buffer[0])
2.107 + {
2.108 + g_GlowSprite = PrecacheModel(buffer);
2.109 + }
2.110 +
2.111 + if (GameConfGetKeyValue(gameConfig, "SpriteHalo", buffer, sizeof(buffer)) && buffer[0])
2.112 + {
2.113 + g_HaloSprite = PrecacheModel(buffer);
2.114 + }
2.115 +
2.116 + CloseHandle(gameConfig);
2.117 }
2.118
2.119 public OnMapEnd()
3.1 --- a/plugins/funcommands/beacon.sp Sun Mar 30 14:07:14 2014 -0400
3.2 +++ b/plugins/funcommands/beacon.sp Sat Mar 29 15:07:07 2014 -0400
3.3 @@ -91,27 +91,33 @@
3.4 new Float:vec[3];
3.5 GetClientAbsOrigin(client, vec);
3.6 vec[2] += 10;
3.7 -
3.8 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_BeaconRadius), g_BeamSprite, g_HaloSprite, 0, 15, 0.5, 5.0, 0.0, greyColor, 10, 0);
3.9 - TE_SendToAll();
3.10
3.11 - if (team == 2)
3.12 + if (g_BeamSprite > -1 && g_HaloSprite > -1)
3.13 {
3.14 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_BeaconRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, redColor, 10, 0);
3.15 - }
3.16 - else if (team == 3)
3.17 - {
3.18 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_BeaconRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, blueColor, 10, 0);
3.19 - }
3.20 - else
3.21 - {
3.22 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_BeaconRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, greenColor, 10, 0);
3.23 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_BeaconRadius), g_BeamSprite, g_HaloSprite, 0, 15, 0.5, 5.0, 0.0, greyColor, 10, 0);
3.24 + TE_SendToAll();
3.25 +
3.26 + if (team == 2)
3.27 + {
3.28 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_BeaconRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, redColor, 10, 0);
3.29 + }
3.30 + else if (team == 3)
3.31 + {
3.32 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_BeaconRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, blueColor, 10, 0);
3.33 + }
3.34 + else
3.35 + {
3.36 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_BeaconRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, greenColor, 10, 0);
3.37 + }
3.38 +
3.39 + TE_SendToAll();
3.40 }
3.41
3.42 - TE_SendToAll();
3.43 -
3.44 - GetClientEyePosition(client, vec);
3.45 - EmitAmbientSound(SOUND_BLIP, vec, client, SNDLEVEL_RAIDSIREN);
3.46 + if (g_BlipSound[0])
3.47 + {
3.48 + GetClientEyePosition(client, vec);
3.49 + EmitAmbientSound(g_BlipSound, vec, client, SNDLEVEL_RAIDSIREN);
3.50 + }
3.51
3.52 return Plugin_Continue;
3.53 }
4.1 --- a/plugins/funcommands/fire.sp Sun Mar 30 14:07:14 2014 -0400
4.2 +++ b/plugins/funcommands/fire.sp Sat Mar 29 15:07:07 2014 -0400
4.3 @@ -109,12 +109,18 @@
4.4 if (g_FireBombTime[client] > 1)
4.5 {
4.6 color = RoundToFloor(g_FireBombTime[client] * (255.0 / GetConVarFloat(g_Cvar_FireBombTicks)));
4.7 - EmitAmbientSound(SOUND_BEEP, vec, client, SNDLEVEL_RAIDSIREN);
4.8 + if (g_BeepSound[0])
4.9 + {
4.10 + EmitAmbientSound(g_BeepSound, vec, client, SNDLEVEL_RAIDSIREN);
4.11 + }
4.12 }
4.13 else
4.14 {
4.15 color = 0;
4.16 - EmitAmbientSound(SOUND_FINAL, vec, client, SNDLEVEL_RAIDSIREN);
4.17 + if (g_FinalSound[0])
4.18 + {
4.19 + EmitAmbientSound(g_FinalSound, vec, client, SNDLEVEL_RAIDSIREN);
4.20 + }
4.21 }
4.22
4.23 SetEntityRenderColor(client, 255, color, color, 255);
4.24 @@ -123,13 +129,16 @@
4.25 GetClientName(client, name, sizeof(name));
4.26 PrintCenterTextAll("%t", "Till Explodes", name, g_FireBombTime[client]);
4.27
4.28 - GetClientAbsOrigin(client, vec);
4.29 - vec[2] += 10;
4.30 + if (g_BeamSprite > -1 && g_HaloSprite > -1)
4.31 + {
4.32 + GetClientAbsOrigin(client, vec);
4.33 + vec[2] += 10;
4.34
4.35 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_FireBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 15, 0.5, 5.0, 0.0, greyColor, 10, 0);
4.36 - TE_SendToAll();
4.37 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_FireBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, whiteColor, 10, 0);
4.38 - TE_SendToAll();
4.39 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_FireBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 15, 0.5, 5.0, 0.0, greyColor, 10, 0);
4.40 + TE_SendToAll();
4.41 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_FireBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, whiteColor, 10, 0);
4.42 + TE_SendToAll();
4.43 + }
4.44 return Plugin_Continue;
4.45 }
4.46 else
4.47 @@ -140,21 +149,27 @@
4.48 TE_SendToAll();
4.49 }
4.50
4.51 - GetClientAbsOrigin(client, vec);
4.52 - vec[2] += 10;
4.53 - TE_SetupBeamRingPoint(vec, 50.0, GetConVarFloat(g_Cvar_FireBombRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.5, 30.0, 1.5, orangeColor, 5, 0);
4.54 - TE_SendToAll();
4.55 - vec[2] += 15;
4.56 - TE_SetupBeamRingPoint(vec, 40.0, GetConVarFloat(g_Cvar_FireBombRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 30.0, 1.5, orangeColor, 5, 0);
4.57 - TE_SendToAll();
4.58 - vec[2] += 15;
4.59 - TE_SetupBeamRingPoint(vec, 30.0, GetConVarFloat(g_Cvar_FireBombRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.7, 30.0, 1.5, orangeColor, 5, 0);
4.60 - TE_SendToAll();
4.61 - vec[2] += 15;
4.62 - TE_SetupBeamRingPoint(vec, 20.0, GetConVarFloat(g_Cvar_FireBombRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.8, 30.0, 1.5, orangeColor, 5, 0);
4.63 - TE_SendToAll();
4.64 + if (g_BeamSprite > -1 && g_HaloSprite > -1)
4.65 + {
4.66 + GetClientAbsOrigin(client, vec);
4.67 + vec[2] += 10;
4.68 + TE_SetupBeamRingPoint(vec, 50.0, GetConVarFloat(g_Cvar_FireBombRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.5, 30.0, 1.5, orangeColor, 5, 0);
4.69 + TE_SendToAll();
4.70 + vec[2] += 15;
4.71 + TE_SetupBeamRingPoint(vec, 40.0, GetConVarFloat(g_Cvar_FireBombRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 30.0, 1.5, orangeColor, 5, 0);
4.72 + TE_SendToAll();
4.73 + vec[2] += 15;
4.74 + TE_SetupBeamRingPoint(vec, 30.0, GetConVarFloat(g_Cvar_FireBombRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.7, 30.0, 1.5, orangeColor, 5, 0);
4.75 + TE_SendToAll();
4.76 + vec[2] += 15;
4.77 + TE_SetupBeamRingPoint(vec, 20.0, GetConVarFloat(g_Cvar_FireBombRadius), g_BeamSprite, g_HaloSprite, 0, 10, 0.8, 30.0, 1.5, orangeColor, 5, 0);
4.78 + TE_SendToAll();
4.79 + }
4.80
4.81 - EmitAmbientSound(SOUND_BOOM, vec, client, SNDLEVEL_RAIDSIREN);
4.82 + if (g_BoomSound[0])
4.83 + {
4.84 + EmitAmbientSound(g_BoomSound, vec, client, SNDLEVEL_RAIDSIREN);
4.85 + }
4.86
4.87 IgniteEntity(client, GetConVarFloat(g_Cvar_BurnDuration));
4.88 KillFireBomb(client);
5.1 --- a/plugins/funcommands/ice.sp Sun Mar 30 14:07:14 2014 -0400
5.2 +++ b/plugins/funcommands/ice.sp Sat Mar 29 15:07:07 2014 -0400
5.3 @@ -51,9 +51,12 @@
5.4 SetEntityMoveType(client, MOVETYPE_NONE);
5.5 SetEntityRenderColor(client, 0, 128, 255, 192);
5.6
5.7 - new Float:vec[3];
5.8 - GetClientEyePosition(client, vec);
5.9 - EmitAmbientSound(SOUND_FREEZE, vec, client, SNDLEVEL_RAIDSIREN);
5.10 + if (g_FreezeSound[0])
5.11 + {
5.12 + new Float:vec[3];
5.13 + GetClientEyePosition(client, vec);
5.14 + EmitAmbientSound(g_FreezeSound, vec, client, SNDLEVEL_RAIDSIREN);
5.15 + }
5.16
5.17 g_FreezeTime[client] = time;
5.18 g_FreezeSerial[client] = ++ g_Serial_Gen;
5.19 @@ -67,12 +70,15 @@
5.20
5.21 if (IsClientInGame(client))
5.22 {
5.23 - new Float:vec[3];
5.24 - GetClientAbsOrigin(client, vec);
5.25 - vec[2] += 10;
5.26 -
5.27 - GetClientEyePosition(client, vec);
5.28 - EmitAmbientSound(SOUND_FREEZE, vec, client, SNDLEVEL_RAIDSIREN);
5.29 + if (g_FreezeSound[0])
5.30 + {
5.31 + new Float:vec[3];
5.32 + GetClientAbsOrigin(client, vec);
5.33 + vec[2] += 10;
5.34 +
5.35 + GetClientEyePosition(client, vec);
5.36 + EmitAmbientSound(g_FreezeSound, vec, client, SNDLEVEL_RAIDSIREN);
5.37 + }
5.38
5.39 SetEntityMoveType(client, MOVETYPE_WALK);
5.40
5.41 @@ -189,13 +195,13 @@
5.42 if (g_GlowSprite > -1)
5.43 {
5.44 TE_SetupGlowSprite(vec, g_GlowSprite, 0.95, 1.5, 50);
5.45 + TE_SendToAll();
5.46 }
5.47 - else
5.48 + else if (g_HaloSprite > -1)
5.49 {
5.50 TE_SetupGlowSprite(vec, g_HaloSprite, 0.95, 1.5, 50);
5.51 + TE_SendToAll();
5.52 }
5.53 -
5.54 - TE_SendToAll();
5.55
5.56 return Plugin_Continue;
5.57 }
5.58 @@ -224,12 +230,18 @@
5.59 if (g_FreezeBombTime[client] > 1)
5.60 {
5.61 color = RoundToFloor(g_FreezeBombTime[client] * (255.0 / GetConVarFloat(g_Cvar_FreezeBombTicks)));
5.62 - EmitAmbientSound(SOUND_BEEP, vec, client, SNDLEVEL_RAIDSIREN);
5.63 + if (g_BeepSound[0])
5.64 + {
5.65 + EmitAmbientSound(g_BeepSound, vec, client, SNDLEVEL_RAIDSIREN);
5.66 + }
5.67 }
5.68 else
5.69 {
5.70 color = 0;
5.71 - EmitAmbientSound(SOUND_FINAL, vec, client, SNDLEVEL_RAIDSIREN);
5.72 + if (g_FinalSound[0])
5.73 + {
5.74 + EmitAmbientSound(g_FinalSound, vec, client, SNDLEVEL_RAIDSIREN);
5.75 + }
5.76 }
5.77
5.78 SetEntityRenderColor(client, color, color, 255, 255);
5.79 @@ -238,13 +250,16 @@
5.80 GetClientName(client, name, sizeof(name));
5.81 PrintCenterTextAll("%t", "Till Explodes", name, g_FreezeBombTime[client]);
5.82
5.83 - GetClientAbsOrigin(client, vec);
5.84 - vec[2] += 10;
5.85 + if (g_BeamSprite > -1 && g_HaloSprite > -1)
5.86 + {
5.87 + GetClientAbsOrigin(client, vec);
5.88 + vec[2] += 10;
5.89
5.90 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_FreezeBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 15, 0.5, 5.0, 0.0, greyColor, 10, 0);
5.91 - TE_SendToAll();
5.92 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_FreezeBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, whiteColor, 10, 0);
5.93 - TE_SendToAll();
5.94 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_FreezeBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 15, 0.5, 5.0, 0.0, greyColor, 10, 0);
5.95 + TE_SendToAll();
5.96 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_FreezeBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, whiteColor, 10, 0);
5.97 + TE_SendToAll();
5.98 + }
5.99 return Plugin_Continue;
5.100 }
5.101 else
5.102 @@ -255,7 +270,10 @@
5.103 TE_SendToAll();
5.104 }
5.105
5.106 - EmitAmbientSound(SOUND_BOOM, vec, client, SNDLEVEL_RAIDSIREN);
5.107 + if (g_BoomSound[0])
5.108 + {
5.109 + EmitAmbientSound(g_BoomSound, vec, client, SNDLEVEL_RAIDSIREN);
5.110 + }
5.111
5.112 KillFreezeBomb(client);
5.113 FreezeClient(client, GetConVarInt(g_Cvar_FreezeDuration));
5.114 @@ -286,15 +304,19 @@
5.115 continue;
5.116 }
5.117
5.118 - if (g_BeamSprite2 > -1)
5.119 + if (g_HaloSprite > -1)
5.120 {
5.121 - TE_SetupBeamPoints(vec, pos, g_BeamSprite2, g_HaloSprite, 0, 1, 0.7, 20.0, 50.0, 1, 1.5, blueColor, 10);
5.122 + if (g_BeamSprite2 > -1)
5.123 + {
5.124 + TE_SetupBeamPoints(vec, pos, g_BeamSprite2, g_HaloSprite, 0, 1, 0.7, 20.0, 50.0, 1, 1.5, blueColor, 10);
5.125 + TE_SendToAll();
5.126 + }
5.127 + else if (g_BeamSprite > -1)
5.128 + {
5.129 + TE_SetupBeamPoints(vec, pos, g_BeamSprite, g_HaloSprite, 0, 1, 0.7, 20.0, 50.0, 1, 1.5, blueColor, 10);
5.130 + TE_SendToAll();
5.131 + }
5.132 }
5.133 - else
5.134 - {
5.135 - TE_SetupBeamPoints(vec, pos, g_BeamSprite, g_HaloSprite, 0, 1, 0.7, 20.0, 50.0, 1, 1.5, blueColor, 10);
5.136 - }
5.137 - TE_SendToAll();
5.138
5.139 FreezeClient(i, GetConVarInt(g_Cvar_FreezeDuration));
5.140 }
6.1 --- a/plugins/funcommands/timebomb.sp Sun Mar 30 14:07:14 2014 -0400
6.2 +++ b/plugins/funcommands/timebomb.sp Sat Mar 29 15:07:07 2014 -0400
6.3 @@ -102,12 +102,18 @@
6.4 if (g_TimeBombTime[client] > 1)
6.5 {
6.6 color = RoundToFloor(g_TimeBombTime[client] * (128.0 / GetConVarFloat(g_Cvar_TimeBombTicks)));
6.7 - EmitAmbientSound(SOUND_BEEP, vec, client, SNDLEVEL_RAIDSIREN);
6.8 + if (g_BeepSound[0])
6.9 + {
6.10 + EmitAmbientSound(g_BeepSound, vec, client, SNDLEVEL_RAIDSIREN);
6.11 + }
6.12 }
6.13 else
6.14 {
6.15 color = 0;
6.16 - EmitAmbientSound(SOUND_FINAL, vec, client, SNDLEVEL_RAIDSIREN);
6.17 + if (g_FinalSound[0])
6.18 + {
6.19 + EmitAmbientSound(g_FinalSound, vec, client, SNDLEVEL_RAIDSIREN);
6.20 + }
6.21 }
6.22
6.23 SetEntityRenderColor(client, 255, 128, color, 255);
6.24 @@ -116,13 +122,16 @@
6.25 GetClientName(client, name, sizeof(name));
6.26 PrintCenterTextAll("%t", "Till Explodes", name, g_TimeBombTime[client]);
6.27
6.28 - GetClientAbsOrigin(client, vec);
6.29 - vec[2] += 10;
6.30 + if (g_BeamSprite > -1 && g_HaloSprite > -1)
6.31 + {
6.32 + GetClientAbsOrigin(client, vec);
6.33 + vec[2] += 10;
6.34
6.35 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_TimeBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 15, 0.5, 5.0, 0.0, greyColor, 10, 0);
6.36 - TE_SendToAll();
6.37 - TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_TimeBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, whiteColor, 10, 0);
6.38 - TE_SendToAll();
6.39 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_TimeBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 15, 0.5, 5.0, 0.0, greyColor, 10, 0);
6.40 + TE_SendToAll();
6.41 + TE_SetupBeamRingPoint(vec, 10.0, GetConVarFloat(g_Cvar_TimeBombRadius) / 3.0, g_BeamSprite, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, whiteColor, 10, 0);
6.42 + TE_SendToAll();
6.43 + }
6.44 return Plugin_Continue;
6.45 }
6.46 else
6.47 @@ -133,7 +142,10 @@
6.48 TE_SendToAll();
6.49 }
6.50
6.51 - EmitAmbientSound(SOUND_BOOM, vec, client, SNDLEVEL_RAIDSIREN);
6.52 + if (g_BoomSound[0])
6.53 + {
6.54 + EmitAmbientSound(g_BoomSound, vec, client, SNDLEVEL_RAIDSIREN);
6.55 + }
6.56
6.57 ForcePlayerSuicide(client);
6.58 KillTimeBomb(client);
7.1 --- a/tools/buildbot/PackageScript Sun Mar 30 14:07:14 2014 -0400
7.2 +++ b/tools/buildbot/PackageScript Sat Mar 29 15:07:07 2014 -0400
7.3 @@ -137,7 +137,11 @@
7.4 'update_admins-r1409.sql',
7.5 ]
7.6 )
7.7 -CopyFiles('gamedata', 'addons/sourcemod/gamedata', ['sm-tf2.games.txt'])
7.8 +CopyFiles('gamedata', 'addons/sourcemod/gamedata',
7.9 + [ 'funcommands.games.txt',
7.10 + 'sm-tf2.games.txt',
7.11 + ]
7.12 +)
7.13 CopyFiles('gamedata/sdkhooks.games', 'addons/sourcemod/gamedata/sdkhooks.games',
7.14 [ 'common.games.txt',
7.15 'engine.blade.txt',