Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 9
    Гостей: 5
    Пользователи: - отсутствуют
    Роботы: crawl Bot, Yandex Bot, Yahoo Bot, Google AdSense

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 12-08-2011, 17:15 Просмотров: 7220

    cs_get_user_money Функция получения количества денег игрока

    cs_get_user_money - В о многих плагинах происходят манипуляции с деньгами игрока, и сразу же встает вопрос: Как узнать количество денег игрока? Данная функция и отвечает на этот вопрос.

    Инфо из cstrike.inc:
    /* Returns users money. */
    native cs_get_user_money(index);


    Синтаксис:
    cs_get_user_money ( index )


    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>

    #define PLUGIN "Get user money"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("say /money?","my_money")
        register_clcmd("say /give-me-money","give_money")
    }
    public my_money(id){
        
        new MyMoney[32]
        MyMoney[id] = cs_get_user_money(id)
        set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 6.0, 12.0)
        show_hudmessage(id, "You have %d$",MyMoney[id] )
    }
    public give_money(id){
        new MyMoney[32]
        MyMoney[id] = cs_get_user_money(id)    
        cs_set_user_money(id,MyMoney[id] + 777)
        
        MyMoney[id] = cs_get_user_money(id)
        
        set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 6.0, 12.0)
        show_hudmessage(id, "You have %d$",MyMoney[id] )    
    }


    Описание:
    И так, мы собирались узнать сколько денег у игрока, для этого мы зарегистрировали команду say /money, которая выполняет функцию my_money, внутри которой мы регистрируем массив для данных и получаем с помощью рассматриваемой функции деньги игрока. И сразу же выводим в центре экрана данную сумму.

    Немного разнообразил пример второй командой say /give-me-money, которая вызывает функцию give_money, в которой мы как и в предыдущей сначала получаем количество денег игрока, а потом к этой сумме прибавляем 777$

    Можно использовать и без массива:
    cs_set_user_money(id,cs_get_user_money(id) + 777)


    Теперь вы знаете как работать с валютой игры, открывайте свой банк ;)
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    cs_get_user_money Функция получения количества денег игрока
    Kuka

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: --

    Зачем так все усложнять?

    public give_money(id){
        cs_set_user_money(id,cs_get_user_money(id) + 777)
        set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 6.0, 12.0)
        show_hudmessage(id, "You have %d$",cs_get_user_money(id) )    
    }
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Я не хотел усложнять, а наоборот, показать как можно разными способами.
    + Важно понимать для новичков, что можно работать напрямую с функцией или через массивы. Так как на форуме, очень часто сталкиваюсь с подобным не пониманием: Функция/массив/работа с ними

    Хотя конечно получилось замысловато )
    На то есть и профессионалы, что бы помогать новичкам как я :)
    --------------------
    KEFIR

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Если используя данную функцию отнимать какое то количество денег от уже имеющихся, не будет ли багом при имеющемся скажем 100 $ отнимаем 1000$ может стоит также тут описать про вычитание денег?
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Тут описывается не алгоритмы работы, а функции.
    вот что ты имеешь в виду:
    if(cs_set_user_money(id,MyMoney[id] - 777) > 0){
         cs_set_user_money(id,MyMoney[id] - 777)
    }else{
       cs_set_user_money(id,0)
    }

    Это наглядная конструкция - не оптимальная для использования, а дающая возможность понять алгоритм.
    --------------------
    KEFIR

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Нет я спросил про то что если отнять большее количество денег у игрока чем у него есть по какой либо команде не вызовет ли это падение или еще чего то на сервере
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Проверить самому сложно?
    --------------------
    KEFIR

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Я то уже проверил,но сайт то не мой а Ваш может стоит синхронизировать статьи по мере поступления вопросов по теме и дописывать - вносить, что-то новое, дабы охватить в полной мере тот объем,который интересен широкой публике читателей, а не ссылаться на поисковиков и анатомию верхнего плечевого пояса.

    P.s: Вам как администратору ресурса должно быть стыдно давать такие комментарии. Если нет желания отвечать лучше предоставьте это другому.
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    KEFIR, мое виденье данного сайта отличается от твоего и менять я его не намерен.
    --------------------
    LordNAO

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Хотел только уточнить вот эти строки в конце:
    public give_money(id){
        new MyMoney[32]
        MyMoney[id] = cs_get_user_money(id)    
        cs_set_user_money(id,MyMoney[id] + 777)
        
        MyMoney[id] = cs_get_user_money(id)

    Получается массив MyMoney[id] мы переписываем по новой:
    1. Узнаем сколько денег у игрока (например, получили 1000);
    2. Добавляем денег игроку (+777);
    3. Опять узнаем новый результат наличия денег (получили 1777).
    Все верно?
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    LordNAO, не массив, а только одну его ячейку "id"
    хотя в данном примере нет необходимости использовать массив.
    Можно обойтись переменной.
    --------------------

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама