• Пожалуйста, создайте название темы отражающее ее смысл
  • Для ускорения решения Вашего вопроса заполните обязательные поля и подробно опишите возникшую проблему

Помощь Минусовой баланс

  • Автор темы Автор темы Tako
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.
Если хотите открыть тему, нажмите кнопку Жалоба в первом сообщении.

Tako

Участник
Сообщения
9
Реакции
0
Баллы
1
Приветствую. Я всё ещё ломаю голову как можно забрать деньги с баланса игрока чтобы они сразу обновились у него и не попасть в момент когда игрок потратил на сайте деньги и ещё пытается снять на сервере(Приводит к минусовому балансу).
Подскажите как можно сделать.
 
Код:
            cmsapi_reload_wallet(id, 0, true); // Обновление баланса
            new Float:money = cmsapi_get_user_money(id);
            if(money < g_iTradeMoney[id])
            {
                UTIL_SayText(id, "%l Недостаточно средств!", "JBE_CHAT_PREFIX");
                return Show_SiteTradeMenu(id);
            }
            new Float:values = float(g_iTradeMoney[id]);
            UTIL_SayText(id, "%d - %s", g_iTradeMoney[id], values);
            cmsapi_reload_wallet(id, -values, true);
            jbe_set_user_money(id, g_iUserMoney[id] + g_iAllCvars[TRADE_RUB]*g_iTradeMoney[id], 1);
            UTIL_SayText(id, "%l Вы обменяли !t%d рублей !yна !t%d$", "JBE_CHAT_PREFIX", g_iTradeMoney[id], g_iAllCvars[TRADE_RUB]*g_iTradeMoney[id]);
Решение
cmsapi_reload_wallet(id, 0, true); // Обновление баланса
После этого производится перезагрузка. Ее результат будет в OnAPIMemberConnected. Здесь можно выполнять остальную часть кода.
Можно дополнительно создать переменную и проверить, что это не вход игрока, а перезагрузка.

C++:
...      
    cmsapi_reload_wallet(id, 0, true); // Обновление баланса
    new bInReload[33];
    bInReload[id] = true;
...

public OnAPIMemberConnected(id, memberId, memberName[])
{
    if (bInReload[id])
    {
        bInReload = false;
        new Float:money = cmsapi_get_user_money(id);
        if(money < g_iTradeMoney[id])
        {
            UTIL_SayText(id, "%l Недостаточно средств!", "JBE_CHAT_PREFIX");
            return...
cmsapi_reload_wallet(id, 0, true); // Обновление баланса
После этого производится перезагрузка. Ее результат будет в OnAPIMemberConnected. Здесь можно выполнять остальную часть кода.
Можно дополнительно создать переменную и проверить, что это не вход игрока, а перезагрузка.

C++:
...      
    cmsapi_reload_wallet(id, 0, true); // Обновление баланса
    new bInReload[33];
    bInReload[id] = true;
...

public OnAPIMemberConnected(id, memberId, memberName[])
{
    if (bInReload[id])
    {
        bInReload = false;
        new Float:money = cmsapi_get_user_money(id);
        if(money < g_iTradeMoney[id])
        {
            UTIL_SayText(id, "%l Недостаточно средств!", "JBE_CHAT_PREFIX");
            return Show_SiteTradeMenu(id);
        }
        new Float:values = float(g_iTradeMoney[id]);
        UTIL_SayText(id, "%d - %s", g_iTradeMoney[id], values);
        cmsapi_reload_wallet(id, -values, true);
        jbe_set_user_money(id, g_iUserMoney[id] + g_iAllCvars[TRADE_RUB]*g_iTradeMoney[id], 1);
        UTIL_SayText(id, "%l Вы обменяли !t%d рублей !yна !t%d$", "JBE_CHAT_PREFIX", g_iTradeMoney[id], g_iAllCvars[TRADE_RUB]*g_iTradeMoney[id]);
    }
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Если хотите открыть тему, нажмите кнопку Жалоба в первом сообщении.
Назад
Сверху