Portal SAMP
[Ajuda] Textdraw - 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 (/showthread.php?tid=3715)



Textdraw - Aranha - 24/06/2023

Estou usando randommsg na textdraw
Alguem sabe se esta correto este codgio?

Código:
forward RandomMessagesTD();
public RandomMessagesTD()
{


    new randMSG = random(sizeof(RandomMSG));
    TextDrawSetString(Textdraw12, RandomMSG[randMSG]);

    return 1;
}

as vezes da bug a texdraw
uso textdraw global

Código:
    Textdraw12 = TextDrawCreate(151.332382, 432.250030, "ramdonmsg");
    TextDrawLetterSize(Textdraw12, 0.152488, 1.144999);
    TextDrawAlignment(Textdraw12, 1);
    TextDrawColor(Textdraw12, -1);
    TextDrawSetShadow(Textdraw12, 0);
    TextDrawSetOutline(Textdraw12, 0);
    TextDrawBackgroundColor(Textdraw12, 51);
    TextDrawFont(Textdraw12, 1);
    TextDrawSetProportional(Textdraw12, 1);



RE: Textdraw - White_Blue - 24/06/2023

A array "RandomMSG" está correta? A função "RandomMessagesTD" está sendo chamada corretamente? Pois não vejo a necessidade de encapsular isso dentro de uma função (Ao menos que seja um timer).

Se for um timer, mostre como você está executando esse timer, pois aparentemente no seu código está tudo certo.


RE: Textdraw - Aranha - 24/06/2023

Código:
   new RandomMSG[][] =
    {


            "Esta perdido pelo mapa ou esta precisando de uma carona? Chame um taxi ate voce ~> /Taxi",
            "Seu veiculo quebrou? Compre um kit reparo no supermercado ou chame um mecanico ~> /Mecanico",
            "Seu veiculo acabou o combustivel? Va ate um posto de gasolina e compre um Galao de 10L para abastece-lo",
            "Sempre ande com alimentos, galao de combustivel e kit reparo na mochila para se previnir de incidentes"
};


SetTimer("RandomMessagesTD", 30000, true);


RE: Textdraw - White_Blue - 24/06/2023

(24/06/2023 13:31)Aranha Escreveu:
Código:
   new RandomMSG[][] =
    {


            "Esta perdido pelo mapa ou esta precisando de uma carona? Chame um taxi ate voce ~> /Taxi",
            "Seu veiculo quebrou? Compre um kit reparo no supermercado ou chame um mecanico ~> /Mecanico",
            "Seu veiculo acabou o combustivel? Va ate um posto de gasolina e compre um Galao de 10L para abastece-lo",
            "Sempre ande com alimentos, galao de combustivel e kit reparo na mochila para se previnir de incidentes"
};


SetTimer("RandomMessagesTD", 30000, true);

Troque de textdraw global para player textdraw.

Código corrigido(Testei e funcionou normalmente):

Código PHP:
new PlayerText:Textdraw12[MAX_PLAYERS];

new 
RandomMSG[][] = {
    "Esta perdido pelo mapa ou esta precisando de uma carona? Chame um taxi ate voce ~> /Taxi",
    "Seu veiculo quebrou? Compre um kit reparo no supermercado ou chame um mecanico ~> /Mecanico",
    "Seu veiculo acabou o combustivel? Va ate um posto de gasolina e compre um Galao de 10L para abastece-lo",
    "Sempre ande com alimentos, galao de combustivel e kit reparo na mochila para se previnir de incidentes"
};

public 
OnPlayerConnect(playerid) {
     
LoadTextDraw(playerid); // Carrega as texdraws
     SetTimerEx("RandomMSGs"30000true"d"playerid); // Inicia o timer
     return 1;
}

stock LoadTextDraw(playerid/* Vou carregar as textdraws em uma função para ficar mais organizado */ {
    Textdraw12[playerid] = CreatePlayerTextDraw(playerid151.332382432.250030"ramdonmsg");
    PlayerTextDrawLetterSize(playeridTextdraw12[playerid], 0.1524881.144999);
    PlayerTextDrawAlignment(playeridTextdraw12[playerid], 1);
    PlayerTextDrawColor(playeridTextdraw12[playerid], -1);
    PlayerTextDrawSetShadow(playeridTextdraw12[playerid], 0);
    PlayerTextDrawSetOutline(playeridTextdraw12[playerid], 0);
    PlayerTextDrawBackgroundColor(playeridTextdraw12[playerid], 51);
    PlayerTextDrawFont(playeridTextdraw12[playerid], 1);
    PlayerTextDrawSetProportional(playeridTextdraw12[playerid], 1);
    return 1;
}

public 
OnPlayerSpawn(playerid) {
PlayerTextDrawShow(playeridTextdraw12[playerid]);
return 
1;
}

forward RandomMSGs(playerid);
public 
RandomMSGs(playerid) {
  new 
string[128], randomvar;
  
randomvar random(sizeof(RandomMSG));
  
format(stringsizeof(string), "%s"RandomMSG[randomvar]);
  
TextDrawSetString(Textdraw12string);
  return 
1;




RE: Textdraw - Aranha - 24/06/2023

ai sim
valeu!!!


RE: Textdraw - Aranha - 27/06/2023

estranho o erro continua
as vezes fica normal as vezes da erro


[Imagem: TxG0IJm.png]

no ultimo codigo q vc colocou eu troquei
troquei esse
TextDrawSetString(Textdraw12, string);

por esse
PlayerTextDrawSetString(playerid, Textdraw12[playerid], string);
pq o textdraw nao e global


RE: Textdraw - xbruno1000x - 27/06/2023

(27/06/2023 19:58)Aranha Escreveu: [Imagem: TxG0IJm.png]

Me parece que esse erro ocorre por ter ~ na mensagem.
Tente assim:
Código:
   new RandomMSG[][] =

    {





            "Esta perdido pelo mapa ou esta precisando de uma carona? Chame um taxi ate voce -> /Taxi",

            "Seu veiculo quebrou? Compre um kit reparo no supermercado ou chame um mecanico -> /Mecanico",

            "Seu veiculo acabou o combustivel? Va ate um posto de gasolina e compre um Galao de 10L para abastece-lo",

            "Sempre ande com alimentos, galao de combustivel e kit reparo na mochila para se previnir de incidentes"

};



RE: Textdraw - Aranha - 28/06/2023

esse era o erro mesmo bug foi resolvido
Valeu pela ajuda de vcs


RE: Textdraw - xbruno1000x - 28/06/2023

O ~ nas textdraws do samp é usado para dar comandos, como o ~n~ para pular linhas, ~r~ para o texto ficar vermelho... então quando você digita um ~ é como se estivesse abrindo chave no código, e sendo assim, ela precisa ser fechada.

Fico feliz em ter ajudado a resolver o problema!


RE: Textdraw - White_Blue - 28/06/2023

Só para complementar, você pode utilizar a função FixText para usar acentuação nas textdraws.

Código PHP:
FixText(string[]) {

    new szFixed[1024], iPosiLen;

    for(iLen strlen(string); iPos iLeniPos ++)
        switch(string[iPos]) {
            case '%':          szFixed[iPos] = 37;
            case '&':          szFixed[iPos] = 38;
            case '¡':          szFixed[iPos] = 64;
            case '°':          szFixed[iPos] = 124;
            case 'À':          szFixed[iPos] = 128;
            case 'Á':          szFixed[iPos] = 129;
            case 'Â':          szFixed[iPos] = 130;
            case 'Ä''Ã':     szFixed[iPos] = 131;
            case 'Ç':          szFixed[iPos] = 133;
            case 'È':          szFixed[iPos] = 134;
            case 'É':          szFixed[iPos] = 135;
            case 'Ê':          szFixed[iPos] = 136;
            case 'Ë':          szFixed[iPos] = 137;
            case 'Ì':          szFixed[iPos] = 138;
            case 'Í':          szFixed[iPos] = 139;
            case 'Î':          szFixed[iPos] = 140;
            case 'Ï':          szFixed[iPos] = 141;
            case 'Ò':          szFixed[iPos] = 142;
            case 'Ó':          szFixed[iPos] = 143;
            case 'Ô':          szFixed[iPos] = 144;
            case 'Ö''Õ':     szFixed[iPos] = 145;
            case 'Ù':          szFixed[iPos] = 146;
            case 'Ú':          szFixed[iPos] = 147;
            case 'Û':          szFixed[iPos] = 148;
            case 'Ü':          szFixed[iPos] = 149;
            case 'à':          szFixed[iPos] = 151;
            case 'á':          szFixed[iPos] = 152;
            case 'â':          szFixed[iPos] = 153;
            case 'ä''ã':     szFixed[iPos] = 154;
            case 'ç':          szFixed[iPos] = 156;
            case 'è':          szFixed[iPos] = 157;
            case 'é':          szFixed[iPos] = 158;
            case 'ê':          szFixed[iPos] = 159;
            case 'ë':          szFixed[iPos] = 160;
            case 'ì':          szFixed[iPos] = 161;
            case 'í':          szFixed[iPos] = 162;
            case 'î':          szFixed[iPos] = 163;
            case 'ï':          szFixed[iPos] = 164;
            case 'ò':          szFixed[iPos] = 165;
            case 'ó':          szFixed[iPos] = 166;
            case 'ô':          szFixed[iPos] = 167;
            case 'ö''õ':     szFixed[iPos] = 168;
            case 'ù':          szFixed[iPos] = 169;
            case 'ú':          szFixed[iPos] = 170;
            case 'û':          szFixed[iPos] = 171;
            case 'ü':          szFixed[iPos] = 172;
            case 'Ñ':          szFixed[iPos] = 173;
            case 'ñ':          szFixed[iPos] = 174;
            case '¿':          szFixed[iPos] = 175;
            case '`':          szFixed[iPos] = 177;
            default:           szFixed[iPos] = string[iPos];
          }

    return szFixed;



Exemplo de uso:

Código PHP:
new PlayerText:MinhaTextdraw[MAX_PLAYERS];

public 
OnPlayerConnect(playerid) {
     MinhaTextdraw[playerid] = CreatePlayerTextDraw(playerid320.0240.0FixText("Olá, mundo!"));
     return 1;
}

CMD:helloworld(playerid) {
    PlayerTextDrawShow(playeridMinhaTextdraw[playerid]);
    return 1;
}

FixText(string[]) {

    new szFixed[1024], iPosiLen;

    for(iLen strlen(string); iPos iLeniPos ++)
        switch(string[iPos]) {
            case '%':          szFixed[iPos] = 37;
            case '&':          szFixed[iPos] = 38;
            case '¡':          szFixed[iPos] = 64;
            case '°':          szFixed[iPos] = 124;
            case 'À':          szFixed[iPos] = 128;
            case 'Á':          szFixed[iPos] = 129;
            case 'Â':          szFixed[iPos] = 130;
            case 'Ä''Ã':     szFixed[iPos] = 131;
            case 'Ç':          szFixed[iPos] = 133;
            case 'È':          szFixed[iPos] = 134;
            case 'É':          szFixed[iPos] = 135;
            case 'Ê':          szFixed[iPos] = 136;
            case 'Ë':          szFixed[iPos] = 137;
            case 'Ì':          szFixed[iPos] = 138;
            case 'Í':          szFixed[iPos] = 139;
            case 'Î':          szFixed[iPos] = 140;
            case 'Ï':          szFixed[iPos] = 141;
            case 'Ò':          szFixed[iPos] = 142;
            case 'Ó':          szFixed[iPos] = 143;
            case 'Ô':          szFixed[iPos] = 144;
            case 'Ö''Õ':     szFixed[iPos] = 145;
            case 'Ù':          szFixed[iPos] = 146;
            case 'Ú':          szFixed[iPos] = 147;
            case 'Û':          szFixed[iPos] = 148;
            case 'Ü':          szFixed[iPos] = 149;
            case 'à':          szFixed[iPos] = 151;
            case 'á':          szFixed[iPos] = 152;
            case 'â':          szFixed[iPos] = 153;
            case 'ä''ã':     szFixed[iPos] = 154;
            case 'ç':          szFixed[iPos] = 156;
            case 'è':          szFixed[iPos] = 157;
            case 'é':          szFixed[iPos] = 158;
            case 'ê':          szFixed[iPos] = 159;
            case 'ë':          szFixed[iPos] = 160;
            case 'ì':          szFixed[iPos] = 161;
            case 'í':          szFixed[iPos] = 162;
            case 'î':          szFixed[iPos] = 163;
            case 'ï':          szFixed[iPos] = 164;
            case 'ò':          szFixed[iPos] = 165;
            case 'ó':          szFixed[iPos] = 166;
            case 'ô':          szFixed[iPos] = 167;
            case 'ö''õ':     szFixed[iPos] = 168;
            case 'ù':          szFixed[iPos] = 169;
            case 'ú':          szFixed[iPos] = 170;
            case 'û':          szFixed[iPos] = 171;
            case 'ü':          szFixed[iPos] = 172;
            case 'Ñ':          szFixed[iPos] = 173;
            case 'ñ':          szFixed[iPos] = 174;
            case '¿':          szFixed[iPos] = 175;
            case '`':          szFixed[iPos] = 177;
            default:           szFixed[iPos] = string[iPos];
          }

    return szFixed;