Подробнее о EmitSoundToClient

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
по циклу проходим каждого игрока и воспроизводим ему звук, ненужных игроков отсеиваем
Как сделать не подскажите? Вот добавляю в масив
C-подобный:
int maxclient[MaxClients+1], client = 0;

for (new i = 1; i <= MaxClients; i++)
    {
        maxclient[client++] = i;
    }

как мне от туда достать нужного?
 

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
Как сделать не подскажите? Вот добавляю в масив
C-подобный:
int maxclient[MaxClients+1], client = 0;

for (new i = 1; i <= MaxClients; i++)
    {
        maxclient[client++] = i;
    }

как мне от туда достать нужного?
Я же вам в другой теме уже давал пример, i != client
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Как сделать не подскажите? Вот добавляю в масив
C-подобный:
int maxclient[MaxClients+1], client = 0;

for (new i = 1; i <= MaxClients; i++)
    {
        maxclient[client++] = i;
    }

как мне от туда достать нужного?
C-подобный:
for(int i; i < MaxClient; i++)        if(client != i)    // Проигрываем звук всем игрокам, кроме "владельца"
    EmitSoundToClient(i, ...);
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@KiKiEEKi, создаёшь массив для индексов игроков, потом заполняешь его и после этого используешь массив в функции
C-подобный:
EmitSound(const int[] clients, int numClients, const char[] sample, int entity, int channel, int level, int flags, float volume, int pitch, int speakerentity, const float origin[3], const float dir[3], bool updatePos, float soundtime, any... ...)
Примерно вот так:
C-подобный:
    int clients[MAXPLAYERS], num;
    for(int i = 1; i <= MaxClients; i++) if(i != client && IsClientInGame(i) && !IsFakeClient(i)) clients[num++] = i;
    if(num) EmitSound(clients, num, sSound, client);
Сообщения автоматически склеены:

EmitSoundToClient() и EmitSoundToAll() - это надстройки над EmitSound()
 
Последнее редактирование:

crux

Участник
Сообщения
49
Реакции
4
@KiKiEEKi, создаёшь массив для индексов игроков, потом заполняешь его и после этого используешь массив в функции
C-подобный:
EmitSound(const int[] clients, int numClients, const char[] sample, int entity, int channel, int level, int flags, float volume, int pitch, int speakerentity, const float origin[3], const float dir[3], bool updatePos, float soundtime, any... ...)
Примерно вот так:
C-подобный:
    int clients[MAXPLAYERS], num;
    for(int i = 1; i <= MaxClients; i++) if(i != client && IsClientInGame(i) && !IsFakeClient(i)) clients[num++] = i;
    if(num) EmitSound(clients, num, sSound, client);
Сообщения автоматически склеены:

EmitSoundToClient() и EmitSoundToAll() - это надстройки над EmitSound()
А возможно ли вообще игнорировать начало раунда и продолжать играть музыку?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@crux, если никакие другие звуки не перебивают, то воспроизведение вроде как и не должно прекращаться.
 

crux

Участник
Сообщения
49
Реакции
4
@crux, если никакие другие звуки не перебивают, то воспроизведение вроде как и не должно прекращаться.
Когда игрок заходит на сервер, ему играет музыкальное приветствие, если начинается новый раунд и музыка еще играла, то она просто прекращает играть, round end sound отключил, он не мешает, но результат тот же.
 
Сверху Снизу