More weapons and more slots.
This commit is contained in:
parent
29d9a61086
commit
ed336f6cfd
|
@ -254,97 +254,100 @@ hook.Add( "HUDPaint", "Benny_HUDPaint", function()
|
||||||
surface.SetDrawColor( scheme["fg"] )
|
surface.SetDrawColor( scheme["fg"] )
|
||||||
surface.DrawRect( sw - b - ss(w-4), sh - b + ss(16) - ss(BOXHEIGHT-4), ss(fmpw), ss(10) )
|
surface.DrawRect( sw - b - ss(w-4), sh - b + ss(16) - ss(BOXHEIGHT-4), ss(fmpw), ss(10) )
|
||||||
|
|
||||||
surface.SetFont( "Benny_12" )
|
-- PROTO: Make grenade/melee/firearm logic way way better.
|
||||||
local str = wep:B_FiremodeName( false )
|
if wep1c.Features != "grenade" then
|
||||||
local tw = surface.GetTextSize( str )
|
surface.SetFont( "Benny_12" )
|
||||||
surface.SetTextColor( scheme["bg"] )
|
local str = wep:B_FiremodeName( false )
|
||||||
surface.SetTextPos( sw - b - ss(w-19) - (tw/2), sh - b + ss(16) - ss(BOXHEIGHT-4) )
|
local tw = surface.GetTextSize( str )
|
||||||
surface.DrawText( str )
|
surface.SetTextColor( scheme["bg"] )
|
||||||
|
surface.SetTextPos( sw - b - ss(w-19) - (tw/2), sh - b + ss(16) - ss(BOXHEIGHT-4) )
|
||||||
|
surface.DrawText( str )
|
||||||
|
|
||||||
surface.SetFont( "Benny_12" )
|
surface.SetFont( "Benny_12" )
|
||||||
local text = wep:GetWep1Clip() == 0 and "---" or wep:Clip1()-- .. " - MAG " .. wep:GetWep1Clip()
|
local text = wep:GetWep1Clip() == 0 and "---" or wep:Clip1()-- .. " - MAG " .. wep:GetWep1Clip()
|
||||||
local tw = surface.GetTextSize( text )
|
local tw = surface.GetTextSize( text )
|
||||||
surface.SetTextColor( scheme["fg"] )
|
surface.SetTextColor( scheme["fg"] )
|
||||||
surface.SetTextPos( sw - b - ss(4) - tw, sh - b - ss(24) )
|
surface.SetTextPos( sw - b - ss(4) - tw, sh - b - ss(24) )
|
||||||
surface.DrawText( text )
|
surface.DrawText( text )
|
||||||
|
|
||||||
local bx = 1
|
local bx = 1
|
||||||
local by = 0
|
local by = 0
|
||||||
local count = math.max( wep:Clip1(), wep:BClass( false ).Ammo )
|
local count = math.max( wep:Clip1(), wep:BClass( false ).Ammo )
|
||||||
local size = ss(8)
|
local size = ss(8)
|
||||||
if count>90 then
|
if count>90 then
|
||||||
size = ss(2)
|
size = ss(2)
|
||||||
by = by - ss(9-3)
|
by = by - ss(9-3)
|
||||||
elseif count>60 then
|
elseif count>60 then
|
||||||
size = ss(3)
|
size = ss(3)
|
||||||
by = by - ss(7)
|
by = by - ss(7)
|
||||||
elseif count>30 then
|
elseif count>30 then
|
||||||
size = ss(3)
|
size = ss(3)
|
||||||
by = by - ss(5)
|
by = by - ss(5)
|
||||||
end
|
|
||||||
for i=1, count do
|
|
||||||
surface.SetDrawColor( scheme["fg"] )
|
|
||||||
surface.DrawOutlinedRect( sw - b - ss(3+4) - ( ss(5) * (bx-1) ), sh - b - ss(8+4) - by, ss(3), size, ss(0.5) )
|
|
||||||
if i <= wep:Clip1() then
|
|
||||||
surface.DrawRect( sw - b - ss(3+4) - ( ss(5) * (bx-1) ), sh - b - ss(8+4) - by, ss(3), size )
|
|
||||||
end
|
end
|
||||||
if i%30 == 0 then
|
for i=1, count do
|
||||||
if count>90 then
|
surface.SetDrawColor( scheme["fg"] )
|
||||||
by = by + ss(3)
|
surface.DrawOutlinedRect( sw - b - ss(3+4) - ( ss(5) * (bx-1) ), sh - b - ss(8+4) - by, ss(3), size, ss(0.5) )
|
||||||
elseif count>60 then
|
if i <= wep:Clip1() then
|
||||||
by = by + ss(3)
|
surface.DrawRect( sw - b - ss(3+4) - ( ss(5) * (bx-1) ), sh - b - ss(8+4) - by, ss(3), size )
|
||||||
else
|
|
||||||
by = by + ss(5)
|
|
||||||
end
|
end
|
||||||
bx = 0
|
if i%30 == 0 then
|
||||||
end
|
if count>90 then
|
||||||
bx = bx + 1
|
by = by + ss(3)
|
||||||
end
|
elseif count>60 then
|
||||||
|
by = by + ss(3)
|
||||||
local amlist = { wep:BTable( false )["Ammo" .. 1], wep:BTable( false )["Ammo" .. 2], wep:BTable( false )["Ammo" .. 3] }
|
else
|
||||||
local ind = 1
|
by = by + ss(5)
|
||||||
local bubby = ss(1)
|
end
|
||||||
local blen, bhei = 25, 10
|
bx = 0
|
||||||
for _, v in ipairs( amlist ) do
|
end
|
||||||
local active = wep:GetWep1Clip() == _
|
bx = bx + 1
|
||||||
if v == 0 and !active then continue end
|
|
||||||
local perc = v / wep:BClass( false ).Ammo
|
|
||||||
|
|
||||||
local suuze = ss(blen*perc) - bubby*2*perc
|
|
||||||
if v != 0 then suuze = math.max( suuze, 1 ) end
|
|
||||||
surface.SetDrawColor( scheme["fg"] )
|
|
||||||
surface.DrawOutlinedRect( sw - b - ss(w-4-2) + ss(fmpw) + ( ss(blen+2) * (ind-1) ),
|
|
||||||
sh - b + ss(16) - ss(BOXHEIGHT-4),
|
|
||||||
ss(blen),
|
|
||||||
ss(bhei),
|
|
||||||
ss(0.5) )
|
|
||||||
|
|
||||||
if active then
|
|
||||||
surface.SetTextColor( scheme["fg"] )
|
|
||||||
surface.SetTextPos( sw - b - ss(w-4-2) + ss(fmpw/2) + ( ss(blen+2) * (ind) ) + bubby - ss(4),
|
|
||||||
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby - ss(2) )
|
|
||||||
surface.DrawText( "x" )
|
|
||||||
end
|
end
|
||||||
|
|
||||||
surface.SetDrawColor( scheme["fg"] )
|
local amlist = { wep:BTable( false )["Ammo" .. 1], wep:BTable( false )["Ammo" .. 2], wep:BTable( false )["Ammo" .. 3] }
|
||||||
surface.DrawRect( sw - b - ss(w-4-2) + ss(fmpw) + ( ss(blen+2) * (ind-1) ) + bubby,
|
local ind = 1
|
||||||
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby,
|
local bubby = ss(1)
|
||||||
suuze,
|
local blen, bhei = 25, 10
|
||||||
ss(bhei) - bubby*2 )
|
for _, v in ipairs( amlist ) do
|
||||||
|
local active = wep:GetWep1Clip() == _
|
||||||
|
if v == 0 and !active then continue end
|
||||||
|
local perc = v / wep:BClass( false ).Ammo
|
||||||
|
|
||||||
if active then
|
local suuze = ss(blen*perc) - bubby*2*perc
|
||||||
render.SetScissorRect( sw - b - ss(w-4-2) + ss(fmpw) + ( ss(blen+2) * (ind-1) ) + bubby,
|
if v != 0 then suuze = math.max( suuze, 1 ) end
|
||||||
|
surface.SetDrawColor( scheme["fg"] )
|
||||||
|
surface.DrawOutlinedRect( sw - b - ss(w-4-2) + ss(fmpw) + ( ss(blen+2) * (ind-1) ),
|
||||||
|
sh - b + ss(16) - ss(BOXHEIGHT-4),
|
||||||
|
ss(blen),
|
||||||
|
ss(bhei),
|
||||||
|
ss(0.5) )
|
||||||
|
|
||||||
|
if active then
|
||||||
|
surface.SetTextColor( scheme["fg"] )
|
||||||
|
surface.SetTextPos( sw - b - ss(w-4-2) + ss(fmpw/2) + ( ss(blen+2) * (ind) ) + bubby - ss(4),
|
||||||
|
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby - ss(2) )
|
||||||
|
surface.DrawText( "x" )
|
||||||
|
end
|
||||||
|
|
||||||
|
surface.SetDrawColor( scheme["fg"] )
|
||||||
|
surface.DrawRect( sw - b - ss(w-4-2) + ss(fmpw) + ( ss(blen+2) * (ind-1) ) + bubby,
|
||||||
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby,
|
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby,
|
||||||
sw - b - ss(w-4-2) + ss(fmpw) + ( ss(blen+2) * (ind-1) ) + bubby + suuze,
|
suuze,
|
||||||
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby + (ss(bhei) - bubby*2), true )
|
ss(bhei) - bubby*2 )
|
||||||
surface.SetTextColor( scheme["bg"] )
|
|
||||||
surface.SetTextPos( sw - b - ss(w-4-2) + ss(fmpw/2) + ( ss(blen+2) * (ind) ) + bubby - ss(4),
|
|
||||||
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby - ss(2) )
|
|
||||||
surface.DrawText( "x" )
|
|
||||||
render.SetScissorRect( 0, 0, 0, 0, false )
|
|
||||||
end
|
|
||||||
|
|
||||||
ind = ind + 1
|
if active then
|
||||||
|
render.SetScissorRect( sw - b - ss(w-4-2) + ss(fmpw) + ( ss(blen+2) * (ind-1) ) + bubby,
|
||||||
|
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby,
|
||||||
|
sw - b - ss(w-4-2) + ss(fmpw) + ( ss(blen+2) * (ind-1) ) + bubby + suuze,
|
||||||
|
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby + (ss(bhei) - bubby*2), true )
|
||||||
|
surface.SetTextColor( scheme["bg"] )
|
||||||
|
surface.SetTextPos( sw - b - ss(w-4-2) + ss(fmpw/2) + ( ss(blen+2) * (ind) ) + bubby - ss(4),
|
||||||
|
sh - b + ss(16) - ss(BOXHEIGHT-4) + bubby - ss(2) )
|
||||||
|
surface.DrawText( "x" )
|
||||||
|
render.SetScissorRect( 0, 0, 0, 0, false )
|
||||||
|
end
|
||||||
|
|
||||||
|
ind = ind + 1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- local prog = {
|
-- local prog = {
|
||||||
|
@ -663,6 +666,19 @@ do
|
||||||
RunConsoleCommand( "benny_inv_equip", buckets[bucket_selected][item_selected] )
|
RunConsoleCommand( "benny_inv_equip", buckets[bucket_selected][item_selected] )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
local function Wrap( ply, num )
|
||||||
|
local buckets = ply:INV_Buckets()
|
||||||
|
if bucket_selected == num then
|
||||||
|
item_selected = item_selected + 1
|
||||||
|
if item_selected > #buckets[bucket_selected] then
|
||||||
|
item_selected = 1
|
||||||
|
end
|
||||||
|
else
|
||||||
|
bucket_selected = num
|
||||||
|
item_selected = 1
|
||||||
|
end
|
||||||
|
Equip()
|
||||||
|
end
|
||||||
local qt = {
|
local qt = {
|
||||||
["invnext"] = function( ply )
|
["invnext"] = function( ply )
|
||||||
local buckets = ply:INV_Buckets()
|
local buckets = ply:INV_Buckets()
|
||||||
|
@ -696,56 +712,34 @@ do
|
||||||
Equip()
|
Equip()
|
||||||
end,
|
end,
|
||||||
["slot1"] = function( ply )
|
["slot1"] = function( ply )
|
||||||
local buckets = ply:INV_Buckets()
|
Wrap( ply, 1 )
|
||||||
if bucket_selected == 1 then
|
|
||||||
item_selected = item_selected + 1
|
|
||||||
if item_selected > #buckets[bucket_selected] then
|
|
||||||
item_selected = 1
|
|
||||||
end
|
|
||||||
else
|
|
||||||
bucket_selected = 1
|
|
||||||
item_selected = 1
|
|
||||||
end
|
|
||||||
Equip()
|
|
||||||
end,
|
end,
|
||||||
["slot2"] = function( ply )
|
["slot2"] = function( ply )
|
||||||
local buckets = ply:INV_Buckets()
|
Wrap( ply, 2 )
|
||||||
if bucket_selected == 2 then
|
|
||||||
item_selected = item_selected + 1
|
|
||||||
if item_selected > #buckets[bucket_selected] then
|
|
||||||
item_selected = 1
|
|
||||||
end
|
|
||||||
else
|
|
||||||
bucket_selected = 2
|
|
||||||
item_selected = 1
|
|
||||||
end
|
|
||||||
Equip()
|
|
||||||
end,
|
end,
|
||||||
["slot3"] = function( ply )
|
["slot3"] = function( ply )
|
||||||
local buckets = ply:INV_Buckets()
|
Wrap( ply, 3 )
|
||||||
if bucket_selected == 3 then
|
|
||||||
item_selected = item_selected + 1
|
|
||||||
if item_selected > #buckets[bucket_selected] then
|
|
||||||
item_selected = 1
|
|
||||||
end
|
|
||||||
else
|
|
||||||
bucket_selected = 3
|
|
||||||
item_selected = 1
|
|
||||||
end
|
|
||||||
Equip()
|
|
||||||
end,
|
end,
|
||||||
["slot4"] = function( ply )
|
["slot4"] = function( ply )
|
||||||
local buckets = ply:INV_Buckets()
|
Wrap( ply, 4 )
|
||||||
if bucket_selected == 4 then
|
end,
|
||||||
item_selected = item_selected + 1
|
["slot5"] = function( ply )
|
||||||
if item_selected > #buckets[bucket_selected] then
|
Wrap( ply, 5 )
|
||||||
item_selected = 1
|
end,
|
||||||
end
|
["slot6"] = function( ply )
|
||||||
else
|
-- Wrap( ply, 6 )
|
||||||
bucket_selected = 4
|
end,
|
||||||
item_selected = 1
|
["slot7"] = function( ply )
|
||||||
end
|
-- Wrap( ply, 7 )
|
||||||
Equip()
|
end,
|
||||||
|
["slot8"] = function( ply )
|
||||||
|
-- Wrap( ply, 8 )
|
||||||
|
end,
|
||||||
|
["slot9"] = function( ply )
|
||||||
|
-- Wrap( ply, 9 )
|
||||||
|
end,
|
||||||
|
["slot0"] = function( ply )
|
||||||
|
-- Wrap( ply, 0 )
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
hook.Add( "PlayerBindPress", "inv", function( ply, bind, pressed, code )
|
hook.Add( "PlayerBindPress", "inv", function( ply, bind, pressed, code )
|
||||||
|
|
|
@ -69,16 +69,20 @@ concommand.Add("benny_inv_equip", function( ply, cmd, args )
|
||||||
local inv = ply:INV_Get()
|
local inv = ply:INV_Get()
|
||||||
local wep = ply:GetActiveWeapon()
|
local wep = ply:GetActiveWeapon()
|
||||||
local item = inv[args[1]]
|
local item = inv[args[1]]
|
||||||
|
local class = WEAPONS[item.Class]
|
||||||
-- PROTO: Check that this is the correct 'benny' weapon.
|
-- PROTO: Check that this is the correct 'benny' weapon.
|
||||||
assert( item, "That item doesn't exist. " .. tostring(item) )
|
assert( item, "That item doesn't exist. " .. tostring(item) )
|
||||||
|
|
||||||
wep:SetWep1( args[1] )
|
wep:SetWep1( args[1] )
|
||||||
wep:SetWep1Clip( item.Loaded )
|
wep:SetWep1Clip( item.Loaded )
|
||||||
|
|
||||||
if item.Loaded != 0 then
|
-- PROTO: Make grenade/melee/firearm logic way way better.
|
||||||
assert( item[ "Ammo" .. item.Loaded ], "That magazine doesn't exist." )
|
if class.Features != "grenade" then
|
||||||
|
if item.Loaded != 0 then
|
||||||
|
assert( item[ "Ammo" .. item.Loaded ], "That magazine doesn't exist." )
|
||||||
|
end
|
||||||
|
wep:SetClip1( item.Loaded == 0 and 0 or item[ "Ammo" .. item.Loaded ] )
|
||||||
end
|
end
|
||||||
wep:SetClip1( item.Loaded == 0 and 0 or item[ "Ammo" .. item.Loaded ] )
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
concommand.Add("benny_inv_sync", function( ply, cmd, args )
|
concommand.Add("benny_inv_sync", function( ply, cmd, args )
|
||||||
|
@ -177,45 +181,67 @@ if CLIENT then
|
||||||
local itemlist = smenu:Add("DScrollPanel")
|
local itemlist = smenu:Add("DScrollPanel")
|
||||||
itemlist:Dock( FILL )
|
itemlist:Dock( FILL )
|
||||||
|
|
||||||
local List = vgui.Create( "DIconLayout", itemlist )
|
-- local List = vgui.Create( "DIconLayout", itemlist )
|
||||||
List:Dock( FILL )
|
-- List:Dock( FILL )
|
||||||
List:SetSpaceX( 5 )
|
-- List:SetSpaceX( 5 )
|
||||||
List:SetSpaceY( 5 )
|
-- List:SetSpaceY( 5 )
|
||||||
|
|
||||||
|
|
||||||
|
local createlist = {}
|
||||||
|
|
||||||
for ClassName, Class in SortedPairsByMemberValue( WEAPONS, "Name" ) do
|
for ClassName, Class in SortedPairsByMemberValue( WEAPONS, "Name" ) do
|
||||||
local button = vgui.Create( "DButton" )
|
if !createlist[Class.Type] then
|
||||||
List:Add( button )
|
createlist[Class.Type] = {}
|
||||||
button:SetSize( ss(96), ss(22) )
|
|
||||||
--button:Dock( TOP )
|
|
||||||
button:DockMargin( 0, 0, 0, ss(4) )
|
|
||||||
|
|
||||||
button.Text_Name = Class.Name
|
|
||||||
button.Text_Desc = Class.Description
|
|
||||||
|
|
||||||
-- PROTO: These functions don't need to be remade over and over like this.
|
|
||||||
function button:DoClick()
|
|
||||||
RunConsoleCommand( "benny_debug_give", LocalPlayer():EntIndex(), 0, ClassName )
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function button:DoRightClick()
|
table.insert( createlist[Class.Type], { ClassName = ClassName, Class = Class } )
|
||||||
end
|
end
|
||||||
|
|
||||||
function button:Paint( w, h )
|
|
||||||
surface.SetDrawColor( schemes["benny"]["fg"] )
|
|
||||||
surface.DrawRect( 0, 0, w, h )
|
|
||||||
|
|
||||||
surface.SetTextColor( schemes["benny"]["bg"] )
|
for i, v in pairs( createlist ) do
|
||||||
|
local Collapse = itemlist:Add( "DCollapsibleCategory" )
|
||||||
|
Collapse:Dock( TOP )
|
||||||
|
Collapse:SetLabel( i )
|
||||||
|
local Lays = itemlist:Add( "DIconLayout" )
|
||||||
|
Collapse:SetContents( Lays )
|
||||||
|
Lays:Dock( FILL )
|
||||||
|
Lays:SetSpaceX( 2 )
|
||||||
|
Lays:SetSpaceY( 2 )
|
||||||
|
for Mew, New in ipairs( v ) do
|
||||||
|
local button = Lays:Add( "DButton" )
|
||||||
|
button:SetSize( ss(96), ss(22) )
|
||||||
|
--button:Dock( TOP )
|
||||||
|
button:DockMargin( 0, 0, 0, ss(4) )
|
||||||
|
|
||||||
surface.SetFont( "Benny_16" )
|
button.Text_Name = New.Class.Name
|
||||||
surface.SetTextPos( ss(4), ss(4) )
|
button.Text_Desc = New.Class.Description
|
||||||
surface.DrawText( self.Text_Name )
|
|
||||||
|
|
||||||
-- surface.SetFont( "Benny_10" )
|
-- PROTO: These functions don't need to be remade over and over like this.
|
||||||
-- surface.SetTextPos( ss(4), ss(4 + 12) )
|
function button:DoClick()
|
||||||
-- surface.DrawText( self.Text_Desc )
|
RunConsoleCommand( "benny_debug_give", LocalPlayer():EntIndex(), 0, New.ClassName )
|
||||||
return true
|
end
|
||||||
|
|
||||||
|
function button:DoRightClick()
|
||||||
|
end
|
||||||
|
|
||||||
|
function button:Paint( w, h )
|
||||||
|
surface.SetDrawColor( schemes["benny"]["fg"] )
|
||||||
|
surface.DrawRect( 0, 0, w, h )
|
||||||
|
|
||||||
|
surface.SetTextColor( schemes["benny"]["bg"] )
|
||||||
|
|
||||||
|
surface.SetFont( "Benny_16" )
|
||||||
|
surface.SetTextPos( ss(4), ss(4) )
|
||||||
|
surface.DrawText( self.Text_Name )
|
||||||
|
|
||||||
|
-- surface.SetFont( "Benny_10" )
|
||||||
|
-- surface.SetTextPos( ss(4), ss(4 + 12) )
|
||||||
|
-- surface.DrawText( self.Text_Desc )
|
||||||
|
return true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
local function regen_items( itemlist )
|
local function regen_items( itemlist )
|
||||||
local ply = LocalPlayer()
|
local ply = LocalPlayer()
|
||||||
|
|
|
@ -44,9 +44,11 @@ do
|
||||||
["special"] = { 1, 2 },
|
["special"] = { 1, 2 },
|
||||||
["pistol"] = { 2, 1 },
|
["pistol"] = { 2, 1 },
|
||||||
["smg"] = { 3, 1 },
|
["smg"] = { 3, 1 },
|
||||||
["shotgun"] = { 3, 2 },
|
["shotgun"] = { 4, 1 },
|
||||||
["rifle"] = { 4, 1 },
|
["rifle"] = { 5, 1 },
|
||||||
["machinegun"] = { 4, 2 },
|
["machinegun"] = { 5, 2 },
|
||||||
|
["grenade"] = { 6, 1 },
|
||||||
|
["utility"] = { 6, 2 },
|
||||||
}
|
}
|
||||||
|
|
||||||
-- PROTO: Cache this!
|
-- PROTO: Cache this!
|
||||||
|
@ -56,6 +58,8 @@ do
|
||||||
[2] = {},
|
[2] = {},
|
||||||
[3] = {},
|
[3] = {},
|
||||||
[4] = {},
|
[4] = {},
|
||||||
|
[5] = {},
|
||||||
|
[6] = {},
|
||||||
}
|
}
|
||||||
for i, bucket in ipairs( inventorylist ) do
|
for i, bucket in ipairs( inventorylist ) do
|
||||||
local temp = {}
|
local temp = {}
|
||||||
|
|
|
@ -551,6 +551,28 @@ WEAPONS["bizon"] = {
|
||||||
Spread = 40/60,
|
Spread = 40/60,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WEAPONS["chicom"] = {
|
||||||
|
Name = "QCW-CQB",
|
||||||
|
Description = "Subsonic bullpup SMG.",
|
||||||
|
Type = "smg",
|
||||||
|
|
||||||
|
WModel = "models/weapons/w_rif_famas.mdl",
|
||||||
|
HoldType = "rpg",
|
||||||
|
GestureFire = { ACT_HL2MP_GESTURE_RANGE_ATTACK_REVOLVER, 0.34 },
|
||||||
|
|
||||||
|
Sound_Fire = "M92.Fire",
|
||||||
|
Sound_DryFire = "Common.Dryfire.Rifle",
|
||||||
|
Sound_Reload = "Bizon.Reload",
|
||||||
|
Sound_MagOut = "Bizon.MagOut",
|
||||||
|
Sound_MagIn = "Bizon.MagIn",
|
||||||
|
|
||||||
|
Delay = (60/525),
|
||||||
|
Firemodes = FIREMODE_AUTOSEMI,
|
||||||
|
Ammo = 36,
|
||||||
|
Damage = 12,
|
||||||
|
Spread = 40/60,
|
||||||
|
}
|
||||||
|
|
||||||
-- Shotguns
|
-- Shotguns
|
||||||
|
|
||||||
WEAPONS["spas12"] = {
|
WEAPONS["spas12"] = {
|
||||||
|
@ -620,6 +642,27 @@ WEAPONS["fnc"] = {
|
||||||
Damage = 10,
|
Damage = 10,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WEAPONS["qbz"] = {
|
||||||
|
Name = "QBZ-95",
|
||||||
|
Description = "Bullpup assault rifle.",
|
||||||
|
Type = "rifle",
|
||||||
|
|
||||||
|
Icon = Material( "benny/weapons/fnc.png", "smooth" ),
|
||||||
|
WModel = "models/weapons/w_rif_bakm.mdl",
|
||||||
|
HoldType = "rpg",
|
||||||
|
GestureFire = { ACT_HL2MP_GESTURE_RANGE_ATTACK_PISTOL, 0.3 },
|
||||||
|
|
||||||
|
Sound_Fire = "FNC.Fire",
|
||||||
|
Sound_DryFire = "Common.Dryfire.Rifle",
|
||||||
|
Sound_MagOut = "FNC.MagOut",
|
||||||
|
Sound_MagIn = "FNC.MagIn",
|
||||||
|
|
||||||
|
Delay = (60/600),
|
||||||
|
Firemodes = FIREMODE_AUTOSEMI,
|
||||||
|
Ammo = 30,
|
||||||
|
Damage = 10,
|
||||||
|
}
|
||||||
|
|
||||||
WEAPONS["m16a2"] = {
|
WEAPONS["m16a2"] = {
|
||||||
Name = "M16A2",
|
Name = "M16A2",
|
||||||
Description = "meow",
|
Description = "meow",
|
||||||
|
@ -665,3 +708,85 @@ WEAPONS["stoner63"] = {
|
||||||
Ammo = 100,
|
Ammo = 100,
|
||||||
Damage = 10,
|
Damage = 10,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WEAPONS["qbblsw"] = {
|
||||||
|
Name = "QBB-LSW",
|
||||||
|
Description = "Bullpup light machine gun.",
|
||||||
|
Type = "machinegun",
|
||||||
|
|
||||||
|
WModel = "models/weapons/w_mach_mg36.mdl",
|
||||||
|
HoldType = "rpg",
|
||||||
|
GestureFire = { ACT_HL2MP_GESTURE_RANGE_ATTACK_REVOLVER, 0.3 },
|
||||||
|
|
||||||
|
Sound_Fire = "FNC.Fire",
|
||||||
|
Sound_DryFire = "Common.Dryfire.Rifle",
|
||||||
|
Sound_MagOut = "M16A2.MagOut",
|
||||||
|
Sound_MagIn = "M16A2.MagIn",
|
||||||
|
|
||||||
|
Delay = (60/550),
|
||||||
|
Firemodes = FIREMODE_AUTOSEMI,
|
||||||
|
Ammo = 100,
|
||||||
|
Damage = 10,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Grenades
|
||||||
|
|
||||||
|
WEAPONS["g_frag"] = {
|
||||||
|
Name = "FRAG GRENADE",
|
||||||
|
Description = "Pull the pin and throw it the hell away!",
|
||||||
|
Type = "grenade",
|
||||||
|
|
||||||
|
WModel = "models/weapons/w_eq_flashbang.mdl",
|
||||||
|
|
||||||
|
Features = "grenade", -- All weapons should have this?
|
||||||
|
}
|
||||||
|
|
||||||
|
WEAPONS["g_semtex"] = {
|
||||||
|
Name = "SEMTEX GRENADE",
|
||||||
|
Description = "Long, audible fuse, but sticks to whatever it touches.",
|
||||||
|
Type = "grenade",
|
||||||
|
|
||||||
|
WModel = "models/weapons/w_eq_flashbang.mdl",
|
||||||
|
|
||||||
|
Features = "grenade", -- All weapons should have this?
|
||||||
|
}
|
||||||
|
|
||||||
|
WEAPONS["g_molotov"] = {
|
||||||
|
Name = "MOLOTOV COCKTAIL",
|
||||||
|
Description = "Alcoholic bottle of flame!",
|
||||||
|
Type = "grenade",
|
||||||
|
|
||||||
|
WModel = "models/weapons/w_eq_flashbang.mdl",
|
||||||
|
|
||||||
|
Features = "grenade", -- All weapons should have this?
|
||||||
|
}
|
||||||
|
|
||||||
|
WEAPONS["g_tknife"] = {
|
||||||
|
Name = "THROWING KNIFE",
|
||||||
|
Description = "Lightweight knife weighted perfectly.",
|
||||||
|
Type = "grenade",
|
||||||
|
|
||||||
|
WModel = "models/weapons/w_eq_flashbang.mdl",
|
||||||
|
|
||||||
|
Features = "grenade", -- All weapons should have this?
|
||||||
|
}
|
||||||
|
|
||||||
|
WEAPONS["g_smoke"] = {
|
||||||
|
Name = "SMOKE GRENADE",
|
||||||
|
Description = "Smoke bomb used to conceal your position.",
|
||||||
|
Type = "grenade",
|
||||||
|
|
||||||
|
WModel = "models/weapons/w_eq_flashbang.mdl",
|
||||||
|
|
||||||
|
Features = "grenade", -- All weapons should have this?
|
||||||
|
}
|
||||||
|
|
||||||
|
WEAPONS["g_flashbang"] = {
|
||||||
|
Name = "FLASHBANG",
|
||||||
|
Description = "Stun grenade that gives off a bright flash and a loud 'bang'.",
|
||||||
|
Type = "grenade",
|
||||||
|
|
||||||
|
WModel = "models/weapons/w_eq_flashbang.mdl",
|
||||||
|
|
||||||
|
Features = "grenade", -- All weapons should have this?
|
||||||
|
}
|
Loading…
Reference in New Issue