jeffreymcdon
Ученик
Проблема в том, что подходит совершенно любой код (который не имеет русских символов и состоит из 6 символов)
Это кейс самого диалога каптч
Код:
stock RandomString()
stock RandomString()
{
new string[8];
format(string, 8, "%c%c%i%c", 65+random(26), 65+random(26), 100+random(899), 65+random(26));
return string;
}
stock ShowCaptcha(playerid)
{
new string[90];
format(string, 90, "%s", RandomString());
SetPVarString(playerid, "Captcha", string);
format(string, 90, "{FFFFFF}Введите данный код: {FFDEAD}%s", string);
ShowPlayerDialog(playerid, 6, 1, "Проверка на бота", string, "Далее", "Выход");
return 1;
}
Код:
case 6:
{
if(response)
{
if(strlen(inputtext) < 6 || strlen(inputtext) > 6)
{
ShowCaptcha(playerid);
SCM(playerid, COLOR_RED, "Длинна кода должна состоять из 6 символов!");
return true;
}
for(new i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case 'А'..'Я', 'а'..'я':
{
ShowCaptcha(playerid);
SCM(playerid, COLOR_RED, "Код не должен состоять из русских символов!");
return true;
}
}
}
if(strcmp(string, inputtext, true) != 0)
{
SendClientMessage(playerid, COLOR_RED, "Код введен неверно!");
ShowCaptcha(playerid);
return true;
}
else
{
SCM(playerid, COLOR_RED, "Вы были кикнуты. Для выхода введите /q");
Kickk(playerid);
}
Player[playerid][pLevel] = 1;
Player[playerid][pMoney] = 0;
Player[playerid][pAdmin] = 0;
SpawnPlayer(playerid);
SavePlayer(playerid);
mysql_format(ConnectMySQL, string, sizeof(string), "INSERT INTO `accounts` (`Name`, `Level`, `Skin`, `Sex`, `Pass`, `Money`, 'Mail', 'Age') VALUES ('%s', '%d', '%d', '%d', '%s', '%d', '%s', '%s')", GN(playerid), Player[playerid][pLevel], Player[playerid][pSkin], Player[playerid][pSex], Player[playerid][pPass], Player[playerid][pMoney], Player[playerid][pMail], Player[playerid][pAge]);
mysql_function_query(ConnectMySQL, string, true, "Registr", "d", playerid);
Login[playerid] = true;
SCM(playerid, COLOR_WHITE, "Поздравляем вас с успешной регистрацией аккаунта!");
GetPVarString(playerid, "Captcha", string, 32);
return true;
}
