Skocz do zawartości
KoOsTeK

[Rozwiązane] Dźwięk po zabiciu z noża

Rekomendowane odpowiedzi

Napisano (edytowane)

Cześć. Potrzebuję pomocy z dźwiękiem po zabójstwo kogoś z noża.

Znalazłem tutaj na forum plugin od @Master poniżej go prezentuje.

I tak. Wrzucam go na serwer i muzyczkę również. Problem w tym, że nie odpala mi dźwięku po zabójstwu z noża. 

Dodam jeszcze, że korzystam również z pluginu roundsound.

W konsoli wyskakuje taka informacja : SV_StartSound: *misc/muzyka1.mp3 not precached (0)

Jest ktoś w stanie to ogarnąć?

 

Spoiler

#include <emitsoundany>

#pragma semicolon 1
#pragma newdecls required

#define SOUND_PATH "misc/muzyka1.mp3"

public void OnPluginStart()
{
    HookEvent("player_death", Event_PlayerDeath);
}

public void OnMapStart()
{
    PrecacheSound(SOUND_PATH);

    char sPath[128];

    Format(sPath, sizeof(sPath), "sound/%s", SOUND_PATH);
    AddFileToDownloadsTable(sPath);
}

public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
    char sWeapon[32];
    event.GetString("weapon", sWeapon, sizeof(sWeapon));

    if(StrContains(sWeapon, "knife", false) != -1 || StrContains(sWeapon, "bayonet", false) != -1)
    {
        for(int i = 1; i <= MaxClients; i++)
        {
            if(!IsClientInGame(i))
                continue;

            if(IsFakeClient(i))
                continue;

            ClientCommand(i, "playgamesound Music.StopAllMusic");
            EmitSoundToClientAny(i, SOUND_PATH, -2, 0, 0, 0, 1.0, 100, -1, NULL_VECTOR, NULL_VECTOR, true, 0.0);
        }

    }
}

 

Edytowane przez KoOsTeK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Przepraszam bardzo ale ja takiego pluginu nigdy nie napisałem. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Napisano (edytowane)

Przepraszam miałem oznaczyć @Master ale coś mi źle wyskoczyło 😄

 

Dodam jeszcze, że korzystam z pluginu roundsound.

 

Edit : poprawione.

Edytowane przez KoOsTeK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Spróbuj tak

 

Spoiler
#include <emitsoundany>

#pragma semicolon 1
#pragma newdecls required

#define SOUND_PATH "misc/muzyka1.mp3"

public void OnPluginStart()
{
    HookEvent("player_death", Event_PlayerDeath);
}

public void OnMapStart()
{
    PrecacheSoundAny(SOUND_PATH);

    char sPath[128];

    Format(sPath, sizeof(sPath), "sound/%s", SOUND_PATH);
    AddFileToDownloadsTable(sPath);
}

public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
    char sWeapon[32];
    event.GetString("weapon", sWeapon, sizeof(sWeapon));

    if(StrContains(sWeapon, "knife", false) != -1 || StrContains(sWeapon, "bayonet", false) != -1)
    {
        for(int i = 1; i <= MaxClients; i++)
        {
            if(!IsClientInGame(i))
                continue;

            if(IsFakeClient(i))
                continue;

            ClientCommand(i, "playgamesound Music.StopAllMusic");
            EmitSoundToClientAny(i, SOUND_PATH, -2, 0, 0, 0, 1.0, 100, -1, NULL_VECTOR, NULL_VECTOR, true, 0.0);
        }
    }
}

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

za********e! Działa, dzięki!

Mam tylko jedno pytanko czy jest szansa aby na rozgrzewce (walka na noże przez ok 90 sekund) te dźwięki nie były odpalane, a dopiero od pierwszej rundy?

Da radę takie coś zrobić?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#include <emitsoundany>

#pragma semicolon 1
#pragma newdecls required

#define SOUND_PATH "misc/muzyka1.mp3"

public void OnPluginStart()
{
    HookEvent("player_death", Event_PlayerDeath);
}

public void OnMapStart()
{
    PrecacheSoundAny(SOUND_PATH);

    char sPath[128];

    Format(sPath, sizeof(sPath), "sound/%s", SOUND_PATH);
    AddFileToDownloadsTable(sPath);
}

public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
    if(IsWarmup()) {
        return;
    }

    char sWeapon[32];
    event.GetString("weapon", sWeapon, sizeof(sWeapon));

    if(StrContains(sWeapon, "knife", false) != -1 || StrContains(sWeapon, "bayonet", false) != -1)
    {
        for(int i = 1; i <= MaxClients; i++)
        {
            if(!IsClientInGame(i))
                continue;

            if(IsFakeClient(i))
                continue;

            ClientCommand(i, "playgamesound Music.StopAllMusic");
            EmitSoundToClientAny(i, SOUND_PATH, -2, 0, 0, 0, 1.0, 100, -1, NULL_VECTOR, NULL_VECTOR, true, 0.0);
        }
    }
}

bool IsWarmup()
{
	return (GameRules_GetProp("m_bWarmupPeriod") == 1);
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wszystko działa jak należy.

Dziękuję ślicznie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Problem został rozwiązany

Jeżeli się z tym nie zgadzasz, raportuj ten post

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...