summaryrefslogtreecommitdiff
path: root/gamemode/cl_targetid.lua
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/cl_targetid.lua')
-rw-r--r--gamemode/cl_targetid.lua135
1 files changed, 135 insertions, 0 deletions
diff --git a/gamemode/cl_targetid.lua b/gamemode/cl_targetid.lua
new file mode 100644
index 0000000..0a69c81
--- /dev/null
+++ b/gamemode/cl_targetid.lua
@@ -0,0 +1,135 @@
+
+TargetedEntity = nil
+
+local TargetedName = nil
+local TargetedTime = 0
+local TargetedDist = Vector(0,0,0)
+
+ValidTargetEnts = { "prop_physics", "sent_oxygen", "sent_fuel_diesel", "sent_fuel_gas", "sent_propane_tank", "sent_propane_canister", "sent_barrel_radioactive", "sent_barrel_biohazard" }
+
+function GM:GetEntityID( ent )
+
+ if table.HasValue( ValidTargetEnts, ent:GetClass() ) then
+
+ local tbl = item.GetByClass( ent:GetClass() )
+
+ if tbl then
+
+ TargetedName = tbl.Name
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, TargetedEntity:OBBCenter():Distance( TargetedEntity:OBBMaxs() ) )
+
+ else
+
+ tbl = item.GetByModel( ent:GetModel() )
+
+ if tbl then
+
+ TargetedName = tbl.Name
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, TargetedEntity:OBBCenter():Distance( TargetedEntity:OBBMaxs() ) )
+
+ end
+
+ end
+
+ elseif ent:GetClass() == "sent_droppedgun" then
+
+ local tbl = item.GetByModel( ent:GetModel() )
+
+ if tbl then
+
+ TargetedName = tbl.Name
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, 10 )
+
+ end
+
+ elseif ent:GetClass() == "sent_lootbag" then
+
+ TargetedName = "Loot"
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, 10 )
+
+ elseif ent:GetClass() == "sent_cash" then
+
+ TargetedName = ent:GetNWInt( "Cash", 10 ) .. " " .. GAMEMODE.CurrencyName .. "s"
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, 5 )
+
+ elseif ent:GetClass() == "sent_antidote" then
+
+ TargetedName = "Antidote Crate"
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, 15 )
+
+ elseif ent:GetClass() == "sent_supplycrate" then
+
+ TargetedName = "Supply Crate"
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, 15 )
+
+ elseif ent:GetClass() == "sent_bonuscrate" then
+
+ TargetedName = "Weapon Cache"
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, 25 )
+
+ elseif ent:GetClass() == "npc_scientist" then
+
+ TargetedName = "Field Researcher"
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, 40 )
+
+ elseif ent:IsPlayer() and ent:Team() == TEAM_ARMY then
+
+ TargetedName = ent:Name()
+ TargetedEntity = ent
+ TargetedDist = Vector( 0, 0, 35 )
+
+ end
+
+ if IsValid( TargetedEntity ) then
+
+ TargetedTime = CurTime() + 5
+
+ end
+
+end
+
+function GM:HUDTraces()
+
+ local tr = util.TraceLine( util.GetPlayerTrace( LocalPlayer() ) )
+
+ GAMEMODE.LastTraceEnt = tr.Entity
+
+ if IsValid( GAMEMODE.LastTraceEnt ) and GAMEMODE.LastTraceEnt:GetPos():Distance( LocalPlayer():GetPos() ) < 800 then
+
+ GAMEMODE:GetEntityID( GAMEMODE.LastTraceEnt )
+
+ end
+
+end
+
+function GM:HUDDrawTargetID()
+
+ if not IsValid( LocalPlayer() ) then return end
+
+ if not LocalPlayer():Alive() or LocalPlayer():Team() == TEAM_ZOMBIES then return end
+
+ if IsValid( TargetedEntity ) and TargetedTime > CurTime() then
+
+ local worldpos = TargetedEntity:LocalToWorld( TargetedEntity:OBBCenter() ) + TargetedDist
+ local pos = ( worldpos ):ToScreen()
+
+ //print( TargetedName .. " " .. tostring(TargetedDist) .. tostring(pos.visible) .. " - " .. pos.x .. " n " .. pos.y )
+
+ if pos.visible then
+
+ draw.SimpleText( TargetedName or "Error", "AmmoFontSmall", pos.x, pos.y, Color( 80, 150, 255 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
+
+ end
+
+ end
+
+end