Portal SAMP
[Ajuda] Mostrar imagem de fundo quando player loga - 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] Mostrar imagem de fundo quando player loga (/showthread.php?tid=3795)



Mostrar imagem de fundo quando player loga - Usuário Aleatório - 16/07/2023

Já vi alguns servidores onde,quando o player loga,é mostrado imagens de fundo q podem ser tipo q artworks e tals ou a própria "logo" do servidor,gostaria de saber como q faz isso.O q eu devo usar pra fazer isso?Como q bota imagens?Devo usar texdraws ou algo assim?


RE: Mostrar imagem de fundo quando player loga - White_Blue - 16/07/2023

O SA-MP não permite usar imagens personalizadas(Você pode usar o plugin CEF para colocar imagens personalizadas, mas o CEF precisa de que o jogador também tenha o mod instalado no GTA dele, se não o CEF não funciona), mas é possível usar artworks do próprio jogo em forma de textdraw.

Aqui é possível encontrar todos os sprites(Imagens do jogo) para uso.

No TDEditor, quando você vai criar uma textdraw é possível selecionar a opção de criar um sprite, no lugar do texto da textdraw você coloca o nome do sprite junto com a classe do sprite.

P.S: Há uma ferramenta chamada Image2Textdraw que permite converter imagens em textdraws, mas ela faz com que cada textdraw se torne um pixel da imagem, fazendo com que para exibir uma imagem seja necessário até milhões de textdraws tornando praticamente insustentável, mas caso tenha interesse, recomendo ler esse tópico: https://portalsamp.com/showthread.php?tid=3395


RE: Mostrar imagem de fundo quando player loga - Usuário Aleatório - 17/07/2023

(16/07/2023 16:56)White_Blue Escreveu: O SA-MP não permite usar imagens personalizadas(Você pode usar o plugin CEF para colocar imagens personalizadas, mas o CEF precisa de que o jogador também tenha o mod instalado no GTA dele, se não o CEF não funciona), mas é possível usar artworks do próprio jogo em forma de textdraw.

Aqui é possível encontrar todos os sprites(Imagens do jogo) para uso.

No TDEditor, quando você vai criar uma textdraw é possível selecionar a opção de criar um sprite, no lugar do texto da textdraw você coloca o nome do sprite junto com a classe do sprite.

P.S: Há uma ferramenta chamada Image2Textdraw que permite converter imagens em textdraws, mas ela faz com que cada textdraw se torne um pixel da imagem, fazendo com que para exibir uma imagem seja necessário até milhões de textdraws tornando praticamente insustentável, mas caso tenha interesse, recomendo ler esse tópico: https://portalsamp.com/showthread.php?tid=3395

Opa eaí,tudo bom?Quero fazer um sistema onde quando o player logar mostrar uma sprite aleatória pro player tipo de imagem de fundo tlgd (da sprite loadsc 0 até á loadsc 14)mas n sei como fazer,podem ajudar? (Acho q teria de usar uma função tipo de "switch (random) se n me engano algo desse gênero né? )


RE: Mostrar imagem de fundo quando player loga - White_Blue - 17/07/2023

(17/07/2023 10:21)Usuário Aleatório Escreveu:
(16/07/2023 16:56)White_Blue Escreveu: O SA-MP não permite usar imagens personalizadas(Você pode usar o plugin CEF para colocar imagens personalizadas, mas o CEF precisa de que o jogador também tenha o mod instalado no GTA dele, se não o CEF não funciona), mas é possível usar artworks do próprio jogo em forma de textdraw.

Aqui é possível encontrar todos os sprites(Imagens do jogo) para uso.

No TDEditor, quando você vai criar uma textdraw é possível selecionar a opção de criar um sprite, no lugar do texto da textdraw você coloca o nome do sprite junto com a classe do sprite.

P.S: Há uma ferramenta chamada Image2Textdraw que permite converter imagens em textdraws, mas ela faz com que cada textdraw se torne um pixel da imagem, fazendo com que para exibir uma imagem seja necessário até milhões de textdraws tornando praticamente insustentável, mas caso tenha interesse, recomendo ler esse tópico: https://portalsamp.com/showthread.php?tid=3395

Opa eaí,tudo bom?Quero fazer um sistema onde quando o player logar mostrar uma sprite aleatória pro player tipo de imagem de fundo tlgd (da sprite loadsc 0 até á loadsc 14)mas n sei como fazer,podem ajudar? (Acho q teria de usar uma função tipo de "switch (random) se n me engano algo desse gênero né? )

Use a função random, que gera um número semialeatório.

Exemplo:

Código PHP:
new Text:LoginBG[MAX_PLAYERS];

stock ShowLoginBackground(playerid) {
    new Random random(3);
    if(Random == 0) {
        LoginBG[playerid] = TextDrawCreate(-0.500, -0.500"loadsc1:loadsc1");
        TextDrawFont(LoginBG[playerid], 4);
        TextDrawTextSize(LoginBG[playerid], 641.500449.500);
        TextDrawColor(LoginBG[playerid], -1);
    }
    else if(Random == 1) {
        LoginBG[playerid] = TextDrawCreate(-0.500, -0.500"loadsc2:loadsc2");
        TextDrawFont(LoginBG[playerid], 4);
        TextDrawTextSize(LoginBG[playerid], 641.500449.500);
        TextDrawColor(LoginBG[playerid], -1);
    }
    else if(Random == 2) {
        LoginBG[playerid] = TextDrawCreate(-0.500, -0.500"loadsc3:loadsc3");
        TextDrawFont(LoginBG[playerid], 4);
        TextDrawTextSize(LoginBG[playerid], 641.500449.500);
        TextDrawColor(LoginBG[playerid], -1);
    }
    else if(Random == 3) {
        LoginBG[playerid] = TextDrawCreate(-0.500, -0.500"loadsc4:loadsc4");
        TextDrawFont(LoginBG[playerid], 4);
        TextDrawTextSize(LoginBG[playerid], 641.500449.500);
        TextDrawColor(LoginBG[playerid], -1);
    }
    TextDrawShowForPlayer(playeridLoginBG[playerid]);

  return 1;




RE: Mostrar imagem de fundo quando player loga - Dr Editor - 17/07/2023

(17/07/2023 10:48)White_Blue Escreveu:
(17/07/2023 10:21)Usuário Aleatório Escreveu:
(16/07/2023 16:56)White_Blue Escreveu: O SA-MP não permite usar imagens personalizadas(Você pode usar o plugin CEF para colocar imagens personalizadas, mas o CEF precisa de que o jogador também tenha o mod instalado no GTA dele, se não o CEF não funciona), mas é possível usar artworks do próprio jogo em forma de textdraw.

Aqui é possível encontrar todos os sprites(Imagens do jogo) para uso.

No TDEditor, quando você vai criar uma textdraw é possível selecionar a opção de criar um sprite, no lugar do texto da textdraw você coloca o nome do sprite junto com a classe do sprite.

P.S: Há uma ferramenta chamada Image2Textdraw que permite converter imagens em textdraws, mas ela faz com que cada textdraw se torne um pixel da imagem, fazendo com que para exibir uma imagem seja necessário até milhões de textdraws tornando praticamente insustentável, mas caso tenha interesse, recomendo ler esse tópico: https://portalsamp.com/showthread.php?tid=3395

Opa eaí,tudo bom?Quero fazer um sistema onde quando o player logar mostrar uma sprite aleatória pro player tipo de imagem de fundo tlgd (da sprite loadsc 0 até á loadsc 14)mas n sei como fazer,podem ajudar? (Acho q teria de usar uma função tipo de "switch (random) se n me engano algo desse gênero né? )

Use a função random, que gera um número semialeatório.

Exemplo:

Código PHP:
new Text:LoginBG[MAX_PLAYERS];

stock ShowLoginBackground(playerid) {
    new Random random(3);
    if(Random == 0) {
        LoginBG[playerid] = TextDrawCreate(-0.500, -0.500"loadsc1:loadsc1");
        TextDrawFont(LoginBG[playerid], 4);
        TextDrawTextSize(LoginBG[playerid], 641.500449.500);
        TextDrawColor(LoginBG[playerid], -1);
    }
    else if(Random == 1) {
        LoginBG[playerid] = TextDrawCreate(-0.500, -0.500"loadsc2:loadsc2");
        TextDrawFont(LoginBG[playerid], 4);
        TextDrawTextSize(LoginBG[playerid], 641.500449.500);
        TextDrawColor(LoginBG[playerid], -1);
    }
    else if(Random == 2) {
        LoginBG[playerid] = TextDrawCreate(-0.500, -0.500"loadsc3:loadsc3");
        TextDrawFont(LoginBG[playerid], 4);
        TextDrawTextSize(LoginBG[playerid], 641.500449.500);
        TextDrawColor(LoginBG[playerid], -1);
    }
    else if(Random == 3) {
        LoginBG[playerid] = TextDrawCreate(-0.500, -0.500"loadsc4:loadsc4");
        TextDrawFont(LoginBG[playerid], 4);
        TextDrawTextSize(LoginBG[playerid], 641.500449.500);
        TextDrawColor(LoginBG[playerid], -1);
    }
    TextDrawShowForPlayer(playeridLoginBG[playerid]);

  return 1;


Uma pequena ressalva: o valor aleatório será entre 0 e 2 neste caso.
Citar:A random number ranging from 0 to max-1.