25/10/2022 13:00
(Esta mensagem foi modificada pela última vez a: 25/10/2022 13:04 por Carlos Victor.)
Exatamente como o Bruno disse, eu recentemente desenvolvi um sistema parecido mas para RG & CPF em DOF2, mas abandonei o projeto por justamente ser DOF2, eu estou refazendo ele em SQLite, enfim... Irei deixar o código abaixo:
Vou deixar também, um código que eu usava muito, pra formatar essa string em um RG como nós geralmente vê, no caso do sistema, ele salva o rg inteiro, sem a formatação ou seja ele salva assim: 128532938 e pra formatar é só usar a função abaixo pra deixar ele: 12.853.293-8
O modo de uso é formatRG(string)
Exemplo:
printf("O RG %s formatado é: %s", "128532938", formatRG("128532938")
Saída: O RG 128532938 formatado é: 12.853.293-8
Código:
stock givePlayerRG(playerid)
{
new value[10], arquivo[64];
format(value, sizeof(value), "%d", randomEx(000000000, 999999999)); //Aqui gera um número aleatório
if(strlen(value) != 9) // Aqui eu verifico se o número gerado tem 9 caracteres que é o que um RG padrão deve ter 000000006 (00.000.000-6)
return givePlayerRG(playerid); // Se não tiver, gera novamente.
format(arquivo, sizeof(arquivo), "Verifications/RG/%s.ini", value); // Aqui eu verifico na pasta "Verifications/RG" se ja existe um RG identifoco
if(DOF2_FileExists(arquivo)) // Se sim
return givePlayerRG(playerid); // Gera novamente
DOF2_CreateFile(arquivo); // Se passar por todas as verificações acima, significa que está ok
DOF2_SaveFile(); // Crio e salvo o RG na pasta, ai é só você setar pro jogador
// O sistema é sobre RG, mas tu pode modificar e seguir a mesma base do sistema.
return 1;
}
Vou deixar também, um código que eu usava muito, pra formatar essa string em um RG como nós geralmente vê, no caso do sistema, ele salva o rg inteiro, sem a formatação ou seja ele salva assim: 128532938 e pra formatar é só usar a função abaixo pra deixar ele: 12.853.293-8
Código:
stock formatRG(const text[])
{
static sub[14];
format(sub, sizeof sub, text);
// 01.234.567-8
// 012345678
strins(sub, ".", 2);
strins(sub, ".", 6);
strins(sub, "-", 10);
return sub;
}
Exemplo:
printf("O RG %s formatado é: %s", "128532938", formatRG("128532938")
Saída: O RG 128532938 formatado é: 12.853.293-8