Diff
checker
Testo
Testo
Immagini
Documenti
Excel
Cartelle
Legal
Enterprise
Applicazione per desktop
Prezzi
Accedi
Scarica Diffchecker Desktop
Confronta il testo
Trova la differenza tra due file di testo
Strumenti
Cronologia
Editor live
Comprimi invariate
Senza a capo
Layout
Diviso
Unificato
Livello di dettaglio
Intelligente
Parola
Carattere
Evidenziazione sintassi
Scegli sintassi
Ignora
Trasforma testo
Vai alla prima modifica
Modifica input
Diffchecker Desktop
Il modo più sicuro per usare Diffchecker. Ottieni l'app Diffchecker Desktop: i tuoi diff non lasciano mai il tuo computer!
Ottieni Desktop
Untitled diff
Creato
8 anni fa
Il diff non scade mai
Eliminare
Esporta
Condividere
Spiegare
126 rimozioni
Linee
Totale
Rimosso
Caratteri
Totale
Rimosso
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
388 linee
Copia tutti
124 aggiunte
Linee
Totale
Aggiunto
Caratteri
Totale
Aggiunto
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
373 linee
Copia tutti
/**
/**
Copia
Copiato
Copia
Copiato
*
* =============================================================================
* =============================================================================
Copia
Copiato
Copia
Copiato
*
2
week gag & mute & ban
*
1
week gag & mute & ban
* MAKS steamcommunity.com/profiles/76561198025355822/
* MAKS steamcommunity.com/profiles/76561198025355822/
* dr lex steamcommunity.com/profiles/76561198008545221/
* dr lex steamcommunity.com/profiles/76561198008545221/
* =============================================================================
* =============================================================================
*
*
* This program is free software; you can redistribute it and/or modify it under
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, version 3.0, as published by the
* the terms of the GNU General Public License, version 3.0, as published by the
* Free Software Foundation.
* Free Software Foundation.
*
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* details.
*
*
* You should have received a copy of the GNU General Public License along with
* You should have received a copy of the GNU General Public License along with
Copia
Copiato
Copia
Copiato
* this program. If not, see <
http://
www.gnu.org/licenses/>.
* this program. If not, see <
www.gnu.org/licenses/>.
*
*
* As a special exception, AlliedModders LLC gives you permission to link the
* As a special exception, AlliedModders LLC gives you permission to link the
* code of this program (as well as its derivative works) to "Half-Life 2," the
* code of this program (as well as its derivative works) to "Half-Life 2," the
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
* by the Valve Corporation. You must obey the GNU General Public License in
* by the Valve Corporation. You must obey the GNU General Public License in
* all respects for all other code used. Additionally, AlliedModders LLC grants
* all respects for all other code used. Additionally, AlliedModders LLC grants
* this exception to all derivative works. AlliedModders LLC defines further
* this exception to all derivative works. AlliedModders LLC defines further
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
Copia
Copiato
Copia
Copiato
* or <
http://
www.sourcemod.net/license.php>.
* or <
www.sourcemod.net/license.php>.
*
*
*/
*/
#pragma semicolon 1
#pragma semicolon 1
#include <sourcemod>
#include <sourcemod>
#include <sdktools>
#include <sdktools>
#pragma newdecls required
#pragma newdecls required
char sg_fileTxt[160];
char sg_fileTxt[160];
Copia
Copiato
Copia
Copiato
char sg_log[160];
public Plugin myinfo =
public Plugin myinfo =
{
{
name = "gagmute",
name = "gagmute",
author = "MAKS & dr lex",
author = "MAKS & dr lex",
Copia
Copiato
Copia
Copiato
description = "
2 week
gag & mute
",
description = "
gag & mute
& ban
",
version = "1.
1
",
version = "1.
3
",
url = "forums.alliedmods.net/showthread.php?p=2347844"
url = "forums.alliedmods.net/showthread.php?p=2347844"
};
};
public void OnPluginStart()
public void OnPluginStart()
{
{
Copia
Copiato
Copia
Copiato
RegAdminCmd("sm_addban", CMD_
tyban
, ADMFLAG_BAN, "");
RegAdminCmd("sm_addban", CMD_
addban
, ADMFLAG_BAN, "");
RegAdminCmd("sm_addgag", CMD_
tygag
, ADMFLAG_CHAT, "");
RegAdminCmd("sm_addgag", CMD_
addgag
, ADMFLAG_CHAT, "");
RegAdminCmd("sm_addmute", CMD_
tymute
, ADMFLAG_CHAT, "");
RegAdminCmd("sm_addmute", CMD_
addmute
, ADMFLAG_CHAT, "");
Copia
Copiato
Copia
Copiato
BuildPath(Path_SM, sg_fileTxt, sizeof(sg_fileTxt)-1, "data/
gagmute
.txt");
BuildPath(Path_SM, sg_fileTxt, sizeof(sg_fileTxt)-1, "data/
GagMuteBan
.txt");
BuildPath(Path_SM, sg_log, sizeof(sg_log)-1, "logs/GagMuteBan.log");
}
}
Copia
Copiato
Copia
Copiato
void
Ty
ClientGagMuteBan(int
client)
void
Hx
ClientGagMuteBan(int
&
client)
{
{
KeyValues hGM = new KeyValues("gagmute");
KeyValues hGM = new KeyValues("gagmute");
if (hGM.ImportFromFile(sg_fileTxt))
if (hGM.ImportFromFile(sg_fileTxt))
{
{
char sTeamID[24];
char sTeamID[24];
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
if (hGM.JumpToKey(sTeamID))
if (hGM.JumpToKey(sTeamID))
{
{
int iMute = hGM.GetNum("mute", 0);
int iMute = hGM.GetNum("mute", 0);
int iGag = hGM.GetNum("gag", 0);
int iGag = hGM.GetNum("gag", 0);
int iBan = hGM.GetNum("ban", 0);
int iBan = hGM.GetNum("ban", 0);
Copia
Copiato
Copia
Copiato
delete hGM;
int iTime = GetTime();
int iTime = GetTime();
Copia
Copiato
Copia
Copiato
if (iMute > iTime)
if (iMute > iTime)
{
{
ServerCommand("sm_mute #%d", GetClientUserId(client));
ServerCommand("sm_mute #%d", GetClientUserId(client));
}
}
if (iGag > iTime)
if (iGag > iTime)
{
{
ServerCommand("sm_gag #%d", GetClientUserId(client));
ServerCommand("sm_gag #%d", GetClientUserId(client));
}
}
if (iBan > iTime)
if (iBan > iTime)
{
{
char sTime[24];
char sTime[24];
FormatTime(sTime, sizeof(sTime)-1, "%Y-%m-%d %H:%M:%S", iBan);
FormatTime(sTime, sizeof(sTime)-1, "%Y-%m-%d %H:%M:%S", iBan);
KickClient(client,"Banned (%s)", sTime);
KickClient(client,"Banned (%s)", sTime);
}
}
}
}
Copia
Copiato
Copia
Copiato
delete hGM;
}
}
}
}
public void OnClientPostAdminCheck(int client)
public void OnClientPostAdminCheck(int client)
{
{
if (!IsFakeClient(client))
if (!IsFakeClient(client))
{
{
Copia
Copiato
Copia
Copiato
Ty
ClientGagMuteBan(client);
Hx
ClientGagMuteBan(client);
}
}
}
}
Copia
Copiato
Copia
Copiato
int
Ty
ClientTimeBan(int &client, int iTime)
int
Hx
ClientTimeBan(int &client, int iTime)
{
{
if (IsClientInGame(client))
if (IsClientInGame(client))
{
{
char sName[32];
char sName[32];
char sTeamID[24];
char sTeamID[24];
KeyValues hGM = new KeyValues("gagmute");
KeyValues hGM = new KeyValues("gagmute");
hGM.ImportFromFile(sg_fileTxt);
hGM.ImportFromFile(sg_fileTxt);
GetClientName(client, sName, sizeof(sName)-12);
GetClientName(client, sName, sizeof(sName)-12);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
if (!hGM.JumpToKey(sTeamID))
if (!hGM.JumpToKey(sTeamID))
{
{
hGM.JumpToKey(sTeamID, true);
hGM.JumpToKey(sTeamID, true);
}
}
int iTimeBan = GetTime() + (iTime * 60);
int iTimeBan = GetTime() + (iTime * 60);
hGM.SetString("Name", sName);
hGM.SetString("Name", sName);
hGM.SetNum("ban", iTimeBan);
hGM.SetNum("ban", iTimeBan);
hGM.Rewind();
hGM.Rewind();
hGM.ExportToFile(sg_fileTxt);
hGM.ExportToFile(sg_fileTxt);
delete hGM;
delete hGM;
return 1;
return 1;
}
}
return 0;
return 0;
}
}
Copia
Copiato
Copia
Copiato
public int
TyMenuBan
(Menu menu, MenuAction action, int param1, int param2)
public int
MenuHandler_Ban
(Menu menu, MenuAction action, int param1, int param2)
{
{
if (action == MenuAction_Select)
if (action == MenuAction_Select)
{
{
Copia
Copiato
Copia
Copiato
char
i
nfo[
16
];
char
sI
nfo[
8
];
bool found = menu.GetItem(param2,
i
nfo, sizeof(
i
nfo)-1);
bool found = menu.GetItem(param2,
sI
nfo, sizeof(
sI
nfo)-1);
if (found && param1)
if (found && param1)
{
{
Copia
Copiato
Copia
Copiato
int client = StringToInt(
i
nfo);
int client = StringToInt(
sI
nfo);
if (client > 0)
if (client > 0)
{
{
Copia
Copiato
Copia
Copiato
if (
Ty
ClientTimeBan(client, 60*24*7))
if (
Hx
ClientTimeBan(client, 60*24*7))
{
{
Copia
Copiato
Copia
Copiato
PrintToChatAll("\x0
4
%d
\x05Min
ban
\x04
%N.\n
", 60*24*7, client);
LogToFileEx(sg_log, "Ban: %N -> %N", param1, client);
PrintToChatAll("\x0
5
%d
min
ban
:
\x04
%N
", 60*24*7, client);
KickClient(client, "%d Min ban.", 60*24*7);
KickClient(client, "%d Min ban.", 60*24*7);
}
}
}
}
}
}
}
}
if (action == MenuAction_End)
if (action == MenuAction_End)
{
{
delete menu;
delete menu;
}
}
}
}
Copia
Copiato
Copia
Copiato
public Action CMD_
tyban
(int client, int args)
public Action CMD_
addban
(int client, int args)
{
{
Copia
Copiato
Copia
Copiato
if (
args
)
if (
client
)
{
{
Copia
Copiato
Copia
Copiato
char sArg[8];
if (
IsClientInGame(client)
)
GetCmdArg(1, sArg, sizeof(sArg)-1);
int iArg = StringToInt(sArg);
if (
iArg > 0 && iArg < 33
)
{
{
Copia
Copiato
Copia
Copiato
if (IsClientInGame(iArg))
char
sName[32
];
{
char sNumber[8];
int iTime = 60*24;
int i
=
1;
if (args > 1)
{
char
sTime[20
];
GetCmdArg(2, sTime, sizeof(sTime)-1);
iTime
=
StringToInt(sTime);
}
Copia
Copiato
Copia
Copiato
if (TyClientTimeBan(client, iTime))
Menu hMenu = new Menu(MenuHandler_Ban);
{
hMenu.SetTitle("1 week
ban
player"
);
PrintToChatAll("\x04%d \x05Min ban \x04%N.\n", iTime, client);
KickClient(client, "%d Min
ban
.", iTime
);
while (i <= MaxClients
)
}
}
}
}
else
{
if (client)
{
if (IsClientInGame(client)
)
{
{
Copia
Copiato
Copia
Copiato
char sName[32];
if (IsClientInGame(i) && !IsFakeClient(i))
char sNumber[8];
int i = 1;
Menu hMenu = new Menu(TyMenuBan);
hMenu.SetTitle("1 week ban player");
while (i <= MaxClients)
{
{
Copia
Copiato
Copia
Copiato
if (
IsClientInGame(i) && !IsFakeClient(i))
if (
client != i)
{
{
Copia
Copiato
Copia
Copiato
if (client != i)
GetClientName(i, sName, sizeof(sName)-12);
{
Format(sNumber, sizeof(sNumber)-1, "%d", i);
GetClientName(i, sName, sizeof(sName)-12);
hMenu.AddItem(sNumber, sName);
Format(sNumber, sizeof(sNumber)-1, "%d", i);
hMenu.AddItem(sNumber, sName);
}
}
}
Copia
Copiato
Copia
Copiato
i += 1;
}
}
Copia
Copiato
Copia
Copiato
i += 1
;
hMenu.ExitButton = false;
hMenu.Display(client, 20)
;
}
}
Copia
Copiato
Copia
Copiato
Text moved with changes from lines 295-297 (98.3% similarity)
hMenu.ExitButton = false;
hMenu.Display(client, 20);
}
}
}
}
Copia
Copiato
Copia
Copiato
return Plugin_Handled;
return Plugin_Handled;
}
}
Copia
Copiato
Copia
Copiato
int
Ty
ClientTimeGag(int &client, int iTime)
int
Hx
ClientTimeGag(int &client, int iTime)
{
{
if (IsClientInGame(client))
if (IsClientInGame(client))
{
{
char sName[32];
char sName[32];
char sTeamID[24];
char sTeamID[24];
KeyValues hGM = new KeyValues("gagmute");
KeyValues hGM = new KeyValues("gagmute");
hGM.ImportFromFile(sg_fileTxt);
hGM.ImportFromFile(sg_fileTxt);
GetClientName(client, sName, sizeof(sName)-12);
GetClientName(client, sName, sizeof(sName)-12);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
if (!hGM.JumpToKey(sTeamID))
if (!hGM.JumpToKey(sTeamID))
{
{
hGM.JumpToKey(sTeamID, true);
hGM.JumpToKey(sTeamID, true);
}
}
int iTimeGag = GetTime() + (iTime * 60);
int iTimeGag = GetTime() + (iTime * 60);
hGM.SetString("Name", sName);
hGM.SetString("Name", sName);
hGM.SetNum("gag", iTimeGag);
hGM.SetNum("gag", iTimeGag);
hGM.Rewind();
hGM.Rewind();
hGM.ExportToFile(sg_fileTxt);
hGM.ExportToFile(sg_fileTxt);
delete hGM;
delete hGM;
ServerCommand("sm_gag #%d", GetClientUserId(client));
ServerCommand("sm_gag #%d", GetClientUserId(client));
return 1;
return 1;
}
}
return 0;
return 0;
}
}
Copia
Copiato
Copia
Copiato
public int
TyMenuGage
(Menu menu, MenuAction action, int param1, int param2)
public int
MenuHandler_Gage
(Menu menu, MenuAction action, int param1, int param2)
{
{
if (action == MenuAction_Select)
if (action == MenuAction_Select)
{
{
Copia
Copiato
Copia
Copiato
char
i
nfo[
16
];
char
sI
nfo[
8
];
bool found = menu.GetItem(param2,
i
nfo, sizeof(
i
nfo)-1);
bool found = menu.GetItem(param2,
sI
nfo, sizeof(
sI
nfo)-1);
if (found && param1)
if (found && param1)
{
{
Copia
Copiato
Copia
Copiato
int client = StringToInt(
i
nfo);
int client = StringToInt(
sI
nfo);
if (client > 0)
if (client > 0)
{
{
Copia
Copiato
Copia
Copiato
if (
Ty
ClientTimeGag(client, 60*24*7))
if (
Hx
ClientTimeGag(client, 60*24*7))
{
{
Copia
Copiato
Copia
Copiato
PrintToChatAll("\x0
4
%d
\x05Min
gage
\x04
%N.\n
", 60*24*7, client);
LogToFileEx(sg_log, "Gage: %N -> %N", param1, client);
PrintToChatAll("\x0
5
%d
min
gage
:
\x04
%N
", 60*24*7, client);
}
}
}
}
}
}
}
}
if (action == MenuAction_End)
if (action == MenuAction_End)
{
{
delete menu;
delete menu;
}
}
}
}
Copia
Copiato
Copia
Copiato
public Action CMD_
tygag
(int client, int args)
public Action CMD_
addgag
(int client, int args)
{
{
Copia
Copiato
Copia
Copiato
if (client
&& IsClientInGame(client)
)
if (client
)
{
{
Copia
Copiato
Copia
Copiato
char sName[32];
if (IsClientInGame(client))
char sNumber[8];
{
int i = 1;
char sName[32];
char sNumber[8];
int i = 1;
Copia
Copiato
Copia
Copiato
Menu hMenu = new Menu(
TyMenuGage
);
Menu hMenu = new Menu(
MenuHandler_Gage
);
hMenu.SetTitle("1 week block chat");
hMenu.SetTitle("1 week block chat");
Copia
Copiato
Copia
Copiato
while (i <= MaxClients)
while (i <= MaxClients)
{
if (IsClientInGame(i) && !IsFakeClient(i))
{
{
Copia
Copiato
Copia
Copiato
if (
client != i)
if (
IsClientInGame(i) && !IsFakeClient(i))
{
{
Copia
Copiato
Copia
Copiato
GetClientName(i, sName, sizeof(sName)-12);
if (client != i)
Format(sNumber, sizeof(sNumber)-1, "%d", i);
{
hMenu.AddItem(sNumber, sName);
GetClientName(i, sName, sizeof(sName)-12);
Format(sNumber, sizeof(sNumber)-1, "%d", i);
hMenu.AddItem(sNumber, sName);
}
}
}
Copia
Copiato
Copia
Copiato
i += 1;
}
}
Copia
Copiato
Copia
Copiato
i += 1
;
hMenu.ExitButton = false;
hMenu.Display(client, 20)
;
}
}
Copia
Copiato
Copia
Copiato
Text moved with changes to lines 182-184 (98.3% similarity)
hMenu.ExitButton = false;
hMenu.Display(client, 20);
}
}
Copia
Copiato
Copia
Copiato
return Plugin_Handled;
return Plugin_Handled;
}
}
Copia
Copiato
Copia
Copiato
int
Ty
ClientTimeMute(int &client, int iTime)
int
Hx
ClientTimeMute(int &client, int iTime)
{
{
if (IsClientInGame(client))
if (IsClientInGame(client))
{
{
char sName[32];
char sName[32];
char sTeamID[24];
char sTeamID[24];
KeyValues hGM = new KeyValues("gagmute");
KeyValues hGM = new KeyValues("gagmute");
hGM.ImportFromFile(sg_fileTxt);
hGM.ImportFromFile(sg_fileTxt);
GetClientName(client, sName, sizeof(sName)-12);
GetClientName(client, sName, sizeof(sName)-12);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
if (!hGM.JumpToKey(sTeamID))
if (!hGM.JumpToKey(sTeamID))
{
{
hGM.JumpToKey(sTeamID, true);
hGM.JumpToKey(sTeamID, true);
}
}
int iTimeMute = GetTime() + (iTime * 60);
int iTimeMute = GetTime() + (iTime * 60);
hGM.SetString("Name", sName);
hGM.SetString("Name", sName);
hGM.SetNum("mute", iTimeMute);
hGM.SetNum("mute", iTimeMute);
hGM.Rewind();
hGM.Rewind();
hGM.ExportToFile(sg_fileTxt);
hGM.ExportToFile(sg_fileTxt);
delete hGM;
delete hGM;
ServerCommand("sm_mute #%d", GetClientUserId(client));
ServerCommand("sm_mute #%d", GetClientUserId(client));
return 1;
return 1;
}
}
return 0;
return 0;
}
}
Copia
Copiato
Copia
Copiato
public int
TyMenuMute
(Menu menu, MenuAction action, int param1, int param2)
public int
MenuHandler_Mute
(Menu menu, MenuAction action, int param1, int param2)
{
{
if (action == MenuAction_Select)
if (action == MenuAction_Select)
{
{
Copia
Copiato
Copia
Copiato
char
i
nfo[
16
];
char
sI
nfo[
8
];
bool found = menu.GetItem(param2,
i
nfo, sizeof(
i
nfo)-1);
bool found = menu.GetItem(param2,
sI
nfo, sizeof(
sI
nfo)-1);
if (found && param1)
if (found && param1)
{
{
Copia
Copiato
Copia
Copiato
int client = StringToInt(
i
nfo);
int client = StringToInt(
sI
nfo);
if (client > 0)
if (client > 0)
{
{
Copia
Copiato
Copia
Copiato
if (
Ty
ClientTimeMute(client, 60*24*7))
if (
Hx
ClientTimeMute(client, 60*24*7))
{
{
Copia
Copiato
Copia
Copiato
PrintToChatAll("\x0
4
%d
\x05Min
mute
\x04
%N.\n
", 60*24*7, client);
LogToFileEx(sg_log, "Mute: %N -> %N", param1, client);
PrintToChatAll("\x0
5
%d
min
mute
:
\x04
%N
", 60*24*7, client);
}
}
}
}
}
}
}
}
if (action == MenuAction_End)
if (action == MenuAction_End)
{
{
delete menu;
delete menu;
}
}
}
}
Copia
Copiato
Copia
Copiato
public Action CMD_
tymute
(int client, int args)
public Action CMD_
addmute
(int client, int args)
{
{
Copia
Copiato
Copia
Copiato
if (client
&& IsClientInGame(client)
)
if (client
)
{
{
Copia
Copiato
Copia
Copiato
char sName[32];
if (IsClientInGame(client))
char sNumber[8];
{
int i = 1;
char sName[32];
char sNumber[8];
int i = 1;
Copia
Copiato
Copia
Copiato
Menu hMenu = new Menu(
TyMenuMute
);
Menu hMenu = new Menu(
MenuHandler_Mute
);
hMenu.SetTitle("1 week block microphone");
hMenu.SetTitle("1 week block microphone");
Copia
Copiato
Copia
Copiato
while (i <= MaxClients)
while (i <= MaxClients)
{
if (IsClientInGame(i) && !IsFakeClient(i))
{
{
Copia
Copiato
Copia
Copiato
if (
client != i)
if (
IsClientInGame(i) && !IsFakeClient(i))
{
{
Copia
Copiato
Copia
Copiato
GetClientName(i, sName, sizeof(sName)-12);
if (client != i)
Format(sNumber, sizeof(sNumber)-1, "%d", i);
{
hMenu.AddItem(sNumber, sName);
GetClientName(i, sName, sizeof(sName)-12);
Format(sNumber, sizeof(sNumber)-1, "%d", i);
hMenu.AddItem(sNumber, sName);
}
}
}
Copia
Copiato
Copia
Copiato
i += 1;
}
}
Copia
Copiato
Copia
Copiato
i += 1
;
hMenu.ExitButton = false;
hMenu.Display(client, 20)
;
}
}
Copia
Copiato
Copia
Copiato
hMenu.ExitButton = false;
hMenu.Display(client, 20);
}
}
Copia
Copiato
Copia
Copiato
return Plugin_Handled;
return Plugin_Handled;
}
}
Diff salvati
Testo originale
Apri file
/** * * ============================================================================= * 2 week gag & mute & ban * MAKS steamcommunity.com/profiles/76561198025355822/ * dr lex steamcommunity.com/profiles/76561198008545221/ * ============================================================================= * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License, version 3.0, as published by the * Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. * * As a special exception, AlliedModders LLC gives you permission to link the * code of this program (as well as its derivative works) to "Half-Life 2," the * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software * by the Valve Corporation. You must obey the GNU General Public License in * all respects for all other code used. Additionally, AlliedModders LLC grants * this exception to all derivative works. AlliedModders LLC defines further * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), * or <http://www.sourcemod.net/license.php>. * */ #pragma semicolon 1 #include <sourcemod> #include <sdktools> #pragma newdecls required char sg_fileTxt[160]; public Plugin myinfo = { name = "gagmute", author = "MAKS & dr lex", description = "2 week gag & mute", version = "1.1", url = "forums.alliedmods.net/showthread.php?p=2347844" }; public void OnPluginStart() { RegAdminCmd("sm_addban", CMD_tyban, ADMFLAG_BAN, ""); RegAdminCmd("sm_addgag", CMD_tygag, ADMFLAG_CHAT, ""); RegAdminCmd("sm_addmute", CMD_tymute, ADMFLAG_CHAT, ""); BuildPath(Path_SM, sg_fileTxt, sizeof(sg_fileTxt)-1, "data/gagmute.txt"); } void TyClientGagMuteBan(int client) { KeyValues hGM = new KeyValues("gagmute"); if (hGM.ImportFromFile(sg_fileTxt)) { char sTeamID[24]; GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1); if (hGM.JumpToKey(sTeamID)) { int iMute = hGM.GetNum("mute", 0); int iGag = hGM.GetNum("gag", 0); int iBan = hGM.GetNum("ban", 0); delete hGM; int iTime = GetTime(); if (iMute > iTime) { ServerCommand("sm_mute #%d", GetClientUserId(client)); } if (iGag > iTime) { ServerCommand("sm_gag #%d", GetClientUserId(client)); } if (iBan > iTime) { char sTime[24]; FormatTime(sTime, sizeof(sTime)-1, "%Y-%m-%d %H:%M:%S", iBan); KickClient(client,"Banned (%s)", sTime); } } } } public void OnClientPostAdminCheck(int client) { if (!IsFakeClient(client)) { TyClientGagMuteBan(client); } } int TyClientTimeBan(int &client, int iTime) { if (IsClientInGame(client)) { char sName[32]; char sTeamID[24]; KeyValues hGM = new KeyValues("gagmute"); hGM.ImportFromFile(sg_fileTxt); GetClientName(client, sName, sizeof(sName)-12); GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1); if (!hGM.JumpToKey(sTeamID)) { hGM.JumpToKey(sTeamID, true); } int iTimeBan = GetTime() + (iTime * 60); hGM.SetString("Name", sName); hGM.SetNum("ban", iTimeBan); hGM.Rewind(); hGM.ExportToFile(sg_fileTxt); delete hGM; return 1; } return 0; } public int TyMenuBan(Menu menu, MenuAction action, int param1, int param2) { if (action == MenuAction_Select) { char info[16]; bool found = menu.GetItem(param2, info, sizeof(info)-1); if (found && param1) { int client = StringToInt(info); if (client > 0) { if (TyClientTimeBan(client, 60*24*7)) { PrintToChatAll("\x04%d \x05Min ban \x04%N.\n", 60*24*7, client); KickClient(client, "%d Min ban.", 60*24*7); } } } } if (action == MenuAction_End) { delete menu; } } public Action CMD_tyban(int client, int args) { if (args) { char sArg[8]; GetCmdArg(1, sArg, sizeof(sArg)-1); int iArg = StringToInt(sArg); if (iArg > 0 && iArg < 33) { if (IsClientInGame(iArg)) { int iTime = 60*24; if (args > 1) { char sTime[20]; GetCmdArg(2, sTime, sizeof(sTime)-1); iTime = StringToInt(sTime); } if (TyClientTimeBan(client, iTime)) { PrintToChatAll("\x04%d \x05Min ban \x04%N.\n", iTime, client); KickClient(client, "%d Min ban.", iTime); } } } } else { if (client) { if (IsClientInGame(client)) { char sName[32]; char sNumber[8]; int i = 1; Menu hMenu = new Menu(TyMenuBan); hMenu.SetTitle("1 week ban player"); while (i <= MaxClients) { if (IsClientInGame(i) && !IsFakeClient(i)) { if (client != i) { GetClientName(i, sName, sizeof(sName)-12); Format(sNumber, sizeof(sNumber)-1, "%d", i); hMenu.AddItem(sNumber, sName); } } i += 1; } hMenu.ExitButton = false; hMenu.Display(client, 20); } } } return Plugin_Handled; } int TyClientTimeGag(int &client, int iTime) { if (IsClientInGame(client)) { char sName[32]; char sTeamID[24]; KeyValues hGM = new KeyValues("gagmute"); hGM.ImportFromFile(sg_fileTxt); GetClientName(client, sName, sizeof(sName)-12); GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1); if (!hGM.JumpToKey(sTeamID)) { hGM.JumpToKey(sTeamID, true); } int iTimeGag = GetTime() + (iTime * 60); hGM.SetString("Name", sName); hGM.SetNum("gag", iTimeGag); hGM.Rewind(); hGM.ExportToFile(sg_fileTxt); delete hGM; ServerCommand("sm_gag #%d", GetClientUserId(client)); return 1; } return 0; } public int TyMenuGage(Menu menu, MenuAction action, int param1, int param2) { if (action == MenuAction_Select) { char info[16]; bool found = menu.GetItem(param2, info, sizeof(info)-1); if (found && param1) { int client = StringToInt(info); if (client > 0) { if (TyClientTimeGag(client, 60*24*7)) { PrintToChatAll("\x04%d \x05Min gage \x04%N.\n", 60*24*7, client); } } } } if (action == MenuAction_End) { delete menu; } } public Action CMD_tygag(int client, int args) { if (client && IsClientInGame(client)) { char sName[32]; char sNumber[8]; int i = 1; Menu hMenu = new Menu(TyMenuGage); hMenu.SetTitle("1 week block chat"); while (i <= MaxClients) { if (IsClientInGame(i) && !IsFakeClient(i)) { if (client != i) { GetClientName(i, sName, sizeof(sName)-12); Format(sNumber, sizeof(sNumber)-1, "%d", i); hMenu.AddItem(sNumber, sName); } } i += 1; } hMenu.ExitButton = false; hMenu.Display(client, 20); } return Plugin_Handled; } int TyClientTimeMute(int &client, int iTime) { if (IsClientInGame(client)) { char sName[32]; char sTeamID[24]; KeyValues hGM = new KeyValues("gagmute"); hGM.ImportFromFile(sg_fileTxt); GetClientName(client, sName, sizeof(sName)-12); GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1); if (!hGM.JumpToKey(sTeamID)) { hGM.JumpToKey(sTeamID, true); } int iTimeMute = GetTime() + (iTime * 60); hGM.SetString("Name", sName); hGM.SetNum("mute", iTimeMute); hGM.Rewind(); hGM.ExportToFile(sg_fileTxt); delete hGM; ServerCommand("sm_mute #%d", GetClientUserId(client)); return 1; } return 0; } public int TyMenuMute(Menu menu, MenuAction action, int param1, int param2) { if (action == MenuAction_Select) { char info[16]; bool found = menu.GetItem(param2, info, sizeof(info)-1); if (found && param1) { int client = StringToInt(info); if (client > 0) { if (TyClientTimeMute(client, 60*24*7)) { PrintToChatAll("\x04%d \x05Min mute \x04%N.\n", 60*24*7, client); } } } } if (action == MenuAction_End) { delete menu; } } public Action CMD_tymute(int client, int args) { if (client && IsClientInGame(client)) { char sName[32]; char sNumber[8]; int i = 1; Menu hMenu = new Menu(TyMenuMute); hMenu.SetTitle("1 week block microphone"); while (i <= MaxClients) { if (IsClientInGame(i) && !IsFakeClient(i)) { if (client != i) { GetClientName(i, sName, sizeof(sName)-12); Format(sNumber, sizeof(sNumber)-1, "%d", i); hMenu.AddItem(sNumber, sName); } } i += 1; } hMenu.ExitButton = false; hMenu.Display(client, 20); } return Plugin_Handled; }
Testo modificato
Apri file
/** * ============================================================================= * 1 week gag & mute & ban * MAKS steamcommunity.com/profiles/76561198025355822/ * dr lex steamcommunity.com/profiles/76561198008545221/ * ============================================================================= * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License, version 3.0, as published by the * Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <www.gnu.org/licenses/>. * * As a special exception, AlliedModders LLC gives you permission to link the * code of this program (as well as its derivative works) to "Half-Life 2," the * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software * by the Valve Corporation. You must obey the GNU General Public License in * all respects for all other code used. Additionally, AlliedModders LLC grants * this exception to all derivative works. AlliedModders LLC defines further * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), * or <www.sourcemod.net/license.php>. * */ #pragma semicolon 1 #include <sourcemod> #include <sdktools> #pragma newdecls required char sg_fileTxt[160]; char sg_log[160]; public Plugin myinfo = { name = "gagmute", author = "MAKS & dr lex", description = "gag & mute & ban", version = "1.3", url = "forums.alliedmods.net/showthread.php?p=2347844" }; public void OnPluginStart() { RegAdminCmd("sm_addban", CMD_addban, ADMFLAG_BAN, ""); RegAdminCmd("sm_addgag", CMD_addgag, ADMFLAG_CHAT, ""); RegAdminCmd("sm_addmute", CMD_addmute, ADMFLAG_CHAT, ""); BuildPath(Path_SM, sg_fileTxt, sizeof(sg_fileTxt)-1, "data/GagMuteBan.txt"); BuildPath(Path_SM, sg_log, sizeof(sg_log)-1, "logs/GagMuteBan.log"); } void HxClientGagMuteBan(int &client) { KeyValues hGM = new KeyValues("gagmute"); if (hGM.ImportFromFile(sg_fileTxt)) { char sTeamID[24]; GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1); if (hGM.JumpToKey(sTeamID)) { int iMute = hGM.GetNum("mute", 0); int iGag = hGM.GetNum("gag", 0); int iBan = hGM.GetNum("ban", 0); int iTime = GetTime(); if (iMute > iTime) { ServerCommand("sm_mute #%d", GetClientUserId(client)); } if (iGag > iTime) { ServerCommand("sm_gag #%d", GetClientUserId(client)); } if (iBan > iTime) { char sTime[24]; FormatTime(sTime, sizeof(sTime)-1, "%Y-%m-%d %H:%M:%S", iBan); KickClient(client,"Banned (%s)", sTime); } } delete hGM; } } public void OnClientPostAdminCheck(int client) { if (!IsFakeClient(client)) { HxClientGagMuteBan(client); } } int HxClientTimeBan(int &client, int iTime) { if (IsClientInGame(client)) { char sName[32]; char sTeamID[24]; KeyValues hGM = new KeyValues("gagmute"); hGM.ImportFromFile(sg_fileTxt); GetClientName(client, sName, sizeof(sName)-12); GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1); if (!hGM.JumpToKey(sTeamID)) { hGM.JumpToKey(sTeamID, true); } int iTimeBan = GetTime() + (iTime * 60); hGM.SetString("Name", sName); hGM.SetNum("ban", iTimeBan); hGM.Rewind(); hGM.ExportToFile(sg_fileTxt); delete hGM; return 1; } return 0; } public int MenuHandler_Ban(Menu menu, MenuAction action, int param1, int param2) { if (action == MenuAction_Select) { char sInfo[8]; bool found = menu.GetItem(param2, sInfo, sizeof(sInfo)-1); if (found && param1) { int client = StringToInt(sInfo); if (client > 0) { if (HxClientTimeBan(client, 60*24*7)) { LogToFileEx(sg_log, "Ban: %N -> %N", param1, client); PrintToChatAll("\x05%d min ban:\x04 %N", 60*24*7, client); KickClient(client, "%d Min ban.", 60*24*7); } } } } if (action == MenuAction_End) { delete menu; } } public Action CMD_addban(int client, int args) { if (client) { if (IsClientInGame(client)) { char sName[32]; char sNumber[8]; int i = 1; Menu hMenu = new Menu(MenuHandler_Ban); hMenu.SetTitle("1 week ban player"); while (i <= MaxClients) { if (IsClientInGame(i) && !IsFakeClient(i)) { if (client != i) { GetClientName(i, sName, sizeof(sName)-12); Format(sNumber, sizeof(sNumber)-1, "%d", i); hMenu.AddItem(sNumber, sName); } } i += 1; } hMenu.ExitButton = false; hMenu.Display(client, 20); } } return Plugin_Handled; } int HxClientTimeGag(int &client, int iTime) { if (IsClientInGame(client)) { char sName[32]; char sTeamID[24]; KeyValues hGM = new KeyValues("gagmute"); hGM.ImportFromFile(sg_fileTxt); GetClientName(client, sName, sizeof(sName)-12); GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1); if (!hGM.JumpToKey(sTeamID)) { hGM.JumpToKey(sTeamID, true); } int iTimeGag = GetTime() + (iTime * 60); hGM.SetString("Name", sName); hGM.SetNum("gag", iTimeGag); hGM.Rewind(); hGM.ExportToFile(sg_fileTxt); delete hGM; ServerCommand("sm_gag #%d", GetClientUserId(client)); return 1; } return 0; } public int MenuHandler_Gage(Menu menu, MenuAction action, int param1, int param2) { if (action == MenuAction_Select) { char sInfo[8]; bool found = menu.GetItem(param2, sInfo, sizeof(sInfo)-1); if (found && param1) { int client = StringToInt(sInfo); if (client > 0) { if (HxClientTimeGag(client, 60*24*7)) { LogToFileEx(sg_log, "Gage: %N -> %N", param1, client); PrintToChatAll("\x05%d min gage:\x04 %N", 60*24*7, client); } } } } if (action == MenuAction_End) { delete menu; } } public Action CMD_addgag(int client, int args) { if (client) { if (IsClientInGame(client)) { char sName[32]; char sNumber[8]; int i = 1; Menu hMenu = new Menu(MenuHandler_Gage); hMenu.SetTitle("1 week block chat"); while (i <= MaxClients) { if (IsClientInGame(i) && !IsFakeClient(i)) { if (client != i) { GetClientName(i, sName, sizeof(sName)-12); Format(sNumber, sizeof(sNumber)-1, "%d", i); hMenu.AddItem(sNumber, sName); } } i += 1; } hMenu.ExitButton = false; hMenu.Display(client, 20); } } return Plugin_Handled; } int HxClientTimeMute(int &client, int iTime) { if (IsClientInGame(client)) { char sName[32]; char sTeamID[24]; KeyValues hGM = new KeyValues("gagmute"); hGM.ImportFromFile(sg_fileTxt); GetClientName(client, sName, sizeof(sName)-12); GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1); if (!hGM.JumpToKey(sTeamID)) { hGM.JumpToKey(sTeamID, true); } int iTimeMute = GetTime() + (iTime * 60); hGM.SetString("Name", sName); hGM.SetNum("mute", iTimeMute); hGM.Rewind(); hGM.ExportToFile(sg_fileTxt); delete hGM; ServerCommand("sm_mute #%d", GetClientUserId(client)); return 1; } return 0; } public int MenuHandler_Mute(Menu menu, MenuAction action, int param1, int param2) { if (action == MenuAction_Select) { char sInfo[8]; bool found = menu.GetItem(param2, sInfo, sizeof(sInfo)-1); if (found && param1) { int client = StringToInt(sInfo); if (client > 0) { if (HxClientTimeMute(client, 60*24*7)) { LogToFileEx(sg_log, "Mute: %N -> %N", param1, client); PrintToChatAll("\x05%d min mute:\x04 %N", 60*24*7, client); } } } } if (action == MenuAction_End) { delete menu; } } public Action CMD_addmute(int client, int args) { if (client) { if (IsClientInGame(client)) { char sName[32]; char sNumber[8]; int i = 1; Menu hMenu = new Menu(MenuHandler_Mute); hMenu.SetTitle("1 week block microphone"); while (i <= MaxClients) { if (IsClientInGame(i) && !IsFakeClient(i)) { if (client != i) { GetClientName(i, sName, sizeof(sName)-12); Format(sNumber, sizeof(sNumber)-1, "%d", i); hMenu.AddItem(sNumber, sName); } } i += 1; } hMenu.ExitButton = false; hMenu.Display(client, 20); } } return Plugin_Handled; }
Trovare la differenza