in den ADVDuplication Addons ordner in lua/autorun/server befindet sich die Datei AdvDupe.lua
dort steht irgendwo
INFO: Lass dich nicht von den Roten beirren , kp wieso das so ist , aber in Lua funktioniert es.
PHP-Code:
if (!SinglePlayer()) then
local function NoItems(Player, ClassName, EntTable)
if ( Player:IsAdmin( ) or Player:IsSuperAdmin() ) then return true end
if string.find(ClassName, "^weapon_.*")
or string.find(ClassName, "^item_.*")
or string.find(ClassName, "^npc_.*") then
MsgN("AdvDupe: disalowing ",tostring(Player)," pasting item ",ClassName," (NoItems Rule)")
AdvDupe.SendClientInfoMsg(Player, "Not allowed to paste Weapons or NPCs", true)
return false
else
return true
end
end
local function AddNoItems()
AdvDupe.AdminSettings.AddEntCheckHook("AdvDupe_NoItems", NoItems, AddNoItems)
end
local b_NoItems = CreateConVar( "AdvDupe_NoItems", 1, {FCVAR_ARCHIVE} )
if b_NoItems:GetBool() then
AddNoItems()
end
--this doesn't work yet, cvars.AddChangeCallback is bugged
local function OnChange( name, oldvalue, newvalue )
MsgN("changed: ",name)
if ( newvalue != "0" ) then
AddNoItems()
else
AdvDupe.AdminSettings.RemoveEntCheckHook("AdvDupe_NoItems")
end
end
cvars.AddChangeCallback( "AdvDupe_NoItems", OnChange )
local function DisallowedClassesCheck(Player, ClassName, EntTable)
if DisallowedClasses[ClassName] then
if (DisallowedClasses[ClassName] == 2) then return false
elseif ( DisallowedClasses[ClassName] == 1 and !Player:IsAdmin( ) and !Player:IsSuperAdmin() ) then
MsgN("AdvDupe: disalowing ",tostring(Player)," pasting item ",ClassName," (DisallowedClass Rule)")
AdvDupe.SendClientInfoMsg(Player, "Not allowed to paste "..ClassName, true)
return false
end
end
return true
end
local function AddDisallowedClassesCheck()
AdvDupe.AdminSettings.AddEntCheckHook("AdvDupe_DisallowedClasses", DisallowedClassesCheck, AddDisallowedClassesCheck)
end
AddDisallowedClassesCheck()
local function ModelCheck(Player, ClassName, EntTable)
if EntTable.Model and !util.IsValidModel(EntTable.Model) then
MsgN("AdvDupe: ",tostring(Player),": invalid model ",tostring(EntTable.Model)," on ",ClassName," (ModelCheck)")
AdvDupe.SendClientInfoMsg(Player, "Invalid (missing?) model "..EntTable.Model.." for "..ClassName, true)
return false
end
return true
end
local function AddModelCheck()
AdvDupe.AdminSettings.AddEntCheckHook("AdvDupe_ModelCheck", ModelCheck, AddModelCheck)
end
AddModelCheck()
end
Und wie im Code beschrieben ist ein Admin dazu befähigt alles zu Dupen , daher kann es nur schief gehen wenn ers selber als Admin auf sein Server testet : )
INFO: Ich hab adminallowed eingebaut in den unteren Code damit er es auch testen kann.
Ist der Wert false dann kann der Admin genau wie bei den Gästen nur bestimmte ents dupen.
Bei true darf der admin alles Dupen.
Änder den Normalen code Inhalt in folgendes:
PHP-Code:
local adminallowed = true
if (!SinglePlayer()) then
local function NoItems(Player, ClassName, EntTable)
if adminallowed == true then
if ( Player:IsAdmin( ) or Player:IsSuperAdmin() ) then return true end
end
if string.find(ClassName, "^weapon_.*")
or string.find(ClassName, "^item_.*")
or string.find(ClassName, "^npc_.*") then
MsgN("AdvDupe: disalowing ",tostring(Player)," pasting item ",ClassName," (NoItems Rule)")
AdvDupe.SendClientInfoMsg(Player, "Not allowed to paste Weapons or NPCs", true)
return false
else
return true
end
end
local function AddNoItems()
AdvDupe.AdminSettings.AddEntCheckHook("AdvDupe_NoItems", NoItems, AddNoItems)
end
local b_NoItems = CreateConVar( "AdvDupe_NoItems", 1, {FCVAR_ARCHIVE} )
AddNoItems()
--this doesn't work yet, cvars.AddChangeCallback is bugged
local function OnChange( name, oldvalue, newvalue )
MsgN("changed: ",name)
if ( newvalue != "0" ) then
AddNoItems()
else
AdvDupe.AdminSettings.RemoveEntCheckHook("AdvDupe_NoItems")
end
end
cvars.AddChangeCallback( "AdvDupe_NoItems", OnChange )
local function DisallowedClassesCheck(Player, ClassName, EntTable)
if DisallowedClasses[ClassName] then
if (DisallowedClasses[ClassName] == 2) then return false
elseif ( DisallowedClasses[ClassName] == 1 and !Player:IsAdmin( ) and !Player:IsSuperAdmin() ) then
MsgN("AdvDupe: disalowing ",tostring(Player)," pasting item ",ClassName," (DisallowedClass Rule)")
AdvDupe.SendClientInfoMsg(Player, "Not allowed to paste "..ClassName, true)
return false
end
end
return true
end
local function AddDisallowedClassesCheck()
AdvDupe.AdminSettings.AddEntCheckHook("AdvDupe_DisallowedClasses", DisallowedClassesCheck, AddDisallowedClassesCheck)
end
AddDisallowedClassesCheck()
local function ModelCheck(Player, ClassName, EntTable)
if EntTable.Model and !util.IsValidModel(EntTable.Model) then
MsgN("AdvDupe: ",tostring(Player),": invalid model ",tostring(EntTable.Model)," on ",ClassName," (ModelCheck)")
AdvDupe.SendClientInfoMsg(Player, "Invalid (missing?) model "..EntTable.Model.." for "..ClassName, true)
return false
end
return true
end
local function AddModelCheck()
AdvDupe.AdminSettings.AddEntCheckHook("AdvDupe_ModelCheck", ModelCheck, AddModelCheck)
end
AddModelCheck()
end
Für erweiterungen nur als Tipp
if string.find(ClassName, "^weapon_.*")
or string.find(ClassName, "^item_.*")
or string.find(ClassName, "^npc_.*") then
steht kann er natürlich die
or string.find(ClassName, "^item_.*") zeile dazwischen kopieren und jederzeit mit neuen namen verändern.
Um Exploits wie MapEnt Crashes oder Bugged Entitys zu verbieten.
Ich hab mit Falcos PP und ADVDupe keine Probleme , mir sind aber Server aufgefallen wo es dort ist.
Wo das eine sagt : Entity geblockt für ADV und trotzdem Spawnte