[Shop] Any Top

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
  • Автор ресурса
  • #1
iLoco добавил(а) новый ресурс:

[Shop] Any Top - Добавляет статистику игроков в меню функций магазина.

Данный плагин является конструктором для добавления статистики в меню функций магазина, путём изменения "DataBase Query" можно получать разную статистику из базы данных.
Данный ресурс так-же является аналогом Модуль плагина - [Shop] Top10, даже стиль меню скопирован как пример реализации меню.
Узнать больше об этом ресурсе...
 
Последнее редактирование модератором:

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
  • Автор ресурса
  • #2
iLoco обновил(а) ресурс [Shop] Any Top новой записью:

Обновление v1.0.1

- Исправлены микрозависания сервера при запросе базы данных. Спасибо @HolyHender за подсказку.
- В "DataBase Query" добавлен {player_id}, заменяется индексом игрока из базы данных, игрока открывающего меню.

Full Changelog

Узнать больше об этом обновлении...
 

StateByte

Fullstack Software Engineer.
Сообщения
431
Реакции
622
Такую ошибку выдаёт, использую самую последнею версию шопа. MySQL 5.7
C-подобный:
CB_Query_OnGetData: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `player_id` = `shop_players`.`id` AND `state` = '1' GROUP BY `player_id` O' at line 1
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
  • Автор ресурса
  • #4
Такую ошибку выдаёт, использую самую последнею версию шопа. MySQL 5.7
C-подобный:
CB_Query_OnGetData: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `player_id` = `shop_players`.`id` AND `state` = '1' GROUP BY `player_id` O' at line 1
Я проводил тесты на sqlite и шоп последней версии (даже чутка dev-версии), все 4 "топа" работают. Мб в mysql по другому часть запроса нужно делать.
Попробуйте этот конфиг:
C-подобный:
"Any Top"
{
    "most_expensive_inventory"
    {
        "DataBase Query"        "SELECT `name`, SUM(`buy_price`) as `total` FROM `{prefix}boughts` LEFT JOIN `{prefix}players` ON `player_id` = `id` WHERE `buy_price` > '0' GROUP BY `player_id` ORDER BY `total` DESC LIMIT 100;"
        "Update Time"            "1"   
        "Limit On Page"               "10"         
        "#format"                "%s24,%s"
        "Item Format"            "{id}. {2} - {1}"
        "Fill The Void"            "1"
        "Menu Name"                "Top 100 inv"
        "Menu Tittle"            "Top 100 inv"
        "Header"                " "
        "Footer"                " "
        "Back Button"            "Back"
        "Next Button"            "Next"
        "Exit Button"            "Exit"
    }
    "top_credits"
    {
        "DataBase Query"        "SELECT `name`, `money` FROM `{prefix}players` ORDER BY `money` DESC LIMIT 100;"
        "Update Time"            "120"   
        "Limit On Page"               "10"   
        "#format"                  "%s24,%s"
        "Item Format"               "#{id}. {2} - {1}"
        "Fill The Void"             "0"
        "Menu Name"                 "Top 100 credits"
        "Menu Tittle"               "Top 100 credits"
        "Header"                " \n-----------------------------\n "
        "Footer"                " \n-----------------------------\n "
    }
    "top_items_count"
    {
        "DataBase Query"        "SELECT `name`, COUNT(`count`) as `total` FROM `{prefix}boughts` LEFT JOIN `{prefix}players` ON `player_id` = `id` WHERE `count` > '0' GROUP BY `player_id` ORDER BY `total` DESC LIMIT 100;"
        "Update Time"              "120"   
        "Limit On Page"               "10"   
        "#format"                   "%s24,%s"
        "Item Format"               "#{id}. {2} - {1}"
        "Fill The Void"             "0"
        "Menu Name"                 "Top 100 items count"
        "Menu Tittle"               "Top 100 items count"
        "Header"                " "
        "Footer"                " "
    }
    "top_enable_items"
    {
        "DataBase Query"        "SELECT `name`, COUNT(`state`) as `total` FROM `{prefix}toggles` LEFT JOIN `{prefix}players` ON `player_id` = `{prefix}players`.`id` WHERE `state` = '1' GROUP BY `player_id` ORDER BY `total` DESC LIMIT 100;"
        "Update Time"              "120"   
        "Limit On Page"               "10"   
        "#format"                   "%s24,%s"
        "Item Format"               "#{id}. {2} - {1}"
        "Fill The Void"             "0"
        "Menu Name"                 "Top 100 enable items"
        "Menu Tittle"               "Top 100 enable items"
        "Header"                " "
        "Footer"                " "
    }
}
 

Larsalex

Сообщения
812
Реакции
404
Было бы интересно увидеть эту реализацию вне шопа, а просто отдельное структурное меню под категории, например, Shop, Level stats, и прочие создаваемые категории. Туда же и выбор разных подключаемых баз данных с кешированием данных, чтоб каждый раз не тянуть инфу. И туда же формирование запроса так, чтобы была работа с конкретным обьектом и по связям с другими таблицами по запросу. Аля статистика чела, жмякаем на него и получаем ещё больше инфы с разных БД. А так да, текущий плагин тоже интересен
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
  • Автор ресурса
  • #6
Было бы интересно увидеть эту реализацию вне шопа, а просто отдельное структурное меню под категории, например, Shop, Level stats, и прочие создаваемые категории. Туда же и выбор разных подключаемых баз данных с кешированием данных, чтоб каждый раз не тянуть инфу. И туда же формирование запроса так, чтобы была работа с конкретным обьектом и по связям с другими таблицами по запросу. Аля статистика чела, жмякаем на него и получаем ещё больше инфы с разных БД. А так да, текущий плагин тоже интересен
В стиле Menu Creator сделать бы ещё, может и возьмусь за этот челендж.
 

StateByte

Fullstack Software Engineer.
Сообщения
431
Реакции
622
Я проводил тесты на sqlite и шоп последней версии (даже чутка dev-версии), все 4 "топа" работают. Мб в mysql по другому часть запроса нужно делать.
Попробуйте этот конфиг:
Да, этот норм работает, по крайней мере ошибок нету :)
 

PRINCESSA

Участник
Сообщения
64
Реакции
3
топ 100 богачей открывается, а остальные нет. может надо в бд добавлять?
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
  • Автор ресурса
  • #14
iLoco обновил(а) ресурс [Shop] Any Top новой записью:

Фикс 1.0.2

- Исправлены конфликты запросов в mysql (изменён только конфиг).

Узнать больше об этом обновлении...
Сообщения автоматически склеены:

Ещё вчера должен был выкатить фикс, перенёс на сегодня и забыл 🙃
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
  • Автор ресурса
  • #16
L 06/05/2022 - 15:22:08: [shop/shop_any_top.smx] CB_Query_OnGetData: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `player_id` = `id` AND `count` > '0' GROUP BY `player_id` ORDER BY `total`' at line 1
Как жить ?
обновить конфиг до 1.0.3 версии (изменены только "Query" столючики)
 

yallstpd

Участник
Сообщения
1,023
Реакции
316
Какое название для базы? Несколько раз перечитал ресурс, не вижу.
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Какое название для базы? Несколько раз перечитал ресурс, не вижу.
Какой базы? Модуль подключается к основной базе shop_(это зависит от такого, какой перфикс вы ставили в самом шопе), через который отправляются выборочные запросы. В самом конфиге подробно все расписано, как составлять запрос и что где находится
 

yallstpd

Участник
Сообщения
1,023
Реакции
316
Какой базы? Модуль подключается к основной базе shop_(это зависит от такого, какой перфикс вы ставили в самом шопе), через который отправляются выборочные запросы. В самом конфиге подробно все расписано, как составлять запрос и что где находится
а, это модуль, тогда понял, я думал в датабейс кфг прописать надо как-то.
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
а, это модуль, тогда понял, я думал в датабейс кфг прописать надо как-то.
1657946246180.png
 
Сверху Снизу