#include < amxmodx > #include < amxmisc > #include < engine > #include < sqlx > #define MAX_PLAYERS 32 #define MAX_PATTERN_LEN 255 enum ( <<= 1 ) { GAG_CHAT = 1, GAG_TEAMSAY, GAG_VOICE }; enum _:GagData { GAG_STEAMID[ 35 ], GAG_TIME, GAG_START, GAG_FLAGS, GAG_SAVE, GAG_NOTIFY }; enum _:TimeUnit { TIMEUNIT_SECONDS = 0, TIMEUNIT_MINUTES, TIMEUNIT_HOURS, TIMEUNIT_DAYS, TIMEUNIT_WEEKS }; new const g_szTimeUnitName[ TimeUnit ][ 2 ][ ] = { { "second", "seconds" }, { "minute", "minutes" }, { "hour", "hours" }, { "day", "days" }, { "week", "weeks" } }; new const g_iTimeUnitMult[ TimeUnit ] = { 1, 60, 3600, 86400, 604800 }; new const DATETIME_FORMAT[ ] = "%Y-%m-%d %H:%M:%S"; const DATE_SIZE = 20; new Array:g_aGagTimes; new Array:g_aGagData; new Trie:g_tArrayPos; new Trie:g_tTimeUnitWords; new g_iGagged; new g_iThinker; new g_iTotalGagTimes; new g_iMsgSayText; new g_szSteamID[ MAX_PLAYERS + 1 ][ 35 ]; new g_iMenuOption[ MAX_PLAYERS + 1 ]; new g_iMenuPosition[ MAX_PLAYERS + 1 ]; new g_iMenuPlayers[ MAX_PLAYERS + 1 ][ 32 ]; new g_iMenuFlags[ MAX_PLAYERS + 1 ]; new g_szGagFile[ 64 ]; new bool:g_bColorSupported; new g_pCvarDefaultFlags; new g_pCvarDefaultTime; new g_pCvarTimeUnit; new g_pCvarMaxTime; new g_pCvarSQL; new g_pCvarSQLHost; new g_pCvarSQLUser; new g_pCvarSQLPass; new g_pCvarSQLDb; new bool:g_bUsingSQL = false; new Handle:g_hSqlTuple; new szQuery[ 1024 ]; public plugin_init( ) { register_plugin( "AMXX Gag", "1.5.0", "xPaw & Exolent" ); register_clcmd( "say", "CmdSay" ); register_clcmd( "say_team", "CmdTeamSay" ); register_concmd( "amx_gag", "CmdGagPlayer", ADMIN_KICK, "