OutputChatBox: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
(Replaced content with "cs:outputChatBox")
Tag: Replaced
Line 1: Line 1:
{{Server client function}}
{{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.}}
__NOTOC__
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:
<syntaxhighlight lang="lua">
outputChatBox ( "#FF0000Hello #00FF00World", root, 255, 255, 255, true )
</syntaxhighlight>
This will display as: '''<span style='color:red;'>Hello</span> <span style='color:green'>World</span> '''
==Syntax==
<section name="Server" class="server" show="true">
<syntaxhighlight lang="lua">bool outputChatBox ( string text [, table/element visibleTo = root, int r = 231, int g = 217, int b = 176, bool colorCoded = false ] )</syntaxhighlight>
{{OOP||[[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==
{{OptionalArg}}
*'''visibleTo:''' This specifies who the chat is visible to. Any players in this element will see the chat message. See [[visibility]].
{{New items|5.0157|1.5.7-9.20391|
*'''visibleTo:''' Can also be a table of players or team.}}
*'''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'.
</section>
<section name="Client" class="client" show="true">
<syntaxhighlight lang="lua">bool outputChatBox ( string text [, int r = 231, int g = 217, int b = 176, bool colorCoded = false ] )</syntaxhighlight>
==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==
{{OptionalArg}}
*'''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'.
</section>
==Returns==
Returns ''true'' if the message was displayed successfully. Returns ''false'' if invalid arguments are specified.
==Example==
<section name="Server" class="server" show="true">
'''Example 1:''' This example displays a chat message to all users.
<syntaxhighlight lang="lua">
x = 5
y = 10 
-- Displays the message
outputChatBox ( "I have " .. x .. " apples and " .. y .. " oranges." )
</syntaxhighlight>
'''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.
<syntaxhighlight lang="lua">
outputChatBox ( "Red #FFFFFFWhite", root, 255, 0, 0, true )
</syntaxhighlight>
'''Example 3:''' This example allows for coloured chat, according to a player's nametag.  This makes use of colour coded outputs.
<syntaxhighlight lang="lua">
function colouredChat ( message, theType )
    if theType == 0 then --if its normal chat (not /me or teamchat) then
        cancelEvent() --prevent MTA from outputting chat
        local 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, root, r, g, b, true )
    end
end
addEventHandler("onPlayerChat", root, colouredChat)
</syntaxhighlight>
'''Example 4:''' This example displays a chat message to a single user called ''someguy''.
<syntaxhighlight lang="lua">
-- Find the player element for the player called 'someguy'
local 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
</syntaxhighlight>
'''Example 5:''' These two functions can speed up typing, and display a message when a player Joins.
<syntaxhighlight lang="lua">
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, root)
end
function onJoin()
    servertalkprivate("Welcome to My Server", source)
end
addEventHandler("onPlayerJoin", root, onJoin)
</syntaxhighlight>
'''Example 6:''' This can be used to display a message when the player joins and sets its armor to 100.
<syntaxhighlight lang="lua">
function onJoin()
    setPedArmor(source, 100)
    outputChatBox("Welcome ".. getPlayerName(source) .." To The Server", source, 0, 154, 255)
end
addEventHandler("onPlayerJoin", root, onJoin)
</syntaxhighlight>
'''Example 7:''' This code will output an message to nearby players.
<syntaxhighlight lang="lua">
function displayLocalMessage(player, cmd)
    if player then -- Check if command was triggered by player
        local x, y, z = getElementPosition(player) -- Get player position
        local nearbyPlayers = getElementsWithinRange(x, y, z, 10, "player") -- Retrieve nearby players in range of 10
        outputChatBox("Local message :)!", nearbyPlayers) -- Output our message
    end
end
addCommandHandler("localmessage", displayLocalMessage)
</syntaxhighlight>
'''Example 8:''' This example displays your nickname and the amount of money.
<syntaxhighlight lang="lua">
function player_info(player, cmd)
    outputChatBox("Name: #FFFFFF"..getPlayerName(player), player, 255, 0, 0, true)
    outputChatBox("Money: #FFFFFF"..getPlayerMoney(player).."#00FF00$", player, 255, 0, 0, true)
end
addCommandHandler("info", player_info)
</syntaxhighlight>
</section>
==See Also==
{{Server functions}}
[[cs:outputChatBox]]
[[cs:outputChatBox]]
[[pl:outputChatBox]]
[[ru:outputChatBox]]
[[pt-br:OutputChatBox]]

Revision as of 23:37, 21 October 2024