1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
local MChatTab = {}
local TextCol = Color(255,255,255,255)
local TextCol2 = Color(200,50,50,255)
local TextCol3 = Color(160,200,240,255)
local x = 20
local y = ScrH() - 300
local d = {}
CHAT_PAN = nil
hook.Add("Initialize","ChatboxSpawn",function()
CHAT_PAN = vgui.Create("MBFrame")
CHAT_PAN:SetPos(x,y)
CHAT_PAN:SetSize(400,200)
CHAT_PAN:SetTitle("ChatBawx")
CHAT_PAN:SetVisible(false)
CHAT_PAN:ShowCloseButton(false)
CHAT_TEXT = vgui.Create("MBPanelList")
CHAT_TEXT:SetPos( x+5,y+25 )
CHAT_TEXT:SetSize( 390, 150 )
CHAT_TEXT:SetSpacing( 1 )
CHAT_TEXT:EnableHorizontal( false )
CHAT_TEXT:EnableVerticalScrollbar( true )
CHAT_TEXT:SetLimit(30)
CHAT_TEXT:SetMouseInputEnabled(false)
CHAT_PAN.Typer = vgui.Create("DTextEntry",CHAT_PAN)
CHAT_PAN.Typer:SetPos(5,175)
CHAT_PAN.Typer:SetSize(370,20)
CHAT_PAN.Typer:SetText("Say: ")
end)
function GM:SetEnableMawChat(bool)
self.UseMawChat = bool
if (!bool) then CHAT_PAN:SetVisible(false) CHAT_TEXT:SetVisible(false)
else CHAT_TEXT:SetVisible(true) end
end
function GM:StartChat()
if (!self.UseMawChat) then return false end
if (!CHAT_PAN) then return end
CHAT_TEXT:SetMouseInputEnabled(true)
CHAT_PAN:SetVisible(true)
return true
end
function GM:FinishChat()
if (!self.UseMawChat) then return end
if (!CHAT_PAN) then return end
CHAT_TEXT:SetMouseInputEnabled(false)
CHAT_PAN:SetVisible(false)
end
function GM:ChatTextChanged(text)
if (!self.UseMawChat) then return end
if (!CHAT_PAN) then return end
CHAT_PAN.Typer:SetText("Say: "..text)
end
function IsChatOpen()
return (CHAT_PAN and CHAT_PAN:IsVisible())
end
local function GenerateText(tab)
if (type(tab):lower() != "table") then return end
local a = vgui.Create("MBLabel")
a:SetSize(CHAT_TEXT:GetWide()-5,1)
for k,v in pairs(tab) do a:AddText(v[1],v[2],v[3]) end
a:SetupLines() --You need to call this AFTER adding the text...
CHAT_TEXT:AddItem(a)
CHAT_TEXT:InvalidateLayout(true)
CHAT_TEXT:AddVScroll(40)
end
function GM:OnPlayerChat( pl , text , teamtext , dead )
if (!self.UseMawChat) then return end
if (!IsValid(pl)) then return end --This function is now getting called when console talks.. odd...
local dat = {
{
"",
"MBChatFont_Tag",
MAIN_GREENCOLOR,
},
{
pl:Nick()..": ",
"MBChatFont",
MAIN_YELLOWCOLOR,
},
{
text,
"MBChatFont",
TextCol,
},
}
if (text:lower() == ":awesome:") then pl.FaceTime = CurTime()+20 end
if (text:lower() == "/clearchat" and pl == LocalPlayer()) then CHAT_TEXT:Clear(true) CHAT_TEXT:InvalidateLayout() return end
if (teamtext) then dat[1][1] = "(Team)"
elseif (dead) then dat[1][1] = "(Dead)" dat[1][3] = TextCol2
elseif (pl:IsAdmin()) then dat[1][1] = "(Admin)" dat[1][3] = TextCol2
else table.remove(dat,1) end
chat.AddText(MAIN_YELLOWCOLOR,pl:Nick()..": ",TextCol,text)
GenerateText(dat)
end
function GM:ChatText( int , name , text )
if (!self.UseMawChat) then return end
if (int == 0) then
local dat = {
{
"God: ",
"MBChatFont",
TextCol3,
},
{
text,
"MBChatFont",
TextCol,
},
}
chat.AddText(MAIN_COLOR,"Game: ",TextCol,text)
GenerateText(dat)
end
end
|