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)