mirror of
https://github.com/Jackzmc/sourcemod-plugins.git
synced 2025-05-06 11:53:21 +00:00
ftt: Add troll 'meow'
This commit is contained in:
parent
23c5672984
commit
ccf2340d3c
3 changed files with 26 additions and 12 deletions
|
@ -243,7 +243,7 @@ public Action Command_PlaySound(int client, int args) {
|
|||
PrecacheSound(arg2);
|
||||
for (int i = 0; i < target_count; i++) {
|
||||
target = target_list[i];
|
||||
if(IsClientConnected(target) && IsClientInGame(target)) {
|
||||
if(IsClientConnected(target) && IsClientInGame(target) && !IsFakeClient(target)) {
|
||||
if(StrEqual(arg3, "direct"))
|
||||
ClientCommand(target, "playgamesound %s", arg2);
|
||||
else
|
||||
|
@ -283,10 +283,12 @@ public Action Command_StopSound(int client, int args) {
|
|||
int target;
|
||||
for (int i = 0; i < target_count; i++) {
|
||||
target = target_list[i];
|
||||
if(args < 2)
|
||||
StopSound(target, 0, lastSound[target]);
|
||||
else
|
||||
StopSound(target, 0, arg2);
|
||||
if(IsClientConnected(target) && IsClientInGame(target) && !IsFakeClient(target)) {
|
||||
if(args < 2)
|
||||
StopSound(target, 0, lastSound[target]);
|
||||
else
|
||||
StopSound(target, 0, arg2);
|
||||
}
|
||||
}
|
||||
}
|
||||
return Plugin_Handled;
|
||||
|
@ -451,7 +453,6 @@ public void OnClientDisconnect(int client) {
|
|||
}
|
||||
}
|
||||
public void OnMapStart() {
|
||||
AddFileToDownloadsTable("sound/custom/mariokartmusic.mp3");
|
||||
PrecacheSound("sound/custom/mariokartmusic.mp3");
|
||||
|
||||
HookEntityOutput("info_changelevel", "OnStartTouch", EntityOutput_OnStartTouchSaferoom);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#define AUTOPUNISH_FLOW_MIN_DISTANCE 5000.0
|
||||
#define AUTOPUNISH_MODE_COUNT 3
|
||||
#define TROLL_MODE_COUNT 23
|
||||
#define TROLL_MODE_COUNT 24
|
||||
//
|
||||
enum trollMode {
|
||||
Troll_Reset = 0, //0
|
||||
|
@ -25,8 +25,10 @@ enum trollMode {
|
|||
Troll_DamageBoost, //19
|
||||
Troll_TempHealthQuickDrain, //20
|
||||
Troll_VomitPlayer, //21
|
||||
Troll_VocalizeGag
|
||||
Troll_VocalizeGag,
|
||||
Troll_Meow
|
||||
}
|
||||
//TODO: Troll_Cat - play custom sounds
|
||||
enum TrollModifier {
|
||||
TrollMod_None = 0,
|
||||
TrollMod_InstantFire = 1,
|
||||
|
@ -55,7 +57,8 @@ char TROLL_MODES_NAMES[TROLL_MODE_COUNT][32] = {
|
|||
"Damage Boost",
|
||||
"Temp Quick Drain",
|
||||
"Vomit Player",
|
||||
"Vocalize Gag"
|
||||
"Vocalize Gag",
|
||||
"Meow"
|
||||
};
|
||||
char TROLL_MODES_DESCRIPTIONS[TROLL_MODE_COUNT][128] = {
|
||||
"Resets the user, removes all troll effects", //0
|
||||
|
@ -80,8 +83,10 @@ char TROLL_MODES_DESCRIPTIONS[TROLL_MODE_COUNT][128] = {
|
|||
"Makes a player take more damage than normal",
|
||||
"Makes a player's temporarily health drain very quickly",
|
||||
"Shortcut to sm_vomitplayer. vomits the player.",
|
||||
"Prevents player from sending any vocalizations (even automatic)"
|
||||
"Prevents player from sending any vocalizations (even automatic)",
|
||||
"Makes the player meow"
|
||||
};
|
||||
|
||||
enum L4D2Infected
|
||||
{
|
||||
L4D2Infected_None = 0,
|
||||
|
@ -134,6 +139,7 @@ void ApplyModeToClient(int client, int victim, trollMode mode, TrollModifier mod
|
|||
case Troll_NoShove: {}
|
||||
case Troll_SlowDrain: {}
|
||||
case Troll_TempHealthQuickDrain: {}
|
||||
case Troll_Meow: {}
|
||||
case Troll_VomitPlayer: {
|
||||
L4D_CTerrorPlayer_OnVomitedUpon(victim, victim);
|
||||
}
|
||||
|
|
|
@ -67,6 +67,7 @@ public void OnPluginStart() {
|
|||
HookEvent("player_disconnect", Event_PlayerDisconnect);
|
||||
HookEvent("player_death", Event_PlayerDeath);
|
||||
HookEvent("triggered_car_alarm", Event_CarAlarm);
|
||||
|
||||
AddNormalSoundHook(view_as<NormalSHook>(SoundHook));
|
||||
|
||||
AutoExecConfig(true, "l4d2_feedthetrolls");
|
||||
|
@ -88,6 +89,9 @@ public void OnMapEnd() {
|
|||
UnhookEntityOutput("func_button", "OnPressed", Event_ButtonPress);
|
||||
}
|
||||
public void OnMapStart() {
|
||||
AddFileToDownloadsTable("sound/custom/meow1.mp3");
|
||||
PrecacheSound("sound/custom/meow1.mp3");
|
||||
|
||||
lastButtonUser = -1;
|
||||
HookEntityOutput("func_button", "OnPressed", Event_ButtonPress);
|
||||
CreateTimer(MAIN_TIMER_INTERVAL_S, Timer_Main, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE);
|
||||
|
@ -137,7 +141,7 @@ public void Event_PanicEventCreate(Event event, const char[] name, bool dontBroa
|
|||
}
|
||||
public void Event_CarAlarm(Event event, const char[] name, bool dontBroadcast) {
|
||||
int user = event.GetInt("userid");
|
||||
int client = GetClientOfUserId(user;
|
||||
int client = GetClientOfUserId(user);
|
||||
if(client) {
|
||||
PrintToChatAll("%N has alerted the horde!", client);
|
||||
L4D2_RunScript("RushVictim(GetPlayerFromUserID(%d), %d)", user, 15000);
|
||||
|
@ -154,7 +158,7 @@ public Action L4D2_OnChooseVictim(int attacker, int &curTarget) {
|
|||
if(hMagnetChance.FloatValue < GetRandomFloat()) return Plugin_Continue;
|
||||
L4D2Infected class = view_as<L4D2Infected>(GetEntProp(attacker, Prop_Send, "m_zombieClass"));
|
||||
int existingTarget = GetClientOfUserId(g_iAttackerTarget[attacker]);
|
||||
if(existingTarget > 0 && IsPlayerAlive(existingTarget) && (hMagnetTargetMode.IntValue & 1 != 1 || !IsPlayerIncapped(existingTarget)) {
|
||||
if(existingTarget > 0 && IsPlayerAlive(existingTarget) && (hMagnetTargetMode.IntValue & 1 != 1 || !IsPlayerIncapped(existingTarget))) {
|
||||
if(class == L4D2Infected_Tank && (hMagnetTargetMode.IntValue % 2 != 2 || !IsPlayerIncapped(existingTarget))) {
|
||||
curTarget = existingTarget;
|
||||
return Plugin_Changed;
|
||||
|
@ -373,6 +377,9 @@ public Action SoundHook(int[] clients, int& numClients, char sample[PLATFORM_MAX
|
|||
return Plugin_Changed;
|
||||
} else if(HasTrollMode(entity, Troll_VocalizeGag)) {
|
||||
return Plugin_Handled;
|
||||
} else if(HasTrollMode(entity, Troll_Meow)) {
|
||||
strcopy(sample, sizeof(sample), "custom/meow1.mp3");
|
||||
return Plugin_Changed;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue