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

Помощь GameCMS BonusSystem лимит бонусов

krenko3

Участник
Сообщения
126
Реакции
13
Баллы
18
Добрый день. Хочу сделать так, чтоб было максимальное значение бонусов 200$


Помогли мне сделать таким образом, но всё равно не работает. Деньги в начале раунда выставляются просто на 200$ и всё.
E2inacPlwQ4.jpg
После изменения код выглядит следующим образом:


Код:
#include <amxmodx>
#include <cstrike>
#include <gamecms5>

#if defined AMXX_VERSION_RELEASE
    #define    client_disconnect client_disconnected
#endif

enum _:pl_state
{
    bool:give,
    thanks,
    answers
}
new cvhThanks, cvhAnswers, cvhStart, cvhMaxMoney, cvhRound;
new g_player[33][pl_state];
new giRoundCount;

public plugin_init()
{
    register_plugin("GameCMS BonusSystem", "1.1", "+- DUKKHAZ0R");
    register_logevent("LogERoundStart", 2, "1=Round_Start");
    register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
    register_clcmd("say /bonus", "ShowAwardPlayers");
    
    cvhRound = register_cvar("cms_bonus_round", "1");
    cvhThanks = register_cvar("cms_bonus_thanks", "5");
    cvhAnswers = register_cvar("cms_bonus_answers", "10");
    cvhStart = register_cvar("cms_bonus_startmoney", "1");
    cvhMaxMoney = register_cvar("cms_bonus_maxmoney", "16000");
}

public plugin_cfg()
{
    if(is_plugin_loaded("GameCMS_API") == INVALID_PLUGIN_ID)
    {
        log_amx("WARNING: gamecms_api.amxx isn't loaded! Plugin Stopped.")
        pause("a");
        return;
    }
}

public client_disconnect(id)
    arrayset(g_player[id], 0, pl_state);

public client_connect(id)
    arrayset(g_player[id], 0, pl_state);

public OnAPIMemberConnected(id, memberId, memberName[])
{
    new Data[4];
    new bool:status = cmsapi_get_forum_data(id, Data) != 0 ? true : false;
    
    if(!status)
        return;
    
    g_player[id][thanks] = Data[0];
    g_player[id][answers] = Data[1];
    g_player[id][give] = true;
}

public ShowAwardPlayers(user)
{
    new plName[33], message[191];
    new id, len, bool:plFirst = true;
    
    len = format(message, charsmax(message), "^1[^4Bonus^1] Получают бонусы:");
    
    for(id = 1 ; id <= get_maxplayers() ; id++)
    {
        if(!is_user_connected(id))
            continue;

        if(!g_player[id][give])
            continue;

        if(len + sizeof(plName) > sizeof(message)/2)
        {
            ChatColor(user, message);
            len = 0, message[0] = EOS, plFirst = true;
        }

        get_user_name(id, plName, charsmax(plName));
        len += format(message[len], charsmax(message)-len, "%s %s", plFirst ? "^4 " : ",^4", plName);
        plFirst = false;
    }
    
    if(plFirst)
        ChatColor(user, "^1[^4Bonus^1] Сейчас никто не получает бонусы.");
    else
        ChatColor(user, message);
}

public eRestart()
    giRoundCount = 0;

public LogERoundStart()
{
    if(++giRoundCount < get_pcvar_num(cvhRound))
        return;
    
    new pl[32], name[32], pnum, iAddMoney, id;
    get_players(pl, pnum, "ach");
    
    for(new i; i < pnum; i++)
    {
        id = pl[i];
        if(g_player[id][give])
        {
            iAddMoney = get_pcvar_num(cvhStart) + g_player[id][answers] * get_pcvar_num(cvhAnswers) + g_player[id][thanks] * get_pcvar_num(cvhThanks);
            
            if(iAddMoney > 200)
            {
                iAddMoney = 200;
            }
            
            cs_set_user_money(id, min(cs_get_user_money(id) + iAddMoney, get_pcvar_num(cvhMaxMoney)));
            ChatColor(id, "^1[^4Bonus^1] Вы получаете каждый раунд ^3%d$ ^1 за активность на форуме [^4%d ^1сообщений + ^4%d ^1благодарностей^1]", iAddMoney, g_player[id][answers], g_player[id][thanks]);
        }
        else
        {
            get_user_name(id, name, charsmax(name));
            ChatColor(id, "^1[^4Bonus^1] Привет, ^3%s^1! Чтобы получать бонусы каждый раунд, зарегистрируйтесь на сайте! rr-game.ru", name);
        }
    }
}

public plugin_natives()
{
    set_native_filter("native_filter");
}

public native_filter(const GName[], index, trap)
    return !trap ? PLUGIN_HANDLED : PLUGIN_CONTINUE;


    
stock ChatColor(const id, const szRawMessage[], any:...)
{
    static szMsg[191];
    vformat(szMsg, charsmax(szMsg), szRawMessage, 3);
    
    if(is_user_connected(id))
    {
        message_begin(MSG_ONE_UNRELIABLE, 76, .player = id);
        write_byte(id);
        write_string(szMsg);
        message_end();
    }
}

Надеюсь, подскажите, что не так?


Спасибо.
 
  • Like
Реакции: zeka
krenko3, Все верно, но, видимо квар cms_bonus_maxmoney = 200
 
  • Like
Реакции: zeka
Назад
Сверху