Advertisement
Guest User

Untitled

a guest
Aug 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.78 KB | None | 0 0
  1. --[[
  2.     local tab = {} local idx = 1 local wep_loop for _, wep in ipairs(weapons.GetList()) do tab[idx] = wep.ClassName idx = idx + 1 end Entity(1):Give(tab[math.random(0,#tab)])
  3.     --for singleplayer beside sandbox GMs
  4. ]]
  5. local tab = {}
  6. local idx = 1
  7. local wep_loop for _, wep in ipairs(weapons.GetList()) do
  8.  
  9.     if wep.Spawnable then
  10.         tab[idx] = wep.ClassName
  11.         idx = idx + 1
  12.     end
  13.  
  14. end
  15.  
  16. tab[#tab+1] = "weapon_stunstick"
  17.  
  18. tab[#tab+1] = "weapon_crowbar"
  19. tab[#tab+1] = "weapon_pistol"
  20. tab[#tab+1] = "weapon_357"
  21. tab[#tab+1] = "weapon_smg1"
  22. tab[#tab+1] = "weapon_ar2"
  23. tab[#tab+1] = "weapon_shotgun"
  24. tab[#tab+1] = "weapon_crossbow"
  25. tab[#tab+1] = "weapon_rpg"
  26.  
  27. function RandomWeapons(ply)
  28.  
  29.     local tbl_ents_weps = {}
  30.     local tbl_old_pos_wep = {}
  31.     local tbl_old_angles_wep = {}
  32.  
  33.     for a,b in pairs( ents.GetAll() ) do
  34.        
  35.             if b:IsWeapon() then
  36.                 tbl_ents_weps[a] = b
  37.             end
  38.  
  39.         end
  40.    
  41.     for _,wep in pairs( tbl_ents_weps ) do
  42.        
  43.         if not wep:GetOwner():IsNPC() and wep.Replaced == nil then
  44.            ply_owner = wep:GetOwner()
  45.            tbl_old_pos_wep[_] = wep:GetPos()
  46.            tbl_old_angles_wep[_] = wep:GetAngles()
  47.      
  48.            
  49.            
  50.             local new_weapon_name = tab[math.random(1,#tab)]
  51.  
  52.         if new_weapon_name == "weapon_smg1" then
  53.             local new_weaponsub1_name = "item_ammo_smg1_grenade"
  54.             local New_ents_weaponsub1 = ents.Create(new_weaponsub1_name)
  55.  
  56.             for _,pos in pairs( tbl_old_pos_wep ) do
  57.                 if New_ents_weaponsub1 then New_ents_weaponsub1:SetPos(pos) end
  58.             end
  59.  
  60.             for _,angles in pairs( tbl_old_angles_wep ) do
  61.                 if New_ents_weaponsub1 then New_ents_weaponsub1:SetAngles(angles) end
  62.             end
  63.  
  64.             New_ents_weaponsub1:Spawn()
  65.  
  66.         end
  67.  
  68.         if new_weapon_name == "weapon_ar2" then
  69.             local new_weaponsub2_name = "item_ammo_ar2_altfire"
  70.             local New_ents_weaponsub2 = ents.Create(new_weaponsub2_name)
  71.  
  72.             for _,pos in pairs( tbl_old_pos_wep ) do
  73.                 if New_ents_weaponsub2 then New_ents_weaponsub2:SetPos(pos) end
  74.             end
  75.  
  76.             for _,angles in pairs( tbl_old_angles_wep ) do
  77.                 if New_ents_weaponsub2 then New_ents_weaponsub2:SetAngles(angles) end
  78.             end
  79.  
  80.             New_ents_weaponsub2:Spawn()
  81.  
  82.         end
  83.  
  84.         local New_ents = ents.Create(new_weapon_name)
  85.        
  86.         for _,pos in pairs( tbl_old_pos_wep ) do
  87.             New_ents:SetPos(pos)
  88.         end
  89.            
  90.         for _,angles in pairs( tbl_old_angles_wep ) do
  91.             New_ents:SetAngles(angles)
  92.         end
  93.  
  94.             SafeRemoveEntity(wep)
  95.             New_ents:Spawn()
  96.             New_ents.Replaced = true
  97.  
  98.     end
  99. end
  100.  
  101. end
  102.  
  103. hook.Add("PlayerSpawn","Engine_hook1",function(ply) timer.Simple( 1, function() RandomWeapons(ply) end ) end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement