Вопросы

MetaLife Online
Новичок

Привествую! писал код. проверил работу, в БД отправилось информация криво 

потом добавил к P_NICK[MAX_PLAYER_NAME] для того чтобы все было окей. Но после этого данные вообще не отпровляються и не показываеться %s. пару раз удалял и не помогло не чего 

enum PLAYER_INFO
{
    P_ID,
    P_NICK[MAX_PLAYER_NAME],
    P_PASS,
    P_GENDER,
    P_SKIN,
    P_LVL,
};

 

IMG_2307.jpg

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


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

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

  • 0
MetaLife Online
Новичок

@keyl 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new str[256];
    switch(dialogid)
    {
        case DLG_REG:
        {
            if(!response)
            {
                return SCM(playerid, color_red, "Âû îòêëþ÷åíûé îò ñåðâåðà! /q(/quit) ÷òîáû âûéòè");
                return Kick(playerid);
            }
            if(!(strlen(inputtext) >= 8 && strlen(inputtext) <= 22))
            {
                SCM(playerid, color_red, "Äëèííà Ïàðîëÿ äîëæíà áûòü îò 8 äî 26 ñèìáâîëîâ!");
                format(str, sizeof(str), " {ffffff}Äîáðî ïîæàëîâàòü!\n Àêêàóíòà ñ òàêèì íèêîì '%s' íåò\nÄëÿ Ðåãåñòðàöèè ïðèäóìàéòå è ââåäèòå ïàðîëü â ïîëå íèæå!");
                return SPD(playerid, DLG_REG, DSP, "Ðåãåñòðàöèÿ", str, "Âîéòè""Âûéòè");
            }
            for(new i = 0; i < strlen(inputtext); i++)
            {
                switch(inputtext[i])
                {
                    case 'a'..'z','A'..'Z','0'..'9':continue;
                    default:
                    {
                        SCM(playerid, color_red, "Ïàðîëü Äîëæåí ñîñòîÿòü èç a-z, A-Z, 0-9f!");
                        format(str, sizeof(str), " {ffffff}Äîáðî ïîæàëîâàòü!\n Àêêàóíòà ñ òàêèì íèêîì '%s' íåò\nÄëÿ Ðåãåñòðàöèè ïðèäóìàéòå è ââåäèòå ïàðîëü â ïîëå íèæå!");
                        return SPD(playerid, DLG_REG, DSP, "Ðåãåñòðàöèÿ", str, "Âîéòè""Âûéòè");
                    }
                }
            }
            //player_info[playerid][P_PASS] = EOS;
            strins(player_info[playerid][P_PASS], inputtext0);
            SPD(playerid, DLG_PG , DSM , "Ðåãåñòðàöèÿ""{ffffff}Âûáåðèòå Ïîë ïåðñîíàæà""Ìóæñêîé","Æåíñêèé");
        }
        case DLG_PG:
        {
            if(!response) player_info[playerid][P_GENDER] == 2;
            if(response) player_info[playerid][P_GENDER] == 1;
        }
    }
    switch(player_info[playerid][P_GENDER])
    {
        case 1:
        {
            if(player_info[playerid][P_GENDER] == 1)
            {
                player_info[playerid][P_SKIN] = 134;
            }
            else
            {
                player_info[playerid][P_SKIN] = 77;
            }
        format(query, sizeof(query), "INSERT INTO `Users`(`Nick`, `Password`, `Gender`, `Skin`) VALUES ('%s','%s','%d','%d')",player_info[playerid][P_NICK], player_info[playerid][P_PASS], player_info[playerid][P_GENDER], player_info[playerid][P_SKIN]);
        mysql_tquery(dbHandle, query);
        }
    }

    return 1;
}

P.S Какая то проблема с кодтровкой при скопирование

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


Ссылка на сообщение
  • 0
  В 3/23/2025 в 17:53, MetaLife Online сказал:

@keyl 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new str[256];
    switch(dialogid)
    {
        case DLG_REG:
        {
            if(!response)
            {
                return SCM(playerid, color_red, "Âû îòêëþ÷åíûé îò ñåðâåðà! /q(/quit) ÷òîáû âûéòè");
                return Kick(playerid);
            }
            if(!(strlen(inputtext) >= 8 && strlen(inputtext) <= 22))
            {
                SCM(playerid, color_red, "Äëèííà Ïàðîëÿ äîëæíà áûòü îò 8 äî 26 ñèìáâîëîâ!");
                format(str, sizeof(str), " {ffffff}Äîáðî ïîæàëîâàòü!\n Àêêàóíòà ñ òàêèì íèêîì '%s' íåò\nÄëÿ Ðåãåñòðàöèè ïðèäóìàéòå è ââåäèòå ïàðîëü â ïîëå íèæå!");
                return SPD(playerid, DLG_REG, DSP, "Ðåãåñòðàöèÿ", str, "Âîéòè""Âûéòè");
            }
            for(new i = 0; i < strlen(inputtext); i++)
            {
                switch(inputtext[i])
                {
                    case 'a'..'z','A'..'Z','0'..'9':continue;
                    default:
                    {
                        SCM(playerid, color_red, "Ïàðîëü Äîëæåí ñîñòîÿòü èç a-z, A-Z, 0-9f!");
                        format(str, sizeof(str), " {ffffff}Äîáðî ïîæàëîâàòü!\n Àêêàóíòà ñ òàêèì íèêîì '%s' íåò\nÄëÿ Ðåãåñòðàöèè ïðèäóìàéòå è ââåäèòå ïàðîëü â ïîëå íèæå!");
                        return SPD(playerid, DLG_REG, DSP, "Ðåãåñòðàöèÿ", str, "Âîéòè""Âûéòè");
                    }
                }
            }
            //player_info[playerid][P_PASS] = EOS;
            strins(player_info[playerid][P_PASS], inputtext0);
            SPD(playerid, DLG_PG , DSM , "Ðåãåñòðàöèÿ""{ffffff}Âûáåðèòå Ïîë ïåðñîíàæà""Ìóæñêîé","Æåíñêèé");
        }
        case DLG_PG:
        {
            if(!response) player_info[playerid][P_GENDER] == 2;
            if(response) player_info[playerid][P_GENDER] == 1;
        }
    }
    switch(player_info[playerid][P_GENDER])
    {
        case 1:
        {
            if(player_info[playerid][P_GENDER] == 1)
            {
                player_info[playerid][P_SKIN] = 134;
            }
            else
            {
                player_info[playerid][P_SKIN] = 77;
            }
        format(query, sizeof(query), "INSERT INTO `Users`(`Nick`, `Password`, `Gender`, `Skin`) VALUES ('%s','%s','%d','%d')",player_info[playerid][P_NICK], player_info[playerid][P_PASS], player_info[playerid][P_GENDER], player_info[playerid][P_SKIN]);
        mysql_tquery(dbHandle, query);
        }
    }

    return 1;
}

P.S Какая то проблема с кодтровкой при скопирование

Читать далее...  

 

надо копировать на русской раскладке клавиатуры или использовать нормальный редактор кода

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


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

Попробуй сюда:

format(str, sizeof(str), " {ffffff}Äîáðî ïîæàëîâàòü!\n Àêêàóíòà ñ òàêèì íèêîì '%s' íåò\nÄëÿ Ðåãåñòðàöèè ïðèäóìàéòå è ââåäèòå ïàðîëü â ïîëå íèæå!");

Добавить это: P_NICK

Чтобы получилось так:

format(str, sizeof(str), " {ffffff}Äîáðî ïîæàëîâàòü!\n Àêêàóíòà ñ òàêèì íèêîì '%s' íåò\nÄëÿ Ðåãåñòðàöèè ïðèäóìàéòå è ââåäèòå ïàðîëü â ïîëå íèæå!", P_NICK);

И проверь. Если будут ошибки или варнинги, скидывай сюда.

 

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


Ссылка на сообщение
  • 0
MetaLife Online
Новичок
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new str[256];
    switch(dialogid)
    {
        case DLG_REG:
        {
            if(!response)
            {
                return SCM(playerid, color_red, "Вы отключеный от сервера! /q(/quit) чтобы выйти");
                return Kick(playerid);
            }
            if(!(strlen(inputtext) >= 8 && strlen(inputtext) <= 22))
            {
                SCM(playerid, color_red, "Длинна Пароля должна быть от 8 до 26 симбволов!");
                format(str, sizeof(str), " {ffffff}Добро пожаловать!\n Аккаунта с таким ником '%s' нет\nДля Регестрации придумайте и введите пароль в поле ниже!", P_NICK);
                return SPD(playerid, DLG_REG, DSP, "Регестрация", str, "Войти""Выйти");
            }
            for(new i = 0; i < strlen(inputtext); i++)
            {
                switch(inputtext[i])
                {
                    case 'a'..'z','A'..'Z','0'..'9':continue;
                    default:
                    {
                        SCM(playerid, color_red, "Пароль Должен состоять из a-z, A-Z, 0-9f!");
                        format(str, sizeof(str), " {ffffff}Добро пожаловать!\n Аккаунта с таким ником '%s' нет\nДля Регестрации придумайте и введите пароль в поле ниже!", P_NICK);
                        return SPD(playerid, DLG_REG, DSP, "Регестрация", str, "Войти""Выйти");
                    }
                }
            }
            //player_info[playerid][P_PASS] = EOS;
            strins(player_info[playerid][P_PASS], inputtext0);
            SPD(playerid, DLG_PG , DSM , "Регестрация""{ffffff}Выберите Пол персонажа""Мужской","Женский");
        }
        case DLG_PG:
        {
            if(!response) player_info[playerid][P_GENDER] == 2;
            if(response) player_info[playerid][P_GENDER] == 1;
        }
    }
    switch(player_info[playerid][P_GENDER])
    {
        case 1:
        {
            if(player_info[playerid][P_GENDER] == 1)
            {
                player_info[playerid][P_SKIN] = 134;
            }
            else
            {
                player_info[playerid][P_SKIN] = 77;
            }
        format(query, sizeof(query), "INSERT INTO `Users`(`Nick`, `Password`, `Gender`, `Skin`) VALUES ('%s','%s','%d','%d')",player_info[playerid][P_NICK], player_info[playerid][P_PASS], player_info[playerid][P_GENDER], player_info[playerid][P_SKIN]);
        mysql_tquery(dbHandle, query);
        }
    }

    return 1;
}
forward CheckAccountFromMySql(playerid);
public CheckAccountFromMySql(playerid)
{
    new str[256];
    if(cache_num_rows() == 0)
    {
        format(str, sizeof(str), " {ffffff}Добро пожаловать!\n Аккаунта с таким ником '%s' нет\nДля Регестрации придумайте и введите пароль в поле ниже!", P_NICK);
        SPD(playerid, DLG_REG, DSP, "Регестрация", str, "Войти""Выйти");
    }
    else
    {
        SCM(playerid, color_green, "Вы  зарегестрырованы!");
    }
    return 1;
}

 

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


Ссылка на сообщение
  • 2
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

Можно, конечно, использовать массив из энумератора, если ник записывается в этот массив при входе на сервер.

// замени это
format(str, sizeof(str), " {ffffff}Добро пожаловать!\n Аккаунта с таким ником '%s' нет\nДля Регестрации придумайте и введите пароль в поле ниже!", P_NICK);

// на это
new player_name[MAX_PLAYER_NAME + 1];
GetPlayerName(playerid, player_name, MAX_PLAYER_NAME);
format(str, sizeof(str), " {ffffff}Добро пожаловать!\n Аккаунта с таким ником '%s' нет\nДля Регестрации придумайте и введите пароль в поле ниже!", player_name);

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


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

но возникла следущая проблема не отправляет данные в БД 

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


Ссылка на сообщение
  • 0
heazych
Освоившийся
  В 3/25/2025 в 14:57, MetaLife Online сказал:

но возникла следущая проблема не отправляет данные в БД 

Читать далее...  

Это уже другая проблема, связанная с привязкой мода к БД. Вам помогли с отображением? Укажите лучший ответ, отблагодарите человека и закройте тему, затем создайте новую.

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


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

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

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

    • watson
      От watson
      Привет всем!

      Выкладываю рабочий инструмент, который лично писал под задачи для крупных бонусных проектов. От меня недавно произошла доработка - теперь при записи маршрута сохраняются все сообщения, которые вы пишете в чат.
       
      Как это работает Запуск записи:
      Вводите /route с названием скрипта (или биндите на клавишу) — скрипт начинает фиксировать всё ваше передвижение (onfoot/incar/aim пакеты) и любые ваши сообщения в чат. Завершение:
      Ещё раз /route с названием скрипта или /stop — сохраняется маршрут вместе с чатом в файл формата .rt в папке MoonLoader/rakbotRoutes. Воспроизведение:
      Через команду !play <название> в консоли RakSamp LITE — бот воспроизводит маршрут один в один с вашими действиями, повторяет весь ввод, а так-же отправляет в чат все сохранённые сообщения (имитация через Enter). Поддержка цикла:
      Можно включить повтор маршрута (!loop), пока не надоест. Что важно в коде
      Запись всех синк-пакетов (движения, анимации, aim и т.д.):
      Пакеты по движению (onfoot/incar/aim) записываются подробно — никакой халтуры, каждое значение (позиция, кватернион, скорость, анимации, флаги и т.д.) фиксируется для полной копии.  

       
      Запись сообщений чата по индексам
      Каждое сообщение, которое отправляется в чат во время записи маршрута, сохраняется в отдельную таблицу с текущим индексом (counter). То есть при воспроизведении бот знает, на каком этапе какой текст нужно “цитировать” в чат.  

       
      Воспроизведение маршрута и чата
      На каждом этапе воспроизведения проверяется, было ли сообщение в этот момент — если да, оно “отправляется” как будто в оригинале, без задержек и рассинхрона. Пакеты проигрываются по индексу — как только доходит до конца, скрипт сам решает, останавливать ли выполнение или запускать по кругу (если включен loop).  

       
      Формат сохранения
      Файл маршрута содержит не только действия, но и отдельную секцию [chat], что позволяет воспроизвести всё как было, а не только беготню.  

       
       
      Если кому-то реально нужна автоматизация для бонусных серверов и не только как например фейковые игроки и вам важна последовательность действий и чата — этот инструмент сэкономит часы времени. Всё написано максимально просто для внедрения.

      P.S. Если есть определённые проблемы, вопросы или даже идеи для доработки — пишите.
      Desktop.zip
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

    • gooding
      От gooding


      Скачать файл PAR RP | Уникальный мод без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • bezd2rr
      От bezd2rr
      Как по итогу то забилдить свой лаунчер с гта са? Взять за основу дефолт гта са и засунуть либку билд 69 и все?