OutputChatBox: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(17 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{Server client function}}
{{Server client function}}
{{Note_box|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.}}
{{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__
__NOTOC__
This outputs the specified text string to the chatbox. It can be specified as a message to certain player(s) or all players.
This outputs the specified text string to the chatbox. It can be specified as a message to certain player(s) or all players.
Line 6: Line 6:
It can optionally allow you to embed color changes into the string by setting the colorCoded boolean to true. This allows:  
It can optionally allow you to embed color changes into the string by setting the colorCoded boolean to true. This allows:  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
outputChatBox ( "#FF0000Hello #00FF00Enix", getRootElement(), 255, 255, 255, true )
outputChatBox ( "#FF0000Hello #00FF00World", root, 255, 255, 255, true )
</syntaxhighlight>
</syntaxhighlight>
This will display as: '''<span style='color:red;'>Hello</span> <span style='color:green'>Enix</span> '''
This will display as: '''<span style='color:red;'>Hello</span> <span style='color:green'>World</span> '''


==Syntax==
==Syntax==
<section name="Server" class="server" show="true">
<section name="Server" class="server" show="true">
<syntaxhighlight lang="lua">bool outputChatBox ( string text [, element visibleTo = getRootElement(), int r = 231, int g = 217, int b = 176, bool colorCoded = false ] )</syntaxhighlight>
<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}}
{{OOP||[[player]]:outputChat}}
==Required Arguments==
==Required Arguments==
Line 20: Line 20:
{{OptionalArg}}
{{OptionalArg}}
*'''visibleTo:''' This specifies who the chat is visible to. Any players in this element will see the chat message. See [[visibility]].
*'''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.
*'''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.
*'''g:''' The amount of green in the color of the text. Default value is 217.
Line 57: Line 59:
'''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.
'''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">
<syntaxhighlight lang="lua">
  outputChatBox ( "Red #FFFFFFWhite", getRootElement(), 255, 0, 0, true )
  outputChatBox ( "Red #FFFFFFWhite", root, 255, 0, 0, true )
</syntaxhighlight>
</syntaxhighlight>


Line 63: Line 65:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function colouredChat ( message, theType )
function colouredChat ( message, theType )
if theType == 0 then --if its normal chat (not /me or teamchat) then
    if theType == 0 then --if its normal chat (not /me or teamchat) then
cancelEvent() --prevent MTA from outputting chat
        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 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 r, g, b = getPlayerNametagColor ( source ) --get the player's nametag colour
local chatterName = getPlayerName ( source ) --get his name
        local chatterName = getPlayerName ( source ) --get his name
--output a message with the name as his nametag colour, and the rest in white.
        --output a message with the name as his nametag colour, and the rest in white.
outputChatBox ( chatterName..":#FFFFFF "..message, getRootElement(), r, g, b, true )
        outputChatBox ( chatterName..":#FFFFFF "..message, root, r, g, b, true )
end
    end
end
end
addEventHandler("onPlayerChat", getRootElement(), colouredChat)
addEventHandler("onPlayerChat", root, colouredChat)
</syntaxhighlight>
</syntaxhighlight>


Line 78: Line 80:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
-- Find the player element for the player called 'someguy'
-- Find the player element for the player called 'someguy'
myPlayer = getPlayerFromName ( "someguy" )
local myPlayer = getPlayerFromName ( "someguy" )
-- If a player was found called 'someguy' then...
-- If a player was found called 'someguy' then...
if ( myPlayer ~= false ) then
if ( myPlayer ~= false ) then
Line 98: Line 100:


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


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


addEventHandler("onPlayerJoin",getRootElement(),onJoin)
addEventHandler("onPlayerJoin", root, onJoin)
</syntaxhighlight>
</syntaxhighlight>


Line 112: Line 114:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function onJoin()
function onJoin()
        setPedArmor(source, 100)
    setPedArmor(source, 100)
        local playerName = getPlayerName(source)
    outputChatBox("Welcome ".. getPlayerName(source) .." To The Server", source, 0, 154, 255)
        outputChatBox("Welcome ".. playerName .." To The Server", source, 0, 154, 255)
end
end
addEventHandler("onPlayerJoin", root, onJoin)
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>
</syntaxhighlight>
</section>
</section>
Line 125: Line 148:
[[pl:outputChatBox]]
[[pl:outputChatBox]]
[[ru:outputChatBox]]
[[ru:outputChatBox]]
[[pt-br:OutputChatBox]]

Latest revision as of 08:31, 5 October 2023

[[{{{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.

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", root, 255, 255, 255, true )

This will display as: Hello World

Syntax

Click to collapse [-]
Server
bool outputChatBox ( string text [, table/element visibleTo = root, 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.
ADDED/UPDATED IN VERSION 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'.

    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", root, 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
            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)
    

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

    -- 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
    

    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, root)
    end
    
    function onJoin()
        servertalkprivate("Welcome to My Server", source)
    end
    
    addEventHandler("onPlayerJoin", root, 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)
        outputChatBox("Welcome ".. getPlayerName(source) .." To The Server", source, 0, 154, 255)
    end
    addEventHandler("onPlayerJoin", root, onJoin)
    

    Example 7: This code will output an message to nearby players.

    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)
    

    Example 8: This example displays your nickname and the amount of money.

    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)
    

    See Also