Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : AdvDupe_NoItems



Dr.Jack
10.11.2009, 06:37
Hi,


Also hab ADV,Wiremod per svn, nur AdvDupe_NoItems geht nicht. Standart steht es ja auf 1 aber warum zum teufel geht das nicht`?:bang:

Fighter_Zero
10.11.2009, 18:08
Was ist gemeint mit AdvDupe_NoItems? Nicht jeder hier weiß das was du weißt....

Dr.Jack
11.11.2009, 20:48
mit AdvDupe_NoItems meine ich wenns 1 (default steht) kann man mit denn adv keine waffe,npcs spawmen. Wenn ulx mit läuft isses trotzdem 1 und es geht nicht.

MîngeBag.
12.11.2009, 09:02
Lad dir doch einfach eine Aktuelle Wire Version runter wo der beinhaltet ist.
Du könntest natürlich auch im Internen Script die NoItems abfrage ausbauen und selber definieren wie ich es getan hab.

Probier mal die neuste Wire Version mit ADV Dupe , ohne jegliche Addons , vielleicht wird es ja geblockt von irgendwas.
Meist gibt es zwischen ADV und Falcos Prop Protection immer ein Fehler.

kartoffel
12.11.2009, 09:53
Lad dir doch einfach eine Aktuelle Wire Version runter wo der beinhaltet ist.
Du könntest natürlich auch im Internen Script die NoItems abfrage ausbauen und selber definieren wie ich es getan hab.

Probier mal die neuste Wire Version mit ADV Dupe , ohne jegliche Addons , vielleicht wird es ja geblockt von irgendwas.
Meist gibt es zwischen ADV und Falcos Prop Protection immer ein Fehler.

Anstatt mit deinem Code anzugeben könntest du ihn auch posten, damit er oder andere was lernen,
der Code interessiert mich nämlich auch.

Bezüglich Adv. Dupe und FalcosPP:
High? Wann hast du dein SVN das letzte Mal aktualisiert? 2005?

MîngeBag.
12.11.2009, 10:23
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.




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:




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 :P

Dr.Jack
12.11.2009, 16:05
... ich habs auf ulx geschoben weil ich dort admin war und es spawmen konnte weils auch als admin erlaubt ist :gmod:

aber wenn man sowas nicht weis geht das nachhinten los.