1. kupidon Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    312
    Симпатии:
    27
    Пол:
    Мужской
    Выше были темы где искали этот плагин озвучки фрагов.
    Я повырезал худы при фрагах, вот такой получился код.

    Помогите сделать чтобы счет фрагов обнулялся не после 4 секунд if(g_iTask[id] + 4.0 <= get_gametime())
    а в каждом раунде, чтобы каждый раз игроки начинали с первого фрага - kill1.wav

    Код:
    #include <amxmodx>
    #include <hamsandwich>
    #include <fakemeta>
    
    
    new const cso_kill_headshot[] = "cso_arena/headshot.wav"
    new const cso_kill_sounds[14][] =
    {
        "cso_arena/kill1.wav",
        "cso_arena/kill2.wav",
        "cso_arena/kill3.wav",
        "cso_arena/kill4.wav",
        "cso_arena/kill5.wav",
        "cso_arena/kill6.wav",
        "cso_arena/kill7.wav",
        "cso_arena/kill8.wav",
        "cso_arena/kill9.wav",
        "cso_arena/kill10.wav",
        "cso_arena/kill11.wav",
        "cso_arena/kill12.wav",
        "cso_arena/kill13.wav",
        "cso_arena/kill14.wav"
    }
    
    new Float:g_iTask[33];
    new g_iKills[33];
    
    public plugin_init()
    {
        register_plugin("Kills like CSO", "0.1", "fl0wer")
    
        RegisterHam(Ham_Killed, "player", "Player_Killed_Post", 1)
        RegisterHam(Ham_Player_PostThink, "player", "Player_PostThink_Post", 1)
    
    }
    
    public plugin_precache()
    {
        for(new i = 0; i < sizeof cso_kill_sounds; i++)
            precache_sound(cso_kill_sounds[i])
    
        precache_sound(cso_kill_headshot)
    }
    
    public Player_Killed_Post(victim, attacker, shouldgib)
    {
        if(!is_user_connected(attacker))
            return;
    
        if(victim == attacker)
            return;
    
        g_iKills[attacker]++;
        g_iTask[attacker] = get_gametime();
        g_iKills[victim] = 0;
        g_iTask[victim] = 0.0;
    
        new speak_kills = g_iKills[attacker] - 1;
    
        if(get_pdata_int(victim, 75) == HIT_HEAD)
        {
            client_cmd(attacker, "speak ^"%s^"", cso_kill_headshot)
        }
        else
        {
            client_cmd(attacker, "speak ^"%s^"", cso_kill_sounds[speak_kills])
        }
       
    }
    
    public Player_PostThink_Post(id)
    {
        if(!is_user_alive(id))
            return;
    
        if(g_iTask[id] + 4.0 <= get_gametime())
        {
            g_iKills[id] = max(g_iKills[id] -= 1, 0);
            g_iTask[id] = get_gametime();
        }
    }
     
  2. LeninChan^^ Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.086
    Симпатии:
    368
    Пол:
    Мужской
    Telegram:
    LeninChan
    kupidon, таск на конец раунда замени
     
  3. happyQQ Пользователь

    Регистрация:
    12.01.16
    Сообщения:
    433
    Симпатии:
    88
    Пол:
    Мужской
    VKcom:
    ha_pp_y
    Skype:
    happyqq1337
    ICQ:
    133713371337
    Звук будет слышен только игроку? Или всем?)
     
  4. kupidon Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    312
    Симпатии:
    27
    Пол:
    Мужской
    видно же, только игроку.

    client_cmd(attacker, "speak ^"%s^"", cso_kill_sounds[speak_kills])
    --- добавлено 25.03.16 ---
    что заменить на конец раунда?
     
    happyQQ нравится это.
  5. windranger1337 Пользователь

    Регистрация:
    04.10.15
    Сообщения:
    303
    Симпатии:
    177
    Telegram:
    serfreeman1337
    Условие обнуления ты уже нашел. Нам нужно удалить его выполнение, это у нас вот такая строчка:
    Дальше можно хукнуть конец раунда, как предложил @LeninChan, получить список игроков и через цикл сбросить кол-во убийств, или хукнуть респавн игрока (появление на базе) и сбросить только ему.
    Я за 2ой вариант, т.к. он универсальный в данном случае (для серверов без раундов). В plugin_init регистрируем хук на спавн игрока:
    Код:
    RegisterHam(Ham_Spawn,"player","Player_Spawn_Post",1)
    И создаем новую функцию:
    Код:
    public Player_Spawn_Post(id)
    {
       g_iKills[id] = 0
    }
     
  6. happyQQ Пользователь

    Регистрация:
    12.01.16
    Сообщения:
    433
    Симпатии:
    88
    Пол:
    Мужской
    VKcom:
    ha_pp_y
    Skype:
    happyqq1337
    ICQ:
    133713371337
    А если допустим 2-3 троих убьет... Что будет за звук? :D Как один килл?) Или все сразу в кучу звуки)
     
  7. kupidon Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    312
    Симпатии:
    27
    Пол:
    Мужской
    каждый килл отдельный звук. это тебе не мискстатс
     
  8. happyQQ Пользователь

    Регистрация:
    12.01.16
    Сообщения:
    433
    Симпатии:
    88
    Пол:
    Мужской
    VKcom:
    ha_pp_y
    Skype:
    happyqq1337
    ICQ:
    133713371337
    То есть за 3 кила одновременно будет один звук?)))
     
  9. kupidon Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    312
    Симпатии:
    27
    Пол:
    Мужской
    бл*ть ну ты тормоз?

    Сделал кил - звук, сделал еще кил - звук2, сделал третий килл - звук3
     
  10. LeninChan^^ Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.086
    Симпатии:
    368
    Пол:
    Мужской
    Telegram:
    LeninChan
    kupidon, если я сделал второй килл пока не успел проиграться звук. звук наложится?
     
  11. kupidon Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    312
    Симпатии:
    27
    Пол:
    Мужской
    это надо -2 с одной гранаты сделать чтобы проверить, получатся моментальные 2 фрага
     
    Последнее редактирование: 25.03.16
  12. kupidon Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    312
    Симпатии:
    27
    Пол:
    Мужской
    звуки не накладываются, второй звук сразу прервет первого и ты услышишь kill2
     
    happyQQ нравится это.
  13. Астан Пользователь

    Регистрация:
    12.03.16
    Сообщения:
    90
    Симпатии:
    20
    Пол:
    Мужской
    VKcom:
    http%3A%2F%2Fvk.com%2Fastanchik96
    Skype:
    astan.begaliyew96
    Игроку