Portal SAMP
[Ajuda] Não diferenciar Maiúsculas de Minusculas - 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] Não diferenciar Maiúsculas de Minusculas (/showthread.php?tid=3890)



Não diferenciar Maiúsculas de Minusculas - ViniBicalho17 - 12/08/2023

Quero que as letras maiusculas e minusculas não sejam diferenciadas. Exemplo o nick que o player entrou é "Nome_Sobrenome", e já existe no banco de dados a conta "nome_sobrenome". Eu quero que a conta nao seja criada, porém no meu caso, a conta está sendo criada, ou seja, está diferenciado letras maiúsculas de minúsculas.

Código:
forward AccountExists(Name[]);
public AccountExists(Name[])
{
    new Query[200];
    format(Query, sizeof(Query), "SELECT `ID` FROM `contas` WHERE `Nome` = '%s'", DB_Escape(Name));
    Resultado = db_query(Conexao,Query);
    if(db_num_rows(Resultado) > 0)
    {
         db_free_result(Resultado);
        return true;
    }
    else
    {
         db_free_result(Resultado);
        return false;
    }
}

Código:
        new loginstring[255];
    if(AccountExists(PlayerName(playerid)))
    {
        //Conta Registrada, logar
    }
    else
    {
        //Conta Não registrada, registre
    }
Queria que ele fosse kickado aqui nesta verificação:
Código:
OnPlayerRegister(playerid, password[])
{
if(OnPlayerRegister_Debug[playerid]) return 0;

    OnPlayerRegister_Debug[playerid] = true;

if(IsPlayerConnected(playerid))
{
    if(AccountExists(PlayerName(playerid)))
{
      SendClientMessage(playerid, COR_BRANCO, "ERRO, Sua conta ja existe no nosso banco de dados!");
    Kick(playerid);
    return 1;
}



RE: Não diferenciar Maiúsculas de Minusculas - xbruno1000x - 13/08/2023

A função strtolower converte todos os caracteres para minúsculos.

Código:
// native strtolower(string[]); // Fake native
stock strtolower(string[]) {
    for(new c = 0, length = strlen(string); c < length; c++) {
        string[c] = tolower(string[c]);
    }

    /*new c = 0;
    while(string[c] != '\0') {
        string[c] = tolower(string[c]);
        c++;
    }*/
}

Link da include:
https://github.com/WoutProvost/samp-util/blob/master/util/string.inc


RE: Não diferenciar Maiúsculas de Minusculas - Dr Editor - 14/08/2023

Nativamente existe o recurso de consulta de case-insensitive adicionando COLLATE NOCASE no fim da cláusula WHERE.