textdraw de % de vida - Yuriasdasdasda - 16/09/2023
preciso de ajuda em um sistema de contagem de vida em t e x t d r a w em % t l g d tipo 100% de acordo com a vida do player
RE: ajuda textdraw de % de vida - xbruno1000x - 16/09/2023
A vida varia de 0 a 100, ou seja, já está em porcentagem.
Bastaria pegar a quantidade de vida:
Código: new Float:health;
GetPlayerHealth(playerid,health);
e posteriormente setar a string da textdraw criada:
Código: format(tdstring, sizeof(tdstring), "Vida: %0f", health);
PlayerTextDrawSetString(playerid, HealthTD[playerid], tdstring);
Essa setagem poderia ocorrer numa Callback chamada sempre que o player toma dano, como a OnPlayerTakeDamage.
Obs: a textdraw deverá ser criada em um editor como o Nick's Textdraw Editor(NTD).
Link: https://github.com/Nickk888SAMP/TextDraw-Editor/releases/download/6.1.1/ntd_6_1_1.zip
Caso o NTD seja muito complexo pra você, também indico o Zamaroth que é mais simples de usar.
Link: https://github.com/dimmyi/Zamaroht-s-TextDraw-Editor-V4.0/releases/download/4.0/zamaroth-td-editor-v4.0.zip
RE: textdraw de % de vida - Yuriasdasdasda - 16/09/2023
eu botei la mais n funciono
(16/09/2023 13:14)xbruno1000x Escreveu: A vida varia de 0 a 100, ou seja, já está em porcentagem.
Bastaria pegar a quantidade de vida:
Código: new Float:health;
GetPlayerHealth(playerid,health);
e posteriormente setar a string da textdraw criada:
Código: format(tdstring, sizeof(tdstring), "Vida: %0f", health);
PlayerTextDrawSetString(playerid, pVehicleHealthTD[playerid], tdstring);
Essa setagem poderia ocorrer numa Callback chamada sempre que o player toma dano, como a OnPlayerTakeDamage.
Obs: a textdraw deverá ser criada em um editor como o Nick's Textdraw Editor(NTD).
Link: https://github.com/Nickk888SAMP/TextDraw-Editor/releases/download/6.1.1/ntd_6_1_1.zip
Caso o NTD seja muito complexo pra você, também indico o Zamaroth que é mais simples de usar.
Link: https://github.com/dimmyi/Zamaroht-s-TextDraw-Editor-V4.0/releases/download/4.0/zamaroth-td-editor-v4.0.zip Código: new Float:health;
GetPlayerHealth(playerid,health);
new tdstring[12];
format(tdstring, sizeof(tdstring), "%0f", health);
PlayerTextDrawSetString(playerid, hudnovo[playerid][10], tdstring); botei assim
RE: textdraw de % de vida - White_Blue - 16/09/2023
(16/09/2023 18:40)Yuriasdasdasda Escreveu: eu botei la mais n funciono
O Bruno deu literalmente a base inteira para você fazer o sistema que deseja. Basta adaptar e criar a Textdraw do jeito que quiser.
Código PHP: new Float:Health, str[65]; // Declara a variável "Health" do tipo float para armazenar números quebrados(80.5% por exemplo) e declara a string "str" para armazenar o texto da Textdraw, que no caso é o valor da vida do jogador.
GetPlayerHealth(playerid, Health); // Pega a vida do jogador e armazena na variável "Health".
format(str, sizeof(str), "%.2f", Health); // Formata a string "str" com o valor da variável "Health". PlayerTextDrawSetString(playerid, Variavel_Da_Sua_Textdraw_Gerada_Pelo_Editor[playerid], str); // Seta a string "str" na Textdraw que você quiser.
Exemplo prático:
Código PHP: new PlayerText:HealthText[MAX_PLAYERS]; // Declara a variável "HealthText" para armazenar a Textdraw de vida. new str[65], Float:Health;
public OnPlayerConnect(playerid) { GetPlayerHealth(playerid, Health);
format(str, sizeof(str), "%.2f", Health); HealthText[playerid] = CreatePlayerTextDraw(playerid, 320.0, 240.0, "~n~"); // Cria a Textdraw "HealthText".
PlayerTextDrawSetString(playerid, HealthText[playerid], str); PlayerTextDrawShow(playerid, HealthText[playerid]); return 1; }
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) /* Usamos a callback OnPlayerTakeDamage para atualizar a Textdraw de vida do jogador toda vez que ele receber algum dano. */ { GetPlayerHealth(playerid, Health);
format(str, sizeof(str), "%.2f", Health); PlayerTextDrawSetString(playerid, HealthText[playerid], str); PlayerTextDrawShow(playerid, HealthText[playerid]); return 1; }
Adapte os exemplos acima de acordo com suas preferências e necessidades.
RE: textdraw de % de vida - Yuriasdasdasda - 16/09/2023
(16/09/2023 18:57)White_Blue Escreveu: (16/09/2023 18:40)Yuriasdasdasda Escreveu: eu botei la mais n funciono
O Bruno deu literalmente a base inteira para você fazer o sistema que deseja. Basta adaptar e criar a Textdraw do jeito que quiser.
Código PHP: new Float:Health, str[65]; // Declara a variável "Health" do tipo float para armazenar números quebrados(80.5% por exemplo) e declara a string "str" para armazenar o texto da Textdraw, que no caso é o valor da vida do jogador.
GetPlayerHealth(playerid, Health); // Pega a vida do jogador e armazena na variável "Health".
format(str, sizeof(str), "%.2f", Health); // Formata a string "str" com o valor da variável "Health". PlayerTextDrawSetString(playerid, Variavel_Da_Sua_Textdraw_Gerada_Pelo_Editor[playerid], str); // Seta a string "str" na Textdraw que você quiser.
Exemplo prático:
Código PHP: new PlayerText:HealthText[MAX_PLAYERS]; // Declara a variável "HealthText" para armazenar a Textdraw de vida. new str[65], Float:Health;
public OnPlayerConnect(playerid) { GetPlayerHealth(playerid, Health);
format(str, sizeof(str), "%.2f", Health); HealthText[playerid] = CreatePlayerTextDraw(playerid, 320.0, 240.0, "~n~"); // Cria a Textdraw "HealthText".
PlayerTextDrawSetString(playerid, HealthText[playerid], str); PlayerTextDrawShow(playerid, HealthText[playerid]); return 1; }
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) /* Usamos a callback OnPlayerTakeDamage para atualizar a Textdraw de vida do jogador toda vez que ele receber algum dano. */ { GetPlayerHealth(playerid, Health);
format(str, sizeof(str), "%.2f", Health); PlayerTextDrawSetString(playerid, HealthText[playerid], str); PlayerTextDrawShow(playerid, HealthText[playerid]); return 1; }
eu entendi oque o bruno mando mais tipo ele n esta setando na textdraw a % da vida enquando o sede e fome seta certinho
RE: textdraw de % de vida - xbruno1000x - 16/09/2023
(16/09/2023 19:20)Yuriasdasdasda Escreveu: eu entendi oque o bruno mando mais tipo ele n esta setando na textdraw a % da vida enquando o sede e fome seta certinho
Aí você precisa mostrar como fez, pois você fez algo incorreto que precisa ser corrigido.
Você poderia adicionar a atualização da String da textdraw de vida no mesmo lugar que a fome e sede. Já que eles estão funcionando, a Callback deve estar sendo chamada corretamente.
RE: textdraw de % de vida - Yuriasdasdasda - 16/09/2023
(16/09/2023 19:30)xbruno1000x Escreveu: (16/09/2023 19:20)Yuriasdasdasda Escreveu: eu entendi oque o bruno mando mais tipo ele n esta setando na textdraw a % da vida enquando o sede e fome seta certinho
Aí você precisa mostrar como fez, pois você fez algo incorreto que precisa ser corrigido.
Você poderia adicionar a atualização da String da textdraw de vida no mesmo lugar que a fome e sede. Já que eles estão funcionando, a Callback deve estar sendo chamada corretamente.
botei assim o
Código: GetPlayerHealth(playerid, Health);
format(str, sizeof(str), "%.2f", Health);
PlayerTextDrawSetString(playerid, hudnovo[playerid][15], str); botei na mesma callback do sede e fome agora aparece a % 00.0 na textdraw mais n seta a % da vida do player
|