Модуль плагина [Shop] Command Items 1.2

Покупка игровых команд

  1. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Пользователь Someone разместил новый ресурс:

    Command Items - Покупка игровых команд

    Узнать больше об этом ресурсе...
     
    White Wolf нравится это.
  2. skolobes

    skolobes Не раздевайся, я по делу

    Сообщения:
    270
    Симпатии:
    23
    sm_drug можно ли только его оставить?,идея класс,кстати:)
     
  3. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Какую хочешь можно ставить команду. Если хочешь только sm_drug оставить, то просто полностью sm_noclip убери и всё.
     
    skolobes нравится это.
  4. skolobes

    skolobes Не раздевайся, я по делу

    Сообщения:
    270
    Симпатии:
    23
    @Someone, а какие еще примерно можно поставить команды для данного модуля?
     
  5. thexumuk

    thexumuk

    Сообщения:
    12
    Симпатии:
    1
    Хм очень интересная идея, такой вопрос а как к примеру добавить две команды?
     
  6. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Есть вот такой плагин, меняет выстрелы:

    [CS:GO] UB3R Guns\Bullet Changer - AlliedModders

    Например "ub_awp Someone Deagle" даст Deagle стреляющий как AWP ( урон такой же как у AWP). << За него дают бан токена.



    Или к примеру имея RPG мод выдавать кредиты/уровень/опыт. Аналогично с WCS.

    Или вовсе покупать гравитацию (Например: sm_gravity {clientUser} 200) или невидимость.


    --- Добавлено позже ---
    Например вот так:
    Код:
    "CommandItems"
    {
        "sm_noclip"    //Название в бд
        {
            "name"    "NoClip" // Название в Shop
            "description"    "NoClip на 30 секунд"    // Описание
            "price"    "2000"    // Цена покупки
            "sell_price"    "500"    // Цена продажи
            "alive"            "1" // Должен ли быть игрок живым
            "command"        "sm_noclip {clientUser}" // Команда
            "chat_text"        "[Shop] Вы купили NoClip на 30 секунд." // Сообщение в чате при использовании
            "team"            "2"        // Ограничение для одной команды (по умолчанию доступно всем) 1 - спектаторы | 2 - Террористы | 3 - Контр-Террористы
            "timer"            "30.0"    // Время через которое эта команда снова выполнится (по умолчанию выключено)
            "chat_text_timer"        "[Shop] Ваш NoClip закончился." // Сообщение после окончания таймера (не работает, если не используется таймер)
        }
        "sm_drug"
        {
            "name" "Напиться"
            "price"    "500"
            "sell_price"    "100"
            "alive"            "1"
            "command"        "sm_drug {clientUser}"
        }
        "sm_gravity"
        {
            "name" "Гравитация"
            "description" "Уменьшение гравитации"
            "price"    "500"
            "sell_price"    "100"
            "alive"            "1"
            "command"        "sm_graivty {clientUser} 200"
        }
        "sm_invisible"
        {
            "name" "Невидимость"
            "description" "5-ти секундная невидимость"
            "price"    "1000"
            "sell_price"    "500"
            "alive"            "1"
            "timer"            "5.0"
            "command"        "sm_invisible {clientUser}"
        }
    }
    
    
     
    Последнее редактирование: 3 сен 2016
  7. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.195
    Симпатии:
    427
    Грава бесполезная, залезешь на лестницу, пропадает.
     
  8. ToniWaor

    ToniWaor

    Сообщения:
    77
    Симпатии:
    9
    Команды типо unmute тоже прокатят ?

    UPD:

    Глупый был вопрос.
     
    Последнее редактирование: 5 сен 2016
  9. -->KENT<--

    -->KENT<-- FANAT FARAONA

    Сообщения:
    150
    Симпатии:
    18
    Можно сделать команду использования в конфиг? к примеру "chat_text_use" 'Ник использовал водку" чтобы в общий чат писало при использовании.
     
  10. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Вроде сделал, но надо проверить. Чуть позже выложу.
     
  11. -->KENT<--

    -->KENT<-- FANAT FARAONA

    Сообщения:
    150
    Симпатии:
    18
    Ну что?:ab:
     
  12. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Пользователь Someone обновил ресурс [Shop] Command Items новой записью:

    Исправление кода и дополнительная функция

    Узнать больше об этом обновлении...
    --- Добавлено позже ---
    Готово.
     
  13. -->KENT<--

    -->KENT<-- FANAT FARAONA

    Сообщения:
    150
    Симпатии:
    18
  14. ToniWaor

    ToniWaor

    Сообщения:
    77
    Симпатии:
    9
    Работает ок, но было замечено:

    [SM] Exception reported: Invalid timer handle 8ef205ee (error 3)
    [SM] Blaming: shop_commanditems.smx()
    [SM] Call stack trace:
    [SM] [0] KillTimer
    [SM] [1] Line 55, C:\csgo\1.7\addons\sourcemod\scripting\shop_commanditems.sp::Event_RoundStart()
     
  15. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Да, глянул, напутал там немного, позже исправлю.

    Можешь сам пока что исправить.


    Поменять:

    PHP:
    public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
        for (new 
    1<= MaxClientsi++)
        {
            
    g_iUses[i] = 0;
            
    UseFunction[i] = false;
            
    KillTimer(DataTimer);
        }
    }
    На:

    PHP:
    public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
        for (new 
    1<= MaxClientsi++)
        {
            
    g_iUses[i] = 0;
            
    UseFunction[i] = false;
        }
        if(
    DataTimer != INVALID_HANDLE)    KillTimer(DataTimer);
    }
     
    ToniWaor нравится это.
  16. Tonki_Ton

    Tonki_Ton

    Сообщения:
    317
    Симпатии:
    31
    чет все ровно ошибку с таймером сыпет

    [SM] Exception reported: Invalid timer handle f8320b93 (error 3)
    [SM] Blaming: shop_commanditems.smx()
    [SM] Call stack trace:
    [SM] [0] KillTimer
    [1] Line 57, C:\Users\Vladm\Desktop\ (4)\addons\sourcemod\scripting\shop_commanditems.sp::Event_RoundStart()
     
  17. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.590
    Симпатии:
    1.995
    24 строку:
    Код:
    new Handle:DataTimer;
    Заменить на:
    PHP:
    new Handle:DataTimer[MAXPLAYERS 1];
    Код:
    public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
        for (new i = 1; i <= MaxClients; i++)
        {
            g_iUses[i] = 0;
            UseFunction[i] = false;
            KillTimer(DataTimer);
        }
    }
    На:
    PHP:
    public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
        for (new 
    1<= MaxClients; ++i)
        {
            
    g_iUses[i] = 0;
            
    UseFunction[i] = false;
            if (
    DataTimer[i] != INVALID_HANDLE)
            {
                
    KillTimer(DataTimer[i]);
                
    DataTimer[i] = INVALID_HANDLE;
            }
        }
    }
    Теперь уже 197 строку:
    Код:
    DataTimer = CreateDataTimer(g_CommandItems[timer], ExucteCommand, datapack);
    На:
    PHP:
    DataTimer[iClient] = CreateDataTimer(g_CommandItems[timer], ExucteCommanddatapack);
    После получившейся 214 строки:
    Код:
    if(iClient)
    И её фигурной скобки добавить:
    PHP:
    DataTimer[iClient] = INVALID_HANDLE;
    И в самом конце, с новой чистой строки:
    PHP:
    public OnClientDisconnect_Post(iClientDataTimer[iClient] = INVALID_HANDLE;
    Автору: вообще, тогда уж лучше и убивать там таймер и проверку из таймера на валидность индекса игрока можно убрать.
     
    Tonki_Ton нравится это.
  18. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Я не понимаю, таймер будет один? Или он будет создаваться на каждого игрока?
     
  19. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.590
    Симпатии:
    1.995
    Это верно. Либо так, либо вообще без Handle таймера тогда, ибо в нём смысла нет - убивается таймер лишь того игрока, кто использовал команду последним.
     
  20. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44