Вопросы

mikivtanke
Освоившийся

Когда отвечаю на все вопросы, то перекидавает заново на авторизацию

Спойлер

case dCreateAccount:
		{
		    if(!response)
		    {
		        SCM(playerid, -1, "Регистрация отменена. Для выхода с сервера используйте /q(uit)");

		        Kick(playerid);

		        return 1;
		    }

      		for(new i = strlen(inputtext)-1; i != -1; i--)
	        {
	            switch(inputtext[i])
	            {
	                case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
	                default: return SPD(playerid, dCreateAccount, DIALOG_STYLE_INPUT, "Регистрация", "Ошибка. Использовать возможно только латинские буквы и цифры\n{FFFFFF}Введите пароль от аккаунта для того, чтоб продолжить игру:", "Вход", "Выход");
	            }
	        }

		    new password_length = strlen(inputtext);

		    if(!password_length)
			    return SPD(playerid, dCreateAccount, DIALOG_STYLE_INPUT, "Регистрация", erorreg1, "Далее", "Отмена");

		    else if(password_length < 4)
			    return SPD(playerid, dCreateAccount, DIALOG_STYLE_INPUT, "Регистрация", erorreg2, "Далее", "Отмена");

			else if(password_length > 20)
			    return SPD(playerid, dCreateAccount, DIALOG_STYLE_INPUT, "Регистрация", erorreg3, "Далее", "Отмена");

			else
			{
			    format(pInfo[playerid][pPass], 30, "%s", inputtext);

			    SPD(playerid, dCreateAccount + 1, DIALOG_STYLE_INPUT, "Электронная почта", mailtext, "Далее", "Отмена");
			}
		}

		case dCreateAccount + 1:
		{
			if(!response)
			{
			    SCM(playerid, -1, "Регистрация отменена. Для выхода с сервера используйте /q(uit)");

		        Kick(playerid);

		        return 1;
			}

			new length = strlen(inputtext);

			if(!length)
			    return SPD(playerid, dCreateAccount + 1, DIALOG_STYLE_INPUT, "Электронная почта", mailtext, "Далее", "Отмена");

			if(length < 4)
			    return SPD(playerid, dCreateAccount + 1, DIALOG_STYLE_INPUT, "Электронная почта", mailtext, "Далее", "Отмена");

			for(new idx; idx < length; idx ++)
			{
			    switch(inputtext[idx])
			    {
			        case '0'..'9', 'a'..'z', 'A'..'Z', '@', '.', '_', '-': continue;
			        default: return SPD(playerid, dCreateAccount + 1, DIALOG_STYLE_INPUT, "Электронная почта", #C_GRAY "Ошибка: {FFFFFF}EMail-адрес не соответствует эталону\n\n" mailtext, "Далее", "Отмена");
			    }
			}

			if(strfind(inputtext, "@") == -1)
			{
			    return SPD(playerid, dCreateAccount + 1, DIALOG_STYLE_INPUT, "Электронная почта", #C_GRAY "Ошибка: {FFFFFF}EMail-адрес не соответствует эталону\n\n" mailtext, "Далее", "Отмена");
			}

			format(pInfo[playerid][pMail], 25, "%s", inputtext);

			SetPVarInt(playerid, "ucp_question_id", 0);

			format:str_big( #C_GRAY "UCP Регистрация / Вопрос №%d\n\n{ffffff}%s", GetPVarInt(playerid, "ucp_question_id") + 1, ucp_questions[GetPVarInt(playerid, "ucp_question_id")]);
			SPD(playerid, dCreateAccount + 2, DIALOG_STYLE_INPUT, "UCP Регистрация", str_big, "Далее", "Отмена");
		}

		case dCreateAccount + 2:
		{
			new question_id = GetPVarInt(playerid, "ucp_question_id"),
				bool: right_type = false;

			switch(inputtext[0])
			{
			    case '0'..'9': right_type = true;
			}

			if(response && right_type)
			{
			    pInfo[playerid][pUcpData][question_id] = ucp_answers[question_id] == strval(inputtext) ? 1 : 0;

			    SetPVarInt(playerid, "ucp_question_id", question_id + 1);

			    if(question_id + 1 == 10)
			    {
			        new answers = 0;

			        for(new idx; idx < sizeof ucp_questions; idx ++)
			            if(pInfo[playerid][pUcpData][idx] == 1) answers ++;

					if(answers >= 7)
			        {
				        SCM(playerid, -1, "UCP Регистрация завершена");

				        mysql_format:str_big("INSERT INTO `" #DB_ACCOUNTS "` (Name, Pass, Mail, UcpData) VALUES ('%s', '%s', '%s', '%d|%d|%d|%d|%d|%d|%d|%d|%d|%d')", pInfo[playerid][pName], pInfo[playerid][pPass], pInfo[playerid][pMail],
						pInfo[playerid][pUcpData][0],pInfo[playerid][pUcpData][1],pInfo[playerid][pUcpData][2],pInfo[playerid][pUcpData][3],pInfo[playerid][pUcpData][4],
						pInfo[playerid][pUcpData][5],pInfo[playerid][pUcpData][6],pInfo[playerid][pUcpData][7],pInfo[playerid][pUcpData][8],pInfo[playerid][pUcpData][9]);
						mysql_function_query(mysql_connect_ID, str_big, false, "", "");
                        CheckNickname(playerid);
			            mysql_format:str_small( "SELECT ID, Ban, Pass FROM `" #DB_ACCOUNTS "` WHERE `Name` = '%s' LIMIT 1", pInfo[playerid][pName]);
						mysql_tquery( mysql_connect_ID, str_small, "OnPlayerFind", "i", playerid );
					}
					else
					{
					    SCM(playerid, 0xFF5533FF, "Вы не набрали нужного количества правильных ответов");
					    SCM(playerid, 0xFFCC00FF, "Регистрация отменена");

						Kick(playerid);

						return 1;
					}

					return 1;
			    }
			}

            format:str_big( #C_GRAY "UCP Регистрация / Вопрос №%d\n\n{ffffff}%s", GetPVarInt(playerid, "ucp_question_id") + 1, ucp_questions[GetPVarInt(playerid, "ucp_question_id")]);
			SPD(playerid, dCreateAccount + 2, DIALOG_STYLE_INPUT, "UCP Регистрация", str_big, "Далее", "Отмена");
		}

	    case dRegister:
	    {
            if(!response)
			{
				pInfo[playerid][pChart][0]=1;
				new year, month, day;
				getdate(year, month, day);
				new RegIp[16];
				GetPlayerIp(playerid, RegIp, 16);
				mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Chart` = '%d|%d|%d|%d' WHERE `Name` = '%s'",pInfo[playerid][pChart][0],pInfo[playerid][pChart][1],pInfo[playerid][pChart][2],pInfo[playerid][pChart][3],pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
				mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Regdate` = '%d|%d|%d' WHERE `Name` = '%s'",day,month,year,pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
				mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Regip` = '%s' WHERE `ID` = '%d'", RegIp, pInfo[playerid][pID]);
				mysql_function_query(mysql_connect_ID, str_small, false, "", "");
				SCM(playerid,-1,"Вы выбрали женский пол своему персонажу");
				return SPD(playerid,dRegister+1,list,"Выберите расу вашего","" #C_GRAY "1. {ffffff}Европеец\n" #C_GRAY "2. {ffffff}Латиноамериканец\n" #C_GRAY "3. {ffffff}Африканец\n" #C_GRAY "4. {ffffff}Азиат","Ок","");

			}

			pInfo[playerid][pChart][0]=2;
			SCM(playerid,-1,"Вы выбрали мужской пол своему персонажу");
			mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `pInvSlotsKol` = '0|0|0|0|0|0|0|0|0|0' WHERE `Name` = '%s'",pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
			mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Chart` = '%d|%d|%d|%d' WHERE `Name` = '%s'",pInfo[playerid][pChart][0],pInfo[playerid][pChart][1],pInfo[playerid][pChart][2],pInfo[playerid][pChart][3],pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
			mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `pInvSlots` = '0|0|0|0|0|0|0|0|0|0' WHERE `Name` = '%s'",pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
			return SPD(playerid,dRegister+1,list,"Выберите расу вашего","" #C_GRAY "1. {ffffff}Европеец\n" #C_GRAY "2. {ffffff}Латиноамериканец\n" #C_GRAY "3. {ffffff}Африканец\n" #C_GRAY "4. {ffffff}Азиат","Ок","");
	    }

        case dRegister+1:
	    {
            if(!response) return Kick(playerid);
            pInfo[playerid][pChart][2]=listitem;
            mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `pInvSlotsKol` = '0|0|0|0|0|0|0|0|0|0' WHERE `Name` = '%s'",pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
            mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `Chart` = '%d|%d|%d|%d' WHERE `Name` = '%s'",pInfo[playerid][pChart][0],pInfo[playerid][pChart][1],pInfo[playerid][pChart][2],pInfo[playerid][pChart][3],pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
			mysql_format:str_small("UPDATE `" #DB_ACCOUNTS "` SET `pInvSlots` = '0|0|0|0|0|0|0|0|0|0' WHERE `Name` = '%s'",pInfo[playerid][pName]), mysql_function_query(mysql_connect_ID, str_small, false, "", "");
            SetPVarInt(playerid,"skinchange",1);
			SpawnPlayer(playerid);
		}

 

 

Поделиться сообщением


Ссылка на сообщение

6 ответов на этот вопрос

  • 0
LilPokemon
Гуру форума

А где собственно сами переходы на диалоги вопросов? И сами case на вопросы ? 

Отредактировано пользователем LilPokemon

Поделиться сообщением


Ссылка на сообщение
  • 0
mikivtanke
Освоившийся

@LilPokemon case дал, а вопросы вот:
 

Спойлер

new ucp_questions[10][1024] =
{
	"Может ли администрация помочь в отыгровке каких-либо незначительных \"условных\" персонажей,\n\
	посредствам команды \"/do\" или же полноценной отыгровки за какого-либо вымышленного персонажа?\n\n\
	Варианты ответа:\n\
	\t1. Администрация имеет на это полное право.\n\
	\t2. Может, если это будет делать Главный Администратор.\n\
	\t3. Администрации полностью запрещено принимать участие в RP-процессе.\n\nОтвет:", // 1
	
	"Разрешена ли провокация полиции на погоню?\n\n\
	Варианты ответа:\n\
	\t1. Провокация без причины строго запрещена.\n\
	\t2. Провокация разрешена, если имеется весомая на то причина.\n\
	\t3. Провокация полиции разрешена только для криминальных персонажей.\n\nОтвет:", // 1
	
	"Как нужно общаться в местах большого скопления людей?\n\n\
	Варианты ответа:\n\
	\t1. Необходимо использовать только /w чат (шепот). Все остальное остается как было.\n\
	\t2. Необходимо разговаривать шепотом и отыгрывать все через /ame.\n\
	\t3. В людных местах запрещено писать в /do, но при этом необходимо общаться только шепотом и отыгрывать все через /ame.\n\
	\t4. Разрешено также писать в простой чат и отыгрывать через /me.\n\nОтвет:", // 3
	
	"Что такое PowerGaming?\n\n\
	Варианты ответа:\n\
	\t1. Игра в свою пользу.\n\
	\t2. Завышение физических и психологических/моральных качеств персонажа.\n\
	\t3. Игра в свою пользу, не давая шанса другой стороне переломить ситуацию.\n\
	\t4. Верны все варианты.\n\nОтвет:", // 3
	
	"Можно ли писать в IC чаты со включенным Caps Lock'ом?\n\n\
	Варианты ответа:\n\
	\t1. Написание слов в IC чат большими буквами запрещено. За это могут дать мут.\n\
	\t2. Разрешено использовать CAPS во всех чатах, кроме шёпота.\n\
	\t3. Разрешено только для усиления эмоций персонажа.\n\nОтвет:", // 3
	
	"Как должна проходить драка между двумя игроками?\n\n\
	Варианты ответа:\n\
	\t1. Драка начинается с мелкой отыгровки и продолжается без неё.\n\
	\t2. Драка начинается с мелкой отыгровки и до конца сопровождается отыгровкой.\n\
	\t3. Драку можно начать и продолжать без какой-либо отыгровки.\n\nОтвет:", // 1
	
	"Какое использование действий/реплик IC запрещено?\n\n\
	Варианты ответа:\n\
	\t1. /me поправляет свои наручные часы и осматривает неизвестного рядом с автомобилем.\n\
	\t2. Действие в локальный чат без реплики: *вытаскивает вазу из тумбочки и\n\tвливает внутрь немного воды, после оставляет в ней свежие розы*\n\
	\t3. [Хриплый голос]: Давно не виделись, Фрэнки.\n\nОтвет:", // 2
	
	"Соблюдается ли на сервере ПДД?\n\n\
	Варианты ответа:\n\
	\t1. Да, я обязан соблюдать все нормы ПДД.\n\
	\t2. Соблюдение ПДД зависит только от моей роли.\n\
	\t3. Членам организованных преступных группировок разрешено игнорировать ПДД.\n\
	\t4. Да, я должен соблюдать все правила, но есть исключение в виде разрешенного проезда на красный сигнал светофора.\n\nОтвет:", // 1
	
	"Какой вариант отыгровки является верным?\n\n\
	Варианты ответа:\n\
	\t1. /me Иван робко посмотрел на Екатерину и улыбнулся\n\
	\t2. /me сделал угрюмую гремассу и начал активно мыть пол [1/3]\n\
	\t3. /me сунул руку в карман штанов и вытащил из него свой старенький портсигар\n\
	\t4. /me сел на стул\n\
	\t5. Нет правильного ответа\n\nОтвет:", // 3
	
	"Какова политика сервера по отношению ограблений?\n\n\
	Варианты ответа:\n\
	\t1. Ограбить игрока можно не более чем на 10.000 рублей,\n\tс разрешения администрации можно совершить афёру не более чем на 300.000 рублей.\n\
	\t2. Ограбить игрока можно не более чем на 5.000 рублей,\n\tс разрешения администрации можно совершить афёру не более чем на 500.000 рублей.\n\
	\t3. Ограбить игрока можно не более чем на 10.000 рублей,\n\tс разрешения администрации можно совершить афёру не более чем на 500.000 рублей.\n\
	\t4. Ограбление игрока можно совершить на всю сумму, которую он имеет с собой.\n\tАферы только с разрешения администрации и не более чем на 500.000 рублей.\n\nОтвет:" // 3
};

new ucp_answers[sizeof ucp_questions] =
{
	1, 1, 3, 3, 3, 1, 2, 1, 3, 3
};

 

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Danil Baranov
Новичок

Приветствую, у меня был мод Exciting Roleplay, попробуй те поменять БД была такая же ошибка.

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба