Поиск Плагин ограничение денег.

trojanranson

Пользователь
Регистрация
2 Фев 2020
Сообщения
20
Симпатии
0
ReHlds установил mp_maxmoney 200000 нужен плагин который будет ограничивать только этим числом.
Как бы что бы выше 200к не подымалось, сервер CSDM+Пушки+Лазеры
За убийство с оружия игрока обратно в 200к возращает, а вот за убийства пушек и лазеров нет.
 

trojanranson

Пользователь
Регистрация
2 Фев 2020
Сообщения
20
Симпатии
0
ограничение но как я понял на кнопку и не знаю даже будет ли он работать:
#include <amxmodx>

#include <fakemeta>

 

#define PLUGIN  "New Plugin"

#define VERSION "1.0"

#define AUTHOR  "Stimul"

 

#define cs_get_user_money(%1)   get_pdata_int(%1, OFFSET_CSMONEY)

 

#define OFFSET_CSMONEY  115

 

#define NUM_MONEY       200300

 

new g_MsgMoney;

 

public plugin_init()

{

        register_plugin(PLUGIN, VERSION, AUTHOR);

      

        register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");

      

        g_MsgMoney = get_user_msgid("Money");

}

 

public fw_PlayerPreThink(id)

{

        if(!is_user_connected(id))

                return FMRES_IGNORED;

              

        new button = pev(id, pev_button);

        new money = cs_get_user_money(id);

      

        if(money == NUM_MONEY && button & IN_ATTACK)

                cs_set_user_money(id, money - 300);

              

        return FMRES_IGNORED;

}

 

stock cs_set_user_money(id, money, flash = 1)

{

        set_pdata_int(id, OFFSET_CSMONEY, money);

 

        message_begin(MSG_ONE, g_MsgMoney, _, id);

        write_long(money);

        write_byte(flash ? 1 : 0);

        message_end();
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской
trojanranson, а что при mp_maxmoney 200000 значение у игрока подимается?
 

trojanranson

Пользователь
Регистрация
2 Фев 2020
Сообщения
20
Симпатии
0
trojanranson, а что при mp_maxmoney 200000 значение у игрока подимается?
Если игрок убивает другого игрока , то будет 200000. А когда пушки или лазер то подымается доходит до определенного количества и сбрасывается в 0)
 

trojanranson

Пользователь
Регистрация
2 Фев 2020
Сообщения
20
Симпатии
0
может есть какой простенький код который будет перепроверять не больше ли у игрока чем 200к и если да сбрасывать обратно на 200) может где-то есть плагин)
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской
trojanranson, тот что више скиули.. не роботает??

етот попробуйте
 

Вложения

Последнее редактирование:

trojanranson

Пользователь
Регистрация
2 Фев 2020
Сообщения
20
Симпатии
0

trojanranson

Пользователь
Регистрация
2 Фев 2020
Сообщения
20
Симпатии
0
trojanranson, тот что више скиули.. не роботает??

етот попробуйте
тот что я прикрепил я не знаю его работоспособность он датирован 2013 года и он как я понял должен работать на кнопку. К примеру игрок нажмет клавишу "mouse1" и у него должны сбросится деньги до указного количества, но пока игрок не нажмет эту кнопку деньги всерано будут идти выше указного количества.
 

trojanranson

Пользователь
Регистрация
2 Фев 2020
Сообщения
20
Симпатии
0
trojanranson, тот что више скиули.. не роботает??

етот попробуйте
Если бы сервер был просто CSDM, Public с шопом оружия разного то и плагин не нужен. Все и так прекрасно работает, но вот с модом пушки и лазеры начинает переваливать выше указанного пока или не выйдет в 0 или пока игрок не убьет другого игрока.
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
686
Симпатии
196
Пол
Мужской
ВКонтакте
e1337ace
ограничение но как я понял на кнопку и не знаю даже будет ли он работать:
#include <amxmodx>

#include <fakemeta>



#define PLUGIN  "New Plugin"

#define VERSION "1.0"

#define AUTHOR  "Stimul"



#define cs_get_user_money(%1)   get_pdata_int(%1, OFFSET_CSMONEY)



#define OFFSET_CSMONEY  115



#define NUM_MONEY       200300



new g_MsgMoney;



public plugin_init()

{

        register_plugin(PLUGIN, VERSION, AUTHOR);

    

        register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");

    

        g_MsgMoney = get_user_msgid("Money");

}



public fw_PlayerPreThink(id)

{

        if(!is_user_connected(id))

                return FMRES_IGNORED;

            

        new button = pev(id, pev_button);

        new money = cs_get_user_money(id);

    

        if(money == NUM_MONEY && button & IN_ATTACK)

                cs_set_user_money(id, money - 300);

            

        return FMRES_IGNORED;

}



stock cs_set_user_money(id, money, flash = 1)

{

        set_pdata_int(id, OFFSET_CSMONEY, money);



        message_begin(MSG_ONE, g_MsgMoney, _, id);

        write_long(money);

        write_byte(flash ? 1 : 0);

        message_end();
Это cs_set_user_money(id, money - 300);
замени на это cs_set_user_money(id, min(money - 300, NUM_MONEY));
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
686
Симпатии
196
Пол
Мужской
ВКонтакте
e1337ace
Попробуй так еще
Код:
if(money >= NUM_MONEY && button & IN_ATTACK)
    cs_set_user_money(id, min(money - 300, NUM_MONEY));
 

trojanranson

Пользователь
Регистрация
2 Фев 2020
Сообщения
20
Симпатии
0

trojanranson

Пользователь
Регистрация
2 Фев 2020
Сообщения
20
Симпатии
0
Попробуй так еще
Код:
if(money >= NUM_MONEY && button & IN_ATTACK)
    cs_set_user_money(id, min(money - 300, NUM_MONEY));
Можно ли сделать проверку денег у игрока и если она выше указного количества то снимать до нужного количества. Что бы не выходило за придел)
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
686
Симпатии
196
Пол
Мужской
ВКонтакте
e1337ace
Можно ли сделать проверку денег у игрока и если она выше указного количества то снимать до нужного количества. Что бы не выходило за придел)
Вот наверно самое простое что можно сделать
C++:
#include <amxmodx>
#include <fakemeta>

const MAX_MONEY = 200000 /* Максимальная сумма денег у игрока. */

const mMoney = 102
#if cellbits == 32
    const m_iAccount = 115
#else
    const m_iAccount = 140
#endif
const linux_diff_player = 5

public plugin_init()
{
    register_message(get_user_msgid("Money") , "Message_Money")
}

public Message_Money(iMsgId, iMsgDest, id)
{
    if (!is_user_connected(id))
    {
        if (fm_get_user_money(id) > MAX_MONEY)
            fm_set_user_money(id, MAX_MONEY)
    }
}

stock fm_get_user_money(client)
    return get_pdata_int(client, m_iAccount, linux_diff_player)

stock fm_set_user_money(client, money, flash = 1)
{
    set_pdata_int(client, m_iAccount, money, linux_diff_player)
    message_begin(MSG_ONE_UNRELIABLE, mMoney, {0, 0, 0}, client)
    write_long(money)
    write_byte(flash ? 1 : 0)
    message_end()
}
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
686
Симпатии
196
Пол
Мужской
ВКонтакте
e1337ace
if (!is_user_connected(id)) убери этот знак я забыл убрать его.
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской
trojanranson, а квара там нету изначально??!
Например «чтоб не начислял деньгу за убийство противников»
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
686
Симпатии
196
Пол
Мужской
ВКонтакте
e1337ace
Попробуй этот плагин прописать ниже чем твой csdm или выше.
у себя я проверял ставил 10к денег и выше 10к при киллах и в новом раунде мне не давало. так что плагин рабочий.
C++:
#include <amxmodx>
#include <fakemeta>

const MAX_MONEY = 200000 /* Максимальная сумма денег у игрока. */

const mMoney = 102
#if cellbits == 32
    const m_iAccount = 115
#else
    const m_iAccount = 140
#endif
const linux_diff_player = 5

public plugin_init()
{
    register_message(get_user_msgid("Money") , "Message_Money")
}

public Message_Money(iMsgId, iMsgDest, id)
{
    if (is_user_connected(id))
    {
        if (fm_get_user_money(id) > MAX_MONEY)
            fm_set_user_money(id, MAX_MONEY)
    }
}

stock fm_get_user_money(client)
    return get_pdata_int(client, m_iAccount, linux_diff_player)

stock fm_set_user_money(client, money, flash = 1)
{
    set_pdata_int(client, m_iAccount, money, linux_diff_player)
    message_begin(MSG_ONE_UNRELIABLE, mMoney, {0, 0, 0}, client)
    write_long(money)
    write_byte(flash ? 1 : 0)
    message_end()
}
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской
Анатолий, он говорит что за киллы ему также не дает.. но вот если его пушка сделает килл ... тогда деньга начисляется.. (или ты также на пушке пробовал??
 
Сверху Снизу