OutputChatBox

From Multi Theft Auto: Wiki
Revision as of 06:24, 21 June 2020 by Srslyyyy (talk | contribs) (Added a note about visibleTo accepting table of players and team element; https://github.com/multitheftauto/mtasa-blue/commit/d2c53c73e327ade55862043af9bd53da64dd351a)
Jump to navigation Jump to search

[[{{{image}}}|link=|]] Note: Avoid outputting text to the chatbox that isn't actually chat, as this can be annoying for players. Output information and status messages to the HUD.
[[{{{image}}}|link=|]] Note: From version r20391 onwards visibleTo accepts table of players & team element.

This outputs the specified text string to the chatbox. It can be specified as a message to certain player(s) or all players.

It can optionally allow you to embed color changes into the string by setting the colorCoded boolean to true. This allows:

outputChatBox ( "#FF0000Hello #00FF00World", getRootElement(), 255, 255, 255, true )

This will display as: Hello World

Syntax

Click to collapse [-]
Server
bool outputChatBox ( string text [, element visibleTo = getRootElement(), int r = 231, int g = 217, int b = 176, bool colorCoded = false ] )

OOP Syntax Help! I don't understand this!

Method: player:outputChat(...)


Required Arguments

  • text: The text string that you wish to send to the chat window. If more than 256 characters it will not be showed in chat.

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • visibleTo: This specifies who the chat is visible to. Any players in this element will see the chat message. See visibility.
  • r: The amount of red in the color of the text. Default value is 231.
  • g: The amount of green in the color of the text. Default value is 217.
  • b: The amount of blue in the color of the text. Default value is 176.
  • colorCoded: A boolean value determining whether or not '#RRGGBB' tags should be used.

Note: The #RRGGBB format must contain capital letters a-f is not acceptable but A-F is. Default RGB values in this format are: '#E7D9B0'.

Click to collapse [-]
Client
bool outputChatBox ( string text [, int r = 231, int g = 217, int b = 176, bool colorCoded = false ] )

Required Arguments

  • text: The text string that you wish to send to the chat window. If more than 256 characters it will not be showed in chat.

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • r: The amount of red in the color of the text. Default value is 231.
  • g: The amount of green in the color of the text. Default value is 217.
  • b: The amount of blue in the color of the text. Default value is 176.
  • colorCoded: A boolean value determining whether or not '#RRGGBB' tags should be used.

Note: The #RRGGBB format must contain capital letters a-f is not acceptable but A-F is. Default RGB values in this format are: '#E7D9B0'.

Returns

Returns true if the message was displayed successfully. Returns false if invalid arguments are specified.

Example

Click to collapse [-]
Server

Example 1: This example displays a chat message to all users.

x = 5
y = 10  
-- Displays the message
outputChatBox ( "I have " .. x .. " apples and " .. y .. " oranges." )

Example 2: This example outputs a simple colour coded message, "Red White", where the 'White' is in white colour, and 'Red' is in a red colour.

 outputChatBox ( "Red #FFFFFFWhite", getRootElement(), 255, 0, 0, true )

Example 3: This example allows for coloured chat, according to a player's nametag. This makes use of colour coded outputs.

function colouredChat ( message, theType )
	if theType == 0 then --if its normal chat (not /me or teamchat) then
		cancelEvent() --prevent MTA from outputting chat
		message = string.gsub(message, "#%x%x%x%x%x%x", "") --remove any hex tags in a player's chat to prevent custom colours by using lua's string.gsub
		local r,g,b = getPlayerNametagColor ( source ) --get the player's nametag colour
		local chatterName = getPlayerName ( source ) --get his name
		--output a message with the name as his nametag colour, and the rest in white.
		outputChatBox ( chatterName..":#FFFFFF "..message, getRootElement(), r, g, b, true )
	end
end
addEventHandler("onPlayerChat", getRootElement(), colouredChat)

Example 4: This example displays a chat message to a single user called someguy.

-- Find the player element for the player called 'someguy'
myPlayer = getPlayerFromName ( "someguy" )
-- If a player was found called 'someguy' then...
if ( myPlayer ~= false ) then
    x = 5
    y = 10
    -- Display the message
    outputChatBox ( "I have " .. x .. " apples and " .. y .. " oranges.", myPlayer )
end

Example 5: These two functions can speed up typing, and display a message when a player Joins.

local msg_red,msg_green,msg_blue = 255,255,0

function servertalkprivate(message, sendto)
        --Talk to one client only
	outputChatBox(tostring(message), sendto, msg_red, msg_green, msg_blue, true)
end

function servertalk(message)
        --Talk to everyone
	servertalkprivate(message, getRootElement())
end

function onJoin()
	servertalkprivate("Welcome to My Server", source)
end

addEventHandler("onPlayerJoin",getRootElement(),onJoin)

Example 6: This can be used to display a message when the player joins and sets its armor to 100.

function onJoin()
         setPedArmor(source, 100)
         local playerName = getPlayerName(source)
         outputChatBox("Welcome ".. playerName .." To The Server", source, 0, 154, 255)
end
addEventHandler("onPlayerJoin", root, onJoin)

See Also