SA-MP Forums Archive
invaild name? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: invaild name? (/showthread.php?tid=348823)



invaild name? - sanrock - 06.06.2012

pawn Код:
CMD:changename(playerid, params[])
{
    new newname[24];
    new string[128];
    new pname[MAX_PLAYER_NAME];
    if(sscanf(params, "s[24]",newname))return SendClientMessage(playerid, COLOR_RED,"Usage: /changename <New Name>");

    GetPlayerName(playerid,pname,24);
    new query1[256],escapename[24];
    mysql_real_escape_string(newname, escapename);
    format(query1, sizeof(query1), "SELECT `user` FROM `playerdata` WHERE `user` = '%s'", escapename);
    mysql_query(query1);
    mysql_store_result();
    new rows = mysql_num_rows();
    if(!rows)
    {
        new query[256];
        format(query, sizeof(query), "UPDATE `playerdata` SET `user`= '%s' WHERE `user` ='%s'",escapename,pname);
        mysql_query(query);
        SetPlayerName(playerid ,newname);
        format(string, sizeof(string),"You have changed your name to %s", newname);
        SendClientMessage(playerid, COLOR_GRAYDARK, string);
        format(string, sizeof(string),"%s has changed their name into %s", pname, newname);
        SendMessageToAllAdmins(string, COLOR_GRAYDARK);
    }
    else if(rows == 1)
    {
        SendClientMessage(playerid, COLOR_RED, "This name already exists!");
    }
    mysql_free_result();
    return 1;
}
how do I make it put like invaild name if someone does 3 letters and under?
like

SendClientMessage(playerid, COLOR_RED, "Invaild name"

But how do I make it detect if it invaild?

3 and under letters (invaild)


Re: invaild name? - Jonny5 - 06.06.2012

pawn Код:
if (4 > strlen(newname) > 24) return // your message here saying their name is under 4 or over 24 and invalid
i added the check for over 24 also, even though your string is set for size 24 so really you wont need that just

pawn Код:
if (4 > strlen(newname) ) return // your message here saying their name is under 4



Re: invaild name? - sanrock - 07.06.2012

I can still change my name to like 0
and 00000000000000000000000000000000000000000000000000 0000


Re: invaild name? - sanrock - 07.06.2012

Bump


Re: invaild name? - Jefff - 07.06.2012

pawn Код:
CMD:changename(playerid, params[])
{
    new newname[24];
    new string[128];
    new pname[MAX_PLAYER_NAME];
    if(isnull(params)) SendClientMessage(playerid, COLOR_RED,"Usage: /changename <New Name>");
    else if(!(3 < strlen(params) < 21)) SendClientMessage(playerid, COLOR_RED, "Invaild name");
    else{
        GetPlayerName(playerid,pname,24);
        new query1[256],escapename[24];
        mysql_real_escape_string(params, escapename);
        format(query1, sizeof(query1), "SELECT `user` FROM `playerdata` WHERE `user` = '%s' LIMIT 1;", escapename);
        mysql_query(query1);
        mysql_store_result();
        if(!mysql_num_rows())
        {
            new query[256];
            format(query, sizeof(query), "UPDATE `playerdata` SET `user`= '%s' WHERE `user` ='%s'",escapename,pname);
            mysql_query(query);
            SetPlayerName(playerid,escapename);
            format(string, sizeof(string),"You have changed your name to %s", escapename);
            SendClientMessage(playerid, COLOR_GRAYDARK, string);
            format(string, sizeof(string),"%s has changed their name into %s", pname, escapename);
            SendMessageToAllAdmins(string, COLOR_GRAYDARK);
        }
        else SendClientMessage(playerid, COLOR_RED, "This name already exists!");
        mysql_free_result();
    }
    return 1;
}