установка определенной музыки на определенную карту

Роман Иматов

Участник
Сообщения
13
Реакции
0
Подскажите, возможно поставить определенную одну песню при заходе на карту александра? Чтобы она только на александре проигрывалась и только при заходе на александру. CSS v86
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
определенную одну песню при заходе на карту александра
PHP:
#include <sdktools>

#pragma newdecls required

#define FILE_DOWNLOAD    "sound/welcome.mp3"
#define FILE_PLAY        "welcome.mp3"

public void OnAutoConfigsBuffered()
{
    char map[32];
    GetCurrentMap(map, sizeof(map));
    static bool activate;
    if (strcmp(map, "de_alexandra"))
    {
        if (activate)
        {
            UnhookEvent("player_activate", Event_PlayerActivate);
            activate = false;
        }
    }
    else
    {
        if (!activate)
        {
            activate = true;
            HookEvent("player_activate", Event_PlayerActivate);
        }
        PrecacheSound(FILE_PLAY, true);
        AddFileToDownloadsTable(FILE_DOWNLOAD);
    }
}

public void Event_PlayerActivate(Event event, const char[] name, bool dontBroadcast)
{
    EmitSoundToClient(GetClientOfUserId(event.GetInt("userid")), FILE_PLAY);
}
FILE_DOWNLOAD "sound/welcome.mp3" - путь к загружаемому звуку;
FILE_PLAY "welcome.mp3" - путь к проигрываемому звуку.
 

Роман Иматов

Участник
Сообщения
13
Реакции
0
Да, именно так. Как это можно сделать? Нужно отдельный плагин писать или?
--- Добавлено позже ---
PHP:
#include <sdktools>

#pragma newdecls required

#define FILE_DOWNLOAD    "sound/welcome.mp3"
#define FILE_PLAY        "welcome.mp3"

public void OnAutoConfigsBuffered()
{
    char map[32];
    GetCurrentMap(map, sizeof(map));
    static bool activate;
    if (strcmp(map, "de_alexandra"))
    {
        if (activate)
        {
            UnhookEvent("player_activate", Event_PlayerActivate);
            activate = false;
        }
    }
    else
    {
        if (!activate)
        {
            activate = true;
            HookEvent("player_activate", Event_PlayerActivate);
        }
        PrecacheSound(FILE_PLAY, true);
        AddFileToDownloadsTable(FILE_DOWNLOAD);
    }
}

public void Event_PlayerActivate(Event event, const char[] name, bool dontBroadcast)
{
    EmitSoundToClient(GetClientOfUserId(event.GetInt("userid")), FILE_PLAY);
}
FILE_DOWNLOAD "sound/welcome.mp3" - путь к загружаемому звуку;
FILE_PLAY "welcome.mp3" - путь к проигрываемому звуку.
--- Добавлено позже ---
Куда это нужно добавить?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755

Роман Иматов

Участник
Сообщения
13
Реакции
0
Если "религия" не позволяет внимательно прочитать и вникнуть, то нечего и вовсе держать сервер. Оффтоп
Начал разбираться. Код указанный он уже готовый под карту александра? Нужно только настроить пути к музыке?
--- Добавлено позже ---
Если "религия" не позволяет внимательно прочитать и вникнуть, то нечего и вовсе держать сервер. Оффтоп
FILE_DOWNLOAD "sound/welcome.mp3" - путь к загружаемому звуку;
FILE_PLAY "welcome.mp3" - путь к проигрываемому звуку.
Путь к загружаемому звуку обязательно прописывать, если я звук на сервер сам закину?
 

Роман Иматов

Участник
Сообщения
13
Реакции
0
Если "религия" не позволяет внимательно прочитать и вникнуть, то нечего и вовсе держать сервер. Оффтоп
FILE_DOWNLOAD "sound/welcome.mp3" - путь к загружаемому звуку;
FILE_PLAY "welcome.mp3" - путь к проигрываемому звуку.
Можно просто назвать музыку, как в плагине и положить в папку sound.
Я со всем этим разобрался. Только ещё один вопрос. То что написано в коде красным цветов, то нужно поменять?
 

Ice_Sochi

Участник
Сообщения
709
Реакции
413
PHP:
#include <sdktools>

#pragma newdecls required

#define FILE_DOWNLOAD    "sound/welcome.mp3"
#define FILE_PLAY        "welcome.mp3"

public void OnAutoConfigsBuffered()
{
    char map[32];
    GetCurrentMap(map, sizeof(map));
    static bool activate;
    if (strcmp(map, "de_alexandra"))
    {
        if (activate)
        {
            UnhookEvent("player_activate", Event_PlayerActivate);
            activate = false;
        }
    }
    else
    {
        if (!activate)
        {
            activate = true;
            HookEvent("player_activate", Event_PlayerActivate);
        }
        PrecacheSound(FILE_PLAY, true);
        AddFileToDownloadsTable(FILE_DOWNLOAD);
    }
}

public void Event_PlayerActivate(Event event, const char[] name, bool dontBroadcast)
{
    EmitSoundToClient(GetClientOfUserId(event.GetInt("userid")), FILE_PLAY);
}
FILE_DOWNLOAD "sound/welcome.mp3" - путь к загружаемому звуку;
FILE_PLAY "welcome.mp3" - путь к проигрываемому звуку.
Для написанных тобой плагинов в разных темах пора бы раздел уже отдельный на форуме создавать:D
Много годноты написано, а мало кто видит, ибо не в разделе с плагинами
 

Роман Иматов

Участник
Сообщения
13
Реакции
0
Это PHP-тег так выделяет автоматически. Изменяемое указано ниже, в спойлере. Максимум, можно ещё поменять название карты.
в общем только вот это менять и всё?
FILE_DOWNLOAD "sound/welcome.mp3" - путь к загружаемому звуку;
FILE_PLAY "welcome.mp3" - путь к проигрываемому звуку.
--- Добавлено позже ---
Для написанных тобой плагинов в разных темах пора бы раздел уже отдельный на форуме создавать:D
Много годноты написано, а мало кто видит, ибо не в разделе с плагинами
Извиняюсь. Исправлюсь
--- Добавлено позже ---
в общем только вот это менять и всё?
FILE_DOWNLOAD "sound/welcome.mp3" - путь к загружаемому звуку;
FILE_PLAY "welcome.mp3" - путь к проигрываемому звуку.
--- Добавлено позже ---

Извиняюсь. Исправлюсь
Это PHP-тег так выделяет автоматически. Изменяемое указано ниже, в спойлере. Максимум, можно ещё поменять название карты.
И вот этот получившийся файл нужно загрузить на сервер в папку с плагинами и всё?
--- Добавлено позже ---
@AlmazON,
в общем только вот это менять и всё?
FILE_DOWNLOAD "sound/welcome.mp3" - путь к загружаемому звуку;
FILE_PLAY "welcome.mp3" - путь к проигрываемому звуку.
--- Добавлено позже ---

Извиняюсь. Исправлюсь
Это PHP-тег так выделяет автоматически. Изменяемое указано ниже, в спойлере. Максимум, можно ещё поменять название карты.
И вот этот получившийся фаил
--- Добавлено позже ---
Всё заработало. Только появилась другая проблемка. Теперь на александре играет две песни (старая, которая стоит на все карты как приветствие и новая) . Как сделать так, чтобы играла только новая на александре, а на остальных картах осталась старая?
--- Добавлено позже ---
Это PHP-тег так выделяет автоматически. Изменяемое указано ниже, в спойлере. Максимум, можно ещё поменять название карты.
Всё заработало. Только появилась другая проблемка. Теперь на александре играет две песни (старая, которая стоит на все карты как приветствие и новая) . Как сделать так, чтобы играла только новая на александре, а на остальных картах осталась старая?
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Как сделать так, чтобы играла только новая на александре, а на остальных картах осталась старая?
Необходимо её "гасить", для чего нужно знать путь к звуку. Не припоминаю, чтобы на стандартной карте была музыка...
 

Роман Иматов

Участник
Сообщения
13
Реакции
0
в общем только вот это менять и всё?
FILE_DOWNLOAD "sound/welcome.mp3" - путь к загружаемому звуку;
FILE_PLAY "welcome.mp3" - путь к проигрываемому звуку.
--- Добавлено позже ---

Извиняюсь. Исправлюсь
Это PHP-тег так выделяет автоматически. Изменяемое указано ниже, в спойлере. Максимум, можно ещё поменять название карты.
И вот этот получившийся фаил
Необходимо её "гасить", для чего нужно знать путь к звуку. Не припоминаю, чтобы на стандартной карте была музыка...
Путь я знаю. А как её гасить?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
PHP:
#include <sdktools>

#pragma newdecls required

#define FILE_DOWNLOAD    "sound/welcome.mp3"
#define FILE_PLAY        "welcome.mp3"

public void OnAutoConfigsBuffered()
{
    char map[32];
    GetCurrentMap(map, sizeof(map));
    static bool activate;
    if (strcmp(map, "de_alexandra"))
    {
        if (activate)
        {
            UnhookEvent("player_activate", Event_PlayerActivate);
            activate = false;
        }
    }
    else
    {
        if (!activate)
        {
            activate = true;
            HookEvent("player_activate", Event_PlayerActivate);
        }
        PrecacheSound(FILE_PLAY, true);
        AddFileToDownloadsTable(FILE_DOWNLOAD);
    }
}

public void Event_PlayerActivate(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    StopSound(client, SNDCHAN_AUTO, "bratskiy/parlahost/new.mp3");
    EmitSoundToClient(client, FILE_PLAY);
}
Однако, не всё так просто и гладко...
 

Роман Иматов

Участник
Сообщения
13
Реакции
0
PHP:
#include <sdktools>

#pragma newdecls required

#define FILE_DOWNLOAD    "sound/welcome.mp3"
#define FILE_PLAY        "welcome.mp3"

public void OnAutoConfigsBuffered()
{
    char map[32];
    GetCurrentMap(map, sizeof(map));
    static bool activate;
    if (strcmp(map, "de_alexandra"))
    {
        if (activate)
        {
            UnhookEvent("player_activate", Event_PlayerActivate);
            activate = false;
        }
    }
    else
    {
        if (!activate)
        {
            activate = true;
            HookEvent("player_activate", Event_PlayerActivate);
        }
        PrecacheSound(FILE_PLAY, true);
        AddFileToDownloadsTable(FILE_DOWNLOAD);
    }
}

public void Event_PlayerActivate(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    StopSound(client, SNDCHAN_AUTO, "bratskiy/parlahost/new.mp3");
    EmitSoundToClient(client, FILE_PLAY);
}
Однако, не всё так просто и гладко...
Все равно играет две музыки
--- Добавлено позже ---
PHP:
#include <sdktools>

#pragma newdecls required

#define FILE_DOWNLOAD    "sound/welcome.mp3"
#define FILE_PLAY        "welcome.mp3"

public void OnAutoConfigsBuffered()
{
    char map[32];
    GetCurrentMap(map, sizeof(map));
    static bool activate;
    if (strcmp(map, "de_alexandra"))
    {
        if (activate)
        {
            UnhookEvent("player_activate", Event_PlayerActivate);
            activate = false;
        }
    }
    else
    {
        if (!activate)
        {
            activate = true;
            HookEvent("player_activate", Event_PlayerActivate);
        }
        PrecacheSound(FILE_PLAY, true);
        AddFileToDownloadsTable(FILE_DOWNLOAD);
    }
}

public void Event_PlayerActivate(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    StopSound(client, SNDCHAN_AUTO, "bratskiy/parlahost/new.mp3");
    EmitSoundToClient(client, FILE_PLAY);
}
Однако, не всё так просто и гладко...
А что если в первый плагин (который без остановки) прописать все карты на сервере, кроме александры, а на александру сделать отдельный, такой же. Будет работать?
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
в первый плагин (который без остановки) прописать все карты на сервере, кроме александры
Так и делается вообще-то. А для "гашения" всё равно нужно знать код того плагина - может, там звук проигрывается ещё позже, а остановить "до" - таким образом так нельзя.
 

Роман Иматов

Участник
Сообщения
13
Реакции
0
PHP:
#include <sdktools>

#pragma newdecls required

#define FILE_DOWNLOAD    "sound/welcome.mp3"
#define FILE_PLAY        "welcome.mp3"

public void OnAutoConfigsBuffered()
{
    char map[32];
    GetCurrentMap(map, sizeof(map));
    static bool activate;
    if (strcmp(map, "de_alexandra"))
    {
        if (activate)
        {
            UnhookEvent("player_activate", Event_PlayerActivate);
            activate = false;
        }
    }
    else
    {
        if (!activate)
        {
            activate = true;
            HookEvent("player_activate", Event_PlayerActivate);
        }
        PrecacheSound(FILE_PLAY, true);
        AddFileToDownloadsTable(FILE_DOWNLOAD);
    }
}

public void Event_PlayerActivate(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    StopSound(client, SNDCHAN_AUTO, "bratskiy/parlahost/new.mp3");
    EmitSoundToClient(client, FILE_PLAY);
}
Однако, не всё так просто и гладко...
А что если в первый плагин (который без остановки) прописать все карты на сервере, кроме александры, а на александру сделать отдельный. Будет работать
Так и делается вообще-то. А для "гашения" всё равно нужно знать код того плагина - может, там звук проигрывается ещё позже, а остановить "до" - таким образом так нельзя.
Так и делается вообще-то. А для "гашения" всё равно нужно знать код того плагина - может, там звук проигрывается ещё позже, а остановить "до" - таким образом так нельзя.
Знаете что ещё заметил. С новым плагином музыка играет всего 5 или 6 секунд, а потом перестает играть когда игроки заходят в игру
 
Сверху Снизу