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

chpoker

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

Задача:

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

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

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

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

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

SlipknotRU

Участник
Сообщения
35
Реакции
14
@chpoker, за 2 рубля напишу.

Не тестировал, мне лень.
C-подобный:
#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);
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
if (attacker == client) { death_points[client]++; death_announce(client);
Неверно. Проверка значит, что игрок убивает сам себя (суицид, подрыв на своей же гранате). Оффтоп
Что там по настройкам и кварам?
 

SlipknotRU

Участник
Сообщения
35
Реакции
14
@AlmazON, дальше пусть сам думает или сам допиши, я лишь дал пример. Оффтоп
 
Сверху Снизу