All pastes #144235 Raw Edit

Miscellany

public text v1 · immutable
#144235 ·published 2006-08-22 12:13 UTC
rendered paste body
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)