HUD, camera, tweaks

This commit is contained in:
Fesiug 2024-09-06 22:53:01 -04:00
parent f6089bf156
commit 8fae4bd63e
Signed by: Fesiug
GPG Key ID: 374BFF45E1EEF243
6 changed files with 267 additions and 29 deletions

View File

@ -37,6 +37,47 @@ function GM:CalcView( ply, pos, ang, fov )
drawviewer = true
}
if false then
ply:SetupBones()
local bm = ply:GetBoneMatrix(ply:LookupBone("DEF-spine.006"))
view.origin = bm:GetTranslation()
if ply:GetLayerSequence( GESTURE_SLOT_JUMP ) == ply:LookupSequence("dive_end_handgun") and ply:GetLayerCycle( GESTURE_SLOT_JUMP )<0.8 then
local angles = ply:GetBoneMatrix(ply:LookupBone("DEF-spine.004")):GetAngles()
angles.y = ang.y
local magic = math.Remap( ply:GetLayerCycle( GESTURE_SLOT_JUMP ), 0.6, 0.8, 0, 1 )
magic = math.Clamp( magic, 0, 1 )
print(magic)
angles.p = Lerp( magic, angles.r-90, ang.p )
angles.r = 0
view.angles = angles
else
local special = math.Remap( ang.p, 0, 79, 0, 1 )
special = math.Clamp(special, 0, 1 )
special = math.ease.InCubic( special )
local special2 = math.Remap( ang.p, -79, 0, 0, 1 )
special2 = math.Clamp(special2, 0, 1 )
special2 = special2 * (1-special)
view.origin:Sub(ang:Forward()*2)
view.origin:Add(ang:Up()*4*special2)
view.origin:Add(ang:Up()*4*special)
end
local bid = ply:LookupBone("DEF-spine.006")
ply:ManipulateBoneScale( bid, vector_origin )
local bid = ply:LookupBone("DEF-spine.005")
ply:ManipulateBoneScale( bid, vector_origin )
--local bm = ply:GetBoneMatrix(bid)
--bm:Scale(Vector(0, 0, 0))
--ply:SetBoneMatrix(bid, bm)
--local bid = ply:LookupBone("DEF-spine.005")
--local bm = ply:GetBoneMatrix(bid)
--bm:Scale(Vector(0, 0, 0))
--ply:SetBoneMatrix(bid, bm)
end
return view
end

View File

@ -0,0 +1,21 @@
BennyGame = {}
BG_GTYPE_CAMPAIGN = 0
BG_GTYPE_MP = 1
function BennyGame:GetType()
return BG_GTYPE_MP
end
BG_GMODE_TDM = 0
BG_GMODE_FFA = 1
BG_GMODE_DOMINATION = 2
BG_GMODE_CTF = 3
BG_GMODE_BOMB = 4
BG_GMODE_HARDPOINT = 5
function BennyGame:GetMode()
return BG_GMODE_TDM
end

View File

@ -84,6 +84,22 @@ local function hScisoff()
render.SetScissorRect( 0, 0, 0, 0, false )
end
local function qt( text, font, x, y, col, xalign, yalign, col2 )
draw.SimpleText( text, font, x-1, y-1, col2, xalign, yalign )
draw.SimpleText( text, font, x, y-1, col2, xalign, yalign )
draw.SimpleText( text, font, x+1, y-1, col2, xalign, yalign )
draw.SimpleText( text, font, x-1, y, col2, xalign, yalign )
draw.SimpleText( text, font, x+1, y, col2, xalign, yalign )
draw.SimpleText( text, font, x-1, y+1, col2, xalign, yalign )
draw.SimpleText( text, font, x, y+1, col2, xalign, yalign )
draw.SimpleText( text, font, x+1, y+1, col2, xalign, yalign )
draw.SimpleText( text, font, x, y, col, xalign, yalign )
end
local sizes = {
8, 10, 16, 24, 36, 48
@ -103,13 +119,99 @@ local function regenfonts()
end
regenfonts()
-- local COLOR_DARK = Color( 40, 40, 80 )
-- local COLOR_BRIGHT = Color( 80, 80, 160 )
-- local COLOR_MAIN = Color( 160, 160, 240 )
local FACTIONS = {
["benny"] = {
COLOR_MAIN = Color( 255, 238, 169 ),
COLOR_DARK = Color( 54, 44, 39 ),
CHARNAME = "BENNY",
},
["nikki"] = {
COLOR_MAIN = Color( 255, 174, 210 ),
COLOR_DARK = Color(37, 12, 40 ),
CHARNAME = "NIKKI",
},
["igor"] = {
COLOR_MAIN = Color( 253, 208, 207 ),
COLOR_DARK = Color( 32, 14, 12 ),
CHARNAME = "IGOR",
},
["yanghao"] = {
COLOR_MAIN = Color( 157, 187, 253 ),
COLOR_DARK = Color( 19, 21, 28 ),
CHARNAME = "YANG-HAO",
},
-- MP
["mp_cia"] = {
COLOR_MAIN = Color( 228, 228, 245 ),
COLOR_DARK = Color( 25, 23, 47 ),
CHARNAME = "CIA",
},
["mp_plasof"] = {
COLOR_MAIN = Color( 255, 153, 153 ),
COLOR_DARK = Color( 45, 10, 10 ),
CHARNAME = "PLASOF",
},
["mp_militia"] = {
COLOR_MAIN = Color( 255, 219, 153 ),
COLOR_DARK = Color( 33, 18, 18 ),
CHARNAME = "MILITIA",
},
["mp_arng"] = {
COLOR_MAIN = Color( 198, 255, 192 ),
COLOR_DARK = Color( 23, 32, 23 ),
CHARNAME = "NATGUARD",
},
["mp_viper"] = {
COLOR_MAIN = Color( 255, 230, 245 ),
COLOR_DARK = Color( 40, 20, 30 ),
CHARNAME = "VIPER",
},
["mp_halo"] = {
COLOR_MAIN = Color( 200, 255, 246 ),
COLOR_DARK = Color( 30, 40, 38 ),
CHARNAME = "HALO",
},
}
local COLOR_DARK = Color( 54, 44, 39 )
local COLOR_BRIGHT = Color( 94, 84, 79 )
local COLOR_MAIN = Color( 255, 238, 169 )
local CURRCHAR = "mp_arng"
local COLOR_MAIN = FACTIONS[CURRCHAR].COLOR_MAIN
local COLOR_DARK = FACTIONS[CURRCHAR].COLOR_DARK
local CHARNAME = FACTIONS[CURRCHAR].CHARNAME
local COLOR_BRIGHT = Color( 94, 94, 94 )
--[[
BENNY
Color( 255, 238, 169 )
Color( 54, 44, 39 )
NIKKI
Color( 255, 174, 210 )
Color(37, 12, 40 )
IGOR
Color( 253, 208, 207 )
Color( 32, 14, 12 )
YANG-HAO
Color( 157, 187, 253 )
Color( 19, 21, 28 )
CIA
Color( 93, 118, 215 )
Color( 25, 23, 47 )
PLASOF
Color( 255, 103, 103 )
Color( 35, 25, 20 )
MILITIA
Color( 255, 199, 133 )
Color( 33, 18, 18 )
ARNG
Color( 208, 226, 132 )
Color( 23, 25, 23 )
VIPER
Color( 255, 230, 245 )
Color( 40, 30, 30 )
HALO
Color( 200, 255, 246 )
Color( 30, 40, 38 )
]]
local show_letters = {
{ "q", "w", "e", "r", "t", "y" },
@ -169,36 +271,80 @@ function GM:HUDPaint()
-- S_Push( math.random( -4, 4 ), math.random( -4, 4 ) )
S_Push( 20, h - 20 - 64 )
S_Push( 20, h - 20 - 65 )
hCol( COLOR_DARK )
hRRect( 0, 0, 328, 64, 8 )
hRect( 0, 0, 328, 65 )
local x, y = hXY( 6, 0 )
draw.SimpleText( "BENNY", "HUD_48", x, y, COLOR_MAIN )
local x, y = hXY( 10, 4 )
qt( CHARNAME, "HUD_48", x, y, COLOR_DARK, nil, nil, COLOR_MAIN )
local HEALTHPER = p:GetHealth_Blood()/1000
-- HEALTHPER = 11/100
hCol( COLOR_MAIN )
hRect( 8, 8, (320-4-4) * p:GetHealth_Blood()/1000, 40-4-4 )
hRect( 8, 8, (320-4-4) * HEALTHPER, 41-4-4 )
hORect( 8, 8, (320-4-4), 41-4-4, 1 )
hCol( COLOR_DARK )
hORect( 8+1, 8+1, (320-4-4)-2, 40-4-4-2, 1 )
hORect( 8+1, 8+1, (320-4-4)-2, 41-4-4-2, 1 )
hCol( COLOR_MAIN )
hScis( 8, 8, (320-4-4) * p:GetHealth_Blood()/1000, 40-4-4 )
hScis( 8, 8, (320-4-4) * HEALTHPER, 41-4-4 )
local x, y = hXY( 10, 4 )
draw.SimpleText( "BENNY", "HUD_48", x, y, COLOR_DARK )
draw.SimpleText( CHARNAME, "HUD_48", x, y, COLOR_DARK )
hScisoff()
local slen = (320-4-4-4-4-4)
hCol( COLOR_MAIN )
hRect( 8, 44, slen*0.25, 12 )
hRect( 8 + (slen*0.25+4), 44, slen*0.25, 12 )
hRect( 8 + (slen*0.25+4)*2, 44, slen*0.25, 12 )
hRect( 8 + (slen*0.25+4)*3, 44, slen*0.25, 12 )
hRect( 8, 45, slen*0.25, 12 )
hRect( 8 + (slen*0.25+4), 45, slen*0.25, 12 )
hRect( 8 + (slen*0.25+4)*2, 45, slen*0.25, 12 )
hRect( 8 + (slen*0.25+4)*3, 45, slen*0.25, 12 )
hCol( COLOR_DARK )
hORect( 8+1, 44+1, slen*0.25 - 2, 12-2, 1 )
hORect( 8+1 + (slen*0.25+4), 44+1, slen*0.25 - 2, 12-2, 1 )
hORect( 8+1 + (slen*0.25+4)*2, 44+1, slen*0.25 - 2, 12-2, 1 )
hORect( 8+1 + (slen*0.25+4)*3, 44+1, slen*0.25 - 2, 12-2, 1 )
hORect( 8+1, 45+1, slen*0.25 - 2, 12-2, 1 )
hORect( 8+1 + (slen*0.25+4), 45+1, slen*0.25 - 2, 12-2, 1 )
hORect( 8+1 + (slen*0.25+4)*2, 45+1, slen*0.25 - 2, 12-2, 1 )
hORect( 8+1 + (slen*0.25+4)*3, 45+1, slen*0.25 - 2, 12-2, 1 )
if true then -- MP
S_Push( 0, -8 - 2 )
local targetlength = 328
local segments = 10
local gap = 2
targetlength = targetlength - gap*(segments-1)
local chunk = 1/segments
for i=1, segments do
local z = i-1
local chunk0, chunk1 = chunk*z, chunk*i
local filled = math.Remap( 0.727, chunk0, chunk1, 0, 1 )
filled = math.Clamp( filled, 0, 1 )
local a1, a2, a3, a4 = ( (targetlength/segments) * z ) + (gap*z), 0, (targetlength/segments), 8
if i == segments then a3 = math.ceil(a3) end
if filled == 1 then
hCol( COLOR_MAIN )
hRect( a1, a2, a3, a4 )
hCol( COLOR_DARK )
hORect( a1, a2, a3, a4, 1 )
elseif filled == 0 then
hCol( COLOR_DARK )
hRect( a1, a2, a3, a4 )
else
hCol( COLOR_DARK )
hRect( a1, a2, a3, a4 )
hCol( COLOR_MAIN )
hRect( a1, a2, a3*filled, a4 )
hCol( COLOR_DARK )
hORect( a1, a2, a3, a4, 1 )
end
end
local x, y = hXY( 0, -14 )
qt( "10000 / 15000", "HUD_16", x, y, COLOR_MAIN, nil, nil, COLOR_DARK )
--qt( "", "HUD_24", x+328, y, COLOR_MAIN, TEXT_ALIGN_RIGHT, nil, COLOR_DARK )
S_Pop()
end
S_Pop()
if handler then
@ -230,7 +376,7 @@ function GM:HUDPaint()
local Bw, Bh = 328, 160
S_Push( w - 20 - Bw, h - 20 - Bh )
hCol( COLOR_DARK )
hRRect( 0, 0, Bw, Bh, 8 )
hRect( 0, 0, Bw, Bh )
hCol( COLOR_MAIN )
local leng = Bw-8-8

View File

@ -107,7 +107,7 @@ else
inv[key] = true
end
else
print("TOO EARLY!!!!!!!!!!!!!!!!")
print("Asked for inventory too early!!")
end
end)
end

View File

@ -488,6 +488,34 @@ do -- Handguns
Accuracy_Decay = 5,
})
AddItem( "9mmhandgun", {
PrintName = "9mmhandgun",
Description = "undecided 9mm handgun",
Category = "pistol",
Base = "base_firearm",
Model = "models/benny/weapons/testgun.mdl",
HoldType = "handgun",
ClipSize = 17,
Delay = (60/450),
FireSound = {
"benny/weapons/glock/01.ogg",
"benny/weapons/glock/02.ogg",
"benny/weapons/glock/03.ogg",
},
MagOutSound = "benny/weapons/1911/magout.ogg",
MagInSound = "benny/weapons/1911/magin.ogg",
BoltDropSound = "benny/weapons/1911/slidedrop.ogg",
BoltPullSound = "benny/weapons/glock/cock.ogg",
Accuracy = 5/60,
BurstCount = 1,
Accuracy_Add = 0.5,
Accuracy_Reset = 0.4,
Accuracy_Decay = 5,
})
end
do -- Rifles
@ -578,7 +606,7 @@ do -- SMGs
Model = "models/benny/weapons/testrifle2.mdl",--"models/weapons/w_rif_ar556.mdl",
HoldType = "handgun",
ClipSize = 15,
ClipSize = 20,
Delay = (60/850),
FireSound = {
"benny/weapons/tmp/01.ogg",
@ -614,7 +642,7 @@ do -- SMGs
Model = "models/benny/weapons/testrifle2.mdl",--"models/weapons/w_rif_ar556.mdl",
HoldType = "handgun",
ClipSize = 15,
ClipSize = 20,
Delay = (60/750),
FireSound = {
"benny/weapons/mp5k/01.ogg",
@ -632,7 +660,7 @@ do -- SMGs
Model = "models/benny/weapons/testrifle2.mdl",--"models/weapons/w_rif_ar556.mdl",
HoldType = "handgun",
ClipSize = 16,
ClipSize = 20,
Delay = (60/1000),
FireSound = {
"benny/weapons/mac11/01.ogg",

View File

@ -26,6 +26,8 @@ AC("player_class.lua")
IN("player_class.lua")
AC("inventory.lua")
IN("inventory.lua")
AC("gamestate.lua")
IN("gamestate.lua")
AC("debugmenu.lua")
IN("debugmenu.lua")