• 0
Sign in to follow this  
Followers 0
Syndicate Stormquez

Вопрос по поводу регистрации.

Question

При прохождение регистрации в диалоге ввода Email, меня не пропускает дальше к следующему диалогу. Причина этого - неверный Email.

Спойлер

case DLG_REGEMAIL:
  		{
		        if(!strlen(inputtext))
				{
					SPD(playerid, DLG_REGEMAIL, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод Email",
						"{c9cdcf}Введите вашу настояющую электронную почту, чтобы продолжить регистрацию.\n\
						Если вы потеряете доступ к аккаунту, то его можно будет восстановить.",
					"Далее", "");
					return SCM(playerid, COLOR_RED, "[Ошибка] {c9cdcf}Введите ваш Email!");
	    		}
	    		new regex:rg_emailcheck = regex_new("^[a-zA-Z0-9._-]{1,43}@[a-zA-Z]{1,12}.[a-zA-Z]{1,8}$");
				if(regex_check(inputtext, rg_emailcheck))
	    		{
		    		strmid(player_info[playerid][Email], inputtext, 0, strlen(inputtext), 64);
		    		SPD(playerid, DLG_REGREF, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод пригласившего",
						"{c9cdcf}Введите NickName пригласившего, еслм он есть.",
					"Далее", "Пропустить");
				}
				else
				{
				    SPD(playerid, DLG_REGEMAIL, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод Email",
						"{c9cdcf}Введите вашу настояющую электронную почту, чтобы продолжить регистрацию.\n\
						Если вы потеряете доступ к аккаунту, то его можно будет восстановить.",
					"Далее", "");
					 return SCM(playerid, COLOR_RED, "[Îøèáêà] {c9cdcf}Укажите верный Email адрес!");
				}
				regex_delete(rg_emailcheck);
		}

 

 

 

Share this post


Link to post

3 answers to this question

  • 0

В целом все должно работать если ввести корректный Email-адрес. К примеру: pawn@bk.ru

Единственное что можно добавить в регулярное выражение, так это то чтобы обязать игрока вводить точку. Выглядеть это будет так: 

^[a-zA-Z0-9._-]{1,43}@[a-zA-Z]{1,12}\\.[a-zA-Z]{1,8}$

 

Edited by punkochel

Share this post


Link to post
  • 0
case DLG_REGEMAIL:
  		{
		        if(!strlen(inputtext))
				{
					SPD(playerid, DLG_REGEMAIL, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод Email",
						"{c9cdcf}Введите вашу настояющую электронную почту, чтобы продолжить регистрацию.\n\
						Если вы потеряете доступ к аккаунту, то его можно будет восстановить.",
					"Далее", "");
					return SCM(playerid, COLOR_RED, "[Ошибка] {c9cdcf}Введите ваш Email!");
	    		}
	    		new regex:rg_emailcheck = regex_new("^[a-zA-Z0-9.-_]{1,43}@[a-zA-Z]{1,12}.[a-zA-Z]{1,8}$");
				if(regex_check(inputtext, rg_emailcheck))
	    		{
		    		strmid(player_info[playerid][Email], inputtext, 0, strlen(inputtext), 64);
		    		SPD(playerid, DLG_REGREF, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод пригласившего",
						"{c9cdcf}Введите NickName пригласившего, если он есть.",
					"Далее", "Пропустить");
				}
				else
				{
				    SPD(playerid, DLG_REGEMAIL, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод Email",
						"{c9cdcf}Введите вашу настояющую электронную почту, чтобы продолжить регистрацию.\n\
						Если вы потеряете доступ к аккаунту, то его можно будет восстановить.",
					"Далее", "");
					 return SCM(playerid, COLOR_RED, "[Îøèáêà] {c9cdcf}Укажите верный Email адрес!");
				}
				regex_delete(rg_emailcheck);
		}

Попробуй так

Share this post


Link to post
  • 0

@punkochel  нет панели регистрации. Что делать?

 

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Chopick
      By Chopick
      Всем здравствуйте! Делаю систему домов/бизнесов по туториалу knox know с плагином GoodArea. Есть проблема, если заходишь в интерьер бизнеса, то когда выходишь спавнит почему-то на пикап дома.

      Вот енумы:
       
      #define MAX_HOUSES 1000 #define MAX_BIZS 1000 enum house {         hID,         STREAMER_TAG_PICKUP:hPICKUP,         STREAMER_TAG_AREA:hAREA,         hOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:hTEXT[256],         STREAMER_TAG_MAP_ICON:hICON,         hPRICE,         hCLASS,         hINTERIOR,         Float:hX,         Float:hY,         Float:hZ,         Float:hA,         hCONDITION // Закрыт/Открыт } new House[MAX_HOUSES][house]; new Houses; new HouseGroup; enum biz {         bID,         STREAMER_TAG_PICKUP:bPICKUP,         STREAMER_TAG_AREA:bAREA,         bOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:bTEXT[256],         STREAMER_TAG_MAP_ICON:bICON,         bNAME[25],         bPRICE,         bTYPE,         bINTERIOR,         Float:bX,         Float:bY,         Float:bZ,         Float:bA } new Biz[MAX_BIZS][biz]; new Bizs; new BizGroup; enum interior_info {         intID,         intNAME[41],         intINTERIOR,         Float:intX,         Float:intY,         Float:intZ,         Float:intA,         STREAMER_TAG_AREA:intAREA } new Interior[MAX_INTERIORS][interior_info]; new Interiors; new InteriorGroup; Вот что у меня в OnGameModeInit:
      HouseGroup = CreateGroupGoodAreas(GoodArea:HouseEnter); InteriorGroup = CreateGroupGoodAreas(GoodArea:InteriorExit); BizGroup = CreateGroupGoodAreas(GoodArea:BizArea);  
      Вот стоки:
      GAResponse:HouseEnter(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                 if(House[index][hCONDITION] > 0 && House[index][hOWNER] == player_info[playerid][NAME] || House[index][hCONDITION] == 0)                 {                                         GoToInterior(playerid, House[index][hINTERIOR]);                                         SetPlayerVirtualWorld(playerid, index);                                 }                                 else if(House[index][hCONDITION] > 0 && House[index][hOWNER] != player_info[playerid][NAME]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Этот дом закрыт на ключ!");                         }                 }                 case GA_RESPONSE_ENTER:                 {                     if(House[index][hOWNER] == 0)                     {                         CreateNoOwnerHouseTD(playerid);                         for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                         {                             PlayerTextDrawShow(playerid, NoOwnerTextDraw_PTD[playerid][i]);                                 }                                 new price[8];                                 format(price, sizeof(price), "%d$", House[index][hPRICE]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][2], price);                                 new id[9];                                 format(id, sizeof(id), "%d", House[index][hID]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][0], id);                                 switch(House[index][hCLASS])                                 {                                     case 1: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "A");                                     case 2: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "B");                                     case 3: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "C");                                 }                                 for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                         {                             TextDrawShowForPlayer(playerid, NoOwnerTextDraw_TD[i]);                                 }                         }                 }                 case GA_RESPONSE_LEAVE:                 {                 for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                 {                     PlayerTextDrawHide(playerid, NoOwnerTextDraw_PTD[playerid][i]);                         }                         for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                 {                     TextDrawHideForPlayer(playerid, NoOwnerTextDraw_TD[i]);                         }                 }         }         return 1; } GAResponse:BizArea(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                     GoToInteriorBiz(playerid, Biz[index][bINTERIOR]);                                 SetPlayerVirtualWorld(playerid, index);                 }                 }         }         return 1; } GAResponse:InteriorExit(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 new world = GetPlayerVirtualWorld(playerid);                 if(key & KEY_WALK)                 {                     if(world < MAX_HOUSES)                     {                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, House[world][hX], House[world][hY], House[world][hZ]);                             SetPlayerFacingAngle(playerid, House[world][hA]);                                 }                                 else if(world < MAX_HOUSES + MAX_BIZS)                     {                         world -= MAX_HOUSES;                                         printf("%d index world", world);                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, Biz[world][bX], Biz[world][bY], Biz[world][bZ]);                             SetPlayerFacingAngle(playerid, Biz[world][bA]);                                 }                         }                         if(key & KEY_CTRL_BACK)                         {                             if(player_info[playerid][HOUSE] != House[world][hID]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Вы не владелец данного дома!");                             new dialog[256];                                 format(dialog, sizeof(dialog),                                         "{ffd900}[1]{ffffff}Информация о доме\n\                                         {ffd900}[2]{ffffff}%s дом",                                 (House[world][hCONDITION] == 1) ? ("{00ff00}Открыть") : ("{ff0000}Закрыть"));                             SPD(playerid, DLG_HMENU, DIALOG_STYLE_LIST, "{ffd900}Меню дома", dialog, "Выбрать", "Закрыть");                             return 1;                         }                 }         }         return 1; } stock GoToInterior(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода\n\                         Нажмите \"H\", чтобы открыть меню дома");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; } stock GoToInteriorBiz(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; }  
       
      Что мне делать, подскажите пожалуйста?
    • Jdjdjd
      By Jdjdjd
      Как сделать открытие закрытие ворот в Радмир рп на копии,и куд а нужно вставлять код?
       
    • Мемен Томорли
      By Мемен Томорли
      Как создать команду /warns чтобы игрок смог просматривать активные варны у персонажа ??
      Типо как на Малиновка ЛП