pawlo

инклуд
QRCODE ALPHA 1.0

В теме 2 сообщения

QRCODE ALPHA 1.0


img_1609674595__poster.png

 

 

Здраствуйте форумчане!
Я  вот и выкатываю второе по счёту обновление иклуйда QRCODE.inc который позволит вам рисовать QR код в игре с помощью текстдравов.

У QR кодов огромный потенциал в сфере SAMP. Данный иклуйд разрушает стену межу игроком и окном браузера.

Как мы знаем в MTA есть возможность показать окно браузера, но в samp - нет.
Я считаю данный инклуйд частично разрушит стену и позволит разработчикам открыть двери в разработки систем. Вот как я оцениваю потенциал:
Упрощение процедуры заполнения формы сборов средств;
Редирект на страницу оплаты или полный отказ формы доната на сайте;
Система безопасности ( вход по типу http://web.wathsapp.com/ );
Показывать QR код с ссылкой на ресурс;
И многое другое!


Инклуйд теперь использует плагин "TD-Streamer". Ибо раньше при создании QR кода было необходимо удалять все текстдравы перед отображением QR кода.
Плагин позволит обойти ограничения в создании 256 текстдравов.


Данный инклуйд работает с поддержкой PHP. PHP генерирует и сжжимает QR код без PHP никуда.


PHP использует:

библиотека для генерации QR кода ссылка на GITHUB


qrcode.inc использует:
sscanf2 - github.com
mysql - github.com
TD-Streamer - github.com

Во всех FS замените OnPlayerClickPlayerTextDraw на ClickDynamicPlayerTextdraw. Где подключен qrcode.inc там надо. если вдруг перестастанет работать OnPlayerClickPlayerTextDraw. 

 

Настройка и установка:


Загружаем структуру базы данных
в папке MySQL содержится структура базы данных. Установите её.


Установка и настройка php:
2. Откройте файл из архива "../php/qr/settings.php";
3. Настройте mysql. 

$MYSQL_SERVER = '192.168.0.1'; // ip сервера MySQL
$MYSQL_USER = 'root'; // пользователь MySQL
$MYSQL_PASS =''; // пароль MySQL
$MYSQL_BD = 'qrcode'; // база данных ( по дефолту оставить так )


4. Загрузить папку "qr" из директории php на сервер с поддержкой PHP;

 

Установка и настройка инклуйда:
1. Содержимое папки pawn перенесите в папку с сервером.
2. Подклчите плагин sscanf mysql TextdrawStreamer
2. Подключите qrcode.inc

#include <qrcode.inc>


3. укажите ссылку на файл "q.php" и "g.php"

#define QRCODE_HOST     "site.ru/qrcode/q.php" // site.ru - ваш сайт
#define QRCODE_LINK     "http:site.ru/qrcode/g.php"
// "http:" или "https:" но ставить обаятельно в зависимости есть ли у вас SSL сертификат


4. Подключитесь к безе данных MySQL:

public OnGameModeInit()
{
    if(QRCodeInit("host", "user", "password", "bd (по дефолту (qrcode)"))
    {
        printf("{QRCODE} = Ошибка подключения");
    }
    else
    {
        printf("{QRCODE} = áàçà \"qrcode\" MySQL ïîäêëþ÷åíà");
        QRCodeSet(-1, QRCODE_TYPE_REDIRECT, "youtube", "https://www.youtube.com/");
            LoadMysqlQRcode("youtube", qrcode);
    }
    return 1;
}

 

 

Функции с примерами:

 

QRCodeInit(SQL_HOST[], SQL_USER[], SQL_PASS[], SQL_DB[])
/*
SQL_HOST[] - ip MySQL
SQL_USER[] - логин 
SQL_PASS[] - пароль
SQL_DB[] - база данных ( по дефолту qrcode )
*/

Пример: 
public OnGameModeInit()
{
    if(QRCodeInit("127.0.0.1", "root", "", "qrcode") == 0) // подключаемся к базе данных
    {
        printf("{QRCODE} = Ошибка подключения");
    }
    else
    {
        printf("{QRCODE} = база \"qrcode\" MySQL подключена");
    }
    return 1;
}

ShowQRcode(playerid, type, textqr[], Float:qrcode_x, Float:qrcode_y, Float:qrcode_size = 0.0, qrhandle[] = "")
/*
    playerid - id игрока;
    type - тип QR кода;
        QRCODE_TYPE_REDIRECT    переход по ссылке ( textqr[] );
        QRCODE_TYPE_TEXT        зашифрует текст( textqr[] ) в QR коде;
        QRCODE_TYPE_PAGE_TEXT   переход на страницу с текстом ( textqr[] );
    textqr[] - текст;
    Float:qrcode_x - позиция X (0.0 верх экрана );
    Float:qrcode_y - позиция Y (0.0 лево экрана );
    Float:qrcode_size = 0.0 - (размер текстдрава QR кода (по стандарту 0 максимум 1. по стандарту 0, оставьте пустым;
    qrhandle[] = "" - идентификатор ( QRCODE_TYPE_TEXT идентификатор не нужен. оставьте пустым).
*/

Пример:
CMD:c(playerid, p[])
{
    if(MAX_TEXT_QRCODE < strlen(p)) return SendClientMessage(playerid, -1, "[Сгенерировать QR ] - /c [text]");
    ShowQRcode(playerid, QRCODE_TYPE_TEXT, p, 250.0, 250.0);
    return 1;
}


stock ShowMysqlQRcode(playerid, qrhandle[], Float:qrcode_x, Float: qrcode_y, Float:qrcode_size = 0.0)
/*
    qrhandle[] - индентификатор;
    Float:qrcode_x - позиция X (0.0 верх экрана );
    Float:qrcode_y - позиция Y (0.0 лево экрана );
    Float:qrcode_size = 0.0 - (размер текстдрава QR кода (по стандарту 0 максимум 1. по стандарту 0, оставьте пустым.
*/

Пример:
CMD:l(playerid, p[])
{
    if(strlen(p) == 0 && strlen(p) < MAX_SIZE_HANDLE) return SendClientMessage(playerid, -1, "[Показать QR код из базы данных] - /l [handle]");
    ShowMysqlQRcode(playerid, p, 0.0, 0.0);
    return 1;
}

stock CreatePlayerTextDrawsQrCode(playerid, QRCode:qrcodedata[], Float:qrcode_px, Float:qrcode_py, Float:qrcode_size = 0.0, sizeqr = sizeof(qrcodedata))

/*
    playerid - id игрока;
    QRCode:qrcodedata[] - массив данных;
    Float:qrcode_x - позиция X (0.0 верх экрана );
    Float:qrcode_y - позиция Y (0.0 лево экрана );
    Float:qrcode_size = 0.0 - (размер текстдрава QR кода (по стандарту 0 максимум 1. по 
     sizeqr = sizeof(qrcodedata) - оставить пустым.
*/

stock QRCodeSet(playerid, type, qrhandle[], textqr[])
/*
    playerid - id игрока;
    type - тип QR кода;
     - Работает только с этими типами!
        QRCODE_TYPE_REDIRECT    переход по ссылке ( textqr[] );
        QRCODE_TYPE_TEXT        зашифрует текст( textqr[] ) в QR коде;
    qrhandle[] = "" - идентификатор ( QRCODE_TYPE_TEXT идентификатор не нужен. оставьте пустым).
    textqr[] - текст;
*/

stock LoadMysqlQRcode(qrhandle[], QRCode:qrcodedata[], sizeqrcode = sizeof(qrcodedata))
/*
    qrhandle[] - идентификатор
    QRCode:qrcodedata[] - массив в который загрузится QR код
    sizeqrcode = sizeof(qrcodedata) - оставить пустым
    Загружает QR код в массив.
*/

Пример:
new QRCode:qrcode[MAX_SIZE_QRCODE];
public OnFilterScriptInit()
{
    QRCodeSet(-1, QRCODE_TYPE_REDIRECT, "youtube", "https://www.youtube.com/");
    LoadMysqlQRcode("youtube", qrcode);
}
CMD:youtube(playerid, p[])
{
    CreatePlayerTextDrawsQrCode(playerid, qrcode, 200.0, 200.0);
    return 1;
}

 

Определяем кнопки:

public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
    if(QRCancel)
    {
        return SendClientMessage(playerid, 0x44FF44FF, "Нажата кнопка Cancel!");
    }
    if(QRDone)
    {
        return SendClientMessage(playerid, 0x44FF44FF, "Нажата кнопка Done!");
    }
    return 1;
}

 

 

 

Лимиты:

#define MAX_SIZE_HANDLE         64 
#define MAX_TEXT_QRCODE         50
#define MAX_SIZE_QRCODE         750 

qrcode alpha 1.0.rar
Не стесняйтесь задавать вопросы, предлагать улучшения и указывать на ошибки это очень важно, чтобы QR код был намного лучше![/size]

Я предлагаю услуги скриптинга:
Исправлении багов;
Написании каких либо скриптов;
Рисовании тексдравов;
Всё что связано в pawn!
По всем вопросам писать в телеграмм @vawylon


Автор я: pawlo/vawylon


  • Добавил
  • Добавлено
    05.01.2021
  • Категория
  • Автор
    /vawylon/pawlo
  • Совместимость с версией мультиплеера
     

 

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

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


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

@pawlo хорошая идея, только лучше было бы, если без костылей с PHP, на C++ наверняка есть библиотеки, генерирующие QR коды.

Может быть, кто-нибудь доработает вашу идею. 

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


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

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

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

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

    • DAYREK
      От DAYREK
      Всем доброго дня. Делал сайт для проекта SAMP. Готов поделится с ним.
      Сайт абсолютно чист и не использовался ещё нигде.


       

       
      Основной язык сайта: HTML, CSS, JS
      Донат: Требует подключения вручную
      Адаптация: Имеется, под все устройства
      Комментарии к коду: Отсутствуют
      Табуляция кода: Имеется
       
      СКАЧАТЬ >>> Sliders RolePlay.zip
      По данным VirusTotal файл безопасен
       
      По поводу сайтов и игровых модов на заказ, обращайтесь в телеграм ТГ или ВКонтакте
    • Triples
      От Triples
      При компиляции выдает ошибки
      space.pwn(5948) : error 035: argument type mismatch (argument 2) space.pwn(5948) : error 017: undefined symbol "ef" space.pwn(5948) : error 029: invalid expression, assumed zero space.pwn(5948) : fatal error 107: too many error messages on one line  
      Строчка на которую он жалуется
      cef_create_browser(playerid, LOGIN_BROWSER_ID, 'cef.utah-rp.ru/hud', false, false);  
    • Illya_Zaxatniy
      От Illya_Zaxatniy
      Доработка мода Samp-Rp
      Скачать файл Привет, у меня давно валяется данный мод который дорабатывался мною в 22  году, решил его выставить на продажу, поскольку деньги - не лишние.
       
      Ниже прикрепляю лог доработок а также айпи адрес для теста
      также к моду(после приобретения) прилагается список багов, найденных, они не значительные но имеются
       
      лог доработок: 
      1. Вырезана /alevel 2. Теперь чат администрации для всех общий 3. Вырезана команда /serverbonus 4. Теперь администрация от 8 уровня не отображается в /admins и при авторизации в панели администратора 5. Убрал бонус 6. Теперь при авторизации в панели администратора не пишет что ввёл неверный пароль 7. Переписал регистрацию 8. Теперь проверка на блокировку идёт при заходе на сервер, не после ввода пароля 9. Переписал авторизацию 10. Адрес электронной почты при регистрации теперь проверяется по всем параметрам 11. Реферальная система при регистрации теперь проверяет ник или промокод 12. Сделал выбор скинов на текстдравах 13. Переписал /makeleader в диалог (+ теперь выдаются женские скины) 14. Вырезана /fractionid 15. Вырезан ограничитель скорости 16. Теперь при выдаче предупреждения или бане указывается фракция и ранг игрока (Если он состоит в организации) 17. Теперь командой /spawn можно спавнить других игроков 18. Отредактирована команда /recon 19. Вырезан анти-БХ 20. Переписана команда /invite (+ добавлены женские скины) 21. Из главного меню вырезана система слива денег 22. Сделана система телепорта по метке на карте для администрации 23. Переписал систему навигатора (/gps) 24. Переписал /tp (Теперь он работает через навигатор) 25. /mute теперь выдаётся по минутам 26. Добавил команду /tmute для администрации с 1 уровня - просмотр времени до снятия мута у игрока 27. Изменена команда /pm 28. Для начала гонок и пейнтбола теперь достаточно 2 участников 29. Убрана команда ахелп, будет написана новая 30. Теперь в команде присон надо указывать причину 31. Добавлена команда /forum для оповещения об открытия заявок на лидерство на форуме 32. Новый логотип 33. Добавлена команда /rmute для выдачи бана репорта 34. Написана система для тестеров     АЙПИ ДЛЯ ТЕСТА И ПАРОЛЬ: IP 195.18.27.226:1235 PASSWORD : 1   ДЛЯ СВЯЗИ ВК: https://vk.com/iilyazaxodnoy       Добавил Illya_Zaxatniy Добавлено 30.12.2024 Категория Моды Автор @illyazaxodnoy  
    • Illya_Zaxatniy
      От Illya_Zaxatniy
      Привет, у меня давно валяется данный мод который дорабатывался мною в 22  году, решил его выставить на продажу, поскольку деньги - не лишние.
       
      Ниже прикрепляю лог доработок а также айпи адрес для теста
      также к моду(после приобретения) прилагается список багов, найденных, они не значительные но имеются
       
      лог доработок: 
      1. Вырезана /alevel 2. Теперь чат администрации для всех общий 3. Вырезана команда /serverbonus 4. Теперь администрация от 8 уровня не отображается в /admins и при авторизации в панели администратора 5. Убрал бонус 6. Теперь при авторизации в панели администратора не пишет что ввёл неверный пароль 7. Переписал регистрацию 8. Теперь проверка на блокировку идёт при заходе на сервер, не после ввода пароля 9. Переписал авторизацию 10. Адрес электронной почты при регистрации теперь проверяется по всем параметрам 11. Реферальная система при регистрации теперь проверяет ник или промокод 12. Сделал выбор скинов на текстдравах 13. Переписал /makeleader в диалог (+ теперь выдаются женские скины) 14. Вырезана /fractionid 15. Вырезан ограничитель скорости 16. Теперь при выдаче предупреждения или бане указывается фракция и ранг игрока (Если он состоит в организации) 17. Теперь командой /spawn можно спавнить других игроков 18. Отредактирована команда /recon 19. Вырезан анти-БХ 20. Переписана команда /invite (+ добавлены женские скины) 21. Из главного меню вырезана система слива денег 22. Сделана система телепорта по метке на карте для администрации 23. Переписал систему навигатора (/gps) 24. Переписал /tp (Теперь он работает через навигатор) 25. /mute теперь выдаётся по минутам 26. Добавил команду /tmute для администрации с 1 уровня - просмотр времени до снятия мута у игрока 27. Изменена команда /pm 28. Для начала гонок и пейнтбола теперь достаточно 2 участников 29. Убрана команда ахелп, будет написана новая 30. Теперь в команде присон надо указывать причину 31. Добавлена команда /forum для оповещения об открытия заявок на лидерство на форуме 32. Новый логотип 33. Добавлена команда /rmute для выдачи бана репорта 34. Написана система для тестеров     АЙПИ ДЛЯ ТЕСТА И ПАРОЛЬ: IP 195.18.27.226:1235 PASSWORD : 1   ДЛЯ СВЯЗИ ВК: https://vk.com/iilyazaxodnoy      
    • Mason
      От Mason
      Всех Приветствую! У меня есть вот такая дверь, мне нужно сделать так чтобы она открывалась на кнопку, дело в том что я знаю про функцию MoveObject и даже попытался сделать так чтобы она открывалась, но когда я захожу в игру и нажимаю на кнопку то ничего не происходит.
      На всякий случай прикладываю код