Portal SAMP
[Tutorial] Como fazer uma barra de carregamento? - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7)
+--- Tópico: [Tutorial] Como fazer uma barra de carregamento? (/showthread.php?tid=2297)



Como fazer uma barra de carregamento? - Mateus Lima - 13/04/2022

Olá! Algumas pessoas me perguntam como fiz a include [XP.inc], é bem simples fazer um movimento em uma box
caso ainda não tenho vistam é include é baseada no sistema de level nativo do jogo Grand Theft Auto V, no caso a locomoção dessa include é "estática" só é alterada com o chamado da função.

[Imagem: 68747470733a2f2f696d6775722e636f6d2f486f...502e706e67]

Primeiramente precisamos da textdraw para tirarmos o cálculos rs, pegarei uma qualquer como base.

Código:
    teste[playerid] = CreatePlayerTextDraw(playerid, 563.932861, 294.544342, "_");
    PlayerTextDrawLetterSize(playerid, teste[playerid], 0.000000, 0.246213);
    PlayerTextDrawTextSize(playerid, teste[playerid], 626.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, teste[playerid], 1);
    PlayerTextDrawColor(playerid, teste[playerid], -1);
    PlayerTextDrawUseBox(playerid, teste[playerid], 1);
    PlayerTextDrawBoxColor(playerid, teste[playerid], 255);
    PlayerTextDrawSetShadow(playerid, teste[playerid], 0);
    PlayerTextDrawSetOutline(playerid, teste[playerid], 0);
    PlayerTextDrawBackgroundColor(playerid, teste[playerid], 255);
    PlayerTextDrawFont(playerid, teste[playerid], 1);
    PlayerTextDrawSetProportional(playerid, teste[playerid], 1);
    PlayerTextDrawSetShadow(playerid, teste[playerid], 0);

como todos nós sabemos (ou a maioria), a base gira em torno da criação ou seja CreatePlayerTextDraw, não importa como você queira que ela se mexa sempre será a mesma logica. Voltando ao assunto pegaremos a nossa base, como eu quero que ela se mexa para os lados pegarei a coordenada X.

Espera um pouco.. você não sabe qual base pegar Cry ? lhe amostrarei um exemplo!

[Imagem: Gvh4Ix5.png]  


CreatePlayerTextDraw(playerid, 563.932861, 294.544342, "_");

Voltando ao assunto, pegarei a base X da textdraw e diminuirei pela coordenada de termino assim recebendo a base, não sabe qual é? bem amigos é a textsize, vou te dar um exemplo mais simples possível

[Imagem: 78KNZ0u.png]

Começo ( C ) = 563.932861
Termino ( T ) = 626.000000
Base ( B ) = 0.63  Esse valor é a subtração entre C e T

de forma alguma a base pode ser negativa, o valor tem que ser absoluto basta diminuir pelo numero maior primeiro. antes de tudo caso sua base seja maior que 100 basta dividir por 100, por exemplo: 403 - 241 = (162 / 100 = 1.62) enfim para para mexer sua barra de carregamento basta fazer isso.

X + (variavel*base)

[Imagem: UkAdFx2.png]


Não sou muito bom em dar tutoriais como podemos ver, mas ao menos tentei ajudar vocês  qualquer problema me chamem no DM  Wink



RE: Como fazer uma barra de carregamento? - xbruno1000x - 13/04/2022

Muito bom tutorial, bem completo.


RE: Como fazer uma barra de carregamento? - Mateus Lima - 13/06/2022

(13/04/2022 14:32)xbruno1000x Escreveu: Muito bom tutorial, bem completo.

bem fui banido pelo forum por uns dias '-', perdão a demora a responder seu comentario.
Muito obrigado bruno. isso me deixa muito feliz!

isso merece um destaque pois provavelmente atraia publico ao forum, desde que comecei no samp a anos atrás vivo cheio de cara perguntando como faz uma barra de "progresso", espero que ajude todos que tinham essa duvida.


RE: Como fazer uma barra de carregamento? - blackN-dev - 25/03/2023

Opa, queria saber se preciso criar um variável ou usar a variável normal da textdraw


RE: Como fazer uma barra de carregamento? - Tifula - 25/07/2023

Uma duvida como posso fazer a Barra diminuir ao em vez de aumentar?


RE: Como fazer uma barra de carregamento? - White_Blue - 26/07/2023

(25/07/2023 14:02)Tifula Escreveu: Uma duvida como posso fazer a Barra diminuir ao em vez de aumentar?

Logicamente, basta realizar uma operação de decremento.

Exemplo usando a include progress2 do SouthClaws(Não testei):
Código PHP:
new PlayerBar:bar1;

public 
OnPlayerConnect(playerid) {
     
bar1 CreatePlayerProgressBar(playerid310.0200.050.010.00x11acFFFF10.0BAR_DIRECTION_LEFT);
     
SetPlayerProgressBarValue(playeridbar1100.0);
     
ShowPlayerProgressBar(playeridbar1);

     
SetTimerEx("DecrementarProgress"1000true"d"playerid); // A cada 1 segundo, a barra descerá 1 ponto.
     
return 1;
}

forward DecrementarProgress(playerid);
public 
DecrementarProgress(playerid) {
       new 
Float:value 0.0
       while(
value 0) {
         
value--;
       }
       
SetPlayerProgressBarValue(playeridbar1value);
       return 
1;




RE: Como fazer uma barra de carregamento? - xbruno1000x - 26/07/2023

(25/03/2023 12:24)blackN-dev Escreveu: Opa, queria saber se preciso criar um variável ou usar a variável normal da textdraw

[Imagem: 78KNZ0u.png]
No exemplo acima, C é o início. Para a barra fazer o processo reverso, basta colocar o C no lugar do t e o t no lugar do C


RE: Como fazer uma barra de carregamento? - NandoXs - 30/12/2023

(13/04/2022 13:50)Mateus Lima Escreveu: Olá! Algumas pessoas me perguntam como fiz a include [XP.inc], é bem simples fazer um movimento em uma box
caso ainda não tenho vistam é include é baseada no sistema de level nativo do jogo Grand Theft Auto V, no caso a locomoção dessa include é "estática" só é alterada com o chamado da função.

[Imagem: 68747470733a2f2f696d6775722e636f6d2f486f...502e706e67]

Primeiramente precisamos da textdraw para tirarmos o cálculos rs, pegarei uma qualquer como base.

Código:
    teste[playerid] = CreatePlayerTextDraw(playerid, 563.932861, 294.544342, "_");
    PlayerTextDrawLetterSize(playerid, teste[playerid], 0.000000, 0.246213);
    PlayerTextDrawTextSize(playerid, teste[playerid], 626.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, teste[playerid], 1);
    PlayerTextDrawColor(playerid, teste[playerid], -1);
    PlayerTextDrawUseBox(playerid, teste[playerid], 1);
    PlayerTextDrawBoxColor(playerid, teste[playerid], 255);
    PlayerTextDrawSetShadow(playerid, teste[playerid], 0);
    PlayerTextDrawSetOutline(playerid, teste[playerid], 0);
    PlayerTextDrawBackgroundColor(playerid, teste[playerid], 255);
    PlayerTextDrawFont(playerid, teste[playerid], 1);
    PlayerTextDrawSetProportional(playerid, teste[playerid], 1);
    PlayerTextDrawSetShadow(playerid, teste[playerid], 0);

como todos nós sabemos (ou a maioria), a base gira em torno da criação ou seja CreatePlayerTextDraw, não importa como você queira que ela se mexa sempre será a mesma logica. Voltando ao assunto pegaremos a nossa base, como eu quero que ela se mexa para os lados pegarei a coordenada X.

Espera um pouco.. você não sabe qual base pegar Cry ? lhe amostrarei um exemplo!

[Imagem: Gvh4Ix5.png]  


CreatePlayerTextDraw(playerid, 563.932861, 294.544342, "_");

Voltando ao assunto, pegarei a base X da textdraw e diminuirei pela coordenada de termino assim recebendo a base, não sabe qual é? bem amigos é a textsize, vou te dar um exemplo mais simples possível

[Imagem: 78KNZ0u.png]

Começo ( C ) = 563.932861
Termino ( T ) = 626.000000
Base ( B ) = 0.63  Esse valor é a subtração entre C e T

de forma alguma a base pode ser negativa, o valor tem que ser absoluto basta diminuir pelo numero maior primeiro. antes de tudo caso sua base seja maior que 100 basta dividir por 100, por exemplo: 403 - 241 = (162 / 100 = 1.62) enfim para para mexer sua barra de carregamento basta fazer isso.

X + (variavel*base)

[Imagem: UkAdFx2.png]


Não sou muito bom em dar tutoriais como podemos ver, mas ao menos tentei ajudar vocês  qualquer problema me chamem no DM  Wink
Você usa Discord? Como posso lhe contatar?


RE: Como fazer uma barra de carregamento? - Mateus Lima - 09/01/2024

(30/12/2023 20:05)NandoXs Escreveu:
(13/04/2022 13:50)Mateus Lima Escreveu: Olá! Algumas pessoas me perguntam como fiz a include [XP.inc], é bem simples fazer um movimento em uma box
caso ainda não tenho vistam é include é baseada no sistema de level nativo do jogo Grand Theft Auto V, no caso a locomoção dessa include é "estática" só é alterada com o chamado da função.

[Imagem: 68747470733a2f2f696d6775722e636f6d2f486f...502e706e67]

Primeiramente precisamos da textdraw para tirarmos o cálculos rs, pegarei uma qualquer como base.

Código:
    teste[playerid] = CreatePlayerTextDraw(playerid, 563.932861, 294.544342, "_");
    PlayerTextDrawLetterSize(playerid, teste[playerid], 0.000000, 0.246213);
    PlayerTextDrawTextSize(playerid, teste[playerid], 626.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, teste[playerid], 1);
    PlayerTextDrawColor(playerid, teste[playerid], -1);
    PlayerTextDrawUseBox(playerid, teste[playerid], 1);
    PlayerTextDrawBoxColor(playerid, teste[playerid], 255);
    PlayerTextDrawSetShadow(playerid, teste[playerid], 0);
    PlayerTextDrawSetOutline(playerid, teste[playerid], 0);
    PlayerTextDrawBackgroundColor(playerid, teste[playerid], 255);
    PlayerTextDrawFont(playerid, teste[playerid], 1);
    PlayerTextDrawSetProportional(playerid, teste[playerid], 1);
    PlayerTextDrawSetShadow(playerid, teste[playerid], 0);

como todos nós sabemos (ou a maioria), a base gira em torno da criação ou seja CreatePlayerTextDraw, não importa como você queira que ela se mexa sempre será a mesma logica. Voltando ao assunto pegaremos a nossa base, como eu quero que ela se mexa para os lados pegarei a coordenada X.

Espera um pouco.. você não sabe qual base pegar Cry ? lhe amostrarei um exemplo!

[Imagem: Gvh4Ix5.png]  


CreatePlayerTextDraw(playerid, 563.932861, 294.544342, "_");

Voltando ao assunto, pegarei a base X da textdraw e diminuirei pela coordenada de termino assim recebendo a base, não sabe qual é? bem amigos é a textsize, vou te dar um exemplo mais simples possível

[Imagem: 78KNZ0u.png]

Começo ( C ) = 563.932861
Termino ( T ) = 626.000000
Base ( B ) = 0.63  Esse valor é a subtração entre C e T

de forma alguma a base pode ser negativa, o valor tem que ser absoluto basta diminuir pelo numero maior primeiro. antes de tudo caso sua base seja maior que 100 basta dividir por 100, por exemplo: 403 - 241 = (162 / 100 = 1.62) enfim para para mexer sua barra de carregamento basta fazer isso.

X + (variavel*base)

[Imagem: UkAdFx2.png]


Não sou muito bom em dar tutoriais como podemos ver, mas ao menos tentei ajudar vocês  qualquer problema me chamem no DM  Wink
Você usa Discord? Como posso lhe contatar?

0ishift, perdão a demora estive passando por problemas pessoais.