Нужен плагин Death Streak Sounds (аналог Quake Sounds) CS:S

Тема в разделе "Запросы", создана пользователем chpoker, 4 сен 2016.

  1. chpoker

    chpoker

    Сообщения:
    1
    Симпатии:
    0
    Друзья! Почерпнул идею из одной стааарой старой игры, хочу ее реализовать посредством ваших умных голов и умелых рук, проще говоря ищу разработчика плагинов.

    Задача:

    Все знают Quake Sounds, где в зависимости от кол-ва убийств подряд воспроизводятся "Killing Spree", "Rampage" и так далее, серия прерывается со смертью.

    Нам нужен прямо противоположный по функциям плагин, а именно:

    Игрок начинает игру, и погибает... Затем еще раз, и еще... так никого и не убив, тоесть счет у него 0:3 (убийств:смертей). Когда у игрока становится 3 смерти подряд, всем проигрываюется определенный звук и выводится сообщение в чате и по центру экрана с именем нашего героя, например: "Playername сегодня не везет... " то же самое в чате, с поддержкой цветов ника (в цвет команды) и текста...

    Если игроку и далье никого так и не убить соответственно там 5 смертей подряд, проигрывем другой звук и показываем другой текст. Всего анонсов 5 нужно... Серия прерывается когда игрок убил кого-то.

    О цене договоримся.
     
  2. SlipknotRU

    SlipknotRU

    Сообщения:
    35
    Симпатии:
    4
    @chpoker, за 2 рубля напишу.

    Не тестировал, мне лень.
    Код:
    #pragma semicolon 1
    #include <sdktools_sound>
    #pragma newdecls required
    
    int death_points[MAXPLAYERS + 1];
    
    public Plugin gavno_kakoeto = {
        author = "Ты",
        name = "Серия смертей",
        description = "конец.",
    };
    
    public void OnPluginStart() {
        HookEventEx("player_death", Event_PlayerDeath);
    }
    
    public void Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast) {
        int client = GetClientOfUserId(event.GetInt("userid")),
            attacker = GetClientOfUserId(event.GetInt("attacker"));
        if (attacker == client) {
            death_points[client]++;
            death_announce(client);
        }
        else if (attacker != client && death_points[attacker] != 0) death_points[attacker] = 0;
    }
    
    public void OnClientPutInServer(int client) {
        death_points[client] = 0;
    }
    
    void death_announce(int client) {
        if (client && IsClientInGame(client)) {
            switch (death_points[client]) {
                case 3: {            // 3 - серия смертей, сбрасывается если убьет кого-то
                    PrintToChatAll("");        // текст в чате - всем
                    EmitSoundToAll("");        // звук для всех
                }
            }
        }
    }
    p.s PrintToChatAll("%N сегодня не везет...", client);
     
    Последнее редактирование: 4 сен 2016
  3. AlmazON

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

    Сообщения:
    4.579
    Симпатии:
    1.989
    Неверно. Проверка значит, что игрок убивает сам себя (суицид, подрыв на своей же гранате). Оффтоп
    Что там по настройкам и кварам?
     
  4. SlipknotRU

    SlipknotRU

    Сообщения:
    35
    Симпатии:
    4
    @AlmazON, дальше пусть сам думает или сам допиши, я лишь дал пример. Оффтоп