Перейти к содержанию
Авторизация  
Eduard Vestornович

Регистрация [Exciting] [Novgorod]

Рекомендуемые сообщения

Eduard Vestornович

Скачал мод Novgorod (не реклама)
Регистрация на сервере есть , но диалог повторяется (Алгоритм : Пароль -> Mail -> UCP Вопросы -> И так повторяется до бесконечности заново)

Но самая большая проблема - это не сохранение аккаунтов после регистрации
Ребят , прошу помогите мне!

 

Диалог

		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, "", "");
			            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);
		}
	    

Пообщался с основателем мода , он сказал , что у него все прекрасно работает , но не у одного меня проблема такая

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


Ссылка на сообщение
Поделиться на другие сайты
#GOBLIN

БД оригинальная есть?

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


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович
@#GOBLIN,да , ставил оригинальную и новгорода

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


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович
@#GOBLIN,вам скинуть для проверки нужно?

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


Ссылка на сообщение
Поделиться на другие сайты
eZscvirt

Там дело не в БД...

Когда в ручную аккаунт создаёшь в БД, после заходишь на сервер и что - то себе выдаешь ( авто / дом / бизнес )

То всё сохраняется в БД -_-

Изменено пользователем eZscvirt

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


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

@eZscvirt,это какой мод? Exciting , который без регистрации? 

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


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

UP

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


Ссылка на сообщение
Поделиться на другие сайты
eZscvirt

[б][член=Western][/б] В данном моде нету сохранение аккаунтов  при регистрации, т.к в данном моде идёт проверка через UCP ( Если ты прошёл её, то администрация одобряет её через  UCP панель, и после чего заносит твой аккаунт в БД сервера ) ( Мод оригинальный, то есть ExRp ).

 

Как вы ранее сказали, что у разработчика проекта ( Novgorod Rp ) регистрация работает как часы :D83DDE15:

Значит что - то ВЫ сделали не ПРАВИЛЬНО..

Изменено пользователем eZscvirt

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


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

@eZscvirt,Кхм...Странно , про Exciting понял . Но проблема с модом не только у меня (Novgorod) . Много человек писали : "Регистрация"  , "Проблема", "Бесконечная" . Не я один с такой ошибкой 

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


Ссылка на сообщение
Поделиться на другие сайты
eZscvirt

@Vestorn,Для начала сами код внимательно посмотрите, и поймите что в нём не так.

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


Ссылка на сообщение
Поделиться на другие сайты
Web

Скорей всего таблица не полная и нет какой-либо ячейки, смотри лог мускула в корне с сервером.

  • Like 1

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


Ссылка на сообщение
Поделиться на другие сайты
eZscvirt

@Wеb,Таблица есть. Просто нужно дописать код ( как я сделал. Возможно я в чём то ошибся ) 

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


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович

@eZscvirt,Все решил . Переписал частично код
И убрал UCP  регистрацию

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


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

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.