Radar Gun

I’m trying to fix up this radar gun I found on garrysmod.org (http://www.garrysmod.org/downloads/?a=view&id=111797 this one)

The problem is it displays the speed to the entire server, and its very inaccurate. I’ve modified it a bit, but I can’t figure out how to get it to display client side only.

I’ve been working on this for a few hours trying different things. When I try to add the init.lua portion to cl_init.lua part i get this error.



[ERROR] addons/darkrpmodification-master/lua/weapons/radargun/cl_init.lua:8: Tried to use invalid object (type IPhysicsObject) (Object was NULL or not of the right type)
  1. GetVelocity - [C]:-1
   2. unknown - addons/darkrpmodification-master/lua/weapons/radargun/cl_init.lua:8


init.lua
[lua]
AddCSLuaFile(“cl_init.lua”)
AddCSLuaFile(“shared.lua”)
include(‘shared.lua’)

SWEP.ViewModel = “models/weapons/v_RPG.mdl”
SWEP.WorldModel = “models/Weapons/w_IRifle.mdl”

function SWEP:PrimaryAttack()
self.Weapon:EmitSound(“npc/combine_gunship/gunship_ping_search.wav”)
local tr = util.GetPlayerTrace(self.Owner)
local Trace = util.TraceLine(tr)
if Trace.HitNonWorld then
TargetEnt = Trace.Entity:GetPhysicsObject()
MPH = 23.392857142857142857142857142857
local X = math.abs(TargetEnt:GetVelocity().x) / MPH

local Y = math.abs(TargetEnt:GetVelocity().y) / MPH

local Z = math.abs(TargetEnt:GetVelocity().z) / MPH

Speed = X + Y + Z
if Speed - math.abs(math.ceil(Speed)) < math.abs(math.floor(Speed)) then
Speed = math.ceil(Speed)
else
Speed = math.floor(Speed)
end

–PrintMessage(HUD_PRINTTALK ,“Object speed is: “…tostring(math.floor(X + Y + Z))…” MPH” )
end
end

function SWEP:SecondaryAttack()
end
[/lua]

cl_init.lua
[lua]
include(“shared.lua”);
include(“init.lua”);
SWEP.PrintName = “Radar Gun”
SWEP.Slot = 0
SWEP.SlotPos = 6
SWEP.DrawAmmo = false
SWEP.DrawCrosshair = true

print(“Object speed is: “…tostring(math.floor(X + Y + Z))…” MPH”) --I added in attempt to fix it.
[/lua]

shared.lua
[lua]
SWEP.Author = “Fatman55”
SWEP.Contact = “Fatman55 At Facepunch”
SWEP.Purpose = “To check if you are speeding”
SWEP.Instructions = “Fire to check speed”
SWEP.Spawnable = true;
SWEP.AdminSpawnable = true;
SWEP.Category = “Custom”

SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = “none”

SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = “none”
[/lua]

Check if the physics object is valid and print the speed to self.Owner