Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Now=RealTime
- local Tag="chathud"
- local font=Tag..math.Round(CurTime())
- surface.CreateFont("Tahoma",17,700,false,false,font,true,false)
- local bigfont=Tag..'2'..math.Round(CurTime()+1)
- surface.CreateFont("Tahoma",22,700,false,false,bigfont,true,false)
- --surface.CreateFont("Tahoma",17,700,false,false,font_smooth,false,false,1)
- todraw={}
- local function DrawText(txtdata,frac,drawoffset)
- surface.SetTextPos(10,drawoffset)
- local maxtall = 0
- for k,v in pairs(txtdata) do
- if type(v) == "string" then
- local w,h=surface.GetTextSize(v)
- maxtall=maxtall<h and h or maxtall
- surface.DrawText(v)
- elseif v.r then
- surface.SetTextColor( v.r,v.g,v.b,v.a and v.a*frac or 255*frac)
- end
- end
- return maxtall
- end
- local length=2
- local startpadding=4
- local startfade=.2
- local function DoDraw(i,txtdata,start,drawoffset,big)
- local frac=((start-(Now()-length-startpadding))/length)
- local frac2=(Now()-start)/startfade
- frac=frac>1 and 1 or frac<0 and 0 or frac
- frac2=frac2>1 and 1 or frac2<0 and 0 or frac2
- frac=frac*frac2
- if frac<0 then
- table.remove(todraw,i)
- return 0
- end
- surface.SetTextColor( 255,255,255,255*frac)
- surface.SetFont(big and bigfont or font)
- local maxtall=DrawText(txtdata,frac,drawoffset)
- return maxtall+(big and -2*5 --[[whyy??]] or 2)
- end
- hook.Add("HUDPaint",Tag,function()
- --while #todraw > 5 do table.remove(todraw,1) end
- local startoffset=ScrH()*0.5
- local drawoffset=startoffset
- for i,data in pairs(todraw) do
- local txtdata=data.text
- local start=data.start
- data.off=data.off or startoffset
- data.startoff=data.startoff or Now()
- data.off=math.Approach(data.off,drawoffset,5)
- drawoffset=drawoffset-( DoDraw(i,txtdata,start,data.off,data.big) or 0)
- end
- end)
- local function AddTextNew(...)
- local big,tbl=nil,{...}
- for k,v in pairs(tbl) do
- if type(v)=="string" and v:find("!!!",1,true) then
- big=true
- break
- end
- end
- table.insert(todraw,1,{text={...},big=big,start=Now()})
- end
- _G.PrimaryChatAddText=AddTextNew
- hook.Add( "HUDShouldDraw", Tag, function ( name )
- if name == "CHudChat" then
- return false
- end
- end )
Advertisement
Add Comment
Please, Sign In to add comment