add sborka
This commit is contained in:
77
garrysmod/addons/tfa_base/lua/tfa/modules/tfa_envcheck.lua
Normal file
77
garrysmod/addons/tfa_base/lua/tfa/modules/tfa_envcheck.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
local EmptyFunc = function() end
|
||||
|
||||
local debugInfoTbl = debug.getinfo(EmptyFunc)
|
||||
|
||||
local cv_do_check = CreateConVar("sv_tfa_envcheck", "1", {FCVAR_ARCHIVE, FCVAR_NOTIFY, FCVAR_REPLICATED}, "Enable environment sanity checks and warnings?")
|
||||
|
||||
local function checkEnv(plyIn)
|
||||
if not cv_do_check:GetBool() then return end
|
||||
|
||||
local function printFunc(msg, ...)
|
||||
msg = "[TFA Base] " .. msg
|
||||
|
||||
if chat and chat.AddText then
|
||||
return chat.AddText(msg, ...)
|
||||
end
|
||||
|
||||
return print(msg, ...)
|
||||
end
|
||||
|
||||
if game.SinglePlayer() then
|
||||
if CLIENT then
|
||||
local found = false
|
||||
for _, wepDefTable in ipairs(weapons.GetList()) do
|
||||
if wepDefTable.Spawnable and weapons.IsBasedOn(wepDefTable.ClassName, "tfa_gun_base") then
|
||||
found = true
|
||||
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not found then
|
||||
printFunc("Thank you for installing our weapons base! It appears that you have installed only the base itself, which does not include any weapons by default. Please install some weapons/packs that utilize TFA Base for full experience!")
|
||||
end
|
||||
end
|
||||
|
||||
local shortsrc = debugInfoTbl.short_src
|
||||
|
||||
if shortsrc:StartWith("addons") then -- legacy/unpacked addon
|
||||
local addonRootFolder = shortsrc:GetPathFromFilename():Replace("lua/tfa/modules/", "")
|
||||
|
||||
if not file.Exists(addonRootFolder .. ".git", "GAME") then -- assume unpacked version by missing .git folder, which is ignored by gmad.exe
|
||||
printFunc("You are using unpacked version of TFA Base.\nWe only provide support for Steam Workshop version.")
|
||||
end
|
||||
end
|
||||
else
|
||||
local activeGamemode = engine.ActiveGamemode()
|
||||
local isRP = activeGamemode:find("rp")
|
||||
or activeGamemode:find("roleplay")
|
||||
or activeGamemode:find("serious")
|
||||
|
||||
if isRP and (SERVER or (IsValid(plyIn) and (plyIn:IsAdmin() or plyIn:IsSuperAdmin()))) then
|
||||
print("You are running the base on DarkRP or DarkRP-derived gamemode. We can't guarantee that it will work correctly with any possible addons the server might have installed (especially the paid ones), so we don't provide support for RP gamemodes/servers. If you've encountered a conflict error with another addon, it's most likely that addon's fault. DO NOT CONTACT US ABOUT THAT!")
|
||||
end
|
||||
end
|
||||
|
||||
timer.Simple(0, function()
|
||||
if not TFA.BASE_LOAD_COMPLETE or not TFA.SWEP_LOAD_COMPLETE then
|
||||
printFunc("Some of the base's modules have failed to load. You are probably going over Lua files limit. Try disabling some addons until you stop getting this error.")
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
if CLIENT then
|
||||
hook.Add("HUDPaint", "TFA_CheckEnv", function()
|
||||
local ply = LocalPlayer()
|
||||
|
||||
if not IsValid(ply) then return end
|
||||
|
||||
hook.Remove("HUDPaint", "TFA_CheckEnv")
|
||||
|
||||
checkEnv(ply)
|
||||
end)
|
||||
else
|
||||
--resource.AddWorkshop("2840031720")
|
||||
|
||||
hook.Add("InitPostEntity", "TFA_CheckEnv", checkEnv)
|
||||
end
|
||||
Reference in New Issue
Block a user