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)