Novidades
Mostrando postagens com marcador progresso. Mostrar todas as postagens
Mostrando postagens com marcador progresso. Mostrar todas as postagens

4/23/2020

CharaDa_Fox

TUTORIAL Progress Bar SAMP COMO USAR FORUM

Introdução

Bem, eu vi muitos aborrecedores saúde veículo textdraws, então, eu fiz isso, com o mesmo visual como a barra de saúde GTA original. Com isso inclua, você pode criar barras de progresso com a posição, tamanho e cor desejada. É muito simples de usar, vou mostrar aqui. 

Funções

  • CreateProgressBar (x, y, largura, altura, cor, máximo)

    Cria uma barra de progresso (quase o mesmo que TextDrawCreate).


    • x e y valores são a posição da barra na tela;
    • Largura e altura são o tamanho da barra (eles têm valores padrão, basta colocar _ como parâmetro);
    • A cor é a cor da barra, obviamente;
    • Max é a porcentagem máxima que a barra pode alcançar (padrão 100).



    Retorna: a barra criada.


  • DestroyProgressBar (barid)

    Destrói uma barra criada.



  • ShowProgressBarForPlayer (playerid, barid)

    Mostra simplesmente a barra de progresso dada para um jogador.



  • HideProgressBarForPlayer (playerid, barid)

    Oculta a barra de progresso de um jogador.



  • ShowProgressBarForAll (barid)

    Mostra a barra de progresso fornecida para todos os jogadores conectados.



  • HideProgressBarForAll (barid)

    Oculta a barra de progresso de todos os jogadores conectados.



  • SetProgressBarValue (barid, value)

    Altera a porcentagem atual da determinada barra de progresso (é ponto float). Lembre-se de que o valor máximo é o valor que você deu a ele em CreateProgressBar.



  • GetProgressBarValue (barid)

    Obtém o valor atual de uma barra de progresso . 
    Nota: retornará INVALID_BAR_VALUE se a barra não existir ou se algo der errado.



  • SetProgressBarMaxValue (barid, max)

    O valor máximo é dinâmico, você pode alterá-lo sempre que quiser e atualizará por si mesmo (o valor da barra de progresso atual permanecerá igual, a diferença que você vê na barra).



  • SetProgressBarColor (barra, cor)

    Define a cor da barra para o que você quiser. A inclusão agora suporta cores transparentes , portanto, tenha cuidado ao usar AA ou 00 como Alpha. Se você deseja que a cor seja totalmente colorida, use FF no final da cor (ou seja, 0x00FF00 FF ). 
    Toda vez que você usar esta função, você precisará usar a função "UpdateProgressBar", veja acima.



  • UpdateProgressBar (barid, playerid = INVALID_PLAYER_ID)

    Toda vez que você altera um valor ou cor de barra de progresso, é necessário atualizá-lo. Eu não incluí esta função diretamente em SetProgressBarValue / SetProgressBarColor, porque não é eficiente desta maneira. 
    Você pode simplesmente não usar o parâmetro playerid ea barra de progresso será atualizada para todos.



Use a

criação simples da barra de progresso:

Código:
Novo Barra: health = CreateProgressBar (50,0, 300,0, _, _, 0xFF0000FF, 100,0);
SetProgressBarValue (saúde, 50,0);
ShowProgressBarForAll (saúde);


E se eu quero destruí-lo:



E se eu quero destruí-lo:



Código:
DestroyProgressBar (saúde);


Neste caso eu criei uma barra de progresso verde para mostrar a saúde real do veículo. 
Nesta barra estou usando o tamanho da barra de progresso padrão (55.5, 3.2). 
A cor de fundo (verde escuro neste caso), você não precisa declará-lo, o próprio incluir calcula a cor de fundo usando operações de RGBA hexadecimal. 

Este script de exemplo:



Código:



[size=13]#include <a_samp>
#include <progress>

Novo Bar: vhealth [MAX_PLAYERS] = {INVALID_BAR_ID, ...};
Forward ProgressBar ();

Public OnFilterScriptInit ()
{
   SetTimer ("ProgressBar", 500, 1);
   Return 1;
}

Public ProgressBar () // Eu prefiro não usar OnPlayerUpdate com textdraws
{
   Para (novo playerid; playerid <MAX_PLAYERS; playerid ++) // Eu recomendo foreach (Player, playerid)
   {
      Veículo novo;
      If ((vehicleid = GetPlayerVehicleID (playerid)) && vhealth [playerid]! = INVALID_BAR_ID)
      {
         Novo Flutuador: saúde;
         GetVehicleHealth (veículo, saúde);
         SetProgressBarValue (vhealth [playerid], saúde);
         UpdateProgressBar (vhealth [playerid], playerid);
      }
   }
}

Public OnPlayerStateChange (playerid, newstate, oldstate)
{
   If (oldstate == PLAYER_STATE_DRIVER)
   {
      DestroyProgressBar (vhealth [playerid]);
      Vhealth [playerid] = INVALID_BAR_ID;
   }
   If (newstate == PLAYER_STATE_DRIVER)
   {
      Vhealth [playerid] = CreateProgressBar (548,5, 36,0, _, _, 0x00FF00FF, 1000,0);
      ShowProgressBarForPlayer (playerid, vhealth [playerid]);
   }
   Return 1;
}[/size]


Erros

Não há nenhum erro ainda. Informe aqui se encontrou um. 

Futuras modificações

  • Use setproperty e getproperty para habilitar a comunicação entre uma barra de progresso gamemode e uma de filtroscript. Assim, você será capaz de destruir uma barra de progresso criada em um gamemode, pelo seu filterscript e etc
  • Adicione suporte a cores transparentes.
  • Faça um editor de barra prrogess, para obter coordenadas.


Download

Pastebinv1.3.1OLD VERSION
NOVA VERSÃO LINK (PASTEBIN)

http://pastebin.com/ZuLPd1K6
Graças a [HLF] Southclaw para as mudanças. Tenha em atenção que as funções foram alteradas nesta versão, por isso consulte o ficheiro de inclusão para ver os novos nomes e parâmetros das funções. 

Coloque este script em um arquivo chamado "progress.inc", e coloque esse arquivo em sua pasta de inclusão. Em seguida, use "#include 

New Progress Bar Creator
http://pastebin.com/P6iPFp9F

Vídeo: