IRC = {}
IRC.Channel = {}
IRC.Channels = {}
IRC.Channels["General"] = {}
IRC.Channels["General"].Text = 0
function DefaultChannel(Player)
local Steam = _PlayerInfo(Player, "networkid")
local SteamString = tostring(Steam)
IRC.Channel[SteamString] = "None"
end
function eventPlayerInitialSpawn(Player)
local Steam = _PlayerInfo(Player, "networkid")
local SteamString = tostring(Steam)
DefaultChannel(Player)
end
function ShowChannel(Player)
local Steam = _PlayerInfo(Player, "networkid")
local SteamString = tostring(Steam)
_GModRect_Start("gmod/white")
_GModRect_SetPos(0, 0.4, 1, 0.4)
_GModRect_SetColor(0, 0, 0, 150)
_GModRect_SetTime(99999, 0, 0)
_GModRect_Send(Player, 9890)
_GModText_Start("ChatFont")
_GModText_SetPos(0.01, 0.41)
_GModText_SetTime(99999, 0, 0)
_GModText_SetText("Channel: "..IRC.Channel[SteamString].." (Press F4 to leave and include !GB in your text to speak globally).")
_GModText_SetColor( 255, 215, 0, 255 )
_GModText_Send(Player, 9891)
end
function eventPlayerSay(Player, Text, Team)
local Steam = _PlayerInfo(Player, "networkid")
local SteamString = tostring(Steam)
if string.find(Text, "!GB") then
return Text
end
if IRC.Channel[SteamString] ~= "None" then
for I = 1, _MaxPlayers() do
local iSteam = _PlayerInfo(I, "networkid")
local iSteamString = tostring(iSteam)
if _PlayerInfo(I, "connected") == true then
if IRC.Channel[iSteamString] == IRC.Channel[SteamString] then
IRC.Channels[IRC.Channel[SteamString]].Text = IRC.Channels[IRC.Channel[SteamString]].Text + 1
if IRC.Channels[IRC.Channel[SteamString]].Text == 12 then
for B = 9892, 9910 do
_GModText_Hide(I, B)
IRC.Channels[IRC.Channel[SteamString]].Text = 1
end
end
_GModText_Start("ChatFont")
_GModText_SetPos(0.01, 0.41 + 0.03 * IRC.Channels[IRC.Channel[SteamString]].Text)
_GModText_SetTime(99999, 0, 0)
_GModText_SetText(Text)
if _PlayerInfo(Player, "team") == TEAM_BLUE then
_GModText_SetColor( 100, 180, 255, 255 )
elseif _PlayerInfo(Player, "team") == TEAM_GREEN then
_GModText_SetColor( 135, 245, 125, 255 )
elseif _PlayerInfo(Player, "team") == TEAM_YELLOW then
_GModText_SetColor( 255, 215, 0, 255 )
elseif _PlayerInfo(Player, "team") == TEAM_RED then
_GModText_SetColor( 255, 60, 65, 255 )
else
_GModText_SetColor( 255, 255, 255, 255 )
end
_GModText_Send(I, 9892 + IRC.Channels[IRC.Channel[SteamString]].Text)
return ""
end
end
end
else
return Text
end
end
function JoinChannel(Player, Args)
local Steam = _PlayerInfo(Player, "networkid")
local SteamString = tostring(Steam)
if IRC.Channels[Args] ~= nil then
IRC.Channel[SteamString] = Args
ShowChannel(Player)
for I = 1, _MaxPlayers() do
local iSteam = _PlayerInfo(I, "networkid")
local iSteamString = tostring(iSteam)
if IRC.Channel[iSteamString] == IRC.Channel[SteamString] then
IRC.Channels[IRC.Channel[SteamString]].Text = IRC.Channels[IRC.Channel[SteamString]].Text + 1
_GModText_Start("ChatFont")
_GModText_SetPos(0.01, 0.41 + 0.03 * IRC.Channels[IRC.Channel[SteamString]].Text)
_GModText_SetTime(99999, 0, 0)
_GModText_SetText(_PlayerInfo(Player, "name").." has joined the channel!")
_GModText_SetColor( 135, 245, 125, 255 )
_GModText_Send(I, 9892 + IRC.Channels[IRC.Channel[SteamString]].Text)
end
end
end
end
CONCOMMAND("Channel", JoinChannel)
function LeaveChannel(Player, Args)
local Steam = _PlayerInfo(Player, "networkid")
local SteamString = tostring(Steam)
if IRC.Channel[SteamString] ~= "None" then
for I = 1, _MaxPlayers() do
local iSteam = _PlayerInfo(I, "networkid")
local iSteamString = tostring(iSteam)
if IRC.Channel[iSteamString] == IRC.Channel[SteamString] then
IRC.Channels[IRC.Channel[SteamString]].Text = IRC.Channels[IRC.Channel[SteamString]].Text + 1
_GModText_Start("ChatFont")
_GModText_SetPos(0.01, 0.41 + 0.03 * IRC.Channels[IRC.Channel[SteamString]].Text)
_GModText_SetTime(99999, 0, 0)
_GModText_SetText(_PlayerInfo(Player, "name").." has left the channel!")
_GModText_SetColor( 255, 60, 65, 255 )
_GModText_Send(I, 9892 + IRC.Channels[IRC.Channel[SteamString]].Text)
end
end
for B = 9890, 9902 do
_GModText_Hide(Player, B)
IRC.Channels[IRC.Channel[SteamString]].Text = 0
end
IRC.Channel[SteamString] = "None"
else
_PrintMessage(Player, 3, "You are not in a channel!")
end
end
function onShowSpare2(Player)
local Steam = _PlayerInfo(Player, "networkid")
local SteamString = tostring(Steam)
if IRC.Channel[SteamString] ~= "None" then
for I = 1, _MaxPlayers() do
local iSteam = _PlayerInfo(I, "networkid")
local iSteamString = tostring(iSteam)
if IRC.Channel[iSteamString] == IRC.Channel[SteamString] then
IRC.Channels[IRC.Channel[SteamString]].Text = IRC.Channels[IRC.Channel[SteamString]].Text + 1
_GModText_Start("ChatFont")
_GModText_SetPos(0.01, 0.41 + 0.03 * IRC.Channels[IRC.Channel[SteamString]].Text)
_GModText_SetTime(99999, 0, 0)
_GModText_SetText(_PlayerInfo(Player, "name").." has left the channel!")
_GModText_SetColor( 255, 60, 65, 255 )
_GModText_Send(I, 9892 + IRC.Channels[IRC.Channel[SteamString]].Text)
end
end
for B = 9890, 9902 do
_GModText_Hide(Player, B)
IRC.Channels[IRC.Channel[SteamString]].Text = 0
end
IRC.Channel[SteamString] = "None"
else
_PrintMessage(Player, 3, "You are not in a channel!")
end
end
CONCOMMAND("LeaveChannel", LeaveChannel)