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



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;
        }

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

    • Boomi4
      By Boomi4
      Не могу запустить сервер. Туповат в этом.
      Как я понял Плагин mysql_debian_static не запускается и от него уже все проблемы.
      Если есть решения подскажите пожалуйста.
       
       
    • vizixov
      By vizixov
      Привет! Помогите! Как реализовать чтобы на текстдраве при нажатии на 1 кнопку 1 раз на виполнялся SetPlayerGravity и GameTextForPlayer одна за другой при других нажатиях. Снизу прикрепил скриншот как бы я хотел видеть ето дело помогите реализовать.