• Simple Prop Protection
    779 replies, posted
[u][b][highlight]Simple Prop Protection by Spacetech[/highlight][/b][/u] Simple Prop Protection is the all-in-one prop protection everyone needs. With it's friend system to extensive admin panel everything you need is just a click away. SVN is required. If you don't have svn [url=http://www.facepunch.com/showthread.php?p=13583073]read this tutorial[/url] [b]Download & Installation[/b] [list=1] [*]Create a folder in your addons directoy called "Simple Prop Protection" [*]Right click the folder and hit SVN Checkout. For the url enter: [url]http://simplepropprotection.googlecode.com/svn/trunk/[/url] [*][url=http://www.garrysmod.com/wiki/?title=Admin#Dedicated_Servers]Make yourself admin[/url] [*]Restart gmod [/list] [b]Information[/b] [list] [*]Full protection from anyone trying to remove your props (No more remover exploits!) [*]This actually protects everything you you spawn from adv dupe! [*]A working friend system configurable from spawnmenu->Utilities->Simple Prop Protection [*]Friends are saved on disconnect and server restart [*]Only admins can see the admin only panel [*]Prop Protection - No one can touch your props (besides admins or friends). [*]Use Protection - No one can use your props (no more people turning your life support off :D). [*]Entity Damage Protection - Your entitys cannot be damaged by anyone besides you. [*]Physgun Reload Protection - No more "WHO UNFROZE MY CONTRAPTION". [*]Disconnect Prop Deletion - When you disconnect your props will be deleted. [*]Everything I said above can be turned on/off in an admin panel, as well as cleanup disconnected player props and per player cleanup buttons. [*]Entities spawned by the game just as your server turns on is auto-owned to the world (anti-stargate owning). [/list] [b]Credits[/b] [list=1] [*]»?g« Failcake: Helped beta test [*]Tomato3017: Helping me beta test this in his server and for random function help. [*]Kevin!: Let me use his server for testing. [/list] If their are [b]any bugs[/b] please tell me so I can fix them.
Thanks, This will come in handy. Lua King :D
Tank you now i can play without haveing trouble of minges.
This is [b]excellent![/b]
Does it show who's prop it is?
Great, simple and straightforward and I love it.
[QUOTE=FPtje]Does it show who's prop it is?[/QUOTE] Yea. I updated the first post with a picture.
Nice! I hope it works. I need a new PP for my server. The update crashed the other one.
[QUOTE=Spacetech][u][b]Simple Prop Protection by Spacetech[/b][/u] Simple Prop Protection is the all-in-one prop protection everyone needs. With it's buddy system to extensive admin panel everything you need is a click away. [b]Download[/b] [url=http://www.garrysmod.org/downloads/?a=view&id=19413][img]http://www.garrysmod.org/img/?t=dll&id=19413[/img][/url] [b]Features[/b] [list=1] [*]A working buddy system configurable from spawnmenu->Utilities->Simple Prop Protection [*]Only admins can see the admin only panel [*]Prop Protection - No one can touch your props (besides admins or buddies). [*]Use Protection - No one can use your props (no more people turning your life support off :D). [*]Entity Damage Protection - Your entitys cannot be damaged by anyone besides you. [*]Physgun Reload Protection - No more "WHO UNFROZE MY CONTRAPTION". [*]Disconnect Prop Deletion - When you disconnect your props will be deleted. [*]Everything I said above can be turned on/off in an admin panel, as well as cleanup disconnected player props and per player cleanup buttons. [*]Entities spawned by the game just as your server turns on is auto-owned to the world (anti-stargate owning). [/list] [b]Pictures[/b] [img]http://img411.imageshack.us/img411/1350/29301471ct9.png[/img] [img]http://img520.imageshack.us/img520/3627/46275129wj4.png[/img] [url=http://img517.imageshack.us/img517/2702/21293446br3.png][img]http://img517.imageshack.us/img517/2702/21293446br3.png[/img][/url] [b]Installation[/b] [list=1] [*]Extract the zip file to your garrysmod/addons directory. [*]Restart gmod [/list] [b]Credits[/b] [list=1] [*]Tomato3017: Helping me beta test this in his server and for random function help. [*]Conna: He figured out how to use a SpawnMenuOpen hook in this update (I couldn't) [/list] Come back to this thread once and a while to check for updates.[/QUOTE] That AR2 in the the picture looks unusually low-res. Also thanks for this mod, This is propably the only prop protection out there that has the buddies system (aside from EPS which has a few bugs).
[QUOTE=MarvZombie]Nice! I hope it works. I need a new PP for my server. The update crashed the other one.[/QUOTE] Don't worry it works :) [QUOTE=xXdeathXx]That AR2 in the the picture looks unusually low-res. Also thanks for this mod, This is propably the only prop protection out there that has the buddies system (aside from EPS which has a few bugs).[/QUOTE] Click on the picture for high-res.
Just what I was looking for!!! Thank you very much, by the way Lua Kinged! :D
[QUOTE=Spacetech]Click on the picture for high-res.[/QUOTE] He's talking about the crappy texture on it. This actually looks a lot better than the other prop protection mods available.
Just what i needed!
:( I found a bug. Any names with a space can't be buddied (dam gmod doesn't like spaces). It will be fixed in next version. Edit: Version 1.0.1 is out.
[QUOTE=Spacetech]:( I found a bug. Any names with a space can't be buddied (dam gmod doesn't like spaces). It will be fixed in next version. Edit: Version 1.0.1 is out.[/QUOTE] I just installed it on my server. Apparently clients can grab other players.
[QUOTE=phpzombie]I just installed it on my server. Apparently clients can grab other players.[/QUOTE] Are their any console errors? What admin mod are you running? It should be impossible by this mod because it has a nice check function: [lua] function SPropProtection.PhysGravGunPickup(ply, ent) if(!ent:IsValid() || ent:IsPlayer()) then return false end [/lua] Maybe you have a broken playergrab script.
[QUOTE=Spacetech]Are their any console errors? What admin mod are you running? It should be impossible by this mod because it has a nice check function: [lua] function SPropProtection.PhysGravGunPickup(ply, ent) if(!ent:IsValid() || ent:IsPlayer()) then return false end [/lua] Maybe you have a broken playergrab script.[/QUOTE] Hmm. 69.61.60.170:27015 If you aren't to busy, come see the problem.
phpzombies problem was caused by bad coding in gcombat. He override a gmod hook. [url]http://forums.facepunchstudios.com/showpost.php?p=6917121&postcount=2151[/url]
[QUOTE=phpzombie]Hmm. 69.61.60.170:27015 If you aren't to busy, come see the problem.[/QUOTE] We never had a problem like this during our tests.
I can't believe you actually used my EPS code as a base, to do your Prop Protection with. It's so damn similiar (Client side file too) I just can't believe it. Not even an ounce of credit, except this: Conna: He figured out how to use a SpawnMenuOpen hook in this update (I couldn't) Let me just examine: [b][u]Mine:[/b][/u] [lua] // Spawn menu open function eps.SpawnMenuOpen() if (eps.AdminCPanel) then eps.BuildAdminCPanel(eps.AdminCPanel) end if (eps.BuddiesCPanel) then eps.BuildBuddiesCPanel(eps.BuddiesCPanel) end end // Hook add hook.Add("SpawnMenuOpen", "eps.SpawnMenuOpen", eps.SpawnMenuOpen) [/lua] [b][u]Yours:[/b][/u] [lua] function SPropProtection.SpawnMenuOpen() if(SPropProtection.AdminCPanel) then SPropProtection.AdminPanel(SPropProtection.AdminCPanel) end if(SPropProtection.ClientCPanel) then SPropProtection.ClientPanel(SPropProtection.ClientCPanel) end end hook.Add("SpawnMenuOpen", "SPropProtection.SpawnMenuOpen", SPropProtection.SpawnMenuOpen) [/lua] [b][u]Mine:[/b][/u] [lua] function eps.BuildBuddiesCPanel(CPanel) CPanel:ClearControls() // Check buddies cpanel if (!eps.BuddiesCPanel) then eps.BuddiesCPanel = CPanel end [/lua] [b][u]Yours:[/b][/u] [lua] function SPropProtection.ClientPanel(Panel) Panel:ClearControls() if(!SPropProtection.ClientCPanel) then SPropProtection.ClientCPanel = Panel end [/lua] [b][/u]Also no credit for this, which you blatently took from me:[/b][/u] [lua] for k, v in pairs(g_SBoxObjects) do for b, j in pairs(v) do for _, e in pairs(j) do if(UniqueID != false) then if(k == UniqueID) then return true end else if(k == ply:UniqueID()) then return true end end end end end for k, v in pairs(GAMEMODE.CameraList) do for b, j in pairs(v) do if(j == ent) then if(UniqueID != false) then if(k == UniqueID) then return true end else if(k == ply:UniqueID()) then return true end end end end end [/lua] I'm sorry, but you may as well just have called this EPS. Oh and doing buddies by Nick isn't a good idea - what if they change it? Other than that, good job!
[QUOTE=Cunzer]I can't believe you actually used my EPS code as a base, to do your Prop Protection with. It's so damn similiar (Client side file too) I just can't believe it. Not even an ounce of credit, except this: Conna: He figured out how to use a SpawnMenuOpen hook in this update (I couldn't) Let me just examine: [b][u]Mine:[/b][/u] [lua] // Spawn menu open function eps.SpawnMenuOpen() if (eps.AdminCPanel) then eps.BuildAdminCPanel(eps.AdminCPanel) end if (eps.BuddiesCPanel) then eps.BuildBuddiesCPanel(eps.BuddiesCPanel) end end // Hook add hook.Add("SpawnMenuOpen", "eps.SpawnMenuOpen", eps.SpawnMenuOpen) [/lua] [b][u]Yours:[/b][/u] [lua] function SPropProtection.SpawnMenuOpen() if(SPropProtection.AdminCPanel) then SPropProtection.AdminPanel(SPropProtection.AdminCPanel) end if(SPropProtection.ClientCPanel) then SPropProtection.ClientPanel(SPropProtection.ClientCPanel) end end hook.Add("SpawnMenuOpen", "SPropProtection.SpawnMenuOpen", SPropProtection.SpawnMenuOpen) [/lua] [b][u]Mine:[/b][/u] [lua] function eps.BuildBuddiesCPanel(CPanel) CPanel:ClearControls() // Check buddies cpanel if (!eps.BuddiesCPanel) then eps.BuddiesCPanel = CPanel end [/lua] [b][u]Yours:[/b][/u] [lua] function SPropProtection.ClientPanel(Panel) Panel:ClearControls() if(!SPropProtection.ClientCPanel) then SPropProtection.ClientCPanel = Panel end [/lua] Oh and doing buddies by Nick isn't a good idea - what if they change it?[/QUOTE] Are you really Conna :O And buddies is by steamid. I started working this before you released your second version. My buddy system was done, it's just the fact that I couldn't work spawnmenuopen hook. I REALLY didn't look at your code. Infact I NEVER looked at the eps code besides the spawnmenuopen hook. This is based on prop secure and prop protection. Since you gave up on prop secure I didn't give you anymore credit then you deserve.
What? PropSecure is still fucking mine. I deserve credit. Look at the examples of Mine/Yours, they can't just be coincidences. I want credit for everything you took from PropSecure, because PropSecure was licenced. [code] Group: License This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons 543 Howard Street 5th Floor San Francisco, California 94105 USA [/code]
[QUOTE=Cunzer]What? PropSecure is still fucking mine. I deserve credit. Look at the examples of Mine/Yours, they can't just be coincidences. I want credit for everything you took from PropSecure, because PropSecure was licenced. [code] Group: License This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons 543 Howard Street 5th Floor San Francisco, California 94105 USA [/code][/QUOTE] So wheres the license. [url]http://forums.facepunchstudios.com/showthread.php?t=269837[/url] I downloaded version 3.0 and I see no license file...
My god, seriously. If you release it, people have the right to look at it. If you don't want people using it as a resource [B]don't release it.[/B]
I sense an epic flame war.
By the way, returning true on this hook probably isn't a good idea: [lua] function SPropProtection.PlayerUse(ply, ent) if(tonumber(SPropProtection["Config"]["Use"]) == 0) then return true end if(!ent:IsValid() || ent:IsPlayer()) then return false end if(SPropProtection.PlayerCanTouch(ply, ent) || ent:GetNetworkedString("Owner") == "world") then return true else return false end end hook.Add("PlayerUse", "SPropProtection.PlayerUse", SPropProtection.PlayerUse) [/lua] [lua] function SPropProtection.PlayerUse(ply, ent) if(tonumber(SPropProtection["Config"]["Use"]) == 0) then return end if(!ent:IsValid() || ent:IsPlayer()) then return end if(!SPropProtection.PlayerCanTouch(ply, ent) and ent:GetNetworkedString("Owner") != "world") then return false end end hook.Add("PlayerUse", "SPropProtection.PlayerUse", SPropProtection.PlayerUse)[/lua] Returning nil doesn't stop other hooks running. [QUOTE=Statement]My god, seriously. If you release it, people have the right to look at it. If you don't want people using it as a resource [B]don't release it.[/B][/QUOTE] No, it's not the done thing. Scripers don't take other scripter's work without credit. [QUOTE=Spacetech]So wheres the license. [url]http://forums.facepunchstudios.com/showthread.php?t=269837[/url] I downloaded version 3.0 and I see no license file...[/QUOTE] You're being as bad as HuntsKikBut right now, the point is if you use someones work - you give credit. And considering you used a large chunk of PropSecure - I advise you put some credit in this duplicate.
[QUOTE=Cunzer]By the way, returning true on this hook probably isn't a good idea: [lua] function SPropProtection.PlayerUse(ply, ent) if(tonumber(SPropProtection["Config"]["Use"]) == 0) then return true end if(!ent:IsValid() || ent:IsPlayer()) then return false end if(SPropProtection.PlayerCanTouch(ply, ent) || ent:GetNetworkedString("Owner") == "world") then return true else return false end end hook.Add("PlayerUse", "SPropProtection.PlayerUse", SPropProtection.PlayerUse) [/lua] [lua] function SPropProtection.PlayerUse(ply, ent) if(tonumber(SPropProtection["Config"]["Use"]) == 0) then return end if(!ent:IsValid() || ent:IsPlayer()) then return end if(!SPropProtection.PlayerCanTouch(ply, ent) and ent:GetNetworkedString("Owner") != "world") then return false end end hook.Add("PlayerUse", "SPropProtection.PlayerUse", SPropProtection.PlayerUse)[/lua] Returning nil doesn't stop other hooks running. No, it's not the done thing. Scripers don't take other scripter's work without credit. You're being as bad as HuntsKikBut right now, the point is if you use someones work - you give credit. And considering you used a large chunk of PropSecure - I advise you put some credit in this duplicate.[/QUOTE] What 'chunks' did I take... Also you were the one who said "I want credit for everything you took from PropSecure, because PropSecure was licenced.". You DID not officially license it. I don't want to start a war so lets just stop now. The only chunk you may be thinking about is: [lua] --[[ Thx@Propsecure for these ]] if(cleanup) then local Clean = cleanup.Add function cleanup.Add(Player, Type, Entity) if(Entity) then local Check = Player:IsPlayer() local Valid = Entity:IsValid() if(Check and Valid) then SPropProtection.PlayerMakePropOwner(Player, Entity) end end Clean(Player, Type, Entity) end end local Meta = FindMetaTable("Player") if(Meta.AddCount) then local Backup = Meta.AddCount function Player:AddCount(Type, Entity) SPropProtection.PlayerMakePropOwner(self, Entity) Backup(self, Type, Entity) end end [/lua] But at the top of that I had a nice little comment for you...
Careful, he might send you a trojan and browse your files and create little icons on your desktop.
Actually PropSecure is licenced. You also [b]stole[/b] this part: [lua] for k, v in pairs(g_SBoxObjects) do for b, j in pairs(v) do for _, e in pairs(j) do if(UniqueID != false) then if(k == UniqueID) then return true end else if(k == ply:UniqueID()) then return true end end end end end for k, v in pairs(GAMEMODE.CameraList) do for b, j in pairs(v) do if(j == ent) then if(UniqueID != false) then if(k == UniqueID) then return true end else if(k == ply:UniqueID()) then return true end end end end end [/lua] You're also vulnerable to the nail exploit.
[QUOTE=Cunzer]Actually PropSecure is licenced. You also [b]stole[/b] this part: [lua] for k, v in pairs(g_SBoxObjects) do for b, j in pairs(v) do for _, e in pairs(j) do if(UniqueID != false) then if(k == UniqueID) then return true end else if(k == ply:UniqueID()) then return true end end end end end for k, v in pairs(GAMEMODE.CameraList) do for b, j in pairs(v) do if(j == ent) then if(UniqueID != false) then if(k == UniqueID) then return true end else if(k == ply:UniqueID()) then return true end end end end end [/lua] You're also vulnerable to the nail exploit.[/QUOTE] I guess I did steal it. I used it in some other code and credited you. I didn't know you took every line of your code so seriously I know about the nail exploit.
Sorry, you need to Log In to post a reply to this thread.