Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Регистрация аккаунта

Статус
В этой теме нельзя размещать новые ответы.

-Enot

Компетентный
Начал писать регу и столкнулся с такой проблемой, как некорректная работа ее.
Суть в чем, толи проверки неправильные, толи я где-то накосячил.
В общем, при вводе пароля, если вводить 6 - 15 символов, все нормально.
Если ввести один символ, вылазит текст, но диалог не обновляется.
Если ввожу на русском, мне выскакивает флуд текстом в строк 5-7 и появляется следующий диалог.
С эмэйлом и ником почти так-же.
Только при вводе ника, на русском или нет, без разницы, пишет "Неверный формат электронного адреса" и бла-бла-бла.
Так-же диалог просто исчезает.
При нажатии кнопки "Далее" он просто переходит на следующий диалог, что выполняет кнопка "Пропустить".
С эмэйлом тоже самый косяк, только он не выводит диалог выбора пола, а сразу выбивает текст, что я зарегистрировался.

Код кинул под спойлер.

PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	new string[210];
	switch(dialogid)
	{
		case 1:
		{
			if(response)
			{
				if(!strlen(inputtext))
				{
	   				f("{CFCFCF}____________________________________\n\nДобро пожаловать на Samp Virtual Life\n      Регистрация нового персонажа\n\nЛогин: %s\nВведите пароль:\n____________________________________",GN(playerid));
					SPD(playerid, 1, DSI, "{FFFFFF}Регистрация", string, "Готово", "Отмена");
					return true;
				}
				for(new i = strlen(inputtext); i != 0; --i)
				switch(inputtext[i])
				{
					case 'А'..'Я', 'а'..'я': SCM(playerid, 0x1DCF91,"Ошибка: Пароль не должен содержать русские буквы и символы!");
				}
				if(strlen(inputtext) < 6 || strlen(inputtext) > 15) return SCM(playerid, 0xE66363, "Ошибка: Длинна пароля должна быть от 6 до 15 символов!");
				strmid(Player[playerid][pPass], inputtext, 0, strlen(inputtext), 15);
				/*SPD(playerid, 2, DSM, "{CFCFCF}Правила сервера",
				"\
				1. Игровой процесс\n\
				Запрещено:\n\
				- Использование любых программ, скриптов, читов и т.п. дающих нечестное преимущество в игре.\n\
				- Использование багов (ошибок,неисправностей мода).\n\
				- Использовать ESC в целях ухода от погони/смерти.\n\
				- Убивать игроков на спавне (Место возраждения, базы организаций).\n\
				- Убивать игроков при помощи транспорта (Давить, стрелять с водительского места).\n\
				- Убийство/нанесение физического вреда игрокам без причины (ДМ - Death Match).\n\
				- Развод игроков на деньги.\n\
				- Просьбы, вымогательства паролей от акканута.\n\
				- Выдача себя за членов администрации\n\
				- Злоупотребление игровыми возможностями для создания неудобства игрокам.\n\n\
				2. Ник в игре\n\
				(сменить ник можно через /mm >> Настройки >> Сменить ник)\n\
				- Ник должен состоять из Имени_Фамилии с заглавных букв.\n\
				Запрещено:\n\
				- Использовать чужие (Уже кем-то занятые) ники.\n\
				- Использовать ники содержащие Нецензурные или оскорбительные слова.\n\
				- Отправлять более одной заявки в час (Исключение: Просьба администрации).\n\
				- Если вам отказали в смене ника, Значит нельзя.",
				"Согласен", "Выйти");*/
				new rules_mes_1[sizeof(rules_1)];
				format(rules_mes_1, sizeof(rules_mes_1),rules_1);
				SPD(playerid, 2, DSM, "{CFCFCF}Правила сервера", rules_mes_1, "Согласен", "Выйти");
			}
			else
			{
				Kick(playerid);
			}
		}
		case 2:
		{
		    if(response)
			{
				/*SPD(playerid, 3, DSM, "{CFCFCF}Правила сервера",
				"\
				3. Чат сервера.\n\
				OOC (Out Of Character) - это все, что касается реального мира.\n\
				IC (In Character) - это все, что касается виртуального мира, то есть игры\n\
				Запрещено:\n\
				- Ругательство, оскорбления или нецензурная речь.\n\
				- Угрозы игрокам (Не относящиеся к игровому процессу).\n\
				- Писать сообщения в верхнем регистре (Caps Lock).\n\
				- Писать в чат объявлений сообщения не относящихся к Role Play.\n\
				- Использование OOC информации в IC (Metagaming).\n\
				- Писать одно и тоже сообщение слишком часто.\n\
				- Обсуждать, критиковать действия администрации.\n\
				- Реклама сторонних ресурсов.\n\n\
				4. Админстрация.\n\
				- Сообщать админстрации о каких либо нарушениях из данных правил (/mm >> Репорт).\n\
				- Администрация самостоятельно выбирает штрафные санкции для каждого из случаев.\n\
				- Запрещено препятствовать администрации в работе.\n\
				- Решение администрации является окончательным и не подлежит обсуждению.\n\n\
				5. Торговля.\n\
				- Запрещены любые денежные махинации.\n\
				- Запрещена продажа / покупка чего либо, за реальные деньги.\n\
				- Запрещен обмен внеигровых предметов в любой форме, на игровые.\n\
				- Запрещен обмен чего либо между игровыми серверами.\n\
				- Запрещена продажа / передача аккаунов.",
				"Согласен", "Выйти");*/
				new rules_mes_2[sizeof(rules_2)];
				format(rules_mes_2, sizeof(rules_mes_2),rules_2);
				SPD(playerid, 3, DSM, "{CFCFCF}Правила сервера", rules_mes_2, "Согласен", "Выйти");
			}
			else
			{
				Kick(playerid);
			}
		}
		case 3:
		{
			if(response)
			{
			    if(!strlen(inputtext))
	   			{
	   			    new message[129];
	   			    fmes("{CFCFCF}Введите ник пригласившего вас игрока:\n\n\
					Информация: При достижении 3-го уровня, этот игрок получит 100 000 вирт.");
	   			    SPD(playerid, 4, DSI, "{CFCFCF}Ник пригласившего", message, "Далее", "Пропустить");
	   			    return true;
	   			}
				for(new i = strlen(inputtext)-1; i != -1; i--)
        		{
	            switch(inputtext[i])
	            {
	                case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
	                default: return SCM(playerid, 0xE8954F,"Ошибка: Ник не должен содержать русские буквы и/или символы.");
				}
				if(strlen(inputtext) > 20) return SCM(playerid, 0xE8954F,"Ошибка: Ник не может быть длиннее 20 сиволов");
				strmid(GN(playerid), inputtext, 0, strlen(inputtext), 20);
		   		new message[129];
	   			fmes("{CFCFCF}Введите ник пригласившего вас игрока:\n\n\
				Информация: При достижении 3-го уровня, этот игрок получит 100 000 вирт.");
	   			SPD(playerid, 3, DSI, "{CFCFCF}Ник пригласившего", message, "Далее", "Пропустить");
				}
			}
			else
			{
				SPD(playerid, 4, DSI, "E-Mail", "Введите Ваш действующий электронный адрес\n\n\
				Подсказка: Используйте почтовый сервис @Yandex.ru, Mail.ru или Gmail.com", "Далее", "Пропустить");
			}
		}
		case 4:
		{
			for(new i = strlen(inputtext); i != 0; --i)
			switch(inputtext[i]) {case 'А'..'Я', 'а'..'я', '=', ' ': return SCM(playerid,0xE66363,"Ошибка: Неверный формат электронного адреса");}
		    new sabaka;
			for(new i = strlen(inputtext); i != 0; --i)
			{
				switch(inputtext[i])
				{
					case '@': sabaka++;
				}
			}
			if(strlen(inputtext) < 5 || strlen(inputtext) > 40) return SPD(playerid,5,DSI,"E-Mail", "Введите Ваш действующий электронный адрес\n\n\
			Подсказка: Используйте почтовый сервис @Yandex.ru, Mail.ru или Gmail.com","Далее","Пропустить");
			if(sabaka == 0) return SCM(playerid,0xE66363,"Ошибка: Неверный формат электронного адреса");
			SPD(playerid, 5, DSM, "Регистрация", "Какого пола будет Ваш персонаж?", "Мужской", "Женский");
		}
		case 5:
		{
		if(response)
	        {
	            Player[playerid][pSex] = 1;
	            Player[playerid][pSkin] = 137;
	        }
	        else
	        {
	            Player[playerid][pSex] = 2;
	            Player[playerid][pSkin] = 77;
      		}
		Player[playerid][pLevel] = 1;
		mysql_format(ConnectSVL, string, sizeof(string), "INSERT INTO `accounts` (`Name`, `Level`, `Skin`, `Sex`, `Pass`, `Email`) VALUES ('%s', '%d', '%d', '%d', '%s', '%s')", GN(playerid), Player[playerid][pLevel], Player[playerid][pSkin], Player[playerid][pSex], Player[playerid][pPass], Player[playerid][pEmail]);
        mysql_function_query(ConnectSVL, string, true, "Registr", "d", playerid);
		Login[playerid] = true;
		SpawnPlayer(playerid);
		SCM(playerid,-1,"Вы успешно зарегистрировались");
		}
	}
	return true;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу