Sign in to follow this  
Followers 0

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

1 post in this topic

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

 

Edited by Cawfee

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

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

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

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

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

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