GM.Version = "2.4.3" GM.Name = "DarkRP" GM.Author = "By Rickster, Updated: Pcwizdan, Sibre, philxyz, [GNC] Matt, Chrome Bolt, FPtje Falco, Eusion, Drakehawke" CUR = "$" -- Checking if counterstrike is installed correctly if table.Count(file.Find("*", "cstrike")) == 0 then timer.Create("TheresNoCSS", 10, 0, function() for k,v in pairs(player.GetAll()) do v:ChatPrint("Counter Strike: Source is incorrectly installed!") v:ChatPrint("You need it for DarkRP to work!") print("Counter Strike: Source is incorrectly installed!\nYou need it for DarkRP to work!") end end) end -- RP Name Overrides local meta = FindMetaTable("Player") meta.SteamName = meta.SteamName or meta.Name meta.Name = function(self) if not IsValid(self) then return "" end if GAMEMODE.Config.allowrpnames then self.DarkRPVars = self.DarkRPVars or {} return self.DarkRPVars.rpname and tostring(self.DarkRPVars.rpname) or self:SteamName() else return self:SteamName() end end meta.Nick = meta.Name meta.GetName = meta.Name -- End DeriveGamemode("sandbox") util.AddNetworkString("DarkRP_InitializeVars") util.AddNetworkString("DarkRP_DoorData") util.AddNetworkString("FAdmin_retrievebans") util.AddNetworkString("DarkRP_keypadData") AddCSLuaFile("addentities.lua") AddCSLuaFile("shared.lua") AddCSLuaFile("ammotypes.lua") AddCSLuaFile("cl_init.lua") AddCSLuaFile("config.lua") AddCSLuaFile("client/DRPDermaSkin.lua") AddCSLuaFile("client/help.lua") AddCSLuaFile("client/helpvgui.lua") AddCSLuaFile("client/hud.lua") AddCSLuaFile("client/showteamtabs.lua") AddCSLuaFile("client/vgui.lua") AddCSLuaFile("shared/animations.lua") AddCSLuaFile("shared/commands.lua") AddCSLuaFile("shared/entity.lua") AddCSLuaFile("shared/language.lua") AddCSLuaFile("shared/MakeThings.lua") AddCSLuaFile("shared/Workarounds.lua") -- Earthquake Mod addon resource.AddFile("sound/earthquake.mp3") util.PrecacheSound("earthquake.mp3") resource.AddFile("materials/darkrp/DarkRPSkin.png") DB = DB or {} GM.Config = GM.Config or {} GM.NoLicense = GM.NoLicense or {} -- sv_alltalk must be 0 -- Note, everyone will STILL hear everyone UNLESS rp_voiceradius is 1!!! -- This will fix the rp_voiceradius not working game.ConsoleCommand("sv_alltalk 0\n") include("_MySQL.lua") include("config.lua") include("licenseweapons.lua") include("server/chat.lua") include("server/admincc.lua") include("shared/animations.lua") include("shared/commands.lua") include("shared/entity.lua") include("shared/language.lua") include("shared/MakeThings.lua") include("shared/Workarounds.lua") include("shared.lua") include("addentities.lua") include("ammotypes.lua") include("server/data.lua") include("server/gamemode_functions.lua") include("server/main.lua") include("server/player.lua") include("server/questions.lua") include("server/util.lua") include("server/votes.lua") -- Falco's prop protection local BlockedModelsExist = sql.QueryValue("SELECT COUNT(*) FROM FPP_BLOCKEDMODELS;") ~= false if not BlockedModelsExist then sql.Query("CREATE TABLE IF NOT EXISTS FPP_BLOCKEDMODELS('model' TEXT NOT NULL PRIMARY KEY);") include("fpp/FPP_DefaultBlockedModels.lua") -- Load the default blocked models end AddCSLuaFile("fpp/sh_CPPI.lua") AddCSLuaFile("fpp/sh_settings.lua") AddCSLuaFile("fpp/client/FPP_Menu.lua") AddCSLuaFile("fpp/client/FPP_HUD.lua") AddCSLuaFile("fpp/client/FPP_Buddies.lua") AddCSLuaFile("shared/fadmin_darkrp.lua") include("fpp/sh_settings.lua") include("fpp/sh_CPPI.lua") include("fpp/server/FPP_Settings.lua") include("fpp/server/FPP_Core.lua") include("fpp/server/FPP_Antispam.lua") include("shared/fadmin_darkrp.lua") /*--------------------------------------------------------------------------- Loading modules ---------------------------------------------------------------------------*/ local fol = GM.FolderName.."/gamemode/modules/" local files, folders = file.Find(fol .. "*", "LUA") for k,v in pairs(files) do include(fol .. v) end for _, folder in SortedPairs(folders, true) do if folder ~= "." and folder ~= ".." then for _, File in SortedPairs(file.Find(fol .. folder .."/sh_*.lua", "LUA"), true) do AddCSLuaFile(fol..folder .. "/" ..File) include(fol.. folder .. "/" ..File) end for _, File in SortedPairs(file.Find(fol .. folder .."/sv_*.lua", "LUA"), true) do include(fol.. folder .. "/" ..File) end for _, File in SortedPairs(file.Find(fol .. folder .."/cl_*.lua", "LUA"), true) do AddCSLuaFile(fol.. folder .. "/" ..File) end end end local function GetAvailableVehicles(ply) if not ply:IsAdmin() then return end ServerLog("Available vehicles for custom vehicles:" .. "\n") print("Available vehicles for custom vehicles:") for k,v in pairs(list.Get("Vehicles")) do ServerLog("\""..k.."\"" .. "\n") print("\""..k.."\"") end end concommand.Add("rp_getvehicles_sv", GetAvailableVehicles) /*--------------------------------------------------------------------------- Registering numpad data ---------------------------------------------------------------------------*/ local oldNumpadUp = numpad.OnUp local oldNumpadDown = numpad.OnDown function numpad.OnUp(ply, key, name, ent, ...) numpad.OnUpItems = numpad.OnUpItems or {} table.insert(numpad.OnUpItems, {ply = ply, key = key, name = name, ent = ent, arg = {...}}) return oldNumpadUp(ply, key, name, ent, ...) end function numpad.OnDown(ply, key, name, ent, ...) numpad.OnDownItems = numpad.OnDownItems or {} table.insert(numpad.OnDownItems, {ply = ply, key = key, name = name, ent = ent, arg = {...}}) return oldNumpadDown(ply, key, name, ent, ...) end hook.Add("PlayerDeath","DemoteMayor",function(v,k) if (v:Team() == TEAM_MAYOR) then v:ChangeTeam(TEAM_CITIZEN,true); for k, v in ipairs(player.GetAll()) do v:PrintMessage(HUD_PRINTCENTER,"The mayor has been killed!"); end; end; end); hook.Add("PlayerDeath","DemoteGangLeader",function(v,k) if (v:Team() == TEAM_GANGLEADER) then v:ChangeTeam(TEAM_GANG,true); for k, v in ipairs(player.GetAll()) do v:PrintMessage(HUD_PRINTCENTER,"The gang leader has been killed!"); end; end; end); hook.Add("PlayerDeath","DemoteTriadLeader",function(v,k) if (v:Team() == TEAM_TRIADLEADER) then v:ChangeTeam(TEAM_TRIAD,true); for k, v in ipairs(player.GetAll()) do v:PrintMessage(HUD_PRINTCENTER,"The triad leader has been killed!"); end; end; end); hook.Add("PlayerDeath","DemoteMobBoss",function(v,k) if (v:Team() == TEAM_MOB) then v:ChangeTeam(TEAM_MAFIA,true); for k, v in ipairs(player.GetAll()) do v:PrintMessage(HUD_PRINTCENTER,"The mob boss has been killed!"); end; end; end); resource.AddSingleFile("materials/Hud/Hbar.vmt") resource.AddSingleFile("materials/Hud/Hbar.vtf") resource.AddSingleFile("materials/Hud/HbarShadow.vmt") resource.AddSingleFile("materials/Hud/HbarShadow.vtf") resource.AddSingleFile("materials/Hud/SServers.vtf") resource.AddSingleFile("materials/Hud/SServers.vmt")