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



4 posts in this topic

Доброго времени суток!

Помогите пожалуйста изменить регистрацию т.е на данный момент она у меня на TextDraw а мне нужно что бы она была на диалогах

Спойлер

forward player_check(playerid);
public player_check(playerid)
{
    if(!IsPlayerConnected(playerid)) return 1;
    new rows, fields,string[128];
    cache_get_data(rows, fields);
    if(!rows)
    {
        SCM(playerid, 0x0099FFAA, "Добро пожаловать на "SERVER_NAME"");
        SCM(playerid, COLOR_LIGHTRED, "*Внимание,сервер находится на стадии разработки");
        for(new i; i < 25; i++) TextDrawShowForPlayer(playerid,RegaBox);
        for(new i; i < 9; i++) PlayerTextDrawShow(playerid,RegaDraw[playerid]);
        SelectTextDrawEx(playerid,0xFFFFFFFF);
        f(string,"Имя и Фамилия %s",PI[playerid][pName]),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][1],string);
        f(string,"Регистрация"),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][0],string);
        f(string,"Зарегистрироваться"),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][8],string);
        regstatus{playerid} = true,ShowProgress[playerid] = false;
    }
    else
    {
        SetPVarInt(playerid, "avttimer", 120);
        SCM(playerid, 0x0099FFAA, "Добро пожаловать на "SERVER_NAME"");
        SCM(playerid, COLOR_LIGHTRED, "*Внимание,сервер находится на стадии разработки");
        for(new i; i < 25; i++) TextDrawShowForPlayer(playerid,RegaBox);
        for(new i; i < 10; i++) PlayerTextDrawShow(playerid,RegaDraw[playerid]);
        SelectTextDrawEx(playerid,0xFFFFFFFF);
        f(string,"Имя и Фамилия %s",PI[playerid][pName]),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][1],string);
        f(string,"Авторизация"),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][0],string);
        f(string,"Авторизоваться"),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][8],string);
        regstatus{playerid} = false,ShowProgress[playerid] = false;
        cache_get_field_content(0, "password", PI[playerid][pPassword], dbHandle, 32);
        
        PI[playerid][pModel] = cache_get_field_content_int(0, "model");
        SetPlayerVirtualWorld(playerid,playerid+1);
        SetPlayerCameraPos(playerid, -119.9170, 730.1282, 12.0596);
        SetPlayerCameraLookAt(playerid, -120.1926, 731.0889, 12.0246);
        SetPlayerSkin(playerid,PI[playerid][pModel]),SetPlayerPos(playerid,-119.6324, 735.4722, 12.0362),SetPlayerFacingAngle(playerid,-182.1000);
        PreloadAnimLibs(playerid),ApplyAnimation(playerid,"RIOT","RIOT_CHANT",4.1,0,1,1,1,1);
        //----------------------------------------------------------------------
        PI[playerid][pAge] = cache_get_field_content_int(0, "age");
        f(string,"Возраст: %d",PI[playerid][pAge]),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][5],string);
        //----------------------------------------------------------------------
        PI[playerid][pSex] = cache_get_field_content_int(0, "sex");
        new text[24];
        switch(PI[playerid][pSex])
        {
            case 1: text = "мужской";
            case 2: text = "женский";
            default: text = "не определён";
        }
        f(string,"Пол: %s",text),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][4],string);
        //----------------------------------------------------------------------
        cache_get_field_content(0, "whocity", PI[playerid][pWhoCity], dbHandle, 32);
        f(string,"Город: %s",PI[playerid][pWhoCity]),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][6],string);
        //----------------------------------------------------------------------
        cache_get_field_content(0, "mail", PI[playerid][pMail], dbHandle, 32);
        f(string,"Почта: %s",PI[playerid][pMail]),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][3],string);
        //----------------------------------------------------------------------
        cache_get_field_content(0, "referal", PI[playerid][pReferal], dbHandle, 24);
        f(string,"Кто пригласил?: %s",PI[playerid][pReferal]),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][7],string);
    }
    SetPVarInt(playerid, "Logged", 1);
    return 1;
}

 

Спойлер

public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
    if(playertextid == PlayerText:INVALID_TEXT_DRAW)
    {
        if(gSelected{playerid} == true) SelectTextDraw(playerid,0xFFFFFFFF);
        return 1;
    }
    /*if(playertextid == PlayerText:INVALID_TEXT_DRAW)
    {
        if(Ujahhs[playerid] == 1)
        {
            PI[playerid][pInputCode] = -1;
            CancelSelectTextDrawEx(playerid);
            for(new osa = 0; osa < 10; osa++) PlayerTextDrawHide(playerid, SecurityCode[playerid][osa]);
            SCM(playerid, COLOR_RED, "Вы были кикнуты по причине отказа ввода графического пароля!");
            Kick(playerid);
        }
    }*/
    if(playertextid == PlayerText:RegaDraw[playerid][5] && zmidialog{playerid} == false)
    {
        if(regstatus{playerid} == false) return SCM(playerid,COLOR_RED,"Вы уже зарегестрированы,поэтому Вам нужно ввести только пароль.");
        if(GetPVarInt(playerid,"REG-SEX") != 1) return SCM(playerid,COLOR_RED,"Что-бы выбрать возраст,для начала выберите пол.");
        ShowPlayerDialog(playerid,D_REGLOG,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Возраст","{FFFFFF}В дальнейшем возраст повлияет на вступление в организацию и множеством функций\nПеред вводом возраста хорошенько обдумайте возраст Вашего персонажа!\nВведит возраст от 14 до 100 лет:","Выбрать","Закрыть"),zmidialog{playerid} = true;
        return true;
    }
    if(playertextid == PlayerText:RegaDraw[playerid][4] && zmidialog{playerid} == false)
    {
        if(regstatus{playerid} == false) return SCM(playerid,COLOR_RED,"Вы уже зарегестрированы,поэтому Вам нужно ввести только пароль.");
        ShowPlayerDialog(playerid,D_REGLOG+1,DIALOG_STYLE_MSGBOX,"{1383b4}Регистрация | Пол","{FFFFFF}Выберите пол для своего игрового персонажа:","Мужской","Женский"),zmidialog{playerid} = true;
        return true;
    }
    if(playertextid == PlayerText:RegaDraw[playerid][6] && zmidialog{playerid} == false)
    {
        if(regstatus{playerid} == false) return SCM(playerid,COLOR_RED,"Вы уже зарегестрированы,поэтому Вам нужно ввести только пароль.");
        ShowPlayerDialog(playerid,D_REGLOG+2,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Город","{FFFFFF}Перед выбором города хорошенько подумайте т.к город повлияет на Ваш RolePlay процесс в дальнейшем\nВведите город из которого Вы приехали:","Выбрать","Закрыть"),zmidialog{playerid} = true;
        return true;
    }
    if(playertextid == PlayerText:RegaDraw[playerid][3] && zmidialog{playerid} == false)
    {
        if(regstatus{playerid} == false) return SCM(playerid,COLOR_RED,"Вы уже зарегестрированы,поэтому Вам нужно ввести только пароль.");
        ShowPlayerDialog(playerid,D_REGLOG+3,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Почта","{FFFFFF}В дальнейшем почта повлияет на безопасность Вашего аккаунта\nПеред вводом почты бдительно проверьте правильность ввода:","Выбрать","Закрыть"),zmidialog{playerid} = true;
        return true;
    }
    if(playertextid == PlayerText:RegaDraw[playerid][2] && zmidialog{playerid} == false)
    {
        if(regstatus{playerid} == true) ShowPlayerDialog(playerid,D_REGLOG+4,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Пароль","{FFFFFF}Во избежание взлома Вашего аккаунта придумайте хороший пароль который нигде больше не используете\nВведите придуманный пароль в окошко ниже:","Выбрать","Закрыть"),zmidialog{playerid} = true;
        else
        {
            if(GetPVarInt(playerid,"AVT-PASS") != 0) return SCM(playerid,COLOR_RED,"Вы уже ввели пароль,поэтому нажмите 'Авторизоваться'");
            ShowPlayerDialog(playerid,D_REGLOG+4,DIALOG_STYLE_INPUT,"{1383b4}Авторизация | Пароль","{FFFFFF}Введите Ваш пароль указанный при регистрации:","Выбрать","Закрыть"),zmidialog{playerid} = true;
        }
        return true;
    }
    if(playertextid == PlayerText:RegaDraw[playerid][7] && zmidialog{playerid} == false)
    {
        if(regstatus{playerid} == false) return SCM(playerid,COLOR_RED,"Вы уже зарегестрированы,поэтому Вам нужно ввести только пароль.");
        ShowPlayerDialog(playerid,D_REGLOG+5,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Реферал","{FFFFFF}Если Вы были приглашены на наш сервер другом,то Вы можете ввести его ник-нейм\nПри достижении Вами 3-ого уровня он получит 50.000 рублей:","Выбрать","Закрыть"),zmidialog{playerid} = true;
        return true;
    }
    if(playertextid == PlayerText:RegaDraw[playerid][8] && zmidialog{playerid} == false)
    {
        if(regstatus{playerid} == true)
        {
            if(GetPVarInt(playerid,"REG-AGE") != 1) return SCM(playerid,COLOR_RED,"Вы не ввели возраст при регистрации.");
            if(GetPVarInt(playerid,"REG-SEX") != 1) return SCM(playerid,COLOR_RED,"Вы не выбрали пол при регистрации.");
            if(GetPVarInt(playerid,"REG-CITY") != 1) return SCM(playerid,COLOR_RED,"Вы не выбрали прописку при регистрации.");
            if(GetPVarInt(playerid,"REG-EMAIL") != 1) return SCM(playerid,COLOR_RED,"Вы не ввели почту при регистрации.");
            if(GetPVarInt(playerid,"REG-PASS") != 1) return SCM(playerid,COLOR_RED,"Вы не ввели пароль при регистрации");
            ClothesRound[playerid] = false,PlayerLogged[playerid] = true,zmidialog{playerid} = false;
            SetHealth(playerid, 100);//,SetHunger(playerid, 100);
            CreateAccount(playerid,PI[playerid][pPassword]);
        }
        else
        {
            if(GetPVarInt(playerid,"AVT-PASS") != 1) return SCM(playerid,COLOR_RED,"Вы не ввели пароль при авторизации.");
            PlayerLogged[playerid] = true,DeletePVar(playerid,"AVT-PASS"),zmidialog{playerid} = false;
            
            new mysql_str[128+MAX_PLAYER_NAME];
            format(mysql_str, sizeof(mysql_str), "SELECT * FROM "T_ACCOUNTS" WHERE `name` = '%s'", PI[playerid][pName]);
            mysql_tquery(dbHandle, mysql_str, "OnPlayerLogin", "i", playerid);
        }
        for(new i; i < 25; i++) TextDrawHideForPlayer(playerid,RegaBox);
        for(new i; i < 10; i++) PlayerTextDrawHide(playerid,RegaDraw[playerid]);
        CancelSelectTextDrawEx(playerid);
        return true;
    }
    for(new i = 0; i < 9; i++)
    {
        if(playertextid == SecurityCode[playerid])
        {
            PlayerPlaySound(playerid, 17803, 0.0, 0.0, 0.0);
            //SendMes(playerid, -1, "Использована цифра %i", mass_pass[playerid]);
            if(GetPVarInt(playerid, "NumberDigits") == 0) return PI[playerid][pInputCode] += 1000 * (mass_pass[playerid]), SetPVarInt(playerid, "NumberDigits", GetPVarInt(playerid, "NumberDigits") + 1);
            else if(GetPVarInt(playerid, "NumberDigits") == 1) return PI[playerid][pInputCode] += 100 * (mass_pass[playerid]), SetPVarInt(playerid, "NumberDigits", GetPVarInt(playerid, "NumberDigits") + 1);
            else if(GetPVarInt(playerid, "NumberDigits") == 2) return PI[playerid][pInputCode] += 10 * (mass_pass[playerid]), SetPVarInt(playerid, "NumberDigits", GetPVarInt(playerid, "NumberDigits") + 1);
            else if(GetPVarInt(playerid, "NumberDigits") == 3)
            {
                PI[playerid][pInputCode] += 1 * (mass_pass[playerid]), SetPVarInt(playerid, "NumberDigits", 0);
                if(PI[playerid][pInputCode] == PI[playerid][pSecurityCode])
                {
                    //if(!PI[playerid][pMailConfirmed] && PI[playerid][pLevel] < 3) SCM(playerid, COLOR_YELLOW, "[Информация] {FFFFFF}Ваша почта не привязана. Привяжите её, чтобы потвердить ваш аккаунт (/menu - Безопасность)");
                    PlayerLogged[playerid] = true;
                    //Hunger(playerid, 0);
                       SpawnPlayer(playerid);
                }
                else Kick(playerid), SCM(playerid, COLOR_RED, "Вы были кикнуты по причине ввода неверного графического пароля!");
                for(new f = 0; f < 10; f++) PlayerTextDrawHide(playerid,SecurityCode[playerid][f]);
                PI[playerid][pInputCode] = -1;
                Ujahhs[playerid] = 0;
                CancelSelectTextDrawEx(playerid);
            }
        }
    }
    return 1;
}

 

Спойлер

     


   case D_REGLOG+1:
        {
            new string[64];
            if(response)
            {
                PI[playerid][pSex] = 1;
                f(string,"Пол: мужской"),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][4],string);
            }
            else
            {
                PI[playerid][pSex] = 2;
                f(string,"Пол: женский"),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][4],string);
            }
            return SetPVarInt(playerid,"REG-SEX",1),zmidialog{playerid} = false;
        }
        case D_REGLOG+2:
        {
            if(!response) return SCM(playerid,COLOR_RED,"[Регистрация]: Вы отказались от ввода города,но без него Вы не сможете закончить регистарцию."),zmidialog{playerid} = false;
            if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 16) return SCM(playerid,COLOR_RED,"Город должен состоять от 6 до 16 символов!"),ShowPlayerDialog(playerid,D_REGLOG+2,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Город","{FFFFFF}Перед выбором города хорошенько подумайте т.к город повлияет на Ваш RolePlay процесс в дальнейшем\nВведите город из которого Вы приехали:","Выбрать","Закрыть");
            for(new i = strlen(inputtext)-1; i != -1; i--)
            {
                switch(inputtext)
                {
                    case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
                    default: return ShowPlayerDialog(playerid,D_REGLOG+2,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Город","{FFFFFF}Перед выбором города хорошенько подумайте т.к город повлияет на Ваш RolePlay процесс в дальнейшем\nВведите город из которого Вы приехали:","Выбрать","Закрыть");
                }
            }
            settext(PI[playerid][pWhoCity],inputtext);
            new string[64];
            f(string,"Город: %s",PI[playerid][pWhoCity]),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][6],string);
            return SetPVarInt(playerid,"REG-CITY",1),zmidialog{playerid} = false;
        }
        case D_REGLOG+3:
        {
            if(!response) return SCM(playerid,COLOR_RED,"[Регистрация]: Вы отказались от ввода почты,но без неё Вы не сможете закончить регистарцию."),zmidialog{playerid} = false;
            if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 32 || strfind(inputtext, "@", true) == -1) return SCM(playerid,COLOR_RED,"Почта должна состоять от 6 до 32 символов!"),ShowPlayerDialog(playerid,D_REGLOG+3,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Почта","{FFFFFF}В дальнейшем почта повлияет на безопасность Вашего аккаунта\nПеред вводом почты бдительно проверьте правильность ввода:","Выбрать","Закрыть");
            settext(PI[playerid][pMail],inputtext);
            new string[64];
            f(string,"Почта: %s",PI[playerid][pMail]),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][3],string);
            return SetPVarInt(playerid,"REG-EMAIL",1),zmidialog{playerid} = false;
        }
        case D_REGLOG+4:
        {
            if(regstatus{playerid} == true)
            {
                if(!response) return SCM(playerid,COLOR_RED,"[Регистрация]: Вы отказались от ввода пароля,но без него Вы не сможете закончить регистарцию."),zmidialog{playerid} = false;
                if(strlen(inputtext) < 6 || strlen(inputtext) > 32 || !strlen(inputtext)) return SCM(playerid,COLOR_RED,"Пароль должен состоять от 6 до 32 символов!"),ShowPlayerDialog(playerid,D_REGLOG+4,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Пароль","{FFFFFF}Во избежание взлома Вашего аккаунта придумайте хороший пароль который нигде больше не используете\nВведите придуманный пароль в окошко ниже:","Выбрать","Закрыть");
                for(new i = strlen(inputtext)-1; i != -1; i--)
                {
                    switch(inputtext)
                    {
                        case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
                        default: return ShowPlayerDialog(playerid,D_REGLOG+4,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Пароль","{FFFFFF}Во избежание взлома Вашего аккаунта придумайте хороший пароль который нигде больше не используете\nВведите придуманный пароль в окошко ниже:","Выбрать","Закрыть");
                    }
                }
                new string[64];
                settext(PI[playerid][pPassword],inputtext);
                f(string,"Пароль: %s",PI[playerid][pPassword]),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][2],string);
                return SetPVarInt(playerid,"REG-PASS",1),zmidialog{playerid} = false;
            }
            else
            {
                if(!response) return SCM(playerid,COLOR_RED,"[Авторизация]: Вы отказались от ввода пароля,но без него Вы не сможете авторизоваться."),zmidialog{playerid} = false;
                if(!strlen(inputtext)) return SCM(playerid,COLOR_RED,"Пароль должен состоять от 6 до 32 символов!"),ShowPlayerDialog(playerid,D_REGLOG+4,DIALOG_STYLE_INPUT,"{1383b4}Авторизация | Пароль","{FFFFFF}Введите Ваш пароль указанный при регистрации:","Выбрать","Закрыть");
                if(!istext(PI[playerid][pPassword],inputtext)) return SCM(playerid,COLOR_RED,"Введёный пароль не соответсвует настоящему"),ShowPlayerDialog(playerid,D_REGLOG+4,DIALOG_STYLE_INPUT,"{1383b4}Авторизация | Пароль","{FFFFFF}Введите Ваш пароль указанный при регистрации:","Выбрать","Закрыть"),zmidialog{playerid} = true;
                SCM(playerid,COLOR_GREEN,"Пароль успешно подошёл. Теперь нажмите 'Авторизоваться'"),SetPVarInt(playerid,"AVT-PASS",1),zmidialog{playerid} = false;
                new string[64];
                f(string,"Пароль: введён"),RussianString(string),PlayerTextDrawSetString(playerid,RegaDraw[playerid][2],string);
                return true;
            }
        }
        case D_REGLOG+5:
        {
            if(!response) return SCM(playerid,COLOR_RED,"[Регистрация]: Вы отказались от ввода друга."),zmidialog{playerid} = false;
            if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 24 || strfind(inputtext, "_", true) == -1) return SCM(playerid,COLOR_RED,"Ник должен состоять от 6 до 24 символов!"),ShowPlayerDialog(playerid,D_REGLOG+5,DIALOG_STYLE_INPUT,"{1383b4}Регистрация | Реферал","{FFFFFF}Если Вы были приглашены на наш сервер другом,то Вы можете ввести его ник-нейм\nПри достижении Вами 3-ого уровня он получит 50.000 рублей:","Выбрать","Закрыть");
            new querys[128];
            f(querys, "SELECT * FROM "T_ACCOUNTS" WHERE `name` = '%s'", inputtext);
            return mysql_function_query(dbHandle, querys, true, "ReferalCheck", "is", playerid, inputtext);
        }
        case D_REGLOG+8:
        {
            if(!response) return zmidialog{playerid} = false;
            if(regstatus{playerid} == true) SCM(playerid,COLOR_RED,"Вы были кикнуты. Причина: Отказ от регистрации."),Kick(playerid);
            else SCM(playerid,COLOR_RED,"Вы были кикнуты. Причина: Отказ от авторизации."),Kick(playerid);
            return true;
        }

 

 

0

Share this post


Link to post
Share on other sites

@FENRIS регистрацию и авторизацию вы хотите сделать на диалогах или только регистрацию?

0

Share this post


Link to post
Share on other sites

@stibs Регистрацию и авторизацию 

0

Share this post


Link to post
Share on other sites

1. Удали все TD, но не функции, убери показ TD при проверки на акк

2. Создай диалоги, для них текст и копируй для них действие с кликов на TD.

0

Share this post


Link to post
Share on other sites
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

    • GLADE
      By GLADE
      Пожалуйста войдите или зарегистрируйтесь чтобы увидеть эту link.


      Пожалуйста войдите или зарегистрируйтесь чтобы увидеть эту link.
      Aurora RP (доработка)
      Хранение данных (версия MySQL): R41-3.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 63907.
      Анти-чит: Nexius-AC.

      Под доработку взята версия Aurora за декабрь 2018.
      Автор данного мода: oscar_floyd.
      Автор данной доработки: GLADE (я).

      На доработку мода ушло около одного месяца.

      Что было сделано:
       
      Пожалуйста войдите или зарегистрируйтесь чтобы увидеть эту spoiler.
       
    • sidoren.00@mail.ru
      By sidoren.00@mail.ru
      вот весь код"вроде не чего не забыл " , проблема не сохраняется тюнинг , помогите плиз
       
       
       
      Пожалуйста войдите или зарегистрируйтесь чтобы увидеть эту spoiler.