Added a way to quiet any sayhook if it wasn't successfully executed, fixed double-ztele'ing. (Note: Linux can't compile the plugin anymore.)
This commit is contained in:
parent
cec31406d0
commit
a89f98cc38
@ -393,7 +393,12 @@
|
||||
"ZTele max"
|
||||
{
|
||||
"#format" "{1:d}"
|
||||
"en" "You have reached your max of {1} teleports per round."
|
||||
"en" "You have reached your max of {1} teleport(s) per round."
|
||||
}
|
||||
|
||||
"ZTele in progress"
|
||||
{
|
||||
"en" "You are currently pending teleportation."
|
||||
}
|
||||
|
||||
"ZTele autocancel text"
|
||||
|
@ -47,6 +47,7 @@ enum CvarsList
|
||||
Handle:CVAR_DAMAGE_SUICIDE_HUMAN,
|
||||
Handle:CVAR_DAMAGE_SUICIDE_CMDS,
|
||||
Handle:CVAR_SAYHOOKS_QUIET,
|
||||
Handle:CVAR_SAYHOOKS_QUIET_FILTER,
|
||||
Handle:CVAR_SAYHOOKS_QUIET_FLAGS,
|
||||
Handle:CVAR_ROUNDEND_OVERLAY,
|
||||
Handle:CVAR_ROUNDEND_OVERLAY_ZOMBIE,
|
||||
@ -315,6 +316,8 @@ CvarsCreate()
|
||||
// ===========================
|
||||
|
||||
g_hCvarsList[CVAR_SAYHOOKS_QUIET] = CreateConVar("zr_sayhooks_quiet", "1", "");
|
||||
g_hCvarsList[CVAR_SAYHOOKS_QUIET_FILTER] = CreateConVar("zr_sayhooks_quiet_filter", "1", "");
|
||||
// when enabled it filters out failed sayhooks
|
||||
g_hCvarsList[CVAR_SAYHOOKS_QUIET_FLAGS] = CreateConVar("zr_sayhooks_quiet_flags", "58", "");
|
||||
// Flags (default: 2 + 8 + 16 + 32)
|
||||
// 0 Allow all.
|
||||
|
@ -78,6 +78,9 @@ public Action:SayHooksCmdSay(client, argc)
|
||||
return Plugin_Continue;
|
||||
}
|
||||
|
||||
// Define success as true until otherwise changed.
|
||||
new bool:success = true;
|
||||
|
||||
switch(chatflag)
|
||||
{
|
||||
// Client triggered ZMenu flag.
|
||||
@ -89,7 +92,7 @@ public Action:SayHooksCmdSay(client, argc)
|
||||
// Client triggered ZAdmin flag.
|
||||
case SAYHOOKS_KEYWORD_FLAG_ZADMIN:
|
||||
{
|
||||
ZRAdminMenu(client);
|
||||
success = ZRAdminMenu(client);
|
||||
}
|
||||
// Client triggered ZClass flag.
|
||||
case SAYHOOKS_KEYWORD_FLAG_ZCLASS:
|
||||
@ -101,24 +104,24 @@ public Action:SayHooksCmdSay(client, argc)
|
||||
case SAYHOOKS_KEYWORD_FLAG_ZSPAWN:
|
||||
{
|
||||
// Spawns a late-joining client into the game.
|
||||
ZSpawnClient(client);
|
||||
success = ZSpawnClient(client);
|
||||
}
|
||||
// Client triggered ZTele flag.
|
||||
case SAYHOOKS_KEYWORD_FLAG_ZTELE:
|
||||
{
|
||||
ZTeleClient(client);
|
||||
success = ZTeleClient(client);
|
||||
}
|
||||
// Client triggered ZHP flag.
|
||||
case SAYHOOKS_KEYWORD_FLAG_ZHP:
|
||||
{
|
||||
// Toggle ZHP.
|
||||
ZHPToggle(client);
|
||||
success = ZHPToggle(client);
|
||||
}
|
||||
// Client triggered ZMarket flag.
|
||||
case SAYHOOKS_KEYWORD_FLAG_ZMARKET:
|
||||
{
|
||||
// Send market menu.
|
||||
ZMarketMenu(client);
|
||||
success = ZMarketMenu(client);
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,6 +132,13 @@ public Action:SayHooksCmdSay(client, argc)
|
||||
return Plugin_Continue;
|
||||
}
|
||||
|
||||
// If filter is enabled, and the command failed to be executed, then stop.
|
||||
new bool:filter = GetConVarBool(g_hCvarsList[CVAR_SAYHOOKS_QUIET_FILTER]);
|
||||
if (filter && !success)
|
||||
{
|
||||
return Plugin_Handled;
|
||||
}
|
||||
|
||||
// If word is flagged to be quieted, then stop.
|
||||
new quietflags = GetConVarInt(g_hCvarsList[CVAR_SAYHOOKS_QUIET_FLAGS]);
|
||||
if (quietflags & chatflag)
|
||||
|
@ -125,7 +125,7 @@ ZHPOnHealthInfectGain(client)
|
||||
*
|
||||
* @param client The client index.
|
||||
*/
|
||||
ZHPToggle(client)
|
||||
bool:ZHPToggle(client)
|
||||
{
|
||||
// If ZHP is disabled, then stop.
|
||||
new bool:zhp = GetConVarBool(g_hCvarsList[CVAR_ZHP]);
|
||||
@ -135,7 +135,7 @@ ZHPToggle(client)
|
||||
ZR_PrintToChat(client, "Feature is disabled");
|
||||
|
||||
// Stop.
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
// If ZHP is enabled, then tell client it's being disabled.
|
||||
@ -154,6 +154,8 @@ ZHPToggle(client)
|
||||
|
||||
// Toggle ZHP flag.
|
||||
pZHP[client] = !pZHP[client];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -147,6 +147,13 @@ bool:ZTeleClient(client)
|
||||
return false;
|
||||
}
|
||||
|
||||
// If teleport is already in progress, then stop.
|
||||
if (tZTele[client] != INVALID_HANDLE)
|
||||
{
|
||||
ZR_PrintToChat(client, "ZTele in progress");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Get current location.
|
||||
GetClientAbsOrigin(client, g_vecZTeleOrigin[client]);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user