04/07/2023 12:19
(03/07/2023 20:09)White_Blue Escreveu:(03/07/2023 18:18)AndradeScripter Escreveu:(03/07/2023 17:48)White_Blue Escreveu:(03/07/2023 16:22)AndradeScripter Escreveu: Estou fazendo um login e registro em textdraw e quero transformar os caracteres digitados no DIALOG em estrelas ou asteriscos em um certo textdraw, sei q pra fazer uma estrela em textdraw se usa colchetes mais nao sei como posso contar os caracteres digitados, alguem pode me ajudar? ja vi isso em alguns servidores e achei muito interessante e legal.
É bem simples a lógica, é apenas mudar o texto da textdraw quando o jogador digitar a senha na OnDialogResponse e para pegar o tamanho da string, usamos a função strlen que retorna o tamanho da string em forma de inteiro.
Exemplo(Adapte de acordo com suas preferências):
Código PHP:public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
if(dialogid == sua_dialog) {
static string[128], changedtext[128];
for(new i; i < strlen(inputtext); i++) {
format(changedtext, sizeof(changedtext), "*");
strcat(string, changedtext, sizeof(string));
}
PlayerTextDrawSetString(playerid, sua_textdraw, string);
}
return 1;
}
É bem simples, estou usando a função nativa strlen para retornar o tamanho da string em forma de inteiro e depois formatando o texto com um asterisco(*) e após isso estou formatando a string da textdraw.
Bem simples mesmo, mais nao tive Sucesso... Quando o Player digita a textdraw "some" mais continua ali.
Se possível mostrar o código de como você está fazendo.
Eu uso a include easyDialog então esta assim:
Código PHP:
Dialog:Dialog_Senha(playerid, response, listitem, inputtext[])
{
static string[128], changedtext[128];
if (!response)
return SelectTextDraw(playerid, 0xff0000ff);
else if (isnull(inputtext))
return Dialog_Show(playerid, Dialog_Senha, DIALOG_STYLE_PASSWORD, "Bem Vindo(a)", "Digite uma senha:", "Continuar", "Cancelar");
format(PlayerDados[playerid][SenhaDigitada], 24, inputtext);
for(new i; i < strlen(inputtext); i++)
{
format(changedtext, sizeof(changedtext), "*");
strcat(string, changedtext, sizeof(string));
}
PlayerTextDrawSetString(playerid, TelaLogin[playerid][7], string);
SelectTextDraw(playerid, 0xff0000ff);
return 1;
}
Gentileza gera Gentileza +Rep