Вопрос по EmitSound* и TE_SetupBeamFollow

crux

Участник
Сообщения
49
Реакции
4
1. EmitSoundToAll · sdktools_sound · SourceMod Scripting API Reference
int entity - entity to emit from. Индекс, к которой будет прикреплен звук. По умолчанию это клиент, которому проигрывается звук. Если здесь задать самого клиента, который активировал jetpack или любую другую сущность, то звук пойдет именно от неё.
C-подобный:
public Action:SomeCommand(iClient, iArgc) { EmitSoundToAll("somesound.wav", iClient); }
Для данного кода звук somesound.wav будет распространяться для всех игроков от iClient, и если они будут достаточно далеки от него, то они не услышат ничего.

2. TE_SetupBeamFollow имеет одну проблему - как только игрок остановится, трейл будет удален. Лучше создавать трейл вручную, прикрепив его к игроку, и установив его координаты к ногам. Для этого есть специальная entity "env_spritetrail". Вот плагин, который использует это [CS:S] Supporter Trails v3.0.5 (Updated: 2/12/13) - AlliedModders. Тогда же не будет необходимости создавать еще одну сущность под ногами игрока.
У меня появился вопрос: как воспроизвести звук так, чтобы он играл несмотря на то, что начался новый раунд? Через playgamesound, через EmitSound, все равно начинается новый раунд, звук останавливается. Создал игру с ботами прописал playgamesound и так же в начале нового раунда звук останавливается, видимо это в самой CS:S заложено.
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
У меня появился вопрос: как воспроизвести звук так, чтобы он играл несмотря на то, что начался новый раунд? Через playgamesound, через EmitSound, все равно начинается новый раунд, звук останавливается. Создал игру с ботами прописал playgamesound и так же в начале нового раунда звук останавливается, видимо это в самой CS:S заложено.
Попробуйте проиграть звук в канале, отличном от SNDCHAN_AUTO. Я бы начал пробовать с SNDCHAN_STATIC. Список каналов можно найти тут Main - SourceMod Scripting API Reference или в копии ниже:
C-подобный:
    SNDCHAN_REPLACE = -1,        /**< Unknown */
    SNDCHAN_AUTO = 0,            /**< Auto */
    SNDCHAN_WEAPON = 1,            /**< Weapons */
    SNDCHAN_VOICE = 2,            /**< Voices */
    SNDCHAN_ITEM = 3,            /**< Items */
    SNDCHAN_BODY = 4,            /**< Player? */
    SNDCHAN_STREAM = 5,            /**< "Stream channel from the static or dynamic area" */
    SNDCHAN_STATIC = 6,            /**< "Stream channel from the static area" */
    SNDCHAN_VOICE_BASE = 7,        /**< "Channel for network voice data" */
    SNDCHAN_USER_BASE = 135        /**< Anything >= this is allocated to game code */
 

crux

Участник
Сообщения
49
Реакции
4
Попробуйте проиграть звук в канале, отличном от SNDCHAN_AUTO. Я бы начал пробовать с SNDCHAN_STATIC. Список каналов можно найти тут Main - SourceMod Scripting API Reference или в копии ниже:
C-подобный:
    SNDCHAN_REPLACE = -1,        /**< Unknown */
    SNDCHAN_AUTO = 0,            /**< Auto */
    SNDCHAN_WEAPON = 1,            /**< Weapons */
    SNDCHAN_VOICE = 2,            /**< Voices */
    SNDCHAN_ITEM = 3,            /**< Items */
    SNDCHAN_BODY = 4,            /**< Player? */
    SNDCHAN_STREAM = 5,            /**< "Stream channel from the static or dynamic area" */
    SNDCHAN_STATIC = 6,            /**< "Stream channel from the static area" */
    SNDCHAN_VOICE_BASE = 7,        /**< "Channel for network voice data" */
    SNDCHAN_USER_BASE = 135        /**< Anything >= this is allocated to game code */
К сожалению, глушатся все каналы в начале нового раунда. Ошибиться на таком пустом месте не должен был.

C-подобный:
public void OnClientPutInServer(int iClient)
{
    EmitSoundToClient(iClient, sound, SOUND_FROM_PLAYER, SNDCHAN_STATIC);
}
 
Последнее редактирование:
Сверху Снизу