hey
you know when open up the team chat and type @ <massage> to type something to the admins? so the massages wont show in the chat, but you can see them thru the console
well i dont know why but i cant get my chat to read the ulx massages can you help me with that? (i marked the code that maybe related to this)
if SERVER then AddCSLuaFile() return end
surface.CreateFont( "Trebuchet21",
{
font = "Trebuchet MS",
size = 21,
weight = 300,
antialias = true,
shadow = false
})
function DrawText( text, font, x, y, col, align1, align2 )
draw.SimpleText( text, font, x, y, col, align1, align2 )
end
local chatshow = false
local history = {}
local spacing = 20
local chatmessage = ""
function textsize(t, f) local w = surface.GetTextSize(t, f); return w; end
local function SendText(text, msg)
local hist = {
Text = text,
Time = RealTime()+7,
Msg = msg
}
table.insert( history, 1, hist )
table.remove( history, 21 )
end
local y = ScrH()-145
local x = 250
hook.Add("HUDPaint", "ChatPaint", function()
for k, v in pairs( history ) do
if v.Time > RealTime() or chatshow then
DrawText(v.Text, "Trebuchet21", x+1, (y-k*spacing)+1, Color(0, 0, 0, 255), TEXT_ALIGN_LEFT)
DrawText(v.Text, "Trebuchet21", x, y-k*spacing, Color(255, 255, 255, 255), TEXT_ALIGN_LEFT)
DrawText(v.Msg, "Trebuchet21", x+1, (y-k*spacing)+1, Color(0, 0, 0, 255), TEXT_ALIGN_RIGHT)
DrawText(v.Msg, "Trebuchet21", x, y-k*spacing, Color(0, 195, 25, 255), TEXT_ALIGN_RIGHT)
else
end
end
if chatshow then
draw.RoundedBox(0, x-67, y+4, 60, 20, Color( 25, 25, 25, 255 ))
surface.SetDrawColor( 25, 25, 25, 255 )
surface.SetTexture(surface.GetTextureID("gui/gradient"))
surface.DrawTexturedRect(x+489, y+4, 100, 20)
draw.RoundedBox(0, x-9, y+4, 499, 20, Color( 25, 25, 25, 255 ))
surface.SetDrawColor( 255, 255, 255, 255 )
surface.SetTexture(surface.GetTextureID("gui/gradient"))
surface.DrawTexturedRect(x+489, y+5, 100, 18)
draw.RoundedBox(0, x-9, y+5, 498, 18, Color( 255, 255, 255, 255 ))
DrawText( "Chat>", "Trebuchet21", x-20, y+5, Color( 255, 255, 255, 255 ), TEXT_ALIGN_RIGHT )
DrawText( chatmessage, "Default", x-7, y+8, Color( 25, 25, 25, 255 ), TEXT_ALIGN_LEFT )
end
end)
hook.Add("OnPlayerChat", "PlayerChat", function( pl, text, teamtext, alive, prefixText, ulx )
if (IsValid(pl)) then
SendText(text, prefixText.."> ")
else
SendText(text, "JcChatbox>> ")
end
end)
hook.Add("ChatText", function( filter, name, text, ulx )
if (filter == 0) then
SendText(text, "JcChatbox>> ")
end
end)
hook.Add("StartChat", "StartChat", function() chatshow = true return true end)
hook.Add("FinishChat", "FinishChat", function() chatshow = false return true end)
hook.Add("ChatTextChanged", "TextChanged", function(text) chatmessage = text end)
if (SERVER) then
AddCSLuaFile()
local Tag = ""
local R = 0
local G = 0
local B = 0
function CustomChat_ChatMessage( name, String, bool, R, G, B) -- ChatMessage(rgb, name, rgb2, String)
umsg.Start( "CustomChat_ChatMsg" )
umsg.String(name)
umsg.String(String)
umsg.String(bool)
umsg.Long(R)
umsg.Long(G)
umsg.Long(B)
umsg.End()
end
concommand.Add("alert", function( ply, cmd, args)
if args[1] then // We're seeing if there are any arguments, arguments are stored on a table, so you will have to use args[index].
if ply:IsAdmin() then
CustomChat_ChatMessage( "ALERT", "> "..string.gsub(args[1], "_", " "), "" , 255, 0, 0)
else
ply:PrintMessage(HUD_PRINTCONSOLE,"You are not Admin")
Msg("--Player "..ply:Nick().." is not admin and tryed to use alert chat.\n")
end
end
end )
function CustomChat_Checker( ply, text, teamonly, prefixText )
--/*
if ply:IsUserGroup("MOD") then
Tag = "[Mod]"
R = 0
G = 255
B = 0
elseif ply:IsVIP() then
Tag = "[Vip]"
R = 255
G = 255
B = 0
elseif ply:IsSuperAdmin() then
Tag = "[SuperAdmin]"
R = 255
G = 0
B = 0
elseif ply:IsAdmin() then
Tag = "[Admin]"
R = 0
G = 255
B = 255
elseif ply:IsUserGroup("Owner") then
Tag= "[Owner]"
R = 255
G = 0
B = 255
end
--*/
/*
if ply:IsSuperAdmin() then
Tag = "[Admin]"
R = 255
G = 0
B = 0
elseif ply:IsAdmin() then
Tag = "[Mod]"
R = 0
G = 206
B = 209
elseif ply:IsUserGroup("vip") then
Tag = "[Vip]"
R = 0
G = 0
B = 255
else
Tag = "[User]"
R = 238
G = 221
B = 130
end
*/
CustomChat_ChatMessage(prefixText, "> "..text, Tag, R, G, B)
return ""
end
hook.Add("PlayerSay", "WordCheck", CustomChat_Checker)
------------------------------------------
else --- client code --
------------------------------------------
usermessage.Hook("CustomChat_ChatMsg", function( um, ply )
local name = um:ReadString()
local String = um:ReadString()
local Tag = um:ReadString()
local R = um:ReadLong()
local G = um:ReadLong()
local B = um:ReadLong()
chat.AddText(Color(R, G, B, 255), Tag..name, Color(255, 255, 255, 255), String)
end)
end-- final end
-- Admin > flamedog: words
-- SAdmin > flamedog: words
-- Console > words