OnPlayerClickTextDraw

OnPlayerClickTextDraw

Description:
Callback OnPlayerClickTextDraw is called when a player clicks on a textdraw or cancels the select mode with the Escape key.
Callback OnPlayerClickTextDraw was added in 0.3e and will not work in earlier versions!
  • The clickable area is defined by TextDrawTextSize. The x and y parameters passed to that function must not be zero or negative.
  • Do not use CancelSelectTextDraw unconditionally within this callback. This results in an infinite loop.


Parameters:
(playerid, Text:clickedid)
int playerid The ID of the player that clicked on the textdraw.
int Text:clickedid The ID of the clicked textdraw. INVALID_TEXT_DRAW if selection was cancelled.


Return Values:
Returning 1/true in this callback will prevent it being called in other scripts. This should be used to signal that the textdraw on which they clicked was 'found' and no further processing is needed. You should return 0/false if the textdraw on which they clicked wasn't found, just like in OnPlayerCommandText.
  • It is always called first in filterscripts so returning 1 there also blocks other scripts from seeing it.


Examples:
 
public OnGameModeInit()
{
    gTextDraw = TextDrawCreate(10.000000, 141.000000, "MyTextDraw");       
    TextDrawTextSize(gTextDraw,60.000000, 20.000000);
    TextDrawAlignment(gTextDraw,0);
    TextDrawBackgroundColor(gTextDraw,0x000000ff);
    TextDrawFont(gTextDraw,1);
    TextDrawLetterSize(gTextDraw,0.250000, 1.000000);
    TextDrawColor(gTextDraw,0xffffffff);
    TextDrawSetProportional(gTextDraw,1);
    TextDrawSetShadow(gTextDraw,1);
    TextDrawSetSelectable(gTextDraw, 1);
    return 1;
}
 
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys == KEY_SUBMISSION)
    {
        TextDrawShowForPlayer(playerid, gTextDraw);
        SelectTextDraw(playerid, 0xFF4040AA);
    }
    return 1;
}
 
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == gTextDraw)
    {
         SendClientMessage(playerid, 0xFFFFFFAA, "You clicked on a textdraw.");
         CancelSelectTextDraw(playerid);
         return 1;
    }
    return 0;
}


Related Callbacks
The following callbacks might be useful as well, as they are related to this callback in one way or another.