Звук в радиусе от игрока для всех

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
const String:sound[] = FULL_SOUND_PATH
Неправильно. Здесь должен быть путь для воспроизведения, а не загрузки.
FakePrecacheSound( RELATIVE_SOUND_PATH );
Для CS:GO, при таком способе воспроизведения, кэширование звука вообще не требуется.
 

Kruzi

Участник
Сообщения
153
Реакции
20
@AlmazON, то есть должно быть так?
PHP:
new const String:FULL_SOUND_PATH[] = "*/hooksound/hook.mp3";
new const String:RELATIVE_SOUND_PATH[] = "*/hooksound/hook.mp3";

public OnMapStart()
{
AddFileToDownloadsTable( FULL_SOUND_PATH );
}
....
               // Finish hooking
SetEntityGravity(client, 0.0); // Set gravity to 0 so client floats in a straight line
PlaySound(client, 0);
EmitSoundFromOrigin(g_cvarSound[Hook], g_Location[client][0]); // Emit sound from where the hook landed
Hook_Push(client);
CreateTimer(0.1, Hooking, client, TIMER_REPEAT); // Create hooking loop
...
public Action:PlaySound(client, args)
{
if (client)
{
decl Float:center[3];
GetClientAbsOrigin(client, center);
PlaySoundRadius(center);
}
return Plugin_Handled;
}

stock PlaySoundRadius(const Float:center[3], const String:sound[] = FULL_SOUND_PATH, const Float:Radius = 100.0)
{
decl Float:position[3];
for (new i = 1; i <= MaxClients; ++i)
{
if (IsClientInGame(i))
{
GetClientAbsOrigin(i, position);
if (GetVectorDistance(center, position) <= Radius) ClientCommand(i, "playgamesound \"%s\"", sound);
}
}
}
[/spoiler]
PlaySound(client, 0); - воспроизводит звук в радиусе да?
Оффтоп
 

AlmazON

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

Kruzi

Участник
Сообщения
153
Реакции
20
Это оставь, как было.А вот здесь никакой не "full".
Переделал всё. Но звук так и не воспроизводит.
Консоль клиента:
C-подобный:
CSoundEmitterSystemBase::GetParametersForSound:  No such sound 
[Sound] S_StartSound(): Failed to load sound 'hooksound\hook.mp3'. Can't create mixer.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Вроде нормально, только в stock всё же ничего не вставляется:
stock PlaySoundRadius(const Float:center[3], const String:sound[] = RELATIVE_SOUND_PATH, const Float:Radius = 100.0)
Путь оставляют таким же, как он и был, а новый просто передают при вызове:
PHP:
PlaySoundRadius(center, RELATIVE_SOUND_PATH);
Звук то хоть скачался? У меня такое впечатление, будто ты это запретил в клиенте игры и пытаешься его услышать.
 

Kruzi

Участник
Сообщения
153
Реакции
20
@AlmazON, звук скачался, в игре громкость включена. В консоле пишет что и писало про миксер и звука так же нет.
C-подобный:
Downloading http://-/fastdl//sound/hooksound/hook.mp3.bz2.
Download finished!
Skipping existing file http://-/fastdl//sound/hooksound/hook.mp3.
Вроде нормально, только в stock всё же ничего не вставляется:
stock PlaySoundRadius(const Float:center[3], const String:sound[] = RELATIVE_SOUND_PATH, const Float:Radius = 100.0)
Путь оставляют таким же, как он и был, а новый просто передают при вызове:
PHP:
public Action:PlaySound(client, args)
{
    if (client)
    {
        decl Float:center[3];
        GetClientAbsOrigin(client, center);
        PlaySoundRadius(center, RELATIVE_SOUND_PATH);
    }
    return Plugin_Handled;
}

stock PlaySoundRadius(const Float:center[3], const String:sound[], const Float:Radius = 100.0)
{
    decl Float:position[3];
    for (new i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i))
        {
            GetClientAbsOrigin(i, position);
            if (GetVectorDistance(center, position) <= Radius) ClientCommand(i, "playgamesound \"%s\"", sound);
        }
    }
}

Там где должен воспроизводиться звук стоит PlaySound(client, 0); так и должно быть? И за что отвечает второй аргумент?
PHP:
                // Finish hooking
                SetEntityGravity(client, 0.0); // Set gravity to 0 so client floats in a straight line
                PlaySound(client, 0);
                EmitSoundFromOrigin(g_cvarSound[Hook], g_Location[client][0]);
Последняя строка была по умолчанию в плагине и стандартный звук(он тоже не звучал с той же ошибкой в консоле) стоял в g_cvarSound, я поменял путь на свой, но оно так же не воспроизводит мой звук
 

Kruzi

Участник
Сообщения
153
Реакции
20
По-моему, тут всё ясно... Или мне кажется? :cool:
Удали звук с клиента игры - точно качается? При повторном заходе опять не должен качаться.
Оно так и должно писать после загрузки файла. Как бы удаляет его из списка закачки. Качает точно и только если файла нет в папке! Походу надо битрейт менять) Кто знает как это сделать в кратчайший способ?
 

Kruzi

Участник
Сообщения
153
Реакции
20
сменить битрейт онлайн в поисковике)
Помогло! 128 битов воспроизводит звук.
Проблема только вот в чём: в консоли клиента при каждом таком звуке выскакывает
C-подобный:
[Sound] S_StartSound(): Failed to load sound 'hooksound\hook.mp3'. Can't create mixer.
5 раз. Как можно избавиться от такого флуда?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
в консоли клиента при каждом таком звуке выскакывает
Есть подозрения... Вообще, сделай воспроизведение через EmitSound - не нужно громкость звука в игре прибавлять, но не забудь кэшировать. Оффтоп
 

Kruzi

Участник
Сообщения
153
Реакции
20
Есть подозрения... Вообще, сделай воспроизведение через EmitSound - не нужно громкость звука в игре прибавлять, но не забудь кэшировать. Оффтоп
А это не подойдёт?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #33
А это не подойдёт?
Он проигрывает звук, как звук среды, чем дальше игрок от источника звука - тем тише слышно. Короче взрыв или выстрел, например, те кто рядом слышат, а те кто далеко нет
 

Kruzi

Участник
Сообщения
153
Реакции
20
Фикс:
1. client side:
Code:
snd_updateaudiocache
snd_rebuildaudiocache
2. restart game
 
Сверху Снизу