[AJUDA] Funзгo Mudanзa do nick...
#1

Galera tenho uma funзгo que muda no registro do player o nome dele... que й essa:

pawn Код:
if(dialogid == 10012) // Comando Alterar nick
    {
        if (!response)  return 1;
        if (strlen(inputtext) == 0)                 return 1;
        if (strlen(inputtext) > MAX_PLAYER_NAME)    return SendClientMessage(playerid, COR_VERMELHA, "| O nick que vocк inseriu ultrapassou o limite de caracteres para o novo nick.");
        if (strlen(inputtext) < 3)                  return SendClientMessage(playerid, COR_VERMELHA, "| O novo nick deve ter pelo menos 3 caracteres.");

        // mudar aqui
        if (!strcmp("aux", inputtext, true)  || !strcmp("com1", inputtext, true) || !strcmp("com2", inputtext, true) || !strcmp("com3", inputtext, true) ||
            !strcmp("com4", inputtext, true) || !strcmp("com5", inputtext, true) || !strcmp("com6", inputtext, true) || !strcmp("com7", inputtext, true) ||
            !strcmp("com8", inputtext, true) || !strcmp("com9", inputtext, true) || !strcmp("lpt1", inputtext, true) || !strcmp("lpt2", inputtext, true) ||
            !strcmp("lpt3", inputtext, true) || !strcmp("lpt4", inputtext, true) || !strcmp("lpt5", inputtext, true) || !strcmp("lpt6", inputtext, true) ||
            !strcmp("lpt7", inputtext, true) || !strcmp("lpt8", inputtext, true) || !strcmp("lpt9", inputtext, true) || !strcmp("con", inputtext, true) )
        {
            return SendClientMessage(playerid, COR_VERMELHA, "| Nick invбlido.");
        }
        if (ValidaComando(playerid, inputtext) == 0)return 1;
        if (bd_existe_usuario(inputtext))           return SendClientMessage(playerid, COR_VERMELHA, "| O nick escolhido jб foi registrado por outra pessoa.");
        if (!bd_existe_usuario(inputtext))
        {
            bd_renomear_usuario(pName(playerid),inputtext);
            SendClientMessage(playerid, COR_LARANJA, "| Nome da conta alterado com sucesso, vocк foi kickado para relogar [altere o nick no samp]");
            format(strres, 128,"|| %s(%d) foi kickado pelo administrador BOT [motivo: alteraзгo de nick para %s]", pName(playerid), playerid, inputtext);
            SendClientMessageToAll(COR_VERMELHA, strres); Kick(playerid);
        }
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0); return 1;
    }

Ele antes ja apresentava uns problemas como deixar o cara escrever mais de 20 caraceters e tals... ai o cara mudava pra um nome maior que 20, era kikado e nao conseguia retornar ao sv pois quando usava o nick escolhido o samp nao deixava ele entrar por causa do tamanho do nick... Bom mais ainda sobram alguns problemas...

Tem certos carбcteres como { } & * % que nao podem ser usados... Como fazer para que se o player digitar isso no dialog dar mensagem de nick invalido?
Reply
#2

pawn Код:
new BadCharacters[][] =
{
    "{",
    "}",
    "%"
};

for(new e; e != sizeof(BadCharacters); ++e)
{
    for(new i; i < strlen(inputtext); ++i)
    {
        if(!strcmp(BadCharacters[e], inputtext[i], true))
            return print("Caracter invбlido");
    }
}


if(dialogid == 10012) // Comando Alterar nick
    {
        if (!response)  return 1;
        if (strlen(inputtext) == 0)                 return 1;
        if (strlen(inputtext) > MAX_PLAYER_NAME)    return SendClientMessage(playerid, COR_VERMELHA, "| O nick que vocк inseriu ultrapassou o limite de caracteres para o novo nick.");
        if (strlen(inputtext) < 3)                  return SendClientMessage(playerid, COR_VERMELHA, "| O novo nick deve ter pelo menos 3 caracteres.");

        // mudar aqui
        if (!strcmp("aux", inputtext, true)  || !strcmp("com1", inputtext, true) || !strcmp("com2", inputtext, true) || !strcmp("com3", inputtext, true) ||
            !strcmp("com4", inputtext, true) || !strcmp("com5", inputtext, true) || !strcmp("com6", inputtext, true) || !strcmp("com7", inputtext, true) ||
            !strcmp("com8", inputtext, true) || !strcmp("com9", inputtext, true) || !strcmp("lpt1", inputtext, true) || !strcmp("lpt2", inputtext, true) ||
            !strcmp("lpt3", inputtext, true) || !strcmp("lpt4", inputtext, true) || !strcmp("lpt5", inputtext, true) || !strcmp("lpt6", inputtext, true) ||
            !strcmp("lpt7", inputtext, true) || !strcmp("lpt8", inputtext, true) || !strcmp("lpt9", inputtext, true) || !strcmp("con", inputtext, true) )
        {
            return SendClientMessage(playerid, COR_VERMELHA, "| Nick invбlido.");
        }
       
        new BadCharacters[][] =
        {
            "{",
            "}",
            "%"
        };

        for(new e; e != sizeof(BadCharacters); ++e)
        {
            for(new i; i < strlen(inputtext); ++i)
            {
                if(!strcmp(BadCharacters[e], inputtext[i], true))
                    return print("Caracter invбlido");
            }
        }
        if (ValidaComando(playerid, inputtext) == 0)return 1;
        if (bd_existe_usuario(inputtext))           return SendClientMessage(playerid, COR_VERMELHA, "| O nick escolhido jб foi registrado por outra pessoa.");
        if (!bd_existe_usuario(inputtext))
        {
            bd_renomear_usuario(pName(playerid),inputtext);
            SendClientMessage(playerid, COR_LARANJA, "| Nome da conta alterado com sucesso, vocк foi kickado para relogar [altere o nick no samp]");
            format(strres, 128,"|| %s(%d) foi kickado pelo administrador BOT [motivo: alteraзгo de nick para %s]", pName(playerid), playerid, inputtext);
            SendClientMessageToAll(COR_VERMELHA, strres); Kick(playerid);
        }
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0); return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)