Portal SAMP
[Ajuda] Bug no Create3DTextLabel - 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] Bug no Create3DTextLabel (/showthread.php?tid=4080)



Bug no Create3DTextLabel - Cifra Modder - 15/10/2023

Eu não sei como vou poder explicar a vocês o meu poblema mais vou tentar ser específico.
Ultimamente eu tou tendo poblema com a função Create3DTextLabel, quando eu crio um texto por exemplo:
Código:
        format(string, sizeof(string), "{00FFFF}Familia Teste");   
        Create3DTextLabel(string, -1, X, Y, Z, 20.0, -1, 0);
No jogo ele aparece por uns segundos e depois some, esse pedaço do script faz parte de um sistema de Família, quando eu uso /criarfml ... Aparece o pickup, e o texto, aí depois de 1 segundos ou até menos o texto some e fica somente o pickup.

Se alguém puder me ajudar agradeço!

Código:
CMD:criarfml(playerid, params[])
{
    new Id, IdDono;
   
    if(sscanf(params, "dd", Id, IdDono))
    {
        SCM(playerid, VERMELHO, "Use: /criarfml [ID FAMILIA] [ID DONO]");
        return 1;
    }
   
    if(Id < 1 || Id > 20)
    {
        SCM(playerid, VERMELHO, "Use somente id de 1 a 20!");
        return 1;
    }
   
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
   
    new hFile[50];
    format(hFile, sizeof(hFile), "Familias/%d.ini", Id);
    if(DOF2::FileExists(hFile)) return SCM(playerid, ERRO, "| ERRO | Ja existe uma Familia com este ID!");
    DOF2::CreateFile(hFile);
    DOF2::SetInt(hFile, "ID", Id);
    DOF2::SetString(hFile, "Dono", PlayerName(IdDono));

    DOF2::SetFloat(hFile, "iconX", X);
    DOF2::SetFloat(hFile, "iconY", Y);
    DOF2::SetFloat(hFile, "iconZ", Z);
    CarregarFamilia(Id);
    new String[1000];
    format(String, sizeof(String), "| teste | Voce criou a Familia ID [%d] Para o jogador [%s]", Id, PlayerName(IdDono));
    SCM(playerid, AMARELO, String);
    return 1;
}

Stock:
Código:
stock CarregarFamilia(ID)
{
    new Familia[50];
    format(Familia, sizeof(Familia), "Familias/%d.ini", ID);
    if(DOF2::FileExists(Familia))
    {
        new string[250];
        new Float:X, Float:Y, Float:Z;
        X = DOF2::GetFloat(Familia, "iconX");
        Y = DOF2::GetFloat(Familia, "iconY");
        Z = DOF2::GetFloat(Familia, "iconZ");
        CreatePickup(1313, 1, X, Y, Z, -1);
        format(string, sizeof(string), "{00FFFF}Familia Teste");   
        Create3DTextLabel(string, -1, X, Y, Z, 20.0, -1, 0);
    }
    return 1;
}


Loop para carregar todas as famílias:
Código:
    for(new y=0; y<MAX_FAMILIA; ++y)
    {
        CarregarFamilia(y);
    } 
Esse loop fica na callback OnGameModeInit


RE: Bug no Create3DTextLabel - leonardos08bt - 15/10/2023

Tenha em mente: Create3DTextLabel("texto", cor, X Y, Z, Distancia, virtualworld, testLOS).

Lembrando que se o virtual world for -1 o texto não aparece.

O testLOS define a linha de visão para que este texto não possa ser visto através de objetos (1 = não pode ser visto atrás de objetos | 0 = pode ser visto atrás de objetos).


RE: Bug no Create3DTextLabel - xbruno1000x - 16/10/2023

Tenha em mente que existem limites no SA-MP. Usando as funções nativas(CreatePickup, Create3dTextLabel...) você está sujeito a atingir esses limites. Eu recomendo que faça a alteração para Dynamic usando a streamer e tente novamente.

Link:
https://github.com/samp-incognito/samp-streamer-plugin/releases
Wiki:
https://github.com/samp-incognito/samp-streamer-plugin/wiki/Callbacks