Система Vip аккаунта по времени на MySql

В теме 1 сообщение

MartinJoys
Новичок

Всем привет на связи MartinJoys | Cherlock
Cегодня мы научимся делать вип аккаунты по времени, с автоматическим удалением по истечению времени.
Перейдем в самый вверх вашего мода и впишем туда этот код:

Спойлер

#include <a_samp>// стандартный инклуд
#include <YSI\y_commands> //для работы с командами
#include <mxdate>
#include <a_mysql> //для работы с бд
#include <sscanf> //
#define MYSQL_HOST     "localhost" // IP адресс БД.
#define MYSQL_USER     "root" // Login БД.
#define MYSQL_DB       "Samp" // Название БД.
#define MYSQL_PASS     "root" // Пароль БД.

 

 

Теперь необходимо установить подключение к базе при включении мода, перейдем в OnGameModeInit и впишем туда этот код:

 

mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PASS); //устанавливаем подключение
switch(mysql_ping())
{
    case 1: print("Соединение установлено"); // Если подключена БД.
    case -1: print("Нет соединения с БД"); // Если не подключена БД.
}  

 

Теперь если все будет нормально то в консоли появится инфа о том что соединение установлено.
Сейчас сделаем отключение от базы при выключении/перезагрузке мода, перейдем в OnGameModeExit и впишем:

mysql_close();

Теперь нужно сделать проверку, переходим в OnPlayerConnect и вписываем:

 

Спойлер

new query[100],name[24],string[240]sqlname[24],days;//
    GetPlayerName(playerid,name,sizeof(name));//узнаем имя
    mysql_real_escape_string(name,sqlname);
    format(query,sizeof(query),"SELECT * FROM `Donate` WHERE `Name` = '%s'",sqlname);
    mysql_query(query);//отправляем запрос
    mysql_store_result();//получаем ответ
    if(mysql_fetch_row(query) && mysql_num_rows() == 1)//если есть поле с именем игрока
    {
        mysql_get_field("Days", string);
        days=strval(string);//получаем время на которое выдан аккаунт
        if(gettime() >= days) //если срок закончился
        {
            SendClientMessage(playerid,0xFFFFFFFF,"Действие вашего аккаунта закончилось");
            format(string,sizeof(string),"DELETE FROM `Donate` WHERE `Name`='%s'",name);
            mysql_query(string);//удаляем его из бд
            //PlayerInfo[playerid][pDonate]=0; сюда впишите вашу випку
        }
        else//если действие аккаунта еще не закончилось
        {
            //PlayerInfo[playerid][pDonate]=1; ваша випка
            format(string,sizeof(string),"Действие вашего аккаунта закончится  %s ",date("%dd.%mm.%yyyy в %hh:%ii:%ss",days));
            SendClientMessage(playerid,0xFFFFFFFF,string);//выведем информацию о том когда закончится действие аккаунта
        }
    }
    mysql_free_result();//очищаем  

 

 

Теперь построим команду для выдачи випки. Внимание команда построена на YCM

 

Спойлер

YCMD:donate(playerid, params[ ] ,help)//donate это название команды
{
     if(!IsPlayerAdmin(playerid)return SendClientMessage(playerid,-1,"Вы не администратор.");//проверка на администратора
    new string[144];
    if(!strlen(params[0])|| !strlen(params[1])) return SendClientMessage(playerid,0xFFFFFFFF,"{0099FF}Используйте:     {FFFFFF}/donate {99D938}[playerid] [Day] ");//если параметры не указанны
    DonatePlayer(params[0],params[1]);//если указанны то дадим випку и занесем в бд
    format(string,sizeof(string),"Вам выдан Вип аккаунт на %d дней",params[1]);
    SendClientMessage(params[0],0xFFFFFFFF,string);//покажем сообщение игроку которому выдали
    //ваша випка PlayerInfo[params[0]][pDonate]=1;
    return true;
}

 

 Теперь сделаем функцию выдачи випки, перейдем в низ вашего мода и напишем следующий код:
Спойлер

stock DonatePlayer(playerid,days)
{
    new query[256],name[24];
    GetPlayerName(playerid,name,sizeof(name));//узнаем имя
    format(query, sizeof(query), "INSERT INTO `Donate` (`Name`, `Days`) VALUE ('%s','%d')",name,gettime()+86400*days);//gettime()вернет время в секундах, 86400 секунд в одних сутках, days количество дней на которое будет установлен вип аккаунт
    mysql_query(query);//отправим запрос
    return true;
}  

 

 

Теперь нужно создать таблицу в нашей бд:
Создаем таблицу с именем Donate, делаем 2 столбца Name и Days.
В первом укажем значение string(24), а во втором int(11).

 

Необходимые для работы инклуды а так же плагины можете скачать по этой ссылкам:
http://rghost.ru/40382201
http://rghost.ru/40382221
http://rghost.ru/40382234
http://rghost.ru/40382569


Автор: Я MartinJoys | Cherlock

 

Отредактировано пользователем Cawfee

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

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

    • Lemonoas
      От Lemonoas
      Хочу сделать свою работу по моду чтобы работа работала, хочу сделать своими руками
    • Dekmveka
      От Dekmveka
      Здравствуйте, уважаемые пользователи форума PAWNO-RUS.
       
      В этой теме хочу поделиться видеоуроками, ориентированных на новичков, которые сейчас начинают только изучать pawn. 
      Хочу сказать сразу, я не профессиональный блогер с крутым оборудованием, поэтому если что за какие то погрешности в съемке заранее извиняюсь.
      Хотелось бы попросить не писать, что типа pawn и samp уже умер, неактуален, уроков и так полно и так далее и тому подобное. Я лишь просто занимаюсь своим увлечением и решил делиться знаниями с новичками.
      Далее на канале после плейлиста с основами планируется выложить плейлист по MySQL и максимально подробно всё рассказать о MySQL, будет старая добрая рубрика "Мод с нуля" (но на основе плагинов, стандартов и др. актуальных в 2025-2026 году). 
       
      Также хочу сказать, что есть также телеграмм канал. 
      На данный момент там есть ветка для общения, ветка "Инструменты" (там лежат архивы со всем нужным + есть навигационный пост, я просто поделил всё на категории и просто вставил ссылки на архивы которые туда же выложил. Можете зайти посмотреть если интересно). Также в телеграмм канале потом будут исходные файлы с плейлиста "Мод с нуля" и других плейлистах, пока что говорить подробно не буду что буду ещё выкладывать. 
       
      В общем, я даю ссылки, кому интересно, можете смотреть.
      [Часть 1]: Архитектура ядра SAMP || Основы программирования PAWN/PAWNO  -  *кликабельно*
      [Часть 2]: База мода, переменные, format() || Основы программирования PAWN/PAWNO  -  *кликабельно*
      Telegram канал  -  *кликабельно*
       
      Желаю всем приятного просмотра, а также успехов в обучении 
    • Elvis
      От Elvis
      Настоящим информируем о начале набора сотрудников в нашу студию "AlinSA Studios". В рамках текущего проекта "VanguardRP", основанного на мотивах CRMP, мы ищем профессионалов и энтузиастов для выполнения следующих должностей:
       
      1. Технические специалисты
       
      Требования:
       
      | Базовые знания в области информационных технологий
      | Понимание структур кода и принципов работы компиляторов
      | Готовность к обучению и развитию профессиональных навыков
      | Иметь базовое представлении ЯП "Pawn" или "Kotlin" и "Java".
       
      Обязанности:
       
      | Поддержка технической инфраструктуры проекта
      | Участие в разработке и оптимизации программных решений
      | Взаимодействие с командой разработки для внедрения новых функций
       
      2. Пиар-ассистенты
       
      Требования:
       
      | Опыт работы в сфере SMM, маркетинга или PR
      | Навыки взаимодействия с аудиторией и ведения социальных сетей
       
      Обязанности:
       
      | Продвижение проекта в социальных сетях
       
      3. Дизайнеры
       
      Требования:
       
      | Наличие портфолио с примерами выполненных работ (не обязательно, желательно)
      | Владение графическими редакторами ! (Photoshop и Figma)
      | Креативность, внимательность к деталям и способность работать в сжатые сроки
       
      Обязанности:
       
      | создание графического контента для соцсетей, сайта и внутриигровых материалов
      | Разработка дизайна интерфейсов, баннеров, логотипов и иллюстраций
      | Участие в визуальном оформлении проекта
       
      4. Геймдизайнеры
       
      Обязанности:
       
      | Разработка игровых механик, правил взаимодействия и систем баланса
      | Проработка сюжета, персонажей и сценариев для создания эмоциональной связи с игроками
      | Проектирование уровней, задач и сценариев для обеспечения разнообразия игрового процесса
      | Взаимодействие с командой разработчиков, художников и звукорежиссёров для достижения согласованности элементов игры
      | Участие в тестировании прототипов, выявление проблем и балансировка игрового процесса
       
      5. Рупоры
       
      Цель роли: Обеспечить эффективное взаимодействие с целевой аудиторией, формировать положительный имидж проекта, своевременно информировать участников о новостях, обновлениях и
      мероприятиях, а также модерировать сообщества для поддержания комфортной и безопасной среды.
       
      -————————-
      Условия работы:
       
      Обучение и постоянная поддержка со стороны команды
      Гибкий график работы / удалённый формат (обсуждается индивидуально)
       
       
      Если вы заинтересованы в присоединении к нашей команде или хотите получить дополнительную информацию, обращайтесь по следующему контакту:
      Telegram: @AntonLegost
       
       
      Благодарим за внимание! Надеемся на плодотворное сотрудничество.
       
      p.s Новички приветствуются. Для пополнение портфолио и наработки опыта.
       
      С уважением,
      Команда "AlinSA Studios"
    • Гость Джон
      От Гость Джон
      Требуется разработчик в сфере павно, оплата будет.

      С меня;
      Стабильность, привелегии возможно на сервере, оплата в сроки, сотрудничество возможное с вашими условиями.

      с вас; доказательства опыта работы, проверка так произойдет таким образом что вы напишите простой скрипт, я проверю и мы начнем работу. С вас также попрошу знания скриптинга на павно, умение настройки базы данных, умение ставить моды и тд. Мод с нуля,сервер Infinity RolePlay, приставка ролеплей не с проста, сервер фулл рп. На админку маловероятно что поставлю, лишь если буду уверен в вашем опыте и знаниях на посту. Ценю доброжелательность, честность, стабильность, коммуникативность, опыт.

      Планирую сделать комфортную площадку САМП для приятного времяпровождения на мобильном устройстве или пк(свои условия будут) в основном нацелены будем на мобильные устройства.

      Пожалуйста можно без высоких ценников, мне всего 14, однако опыта я достиг не малого. Все же даже так мог бы оплачивать услуги скриптера.