• a little change to the addon: Weapon drop
    6 replies, posted
i like a little change to this addon [url=http://www.garrysmod.org/downloads/?a=view&id=19519][img]http://www.garrysmod.org/img/?t=dll&id=19519[/img][/url] normaly you just walk over the dropped gun to pick it up again. I want that you only can pick it up by pressing E. I don't know anything about lua but I think it easy to do it.
I've done this before. Create an new .txt file, copy-paste the below code in it, then rename the txt file to something like useweaponpickup.lua [code] if SERVER and !ConVarExists("useweaponpickup") then CreateConVar("useweaponpickup", '1', FCVAR_ARCHIVE) end hook.Add("PlayerLoadout","WeaponPickupUse_Loadout",function(ply) ply.usewep_loadout=1 timer.Simple( 0.5, function() ply.usewep_loadout=0 end) end) hook.Add("PlayerGiveSWEP","WeaponPickupUse_GiveSWEP",function(ply, wname, wtable ) ply.usewep_loadout=1 timer.Simple( 0.5, function() ply.usewep_loadout=0 end) end) hook.Add("PlayerCanPickupWeapon","WeaponPickupUse",function(ply, ent) if GetConVarNumber("useweaponpickup") != 0 then if ply.usewep_loadout==1 or ply:GetPos():Distance(ent:GetPos())<2 then return true end if ply:KeyDown(IN_USE) and ply:Alive() then local pos = ply:GetShootPos() local dir = ply:GetAimVector() local tracew = {} tracew.start = pos tracew.endpos = pos+(dir*80) tracew.filter = ply local trace = util.TraceLine(tracew) if trace.Hit and trace.Entity == ent then return true else return false end else return false end end end) [/code] The console command for it is: useweaponpickup It starts enabled.
[QUOTE=PowerPC;19381168]I've done this before. Create an new .txt file, copy-paste the below code in it, then rename the txt file to something like useweaponpickup.lua [code] if SERVER and !ConVarExists("useweaponpickup") then CreateConVar("useweaponpickup", '1', FCVAR_ARCHIVE) end hook.Add("PlayerLoadout","WeaponPickupUse_Loadout",function(ply) ply.usewep_loadout=1 timer.Simple( 0.5, function() ply.usewep_loadout=0 end) end) hook.Add("PlayerCanPickupWeapon","WeaponPickupUse",function(ply, ent) if GetConVarNumber("useweaponpickup") != 0 then if ply.usewep_loadout==1 then return true end if ply:KeyDown(IN_USE) and ply:Alive() then local pos = ply:GetShootPos() local dir = ply:GetAimVector() local tracew = {} tracew.start = pos tracew.endpos = pos+(dir*80) tracew.filter = ply local trace = util.TraceLine(tracew) if trace.Hit and trace.Entity == ent then return true else return false end else return false end end end) [/code] The console command for it is: useweaponpickup It starts enabled.[/QUOTE] thanks i will try when im home.
[QUOTE=zieniet;19383080]thanks i will try when im home.[/QUOTE] Ok, I didn't test this exact code though. I modified it slightly, so there might be some errors. Post them here if you get any.
i tested it it worked all fine but one thing not. i can't spawn any weapons by left clicking on the icons .
[QUOTE=zieniet;19423945]i tested it it worked all fine but one thing not. i can't spawn any weapons by left clicking on the icons .[/QUOTE] Oh yeah, I forgot about that bug. Right clicking on them will still spawn them, just on the ground where you are looking. I'll look into fixing that bug though, I think I know what's wrong. [u][b]Edit:[/b][/u] Ok, I think have fixed that problem. I have updated the code from one of my older posts. Just replace your old code with that newer code
It works now and its way better than i thought. Thanks a lot!
Sorry, you need to Log In to post a reply to this thread.