Discord
Steam
/
Developers
/
3D2D Button help
Login/Join
Event Log
3D2D Button help
0 replies, posted
Search
In This Thread
Hey, I'm new to coding and I'm trying to put a button on a 3D prop, I've tried many methods and cannot get them to appear, can someone tell me what I'm doing wrong? P.S apologies if it's written a bit messy. include("shared.lua") surface.CreateFont( "vendingtitle", { font = "Arial", extended = false, size = 55, weight = 500, blursize = 0, scanlines = 0, antialias = true, underline = false, italic = false, strikeout = false, symbol = false, rotary = false, shadow = false, additive = false, outline = false, } ) surface.CreateFont( "vendinginstru", { font = "Fixedsys", extended = false, size = 20, weight = 500, blursize = 0, scanlines = 0, antialias = true, underline = false, italic = false, strikeout = false, symbol = false, rotary = false, shadow = false, additive = false, outline = false, } ) surface.CreateFont( "vendingfood", { font = "Fixedsys", extended = false, size = 30, weight = 500, blursize = 0, scanlines = 0, antialias = true, underline = false, italic = false, strikeout = false, symbol = false, rotary = false, shadow = false, additive = false, outline = false, } ) surface.CreateFont( "vendingcost", { font = "Fixedsys", extended = false, size = 20, weight = 500, blursize = 0, scanlines = 0, antialias = true, underline = false, italic = false, strikeout = false, symbol = false, rotary = false, shadow = false, additive = false, outline = false, } ) function ENT:Draw() self:DrawModel() local player = LocalPlayer() local ang = (self.Entity:GetPos() - player:GetShootPos()) local tr = util.GetPlayerTrace(player, ang) local tr = util.TraceLine(tr) local pos = self.Entity:WorldToLocal(tr.HitPos) local entPos, entAng = self:GetPos(), self:GetAngles() // get the entity's currrent position local offsetPos, offsetAng = Vector(48,0,24), Angle(0,180) // set the offset position local finalPos, finalAng = LocalToWorld(offsetPos, offsetAng, entPos, entAng) local eye = LocalPlayer():GetEyeTrace() local cursorPos = eye.HitPos local localcursorPos = self:WorldToLocal(cursorPos) local ply = LocalPlayer() local HoverColor = Color(55,55,55,255) local hpicon = Material("vendingicons/health.png") local food1icon = Material("vendingicons/energy.png") local food2icon = Material("vendingicons/melon.png") local food3icon = Material("vendingicons/hotdog.png") local food4icon = Material("vendingicons/burger.png") cam.Start3D2D(finalPos, finalAng, 0.1) --backgrounds draw.RoundedBox(0,243,-358,475,715,Color(64,64,64,255)) draw.RoundedBox(0,265,-250,432,585,Color(32,32,32,120)) draw.RoundedBox(0,265,-340,432,80,Color(32,32,32,120)) draw.RoundedBox(0,280,-185,400,80,Color(32,32,32,120)) draw.RoundedBox(0,280,-100,400,80,Color(32,32,32,120)) draw.RoundedBox(0,280,-15,400,80,Color(32,32,32,120)) draw.RoundedBox(0,280,70,400,80,Color(32,32,32,120)) draw.RoundedBox(0,390,200,175,80,Color(32,32,32,255)) -- Text Info draw.SimpleText("Vending Machine", "vendingtitle",479,-326,Color(255,255,255,255), TEXT_ALIGN_CENTER) draw.SimpleText("Cola Energy", "vendingfood",470,-175,Color(255,255,255,255), TEXT_ALIGN_CENTER) draw.SimpleText("Melon", "vendingfood",437,-90,Color(255,255,255,255), TEXT_ALIGN_CENTER) draw.SimpleText("Hotdog", "vendingfood",444,-5,Color(255,255,255,255), TEXT_ALIGN_CENTER) draw.SimpleText("Burger", "vendingfood",441,75,Color(255,255,255,255), TEXT_ALIGN_CENTER) -- HP Info draw.SimpleText("Press a button and wait for depense.", "vendinginstru",479,-227,Color(255,255,255,255), TEXT_ALIGN_CENTER) draw.SimpleText("25HP", "vendingfood",453,-139,Color(255,255,255,255), TEXT_ALIGN_CENTER) draw.SimpleText("50HP", "vendingfood",453,-53.5,Color(255,255,255,255), TEXT_ALIGN_CENTER) draw.SimpleText("75HP", "vendingfood",453,31.01,Color(255,255,255,255), TEXT_ALIGN_CENTER) draw.SimpleText("100HP", "vendingfood",460,116.5,Color(255,255,255,255), TEXT_ALIGN_CENTER) -- food1HP icon surface.SetMaterial(hpicon) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(400,-135,20,20) -- food2HP icon surface.SetMaterial(hpicon) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(400,-50,20,20) -- food3HP icon surface.SetMaterial(hpicon) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(400,35,20,20) -- food4HP icon surface.SetMaterial(hpicon) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(400,120,20,20) -- foodicon1 surface.SetMaterial(food1icon) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(270,-198,120,105) -- foodicon2 surface.SetMaterial(food2icon) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(290,-97,85,75) -- foodicon3 surface.SetMaterial(food3icon) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(300,-10,65,65) -- foodicon4 surface.SetMaterial(food4icon) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(300,77,65,65) //Buttons --food1 --x = -9.9053945541382, y = -16.994911193848, z = -9.9053945541382 local tr = LocalPlayer():GetEyeTrace().HitPos local pos = self:WorldToLocal(tr) local backcolor = Color(0, 100, 160) local invisback = Color(0, 0, 0, 0) local pos = self:WorldToLocal(tr) local isec = util.IntersectRayWithPlane( EyePos()( ply ), self:GetAngles():Forward() (EyeAngles( ply ) ), -9.9053945541382, -16.994911193848,-9.9053945541382, trace.HitNormal ) if isec then local ap = pos - isec local ab = pos - tr local ad = pos - bl local ap_ab = Dot( -9.9053945541382, -16.994911193848 ) local ab_ab = Dot( -16.994911193848, -16.994911193848 ) local ap_ad = Dot( -9.9053945541382, -9.9053945541382 ) local ad_ad = Dot( -9.9053945541382, -9.9053945541382 ) if 0 < ap_ab and ap_ab < ab_ab and 0 < ap_ad and ap_ad < ad_ad and IsLineOfSightClear( ply, isec ) then HoverColor = Color(100, 100, 100, 250) end end draw.RoundedBox(0,579,-171,82,52, Color( 255,255,255,120 )) draw.RoundedBox(0,580,-170,80,50, Color(100, 100, 100, 250)) --food2 draw.RoundedBox(0,579,-86,82,52, Color( 255,255,255,120 )) draw.RoundedBox(0,580,-85,80,50, Color( 55,55,55,255 )) --food3 draw.RoundedBox(0,579,-1,82,52, Color( 255,255,255,120 )) draw.RoundedBox(0,580,0,80,50, Color( 55,55,55,255 )) --food4 draw.RoundedBox(0,579,84,82,52, Color( 255,255,255,120 )) draw.RoundedBox(0,580,85,80,50, Color( 55,55,55,255 )) //Buy text signs + cost --food1 draw.SimpleText("$250","vendingcost",600,-165,Color(255,255,255,255)) draw.SimpleText("BUY","vendingcost",603,-142,Color(255,255,255,255)) --food2 draw.SimpleText("$500","vendingcost",600,-79,Color(255,255,255,255)) draw.SimpleText("BUY","vendingcost",603,-58,Color(255,255,255,255)) --food3 draw.SimpleText("$750","vendingcost",600,5,Color(255,255,255,255)) draw.SimpleText("BUY","vendingcost",603,26,Color(255,255,255,255)) --food4 draw.SimpleText("$1000","vendingcost",597,90,Color(255,255,255,255)) draw.SimpleText("BUY","vendingcost",603,110,Color(255,255,255,255)) cam.End3D2D() end
Sorry, you need to
Log In
to post a reply to this thread.