Get special caracteres
#1

How i block
"~, #, @, !, -, _, ♣(etc), $%Ё&"
In this cmd ?


pawn Код:
if(strcmp(cmd, "/bizname", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new bouse = PlayerInfo[playerid][pPbiskey];
            if (bouse == 255)
            {
                SendClientMessage(playerid, COLOR_GRAD2, "   You don't own a business");
                return 1;
            }
            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                idx++;
            }
            new offset = idx;
            new result[128];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USE: /bizname [nome]");
            }
            if (bouse >= 100)
            {
                strmid(SBizzInfo[bouse-100][sbMessage], result, 0, 64, 255);
                format(string, sizeof(string), "Business name set to %s",SBizzInfo[bouse-100][sbMessage]);
                OnPropUpdate(3,bouse);
                OnPropTextdrawUpdate(3, bouse);
            }
            else
            {
                strmid(BizzInfo[bouse][bMessage], result, 0, 64, 255);
                format(string, sizeof(string), "Business name set to %s",BizzInfo[bouse][bMessage]);
                OnPropUpdate(2,bouse);
                OnPropTextdrawUpdate(2, bouse);
            }
            SendClientMessage(playerid, COLOR_WHITE, string);
        }
        return 1;
    }
thank yo
Reply
#2

Hi, Ricop522


So, just make a loop to check if the string has a special character, if it has, you can use return to stop the function


I did it for you with switch, look to the code that i put in your command.


Note: You can also check the ASCII characters and use < and > to make the code smaller


pawn Код:
if(strcmp(cmd, "/bizname", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new bouse = PlayerInfo[playerid][pPbiskey];
            if (bouse == 255)
            {
                SendClientMessage(playerid, COLOR_GRAD2, "   You don't own a business");
                return 1;
            }
            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                idx++;
            }
            new offset = idx;
            new result[128];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USE: /bizname [nome]");
            }
            //Look to the code that i made:
            for(new SpecialCaracter = 0; SpecialCaracter <= strlen(result); SpecialCaracter++)
            {
                switch(result[SpecialCaracter])
                {
                    case '~':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case '#':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case '@':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case '!':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case '-':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case '_':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case '?':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case '$':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case '%':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case 'Ё':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                    case '&':
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                        return 1;
                    }
                }
            }
            //The code finishs here
            if (bouse >= 100)
            {
                strmid(SBizzInfo[bouse-100][sbMessage], result, 0, 64, 255);
                format(string, sizeof(string), "Business name set to %s",SBizzInfo[bouse-100][sbMessage]);
                OnPropUpdate(3,bouse);
                OnPropTextdrawUpdate(3, bouse);
            }
            else
            {
                strmid(BizzInfo[bouse][bMessage], result, 0, 64, 255);
                format(string, sizeof(string), "Business name set to %s",BizzInfo[bouse][bMessage]);
                OnPropUpdate(2,bouse);
                OnPropTextdrawUpdate(2, bouse);
            }
            SendClientMessage(playerid, COLOR_WHITE, string);
        }
        return 1;
    }

I hope that i have helped
Reply
#3

Shortening's above code
pawn Код:
if(strcmp(cmd, "/bizname", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new bouse = PlayerInfo[playerid][pPbiskey];
            if (bouse == 255)
            {
                SendClientMessage(playerid, COLOR_GRAD2, "   You don't own a business");
                return 1;
            }
            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                idx++;
            }
            new offset = idx;
            new result[128];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USE: /bizname [nome]");
            }
            //Look to the code that i made:
            for(new SpecialCaracter = 0; SpecialCaracter <= strlen(result); SpecialCaracter++)
            {
                switch(result[SpecialCaracter])
                {
                    case '~', '#', '@', '!', '-', '_', '?', 'ї', '$', '%', '&', '!', 'Ў', '·':
                        return SendClientMessage(playerid, COLOR_WHITE, "The bizname can't have special characters !");
                }
            }
            //The code finishs here
            if (bouse >= 100)
            {
                strmid(SBizzInfo[bouse-100][sbMessage], result, 0, 64, 255);
                format(string, sizeof(string), "Business name set to %s",SBizzInfo[bouse-100][sbMessage]);
                OnPropUpdate(3,bouse);
                OnPropTextdrawUpdate(3, bouse);
            }
            else
            {
                strmid(BizzInfo[bouse][bMessage], result, 0, 64, 255);
                format(string, sizeof(string), "Business name set to %s",BizzInfo[bouse][bMessage]);
                OnPropUpdate(2,bouse);
                OnPropTextdrawUpdate(2, bouse);
            }
            SendClientMessage(playerid, COLOR_WHITE, string);
        }
        return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)