Selectable textdraws. -
I have a little problem with selectable textdraws. For example, there are 3 textdraws:
1. something
2. cool
3. okay
^ I have set my mouse at third, but it highlighted first and second too.
pawn Код:
#include <a_samp>
new Text: TD0, Text: TD1, Text: TD2, Text: TD3, Text: TD4, Text: TD5, Text: TD6, Text: TD7;
new bool: shopState[MAX_PLAYERS];
public OnGameModeInit()
{
TD0 = TextDrawCreate(641.375000, 1.500000, "usebox");
TextDrawLetterSize(TD0, 0.000000, 49.396297);
TextDrawTextSize(TD0, -2.000000, 0.000000);
TextDrawAlignment(TD0, 3);
TextDrawColor(TD0, 0);
TextDrawUseBox(TD0, true);
TextDrawBoxColor(TD0, 192);
TextDrawSetShadow(TD0, 0);
TextDrawSetOutline(TD0, 0);
TextDrawFont(TD0, 0);
TD1 = TextDrawCreate(88.125000, 30.916675, "Deagle");
TextDrawLetterSize(TD1, 0.449999, 1.600000);
TextDrawTextSize(TD1, 1329.375000, 55.416728);
TextDrawAlignment(TD1, 2);
TextDrawColor(TD1, -1);
TextDrawSetShadow(TD1, 0);
TextDrawSetOutline(TD1, 0);
TextDrawBackgroundColor(TD1, 51);
TextDrawFont(TD1, 1);
TextDrawSetProportional(TD1, 1);
TextDrawSetSelectable(TD1, true);
TD2 = TextDrawCreate(215.750000, 1.500000, "usebox");
TextDrawLetterSize(TD2, 0.000000, 49.201850);
TextDrawTextSize(TD2, 207.375000, 0.000000);
TextDrawAlignment(TD2, 1);
TextDrawColor(TD2, 0);
TextDrawUseBox(TD2, true);
TextDrawBoxColor(TD2, -14803202);
TextDrawSetShadow(TD2, 0);
TextDrawSetOutline(TD2, 0);
TextDrawFont(TD2, 0);
TextDrawSetProportional(TD2, 1);
TD3 = TextDrawCreate(298.750000, 31.500001, "Deagle costs $750");
TextDrawLetterSize(TD3, 0.449999, 1.600000);
TextDrawAlignment(TD3, 1);
TextDrawColor(TD3, -1);
TextDrawSetShadow(TD3, 0);
TextDrawSetOutline(TD3, 255);
TextDrawBackgroundColor(TD3, 51);
TextDrawFont(TD3, 1);
TextDrawSetProportional(TD3, 1);
TD4 = TextDrawCreate(63.125000, 55.999988, "USP");
TextDrawLetterSize(TD4, 0.449999, 1.600000);
TextDrawAlignment(TD4, 1);
TextDrawColor(TD4, -1);
TextDrawSetShadow(TD4, 0);
TextDrawSetOutline(TD4, 1);
TextDrawBackgroundColor(TD4, 51);
TextDrawFont(TD4, 1);
TextDrawSetProportional(TD4, 1);
TextDrawSetSelectable(TD4, true);
TD5 = TextDrawCreate(297.500000, 58.916690, "USP costs $450");
TextDrawLetterSize(TD5, 0.449999, 1.600000);
TextDrawAlignment(TD5, 1);
TextDrawColor(TD5, -1);
TextDrawSetShadow(TD5, 0);
TextDrawSetOutline(TD5, 1);
TextDrawBackgroundColor(TD5, 51);
TextDrawFont(TD5, 1);
TextDrawSetProportional(TD5, 1);
TD6 = TextDrawCreate(62.500000, 81.666687, "AK-47");
TextDrawLetterSize(TD6, 0.449999, 1.600000);
TextDrawAlignment(TD6, 1);
TextDrawColor(TD6, -1);
TextDrawSetShadow(TD6, 0);
TextDrawSetOutline(TD6, 1);
TextDrawBackgroundColor(TD6, 51);
TextDrawFont(TD6, 1);
TextDrawSetProportional(TD6, 1);
TextDrawSetSelectable(TD6, true);
TD7 = TextDrawCreate(296.666595, 82.833267, "AK-47 costs $2500");
TextDrawLetterSize(TD7, 0.449999, 1.600000);
TextDrawAlignment(TD7, 1);
TextDrawColor(TD7, -1);
TextDrawSetShadow(TD7, 0);
TextDrawSetOutline(TD7, 1);
TextDrawBackgroundColor(TD7, 51);
TextDrawFont(TD7, 1);
TextDrawSetProportional(TD7, 1);
return true;
}
public OnPlayerConnect(playerid)
{
shopState[playerid] = false;
return true;
}
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(_:clickedid != INVALID_TEXT_DRAW)
{
if(clickedid == TD1)
{
if (GetPlayerMoney(playerid) < 750)
return SendClientMessage(playerid, 0x9EC73DFF, "[server]: You dont have enough money! ({ff0000}$750{9ec73d})");
GivePlayerWeapon(playerid, 24, 7);
GivePlayerMoney (playerid, - 750);
}
if(clickedid == TD4)
{
if (GetPlayerMoney(playerid) < 450)
return SendClientMessage(playerid, 0x9EC73DFF, "[server]: You dont have enough money! ({ff0000}$450{9ec73d})");
GivePlayerWeapon(playerid, 22, 12);
GivePlayerMoney (playerid, - 450);
}
if(clickedid == TD7)
{
if (GetPlayerMoney(playerid) < 2500)
return SendClientMessage(playerid, 0x9EC73DFF, "[server]: You dont have enough money! ({ff0000}$2500{9ec73d})");
GivePlayerWeapon(playerid, 30, 30);
GivePlayerMoney (playerid, - 2500);
}
}
return (true);
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys & KEY_NO)
{
if (!shopState[playerid])
{
TextDrawShowForPlayer(playerid, TD0);
TextDrawShowForPlayer(playerid, TD1);
TextDrawShowForPlayer(playerid, TD2);
TextDrawShowForPlayer(playerid, TD3);
TextDrawShowForPlayer(playerid, TD4);
TextDrawShowForPlayer(playerid, TD5);
TextDrawShowForPlayer(playerid, TD6);
TextDrawShowForPlayer(playerid, TD7);
SelectTextDraw(playerid, 0xFF0000FF);
shopState[playerid] = true;
}
else
{
TextDrawHideForPlayer(playerid, TD0);
TextDrawHideForPlayer(playerid, TD1);
TextDrawHideForPlayer(playerid, TD2);
TextDrawHideForPlayer(playerid, TD3);
TextDrawHideForPlayer(playerid, TD4);
TextDrawHideForPlayer(playerid, TD5);
TextDrawHideForPlayer(playerid, TD6);
TextDrawHideForPlayer(playerid, TD7);
CancelSelectTextDraw(playerid);
shopState[playerid] = false;
}
}
return (true);
}
Re: Selectable textdraws. -
Re: Selectable textdraws. -
You need to use.
Re: Selectable textdraws. -
Dont you see? Its already here.. Code is working good, except that it highlights every button you set your mouse at.
Re: Selectable textdraws. -
Apart from the TextDraw itself, there's an 'invisible' box which covers the 'highlighting' area (when the textdraws can be selected, that is). You can set this 'area' with TextDrawTextSize, you'll need to screw around with this a bit. The area starts at the left-top part of the text draw and can be made as big as you want.
Re: Selectable textdraws. -
Okay, thank you. I tried to do that yesterday, something changed, but not like I would want:
You can't highlight now every select, but 2-3 and two buttons doesn't work, but the method used to set size was same
Re: Selectable textdraws. -
Re: Selectable textdraws. -