Кликабельные тексты
#1

Добрый вечер)
Решил заюзать новшевство 0.3е (кликабельньный TextDraw)
В выборе скинов.

Проблема в слеюущем: TextDraw's вызываются при выборе нужной ф-ии, но они не вызываются.
Попробывал "тест" TextDraw, с павновики, работает.
А мой, практически с такими же настройками - не хочет...
В чем дело?

gSkinvDraw - Скин вперед
gSkinnDraw - Скин назад
gPlayerTextDraw - тестовый

PHP Code:

public OnPlayerClickPlayerTextDraw(playeridPlayerText:playertextid)
{
    if(
playertextid == gPlayerTextDraw[playerid])
    {
          
          if(
GetPlayerSkin(playerid) == 299) {SetPlayerSkin(playerid,0);} else {SetPlayerSkin(playerid,GetPlayerSkin(playerid)+1);}
           
Player[playerid][pSkin] = GetPlayerSkin(playerid);
    }
    if(
playertextid == gSkinvDraw[playerid])
    {
           
SendClientMessage(playeridCOLOR_YELLOW,"{0011FF}[DriftCity]{FFFFFF}: Òûê +1");
        
SetPlayerSkin(playerid,GetPlayerSkin(playerid)+1);
         
Player[playerid][pSkin] = GetPlayerSkin(playerid);
          
CancelSelectTextDraw(playerid);
    }
    if(
playertextid == gSkinnDraw[playerid])
    {
           
SendClientMessage(playeridCOLOR_YELLOW,"{0011FF}[DriftCity]{FFFFFF}: Òûê -1");
         
SetPlayerSkin(playerid,GetPlayerSkin(playerid)-1);
          
Player[playerid][pSkin] = GetPlayerSkin(playerid);
           
CancelSelectTextDraw(playerid);
    }
    return 
1;

OnPlayerConnect
PHP Code:
{
   
gPlayerTextDraw[playerid] = CreatePlayerTextDraw(playerid10.000000141.000000"MyTextDraw");
    
PlayerTextDrawTextSize(playeridgPlayerTextDraw[playerid], 60.00000020.000000);
    
PlayerTextDrawAlignment(playeridgPlayerTextDraw[playerid],0);
    
PlayerTextDrawBackgroundColor(playeridgPlayerTextDraw[playerid],0x000000ff);
    
PlayerTextDrawFont(playeridgPlayerTextDraw[playerid], 1);
    
PlayerTextDrawLetterSize(playeridgPlayerTextDraw[playerid], 0.2500001.000000);
    
PlayerTextDrawColor(playeridgPlayerTextDraw[playerid], 0xffffffff);
    
PlayerTextDrawSetProportional(playeridgPlayerTextDraw[playerid], 1);
    
PlayerTextDrawSetShadow(playeridgPlayerTextDraw[playerid], 1);
    
    
       
gSkinnDraw[playerid] = CreatePlayerTextDraw(playerid290.000000350.000000"Old");
    
PlayerTextDrawTextSize(playeridgSkinnDraw[playerid], 60.00000020.000000);
    
PlayerTextDrawAlignment(playeridgSkinnDraw[playerid],0);
    
PlayerTextDrawBackgroundColor(playeridgSkinnDraw[playerid],0x000000ff);
    
PlayerTextDrawFont(playeridgSkinnDraw[playerid], 1);
    
PlayerTextDrawLetterSize(playeridgSkinnDraw[playerid], 0.2500001.000000);
    
PlayerTextDrawColor(playeridgSkinnDraw[playerid], 0xffffffff);
    
PlayerTextDrawSetProportional(playeridgSkinnDraw[playerid], 1);
    
PlayerTextDrawSetShadow(playeridgSkinnDraw[playerid], 1);
      
gSkinvDraw[playerid] = CreatePlayerTextDraw(playerid310.000000350.000000"Next");
    
PlayerTextDrawTextSize(playeridgSkinvDraw[playerid], 60.00000020.000000);
    
PlayerTextDrawAlignment(playeridgSkinvDraw[playerid],0);
    
PlayerTextDrawBackgroundColor(playeridgSkinvDraw[playerid],0x000000ff);
    
PlayerTextDrawFont(playeridgSkinvDraw[playerid], 1);
    
PlayerTextDrawLetterSize(playeridgSkinvDraw[playerid], 0.2500001.000000);
    
PlayerTextDrawColor(playeridgSkinvDraw[playerid], 0xffffffff);
    
PlayerTextDrawSetProportional(playeridgSkinvDraw[playerid], 1);
    
PlayerTextDrawSetShadow(playeridgSkinvDraw[playerid], 1);
    return 
1;

функция вызова TextDraw's:
PHP Code:
                   PlayerTextDrawSetSelectable(playeridgSkinnDraw[playerid], 1);
                 
PlayerTextDrawShow(playeridgSkinnDraw[playerid]);
                 
SelectTextDraw(playerid0xFF4040AA);
                
PlayerTextDrawSetSelectable(playeridgPlayerTextDraw[playerid], 1);
                 
PlayerTextDrawShow(playeridgPlayerTextDraw[playerid]);
                 
SelectTextDraw(playerid0xFF4040AA);
                
PlayerTextDrawSetSelectable(playeridgSkinvDraw[playerid], 1);
                 
PlayerTextDrawShow(playeridgSkinvDraw[playerid]);
                
SelectTextDraw(playerid0xFF4040AA); 
Reply
#2

Жаргончик свой за пределами форума оставляйте пожалуйста!
Они "текстдро", а не то как вы их назвали. Не знаете как написать - пишите по английски.
Reply
#3

Извиняюсь, поправил. Но проблема не решена :/
Reply
#4

А функция вызова точно отрабатывает?
Reply
#5

Да, они показываются... просто когда я на них навожу мышкой, они даже не выделяются... не говоря уже по самом использовании...
Reply
#6

Сайз установи, в вики все подробно об этом написано.

https://sampwiki.blast.hk/wiki/TextDrawTextSize
Reply
#7

Quote:
Originally Posted by Evansive
View Post
Сайз установи, в вики все подробно об этом написано.

https://sampwiki.blast.hk/wiki/TextDrawTextSize
Спасибо! Помогли
+ ещё дело было в PlayerTextDrawAlignment, стаяло значение = 0 я изменил на 2 + переделал TextDrawTextSize и заработало
Reply
#8

Не пойму в чем проблема выделяется один TextDraw из 3.
pawn Code:
ALeft = TextDrawCreate(260.000000, 273.000000, "<");
    TextDrawBackgroundColor(ALeft, -1);
    TextDrawFont(ALeft, 1);
    TextDrawLetterSize(ALeft, 1.000000, 5.000000);
    TextDrawColor(ALeft, 255);
    TextDrawSetOutline(ALeft, 1);
    TextDrawSetProportional(ALeft, 1);
    TextDrawTextSize(ALeft, 284.000000, 0.000000);

    ARight = TextDrawCreate(360.000000, 274.000000, ">");
    TextDrawBackgroundColor(ARight, -1);
    TextDrawFont(ARight, 1);
    TextDrawLetterSize(ARight, 1.000000, 5.000000);
    TextDrawColor(ARight, 255);
    TextDrawSetOutline(ARight, 1);
    TextDrawSetProportional(ARight, 1);
    TextDrawTextSize(ARight, 284.000000, 0.000000);

    ABuy = TextDrawCreate(283.000000, 288.000000, "BUY");
    TextDrawBackgroundColor(ABuy, -1);
    TextDrawFont(ABuy, 1);
    TextDrawLetterSize(ABuy, 1.200000, 2.000000);
    TextDrawColor(ABuy, 255);
    TextDrawSetOutline(ABuy, 1);
    TextDrawSetProportional(ABuy, 1);
   
    TextDrawSetSelectable(ALeft, true);
    TextDrawSetSelectable(ARight, true);
    TextDrawSetSelectable(ABuy, true);
Выделяется только ABuy. Я пробовал его убрать, также ничего не выделяется.
Reply
#9

ТекстСайз нормально настрой же. ТекстСайз - определяет область кликобельную для текстдрава. Честно говоря я пока не доконца с ней разобрался, но проблема именно в этом (как минимум у первых двух текстдравов у тебя она одинакова)
Reply
#10

sk47, прежде чем задавать вопрос, а тем более создавать тему пользуйся поиском!
Выше ты найдешь ответ на свою проблему.
Reply
#11

Как я понял надо сделать так?
pawn Code:
TextDrawTextSize(ALeft, 257.000000, 301.000000);
TextDrawTextSize(ARight, 359.000000, 301.000000);
Reply
#12

Да, так. Что мешает попробовать?
Reply
#13

Я сделал так для всех TextDraw.
Стрелки не выделяются,Buy выделяется на цене.
Reply
#14

TextDrawTextSize работает не по координатам экрана, а относительно текстдро.

Конечные значения от балды.
Reply
#15

pawn Code:
TextDrawTextSize(ALeft, 0.000000, 25.000000);
TextDrawTextSize(ARight, 0.000000, 25.000000);
TextDrawTextSize(ABuy, 0.000000, 70.000000);
TextDrawTextSize(AExit, 0.000000, 35.000000);
Сделал так ничего не выделяется ?
Reply
#16

Quote:
Originally Posted by sk47
View Post
pawn Code:
TextDrawTextSize(ALeft, 0.000000, 25.000000);
TextDrawTextSize(ARight, 0.000000, 25.000000);
TextDrawTextSize(ABuy, 0.000000, 70.000000);
TextDrawTextSize(AExit, 0.000000, 35.000000);
Сделал так ничего не выделяется ?
Текстдрав шириной 0. Как его можно выделить или кликнуть? Никак.
Reply
#17

теперь вроде все правильно. но также не выделяется не один.
TextDrawTextSize(ALeft, 20.0, 23.0);
TextDrawTextSize(ARight, 20.0, 23.0);
TextDrawTextSize(ABuy, 70.0, 12.0);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)