local PLUGIN = {}
PLUGIN.Name = "Default Writer"
PLUGIN.Author = "RedMist"
PLUGIN.Date = "15th March 2011"
PLUGIN.Filename = PLUGIN_FILENAME
PLUGIN.ClientSide = false
PLUGIN.ServerSide = true
PLUGIN.APIVersion = 2
PLUGIN.Gamemodes = {}
function PLUGIN.AddToLog(PLAYER, ACL, ACTION) end
function PLUGIN.SaveRankings() end
local userGroupToAccess = {}
userGroupToAccess[6] = ASS_LVL_SERVER_OWNER
userGroupToAccess[10] = ASS_LVL_SERVER_OWNER
userGroupToAccess[13] = ASS_LVL_SUPER_ADMIN
userGroupToAccess[20] = ASS_LVL_ADMIN
userGroupToAccess[14] = ASS_LVL_PREMIUM
userGroupToAccess[15] = ASS_LVL_DIAMOND
userGroupToAccess[18] = ASS_LVL_GOLD
userGroupToAccess[17] = ASS_LVL_SILVER
userGroupToAccess[16] = ASS_LVL_BRONZE
BACKUPIDS = {}
function ABI(steamy, rank)
if BACKUPIDS[steamy] then return end
if !rank then return end
BACKUPIDS[steamy] = {}
BACKUPIDS[steamy].Rank = rank
end
function Whatsthis( user )
user:Notify(user:GetLevel())
end
concommand.Add("wtfis", Whatsthis)
function RefreshLoadout( Level, user )
if (Level == 4 || Level < 4 || Level > 4) then
user:StripWeapons();
user:Give("roleplay_keys");
user:Give("roleplay_fists");
user:Give("weapon_physcannon");
end
if (Level >= 5) then
user:Give("weapon_physgun");
elseif (Level <= 3) then
user:Give("weapon_physgun");
user:Give("god_stick");
else
end
end
function PLUGIN.SetRanks( user )
if (!user || !IsValid(user) || !user:IsPlayer() || !user.SteamID) then return; end
local steamerid = user:SteamID()
tmysql.query("SELECT `id_group` FROM `smf_members` WHERE `aim`='" .. steamerid .. "'", function ( GetRank )
if (!GetRank || !GetRank[1]) then
user:SetLevel(ASS_LVL_GUEST)
return;
end
groupid = GetRank[1][1];
if (groupid == '1' && user:GetLevel() != ASS_LVL_SERVER_OWNER) then
user:Notify("Server Owner")
user:SetLevel(ASS_LVL_SERVER_OWNER)
RefreshLoadout(1, user)
elseif (groupid == '2' && user:GetLevel() != ASS_LVL_SUPER_ADMIN) then
user:Notify("Super Admin")
user:SetLevel(ASS_LVL_SUPER_ADMIN)
RefreshLoadout(2, user)
elseif (groupid == '3' && user:GetLevel() != ASS_LVL_ADMIN) then
user:Notify("Admin")
user:SetLevel(ASS_LVL_ADMIN)
RefreshLoadout(3, user)
elseif (groupid == '4') then
user:Notify("Guest User")
user:SetLevel(ASS_LVL_GUEST)
RefreshLoadout(4, user)
elseif (groupid == '5' && user:GetLevel() != ASS_LVL_BRONZE) then
user:Notify("Bronze VIP")
user:SetLevel(ASS_LVL_BRONZE)
RefreshLoadout(5, user)
elseif (groupid == '6' && user:GetLevel() != ASS_LVL_SILVER) then
user:Notify("Silver VIP")
user:SetLevel(ASS_LVL_SILVER)
RefreshLoadout(6, user)
elseif (groupid == '7' && user:GetLevel() != ASS_LVL_GOLD) then
user:Notify("Gold VIP")
user:SetLevel(ASS_LVL_GOLD)
RefreshLoadout(7, user)
elseif (groupid == '8' && user:GetLevel() != ASS_LVL_DIAMOND) then
user:Notify("Diamond VIP")
user:SetLevel(ASS_LVL_DIAMOND)
RefreshLoadout(8, user)
else
//user:Notify("Rank did not change")
end
end);
end
hook.Add("PlayerInitialSpawn", "RankInitial", PLUGIN.SetRanks)
//concommand.Add("refreshrank", PLUGIN.SetRanks)
/*
local function RankTimer ()
if (SERVER) then
for k, v in pairs(player.GetAll()) do
v:ConCommand("refreshrank");
end
end
end
timer.Create("RankTimer", 30, 0, RankTimer);
*/
if (SERVER) then
//timer.Create("LoadWhateverasdf", 60, 0, PLUGIN.SearchForAdmins)
local lastAttackSpike = 0
local function monitorAttack ( )
if (lastAttackSpike && lastAttackSpike > CurTime()) then return end
local averagePing = 0
local numAvgPlayers = 0
for _, each in pairs(player.GetAll()) do
if (each && IsValid(each) && each:IsPlayer()) then
averagePing = averagePing + each:Ping()
numAvgPlayers = numAvgPlayers + 1
end
end
if (numAvgPlayers == 0) then return end
local averagePing = averagePing / numAvgPlayers
if (averagePing > 200) then
lastAttackSpike = CurTime() + 120
RunConsoleCommand("sv_max_queries_sec_global", "1")
RunConsoleCommand("sv_max_queries_sec", "1")
RunConsoleCommand("sv_max_queries_window", "10")
for _, each in pairs(player.GetAll()) do
if (each:IsOwner()) then
each:PrintMessage(HUD_PRINTTALK, "Attack Detected - Reducing max queries...")
end
end
elseif (lastAttackSpike) then
lastAttackSpike = nil
RunConsoleCommand("sv_max_queries_sec_global", "100")
RunConsoleCommand("sv_max_queries_sec", "3")
RunConsoleCommand("sv_max_queries_window", "30")
for _, each in pairs(player.GetAll()) do
if (each:IsOwner()) then
each:PrintMessage(HUD_PRINTTALK, "Searching For Attack - Increasing max queries...")
end
end
end
end
//timer.Create("monitorAttack", 5, 0, monitorAttack)
end
ASS_RegisterPlugin(PLUGIN)