[SHOP] Server Bank | Invest

[SHOP] Server Bank | Invest 1.0

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
  • Автор ресурса
  • #1
☠ ÄйӃи ☠ добавил(а) новый ресурс:

[SHOP] Server Bank | Invest - Дополнение к ядру банка. Позволит инвестировать кредиты на определённый срок.

Плагин позволит инвестировать средства в банк сервера на определённый срок.
% по вкладу будет рассчитан по следующей формуле сумма(сумма*дней/100*дней)
Пример: 100000+(100000*5/100*5)=125000
По окончанию 5 дней игроку будет зачислено - 125000 кредитов SHOP.

Не будут отображаться пункты сумм если у игрока не хватает столько для инвестирования.
Например у игрока 10000 кредитов то пункты выбора суммы не будут отображены если они > чем у игрока есть кредитов.

Узнать больше об этом ресурсе...
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
g_dbcache зачем нужен?

C-подобный:
stock bool IsClient(int client)
{
    return 0 < client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && !IsFakeClient(client);
}
Не очень логичное название функции
C-подобный:
public void DatabaseConnectCB(Database db, const char[] error, any data)
{
    if (db == null)
        SetFailState("[SHOP BANK INVEST] No connection to databases: %s", error);
    else
    {
        char sQuery[512];
        g_db = db;
        db.SetCharset("utf8");
        db.Format(sQuery, sizeof sQuery, "CREATE TABLE IF NOT EXISTS `%s` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `nikname` VARCHAR(64) NOT NULL, `steamid` VARCHAR(32) NOT NULL, `summ` INT NOT NULL, `end_summ` INT NOT NULL, `unixstart` INT NOT NULL, `unixend` INT NOT NULL);", g_sTablName);
        db.Query(SQL_Table, sQuery);
        LoadPlayers();
    }
}

тут else не нужен

C-подобный:
db.SetCharset("utf8");
Очень зря. давно пора utf8mb4 использовать

C-подобный:
db.Query(SQL_Table, sQuery);
        LoadPlayers();

запросы в LoadPlayers начнут выполняться еще до получения ответа от запроса на создание таблицы, лучше перенести LoadPlayers в SQL_Table
 
Последнее редактирование:

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
  • Автор ресурса
  • #3
g_dbcache зачем нужен?

C-подобный:
stock bool IsClient(int client)
{
    return 0 < client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && !IsFakeClient(client);
}
Не очень логичное название функции
C-подобный:
public void DatabaseConnectCB(Database db, const char[] error, any data)
{
    if (db == null)
        SetFailState("[SHOP BANK INVEST] No connection to databases: %s", error);
    else
    {
        char sQuery[512];
        g_db = db;
        db.SetCharset("utf8");
        db.Format(sQuery, sizeof sQuery, "CREATE TABLE IF NOT EXISTS `%s` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `nikname` VARCHAR(64) NOT NULL, `steamid` VARCHAR(32) NOT NULL, `summ` INT NOT NULL, `end_summ` INT NOT NULL, `unixstart` INT NOT NULL, `unixend` INT NOT NULL);", g_sTablName);
        db.Query(SQL_Table, sQuery);
        LoadPlayers();
    }
}

тут else не нужен

C-подобный:
db.SetCharset("utf8");
Очень зря. давно пора utf8mb4 использовать

C-подобный:
db.Query(SQL_Table, sQuery);
        LoadPlayers();

запросы в LoadPlayers начнут выполняться еще до получения ответа от запроса на создание таблицы, лучше перенести LoadPlayers в SQL_Table
Спасибо, приму к сведению.
 

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
  • Автор ресурса
  • #4
☠ ÄйӃи ☠ обновил(а) ресурс [SHOP] Server Bank | Invest новой записью:

Принудительное обновление по случаю обновления Ядра банка

Удалена настройка типа подключения.
Добавлена настройка расчёта % неустойки "bank_invest_fine"
Добавлена неустойка за возврат средств раньше положенного срока по вкладу.
Добавлена проверка на клиента ЧС банка.
Другие мелкие исправления и оптимизация.

Обратите внимание на установку плагина и на его настройки с файлом перевода, там могут быть изменения.

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

asd& [BLR]

Участник
Сообщения
136
Реакции
20
Надо бы обновить модуль под актуальное API используемого ядра
1644173082278.png

Очень всё сырое. Инвестиции делаешь, посмотреть же эти вложения возможностей нет. В самом ядре показывает пустой список.

Таблицы почему-то не создались, при наличии всей нужной настройки в конфиге ядра.


L 02/06/2022 - 21:57:49: [SM] Exception reported: Invalid database Handle 0 (error: 4)
L 02/06/2022 - 21:57:49: [SM] Blaming: shop_server_bank_invest.smx
L 02/06/2022 - 21:57:49: [SM] Call stack trace:
L 02/06/2022 - 21:57:49: [SM] [0] Database.Format
L 02/06/2022 - 21:57:49: [SM] [1] Line 87, d:\All for server\compiler 1.10\shop_server_bank_invest.sp::OnClientPostAdminCheck
L 02/06/2022 - 21:58:23: [SM] Exception reported: Invalid database Handle 0 (error: 4)
L 02/06/2022 - 21:58:23: [SM] Blaming: shop_server_bank_invest.smx
L 02/06/2022 - 21:58:23: [SM] Call stack trace:
L 02/06/2022 - 21:58:23: [SM] [0] Database.Format
L 02/06/2022 - 21:58:23: [SM] [1] Line 389, d:\All for server\compiler 1.10\shop_server_bank_invest.sp::SSB_TermMenuHandler

Исправил:
1. Актуальное API.
2. Ошибку в подсчете таймера с оставшемся временем инвестиции.
3. Ошибку в калбэке таймера, с неверным взятием индекса игрока.
4. Переделал OnClientPostAdminCheck -> Shop_OnAuthorized, что вызывало проблему с ранним начислением кредитов.
5. Исправил запись ника игрока (записывалась пустая переменная).
6. Исправил все кнопки "Назад".
7. Заменил IGNORE_FORWARD_HOOK на CREDITS_BY_COMMAND (на случай, если кто-то собирает шоп логи через форварды)

Модуль до сих пор остается сыроватым, есть куда стремиться, как минимум подкорректировать правильную работу кнопки "Назад".
ЗЫ. До сих пор остается загадкой зачем нужно пустое меню !bank)
 

Вложения

  • shop_server_bank_invest.smx
    12.1 КБ · Просмотры: 20
  • shop_server_bank_invest.sp
    11.7 КБ · Просмотры: 19
Последнее редактирование:

Strike1703

Участник
Сообщения
2
Реакции
0
Надо бы обновить модуль под актуальное API используемого ядра

Очень всё сырое. Инвестиции делаешь, посмотреть же эти вложения возможностей нет. В самом ядре показывает пустой список.

Таблицы почему-то не создались, при наличии всей нужной настройки в конфиге ядра.


L 02/06/2022 - 21:57:49: [SM] Exception reported: Invalid database Handle 0 (error: 4)
L 02/06/2022 - 21:57:49: [SM] Blaming: shop_server_bank_invest.smx
L 02/06/2022 - 21:57:49: [SM] Call stack trace:
L 02/06/2022 - 21:57:49: [SM] [0] Database.Format
L 02/06/2022 - 21:57:49: [SM] [1] Line 87, d:\All for server\compiler 1.10\shop_server_bank_invest.sp::OnClientPostAdminCheck
L 02/06/2022 - 21:58:23: [SM] Exception reported: Invalid database Handle 0 (error: 4)
L 02/06/2022 - 21:58:23: [SM] Blaming: shop_server_bank_invest.smx
L 02/06/2022 - 21:58:23: [SM] Call stack trace:
L 02/06/2022 - 21:58:23: [SM] [0] Database.Format
L 02/06/2022 - 21:58:23: [SM] [1] Line 389, d:\All for server\compiler 1.10\shop_server_bank_invest.sp::SSB_TermMenuHandler

Исправил:
1. Актуальное API.
2. Ошибку в подсчете таймера с оставшемся временем инвестиции.
3. Ошибку в калбэке таймера, с неверным взятием индекса игрока.
4. Переделал OnClientPostAdminCheck -> Shop_OnAuthorized, что вызывало проблему с ранним начислением кредитов.
5. Исправил запись ника игрока (записывалась пустая переменная).
6. Исправил все кнопки "Назад".
7. Заменил IGNORE_FORWARD_HOOK на CREDITS_BY_COMMAND (на случай, если кто-то собирает шоп логи через форварды)

Модуль до сих пор остается сыроватым, есть куда стремиться, как минимум подкорректировать правильную работу кнопки "Назад".
ЗЫ. До сих пор остается загадкой зачем нужно пустое меню !bank)
Баг, когда отзываю инвестицию, то возвращается не 70% от суммы, а 350%. Хоть в конфиге стоит "bank_invest_fine" "0.3".
 
Сверху Снизу