Portal SAMP
[Ajuda] Textdraw diferente no mobile - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Textdraw diferente no mobile (/showthread.php?tid=518)

Páginas: 1 2 3


Textdraw diferente no mobile - annety - 17/12/2020

Eu tenho esse textdraw de velocimetro:
Código:
        new Float:txdVelmaispesquerdaMOBILE = 0.000000; // PC
        if(IsPlayerAndroid(playerid) == true) txdVelmaispesquerdaMOBILE = 205.000000;
        new Float:txdVelmaispbaixoMOBILE = 0.000000;
        if(IsPlayerAndroid(playerid) == true) txdVelmaispbaixoMOBILE = 25.000000; //
        // velocimetro GTA V 4
        PlayerVelocimetro[playerid] = false;
        textPlayerVelocimetro[0][playerid] = CreatePlayerTextDraw(playerid,575.000000-txdVelmaispesquerdaMOBILE, 365.000000+txdVelmaispbaixoMOBILE, "Nenhum");
        PlayerTextDrawAlignment(playerid,textPlayerVelocimetro[0][playerid], 3);
        PlayerTextDrawBackgroundColor(playerid,textPlayerVelocimetro[0][playerid], 0);
        PlayerTextDrawFont(playerid,textPlayerVelocimetro[0][playerid], 1);
        PlayerTextDrawLetterSize(playerid,textPlayerVelocimetro[0][playerid], 0.330000, 1.299999);
        PlayerTextDrawColor(playerid,textPlayerVelocimetro[0][playerid], -156);
        PlayerTextDrawSetOutline(playerid,textPlayerVelocimetro[0][playerid], 0);
        PlayerTextDrawSetProportional(playerid,textPlayerVelocimetro[0][playerid], 1);
        PlayerTextDrawSetShadow(playerid,textPlayerVelocimetro[0][playerid], 1);
        PlayerTextDrawSetSelectable(playerid,textPlayerVelocimetro[0][playerid], 0);

        textPlayerVelocimetro[1][playerid] = CreatePlayerTextDraw(playerid,575.000000-txdVelmaispesquerdaMOBILE, 379.000000+txdVelmaispbaixoMOBILE, "000 km/h");
        PlayerTextDrawAlignment(playerid,textPlayerVelocimetro[1][playerid], 3);
        PlayerTextDrawBackgroundColor(playerid,textPlayerVelocimetro[1][playerid], 0);
        PlayerTextDrawFont(playerid,textPlayerVelocimetro[1][playerid], 2);
        PlayerTextDrawLetterSize(playerid,textPlayerVelocimetro[1][playerid], 0.250000, 1.299999);
        PlayerTextDrawColor(playerid,textPlayerVelocimetro[1][playerid], -156);
        PlayerTextDrawSetOutline(playerid,textPlayerVelocimetro[1][playerid], 0);
        PlayerTextDrawSetProportional(playerid,textPlayerVelocimetro[1][playerid], 1);
        PlayerTextDrawSetShadow(playerid,textPlayerVelocimetro[1][playerid], 1);
        PlayerTextDrawSetSelectable(playerid,textPlayerVelocimetro[1][playerid], 0);

        textPlayerVelocimetro[2][playerid] = CreatePlayerTextDraw(playerid,575.000000-txdVelmaispesquerdaMOBILE, 393.000000+txdVelmaispbaixoMOBILE, "0 LT");
        PlayerTextDrawAlignment(playerid,textPlayerVelocimetro[2][playerid], 3);
        PlayerTextDrawBackgroundColor(playerid,textPlayerVelocimetro[2][playerid], 0);
        PlayerTextDrawFont(playerid,textPlayerVelocimetro[2][playerid], 2);
        PlayerTextDrawLetterSize(playerid,textPlayerVelocimetro[2][playerid], 0.250000, 1.299999);
        PlayerTextDrawColor(playerid,textPlayerVelocimetro[2][playerid], -156);
        PlayerTextDrawSetOutline(playerid,textPlayerVelocimetro[2][playerid], 0);
        PlayerTextDrawSetProportional(playerid,textPlayerVelocimetro[2][playerid], 1);
        PlayerTextDrawSetShadow(playerid,textPlayerVelocimetro[2][playerid], 1);
        PlayerTextDrawSetSelectable(playerid,textPlayerVelocimetro[2][playerid], 0);

        textPlayerVelocimetro[3][playerid] = CreatePlayerTextDraw(playerid,575.000000-txdVelmaispesquerdaMOBILE, 407.000000+txdVelmaispbaixoMOBILE, "0%");
        PlayerTextDrawAlignment(playerid,textPlayerVelocimetro[3][playerid], 3);
        PlayerTextDrawBackgroundColor(playerid,textPlayerVelocimetro[3][playerid], 0);
        PlayerTextDrawFont(playerid,textPlayerVelocimetro[3][playerid], 2);
        PlayerTextDrawLetterSize(playerid,textPlayerVelocimetro[3][playerid], 0.250000, 1.299999);
        PlayerTextDrawColor(playerid,textPlayerVelocimetro[3][playerid], -156);
        PlayerTextDrawSetOutline(playerid,textPlayerVelocimetro[3][playerid], 0);
        PlayerTextDrawSetProportional(playerid,textPlayerVelocimetro[3][playerid], 1);
        PlayerTextDrawSetShadow(playerid,textPlayerVelocimetro[3][playerid], 1);
        PlayerTextDrawSetSelectable(playerid,textPlayerVelocimetro[3][playerid], 0);



        // velocimetro GTA V 7
        if(IsPlayerAndroid(playerid) == true) txdVelmaispesquerdaMOBILE = 231.000000 - 26.000000; // 575-344=231 231-205=26
        textVelocimetro[0][playerid] = CreatePlayerTextDraw(playerid, 344.000000-txdVelmaispesquerdaMOBILE, 358.000000+txdVelmaispbaixoMOBILE, "i");
        PlayerTextDrawBackgroundColor(playerid, textVelocimetro[0][playerid], 0);
        PlayerTextDrawFont(playerid,textVelocimetro[0][playerid], 2);
        PlayerTextDrawLetterSize(playerid, textVelocimetro[0][playerid], 28.800073, 2.600000);
        PlayerTextDrawColor(playerid, textVelocimetro[0][playerid], 80);
        PlayerTextDrawSetOutline(playerid,textVelocimetro[0][playerid], 0);
        PlayerTextDrawSetProportional(playerid,textVelocimetro[0][playerid], 1);
        PlayerTextDrawSetShadow(playerid,textVelocimetro[0][playerid], 1);
        PlayerTextDrawSetSelectable(playerid,textVelocimetro[0][playerid], 0);

        textVelocimetro[1][playerid] = CreatePlayerTextDraw(playerid, 344.000000-txdVelmaispesquerdaMOBILE, 372.000000+txdVelmaispbaixoMOBILE, "i");
        PlayerTextDrawBackgroundColor(playerid, textVelocimetro[1][playerid], 0);
        PlayerTextDrawFont(playerid, textVelocimetro[1][playerid], 2);
        PlayerTextDrawLetterSize(playerid, textVelocimetro[1][playerid], 28.800073, 2.600000);
        PlayerTextDrawColor(playerid, textVelocimetro[1][playerid], 80);
        PlayerTextDrawSetOutline(playerid, textVelocimetro[1][playerid], 0);
        PlayerTextDrawSetProportional(playerid,textVelocimetro[1][playerid], 1);
        PlayerTextDrawSetShadow(playerid, textVelocimetro[1][playerid], 1);
        PlayerTextDrawSetSelectable(playerid, textVelocimetro[1][playerid], 0);

        textVelocimetro[2][playerid] = CreatePlayerTextDraw(playerid, 344.000000-txdVelmaispesquerdaMOBILE, 386.000000+txdVelmaispbaixoMOBILE, "i");
        PlayerTextDrawBackgroundColor(playerid, textVelocimetro[2][playerid], 0);
        PlayerTextDrawFont(playerid, textVelocimetro[2][playerid], 2);
        PlayerTextDrawLetterSize(playerid, textVelocimetro[2][playerid], 28.800073, 2.600000);
        PlayerTextDrawColor(playerid, textVelocimetro[2][playerid], 80);
        PlayerTextDrawSetOutline(playerid, textVelocimetro[2][playerid], 0);
        PlayerTextDrawSetProportional(playerid,textVelocimetro[2][playerid], 1);
        PlayerTextDrawSetShadow(playerid, textVelocimetro[2][playerid], 1);
        PlayerTextDrawSetSelectable(playerid, textVelocimetro[2][playerid], 0);

        textVelocimetro[3][playerid] = CreatePlayerTextDraw(playerid, 344.000000-txdVelmaispesquerdaMOBILE, 400.000000+txdVelmaispbaixoMOBILE, "i");
        PlayerTextDrawBackgroundColor(playerid, textVelocimetro[3][playerid], 0);
        PlayerTextDrawFont(playerid, textVelocimetro[3][playerid], 2);
        PlayerTextDrawLetterSize(playerid, textVelocimetro[3][playerid], 28.800073, 2.600000);
        PlayerTextDrawColor(playerid, textVelocimetro[3][playerid], 80);
        PlayerTextDrawSetOutline(playerid, textVelocimetro[3][playerid], 0);
        PlayerTextDrawSetProportional(playerid,textVelocimetro[3][playerid], 1);
        PlayerTextDrawSetShadow(playerid, textVelocimetro[3][playerid], 1);
        PlayerTextDrawSetSelectable(playerid, textVelocimetro[3][playerid], 0);

        textVelocimetro[4][playerid] = CreatePlayerTextDraw(playerid, 471.000000-txdVelmaispesquerdaMOBILE, 367.000000+txdVelmaispbaixoMOBILE, "Vehicle~n~~n~Speed~n~~n~Fuel~n~~n~Bodywork");
        PlayerTextDrawAlignment(playerid, textVelocimetro[4][playerid], 3); // diff dos outros de cima 0,1,2,3
        PlayerTextDrawBackgroundColor(playerid, textVelocimetro[4][playerid], 0);
        PlayerTextDrawFont(playerid, textVelocimetro[4][playerid], 2);
        PlayerTextDrawLetterSize(playerid, textVelocimetro[4][playerid], 0.210000, 0.799999);
        PlayerTextDrawColor(playerid, textVelocimetro[4][playerid], -186);
        PlayerTextDrawSetOutline(playerid, textVelocimetro[4][playerid], 0);
        PlayerTextDrawSetProportional(playerid,textVelocimetro[4][playerid], 1);
        PlayerTextDrawSetShadow(playerid, textVelocimetro[4][playerid], 1);
        PlayerTextDrawSetSelectable(playerid, textVelocimetro[4][playerid], 0);


Eu queria mudar a posição do textdraw se o cara tivesse no samp android 
Fiz umas posições diferentes pro (IsPlayerAndroid(playerid) == true)

Testei no PC com (IsPlayerAndroid(playerid) == false)

Ficou assim:
[Imagem: Screenshot-from-2020-12-17-17-40-52.png]

Achei que tinha ficado perfeito, quando fui testar realmente no mobile votando pra true olha como ficou:

[Imagem: Screenshot-from-2020-12-17-17-37-52.png]

Os textos estão numa posição legal, mas o quadrado preto embaixo não...
Pq?


RE: Textdraw diferente no mobile - guikommander2 - 18/12/2020

Eu tinha esse mesmo problema. Fiz dessa forma:

Código PHP:
#define CreatePlayerTextDraw(%0,%1,%2,%3) \
        
PlayerTextDrawCreateEx(%0,%1,%2,%3)

new 
Float:PosicoesPTD[MAX_PLAYERS][PlayerText:MAX_PLAYER_TEXTDRAWS][2];

stock PlayerText:PlayerTextDrawCreateEx(playeridFloat:tdXFloat:tdYtext[])
{
    
#undef CreatePlayerTextDraw

    
new PlayerText:playertextid CreatePlayerTextDraw(playeridtdXtdYtext);

    
PosicoesPTD[playerid][PlayerText:playertextid][0] = tdX;
    
PosicoesPTD[playerid][PlayerText:playertextid][1] = tdY;

    
#define     CreatePlayerTextDraw(%0,%1,%2,%3)         PlayerTextDrawCreateEx(%0,%1,%2,%3)
    
return playertextid;
}    

if(
IsPlayerAndroid(playerid))
{
    
Loop(isizeof(PTDVelocimetro[]))
    {
        new 
PlayerText:ptd PTDVelocimetro[playerid][i];

        if(
<= <= 4PlayerTextDrawSetPos(playeridptdPosicoesPTD[playerid][ptd][0] + 70.0PosicoesPTD[playerid][ptd][1]);
        else 
PlayerTextDrawSetPos(playeridptdPosicoesPTD[playerid][ptd][0] - 70.0PosicoesPTD[playerid][ptd][1]);
    }
}
else
{
    
Loop(isizeof(PTDVelocimetro[]))
    {
        new 
PlayerText:ptd PTDVelocimetro[playerid][i];
        
        
PlayerTextDrawSetPos(playeridptdPosicoesPTD[playerid][ptd][0], PosicoesPTD[playerid][ptd][1]);
    }


(OBS: é só um exemplo, adapte ao seu código)


RE: Textdraw diferente no mobile - annety - 18/12/2020

(18/12/2020 08:58)guikommander2 Escreveu: Eu tinha esse mesmo problema. Fiz dessa forma:

Código PHP:
#define CreatePlayerTextDraw(%0,%1,%2,%3) \
        
PlayerTextDrawCreateEx(%0,%1,%2,%3)

new 
Float:PosicoesPTD[MAX_PLAYERS][PlayerText:MAX_PLAYER_TEXTDRAWS][2];

stock PlayerText:PlayerTextDrawCreateEx(playeridFloat:tdXFloat:tdYtext[])
{
    #undef CreatePlayerTextDraw

    new PlayerText:playertextid CreatePlayerTextDraw(playeridtdXtdYtext);

    
PosicoesPTD[playerid][PlayerText:playertextid][0] = tdX;
    
PosicoesPTD[playerid][PlayerText:playertextid][1] = tdY;

    #define     CreatePlayerTextDraw(%0,%1,%2,%3)         PlayerTextDrawCreateEx(%0,%1,%2,%3)
    return playertextid;
}    

if(
IsPlayerAndroid(playerid))
{
    Loop(isizeof(PTDVelocimetro[]))
    {
        new PlayerText:ptd PTDVelocimetro[playerid][i];

        if(<= <= 4PlayerTextDrawSetPos(playeridptdPosicoesPTD[playerid][ptd][0] + 70.0PosicoesPTD[playerid][ptd][1]);
        else 
PlayerTextDrawSetPos(playeridptdPosicoesPTD[playerid][ptd][0] - 70.0PosicoesPTD[playerid][ptd][1]);
    }
}
else
{
    Loop(isizeof(PTDVelocimetro[]))
    {
        new PlayerText:ptd PTDVelocimetro[playerid][i];
        
        PlayerTextDrawSetPos
(playeridptdPosicoesPTD[playerid][ptd][0], PosicoesPTD[playerid][ptd][1]);
    }


(OBS: é só um exemplo, adapte ao seu código)

como esse código resolve meu problema?
o triste é que todos os outros textdraws eu consegui mover certinho, só esse que tem esse fundo, alias só o fundo desse que eu não consegui mover certo


RE: Textdraw diferente no mobile - annety - 19/12/2020

eu ainda não entendi o pq as letras ficaram certa e o fundo preto não Sad


RE: Textdraw diferente no mobile - annety - 26/12/2020

(19/12/2020 16:30)annety Escreveu: eu ainda não entendi o pq as letras ficaram certa e o fundo preto não Sad

upppp


RE: Textdraw diferente no mobile - annety - 29/12/2020

(19/12/2020 16:30)annety Escreveu: eu ainda não entendi o pq as letras ficaram certa e o fundo preto não Sad

upppp


RE: Textdraw diferente no mobile - xbruno1000x - 29/12/2020

Eu não costumo comentar em tópicos envolvendo mobile por conta de ser uma plataforma não-oficial e que nunca sabemos se é bug no source do APK ou no script, além de ser baseado em códigos vazados que não temos quase nenhum conhecimento. Porém, como ninguém se habilitou a te ajudar, irei tentar, mas não garanto nada. A primeira coisa que você pode tentar é alterar o PlayerTextDrawAlignment, ele define se a textdraw é criada da esquerda pra direita, etc. Talvez testando outro align funcione. A segunda hipótese é no source do APK, verificando se existe algum erro no arquivo .h responsável pela criação de textdraws.


RE: Textdraw diferente no mobile - annety - 30/12/2020

(29/12/2020 22:50)xbruno1000x Escreveu: Eu não costumo comentar em tópicos envolvendo mobile por conta de ser uma plataforma não-oficial e que nunca sabemos se é bug no source do APK ou no script, além de ser baseado em códigos vazados que não temos quase nenhum conhecimento. Porém, como ninguém se habilitou a te ajudar, irei tentar, mas não garanto nada. A primeira coisa que você pode tentar é alterar o PlayerTextDrawAlignment, ele define se a textdraw é criada da esquerda pra direita, etc. Talvez testando outro align funcione. A segunda hipótese é no source do APK, verificando se existe algum erro no arquivo .h responsável pela criação de textdraws.

De 3 pra quanto?
Pra mais ou pra menos?
N sei direito como isso funciona..

São só numeros inteiros aqui? Ou com . tbm?


RE: Textdraw diferente no mobile - annety - 31/12/2020

Eu ainda não entendi onde é construído esse fundo preto


RE: Textdraw diferente no mobile - annety - 31/12/2020

(30/12/2020 23:39)annety Escreveu:
(29/12/2020 22:50)xbruno1000x Escreveu: Eu não costumo comentar em tópicos envolvendo mobile por conta de ser uma plataforma não-oficial e que nunca sabemos se é bug no source do APK ou no script, além de ser baseado em códigos vazados que não temos quase nenhum conhecimento. Porém, como ninguém se habilitou a te ajudar, irei tentar, mas não garanto nada. A primeira coisa que você pode tentar é alterar o PlayerTextDrawAlignment, ele define se a textdraw é criada da esquerda pra direita, etc. Talvez testando outro align funcione. A segunda hipótese é no source do APK, verificando se existe algum erro no arquivo .h responsável pela criação de textdraws.

De 3 pra quanto?
Pra mais ou pra menos?
N sei direito como isso funciona..

São só numeros inteiros aqui? Ou com . tbm?

Editei a msg