[CS: GO] Кровотечение

Тема в разделе "Новые плагины", создана пользователем Hejter, 10 дек 2015.

  1. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Описание:
    Вызывает кровотечение с X шансом. На экране появляется оверлей то что у вас кровотечение. Мерцает/трясется экран и отнимается HP.

    Квары:
    PHP:
    sm_bleeding_chance "0.25" "Шанс кровотечения, 1.00 = 100%, 0.50 = 50%, и т.д"
    sm_heartbeat_shakeamp "7.0" "сила тряски экрана"
    sm_heartbeat_shaketime "1.0" "промежуток тряски экрана"
    sm_check_interval "2.5" "Отрезок времени через которое игроку будет отнимать HP."
    Остальные квары в плагине:
    PHP:
    #define MINUS_BLEED_HP 2 // Здоровье, отнимаемое у игрока.
    #define BLEED_BORDER 30 // Здоровье, ниже которого начинается кровотечение.
    P.S.За оверлей спасибо Primo.

    Версия 0.5 - релиз.
    Версия 0.8
    • Сделал один общий таймер
    • Работает сердцебиение (наверное)
    • Немного почистил код
    • Решил ошибку post #29
    • Добавил убийство таймера если вышли ВСЕ игроки с сервера.
    Версия 0.9
    • Фикс старых ошибок.
    • Убрал звук сердцебиения (временно).
    • Сделал убийство таймера: каждый завершенный раунд.
    Версия 1.0 - Решил проблему с двойным срабатыванием таймера.

    Оверлей внутри архива bleeding.rar

    P.S.Спасибо AlmazON'y, R1KO, Primo за помощь.
     

    Вложения:

    • bleeding.rar
      Размер файла:
      153,2 КБ
      Просмотров:
      106
    • bleeding.sp
      Размер файла:
      5,8 КБ
      Просмотров:
      57
    • bleeding.smx
      Размер файла:
      8 КБ
      Просмотров:
      56
    Последнее редактирование: 12 дек 2015
  2. pentaxist

    pentaxist

    Сообщения:
    119
    Симпатии:
    18
    Здорово. Щас опробуем) Спасибо
     
  3. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    ЗВук сердцебиения чет не работает, попробуй поставить какой ни будь свой.
     
  4. DarklSide

    DarklSide

    Сообщения:
    684
    Симпатии:
    173
    PHP:
    //#include <sdkhooks>
    //#include <emitsoundany>
    new Float:g_BleedChance;

    public 
    OnPluginStart()
    {
        
    //
        
    g_hConVar_szHeartbeatSound CreateConVar("sm_heartbeat_sound""sound/excwk/heart.mp3""звук сердцебиения (относительно sound/)"); // new path [sound/]excw[k]
        //
        
    HookConVarChange(BleedChanceConVar_Callback);
        
    //
        
    g_BleedChance GetConVarFloat(BleedChance);
        
    //
    }
    public 
    OnMapStart()
    {
        
    AddFileToDownloadsTable(g_szHeartbeatSound);
        
    ReplaceString(g_szHeartbeatSoundsizeof(g_szHeartbeatSound), "sound""*");
        
    PrecacheSound(g_szHeartbeatSound);
    }

    public 
    ConVar_Callback(Handle:cvar, const String:oldVal[], const String:newVal[])
    {
        
    //
        
    else if (cvar == BleedChance)
        {
            
    g_BleedChance GetConVarFloat(BleedChance);
        }
    }

    public 
    PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new 
    client GetClientOfUserId(GetEventInt(event"userid"));
        if (
    IsPlayerAlive(client) && Bleed[client] == false && client != GetClientOfUserId(GetEventInt(event"attacker")))
        {
            if (
    g_BleedChance >= GetRandomFloat())
            {
                
    //
            
    }
        }
    }


    public 
    Action:Bleed_Timer(Handle:timerany:UserID)
    {
        
    //
        
    if (cHealth 0)
        {
            
    SetEntityHealth(clientcHealth);
            
    ClientCommand(client"r_screenoverlay excw/bleed");
            
    EmitSoundToClient(clientg_szHeartbeatSound);  
            return 
    Plugin_Continue;
        }
        
    //
    }
     
  5. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Оптимизации и не было.
     
  6. AlmazON

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

    Сообщения:
    4.540
    Симпатии:
    1.984
    Hejter, Оффтоп
     
  7. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Ну буду стараться оптимизировать его.
     
  8. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    Hejter,
    Бегло посмотрев
    1) ну тут наверно else if
    + кто то говорил switch лучше когда много случаев
    Код:
    			if (cHealth <= 90) SetBlind(client, 1536, 35, { 0, 0, 0, 70 } );
    			if (cHealth <= 80) SetBlind(client, 1536, 35, { 0, 0, 0, 90 } );
    			if (cHealth <= 70) SetBlind(client, 1536, 35, { 0, 0, 0, 110 } );
    			if (cHealth <= 60) SetBlind(client, 1536, 35, { 0, 0, 0, 130 } );

    2)Вспомнив kdlp afk manager, можно сделать 1 таймер повторяющийся для всех
     
  9. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Этот кусок кода не используется, я его закоментил, т.к "подобрал" более лучше цвет.

    Добавлено через 47 секунд
    Ты не первый кто мне это говорит. Не пойму как его использовать.
     
    Последнее редактирование: 10 дек 2015
  10. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    If,else быстрее чем case

    При старте карты создаешь таймер, и делаешь в нем проверки.
     
  11. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Это то понятно. Какие проверки? Конкретно на что.
     
  12. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.994
    Симпатии:
    2.989
    Чем же?
    Пруф

    Делаешь 1 повторяющийся таймер и в нем цикл по всем игрокам

    P.S. Задолбали посты тереть.

    http://stackoverflow.com/questions/449273/why-the-switch-statement-and-not-if-else
     
  13. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Цикл на что делать? Конкретно.
    Оффтоп
     
  14. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.994
    Симпатии:
    2.989
    Hejter, то что ты делал в таймере для каждого игрока просто делаешь в цикле по игрокам.
     
  15. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Оффтоп

    Добавлено через 10 минут
    и так и так нет сердцебиения.

    Добавлено через 25 минут
    Оффтоп
    Оффтоп
     
    Последнее редактирование: 10 дек 2015
  16. maize

    maize

    Сообщения:
    72
    Симпатии:
    2
    Все пашет? Нужно ждать фиксов?
     
  17. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    По сути пашет. Звук сердцебиения вроде нет, а так все работает, возможно это звук такой.
     
  18. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    Обнова скорее
     
  19. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Оффтоп
     
  20. AlmazON

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

    Сообщения:
    4.540
    Симпатии:
    1.984
    64 * 3 = до 192 раз... Оффтоп