Hello. I have a lua autorun file that is clientside. But I need people when they join the server to download it. How can I do this?
If its easier can I incorporate it into DarkRP? I tried adding it into cl_init but that didn't work.
Thanks.
Go to your garrysmod/garrysmod/autorun/server and make whatever.lua
Then copy this:
[lua]if SERVER then
AddCSLuaFile( "file.lua" )[/lua]
or if it's a object, etc
[lua]if SERVER then
resource.AddFile("material/model/lolwut.mdl")[/lua]
Thanks, I was trying things like resource.addfile and stuff :P
[editline]23rd January 2012[/editline]
Well. I got it to show up on the hud finally (Its a speedo off gmod.org that I edited with some extra text) but funny thing is that it doesn't actually read the speed. It just stays on zero. Here's the code. I'm guessing its something to do with serverside/clientside functions.
[CODE]
surface.CreateFont( "lcd", 36, 2, 0, 0, "lcd36" )
hook.Add("HUDPaint","espeedometer.paint",function()
local conv = 10.936133
local max = 114
local speed = LocalPlayer()
if LocalPlayer():IsValid() and LocalPlayer():InVehicle() then
speed = speed:GetVelocity():Length()/conv
else
return
end
//speed = CurTime()*50%(max+30)
if speed < 50 then
draw.DrawText("You're below the speed limit!", "ScoreboardText", ScrW() / 2 - 70, ScrH() - 63, Color(255, 255, 0, 255),TEXT_ALIGN_TOP)
elseif (speed < 60 && speed > 50) then
draw.DrawText("You're at the speed limit!", "ScoreboardText", ScrW() / 2 - 70, ScrH() - 63, Color(0, 255, 0, 255),TEXT_ALIGN_TOP)
else
draw.DrawText("You're above the speed limit!", "ScoreboardText", ScrW() / 2 - 70, ScrH() - 63, Color(255, 0, 0, 255),TEXT_ALIGN_TOP)
end
draw.NoTexture()
surface.SetDrawColor(0,0,0,128)
local a = Vector(ScrW()*.25,ScrH(),1)
local s = math.ceil(ScrW()/12/8)*8
s = s
surface.DrawPoly{
{
x = a.x - s*.5,
y = a.y - s*.125,
},
{
x = a.x + s*.2,
y = a.y - s *.3,
},
{
x = a.x + s*.5,
y = a.y - s *.3,
},
{
x = a.x + s*.5,
y = a.y,
},
{
x = a.x - s*.5,
y = a.y,
},
}
local alpha = 32
for i = 0,math.min((speed/max)*(s/6-1),s/6-1) do
if i < s/48 then
surface.SetDrawColor(0,0,255,alpha)
elseif i < s / 10 then
surface.SetDrawColor(0,255,0,alpha)
elseif i < s / 7 then
surface.SetDrawColor(255,255,0,alpha)
else
surface.SetDrawColor(255,0,0,alpha)
end
//surface.DrawRect(a.x-s*.5+6*i+1,a.y-s,4,s)
/*
.3-.125
.175
s*.7
*/
local x = s*.5+6*i
local c = 1-s
local v = s/128
local b = -s/32
if i < s/8.5-1 then
surface.DrawPoly{
{
x = a.x + c+x,
y = a.y - x*.25+v,
},
{
x = a.x + c+x+4,
y = a.y - (x+4)*.25+v,
},
{
x = a.x + c+x+4,
y = a.y+b,
},
{
x = a.x + c+x,
y = a.y+b,
},
}
else
surface.DrawPoly{
{
x = a.x + c+x,
y = a.y - s*.3+v,
},
{
x = a.x + c+x+4,
y = a.y - s*.3+v,
},
{
x = a.x + c+x+4,
y = a.y+b,
},
{
x = a.x + c+x,
y = a.y+b,
},
}
end
end
local speedstr = tostring(math.Round(speed*10)/10)
if string.sub(speedstr,-2,-2) ~= "." then
speedstr = speedstr .. ".0"
end
draw.DrawText(speedstr,"lcd36",a.x+s*.5-8,a.y-36,Color(255,255,255,200),2)
end)[/CODE]
Change:
[lua]
local speed = LocalPlayer()
[/lua]
To
[lua]
local speed = LocalPlayer():GetVelocity();
[/lua]
Thanks but now that just errors in the console. Doesnt even show up. Something about not knowing what Getvelocity means
[editline]24th January 2012[/editline]
This is the error its creating.
ERROR: Hook 'espeedometer.paint' Failed: [lua\autorun\client\espeedometer.lua:16] attempt to call method 'GetVelocity' (a nil value)
Anyone?
[QUOTE=mil0001;34380315]Anyone?[/QUOTE]
It's because Chessnut failed to realize that you were calling "speed" perfectly fine. You defined it as an entity, and checked for its velocity. What he has suggested would cause your code, if you only changed the bit he told you to change, to take the velocity of a velocity.
I don't particularly know what's wrong with your code, but I'll try (and maybe someone else will get it before me) to help you out.
Thanks.
Sorry, you need to Log In to post a reply to this thread.