Sourcemod Plugins: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 131: | Line 131: | ||
== Chat Triggers == | == Chat Triggers == | ||
Plugin link: https://forums.alliedmods.net/showthread.php?p=585758 | Plugin link: https://forums.alliedmods.net/showthread.php?p=585758 <br /> | ||
Adds commandlist.txt functionality (From Mani) to SourceMod. You can easily define chat commands (e.g. !unstuck), to be linked to console commands. | Adds commandlist.txt functionality (From Mani) to SourceMod. | ||
You can easily define chat commands (e.g. !unstuck), to be linked to console commands. | |||
Revision as of 12:19, 13 March 2017
Home > Sourcemod Plugins
Compiling from Source
Thanks to people smarter than me, compiling from source is pretty easy. Take your source-file or source-text and pop it in this: http://www.sourcemod.net/compiler.php Download your compiled plugin, and put it in your sourcemod/plugins folder
End of Round AllTalk
Original Plugin: https://forums.alliedmods.net/showthread.php?p=1246351
#pragma semicolon 1
#include <sourcemod>
#define PLUGIN_VERSION "1.0.2"
new Handle:cvar_round_end_enabled = INVALID_HANDLE;
new Handle:cvar_bomb_enabled = INVALID_HANDLE;
new Handle:cvar_announce = INVALID_HANDLE;
new Handle:cvar_alltalk = INVALID_HANDLE;
new alltalk_being_changed_by_us = false;
new okay_to_disable_alltalk = false;
public Plugin:myinfo = {
name = "Round-End Alltalk",
author = "Mister_Magotchi",
description = "Turns sv_alltalk on at round end or when all Terrorists are dead (in CS:S).",
version = PLUGIN_VERSION,
url = "https://forums.alliedmods.net/showthread.php?t=133016"
};
public OnPluginStart() {
CreateConVar(
"sm_round_end_alltalk_version",
PLUGIN_VERSION,
"Round-End Alltalk Version",
FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_NOTIFY|FCVAR_DONTRECORD
);
cvar_round_end_enabled = CreateConVar(
"sm_round_end_alltalk_round",
"1",
"Toggles whether alltalk is on at round end",
FCVAR_PLUGIN
);
cvar_bomb_enabled = CreateConVar(
"sm_round_end_alltalk_bomb",
"0",
"Toggles whether alltalk is on when all Terrorists are dead",
FCVAR_PLUGIN
);
cvar_announce = CreateConVar(
"sm_round_end_alltalk_announce",
"1",
"Toggles whether changes to sv_alltalk are announced in chat",
FCVAR_PLUGIN
);
cvar_alltalk = FindConVar("sv_alltalk");
SetConVarFlags(cvar_alltalk, GetConVarFlags(cvar_alltalk)&~FCVAR_NOTIFY);
HookConVarChange(cvar_alltalk, AlltalkChanged);
HookEvent("round_start", OnRoundStart);
HookEvent("player_death", OnPlayerDeath);
HookEvent("game_end", OnRoundEnd);
AutoExecConfig(true, "round-end-alltalk");
}
TurnAlltalkOn () {
// PrintToChatAll("Alltalk: DEBUG1");
if (!GetConVarBool(cvar_alltalk)) {
okay_to_disable_alltalk = true;
alltalk_being_changed_by_us = true;
SetConVarBool(cvar_alltalk, true);
}
}
public AlltalkChanged (Handle:convar, const String:oldValue[], const String:newValue[]) {
// PrintToChatAll("Alltalk: DEBUG2");
new bool:announce = GetConVarBool(cvar_announce);
if (StringToInt(newValue)) {
if (announce) {
PrintToChatAll("Alltalk is now on.");
}
if (alltalk_being_changed_by_us) {
alltalk_being_changed_by_us = false;
}
else {
okay_to_disable_alltalk = false;
}
}
else {
if (announce) {
PrintToChatAll("Alltalk is now off.");
}
}
}
public OnRoundStart (Handle:event, const String:name[], bool:dontBroadcast) {
// PrintToChatAll("Alltalk: DEBUG3");
if (okay_to_disable_alltalk) {
SetConVarBool(cvar_alltalk, false);
}
}
public OnPlayerDeath (Handle:event, const String:name[], bool:dontBroadcast) {
// PrintToChatAll("Alltalk: DEBUG4");
if (GetConVarBool(cvar_bomb_enabled)) {
new client;
new bool:terrorists_dead = true;
for (client = MaxClients; 0 < client; client--) {
if (IsClientInGame(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2) {
terrorists_dead = false;
break;
}
}
if (terrorists_dead) {
TurnAlltalkOn();
}
}
}
public OnRoundEnd (Handle:event, const String:name[], bool:dontBroadcast) {
// PrintToChatAll("Alltalk: DEBUG5");
if (GetConVarBool(cvar_round_end_enabled)) {
TurnAlltalkOn();
}
}
Chat Triggers
Plugin link: https://forums.alliedmods.net/showthread.php?p=585758
Adds commandlist.txt functionality (From Mani) to SourceMod.
You can easily define chat commands (e.g. !unstuck), to be linked to console commands.