Иконка ресурса

Голосовой чат по дистанции между игроками 1.1

Женечка

Участник
Сообщения
9
Реакции
8
  • Автор ресурса
  • #1
Женечка добавил(а) новый ресурс:

Голосовой чат по дистанции между игроками - Плагин позволяет слышать друг друга, если игроки находятся рядом(будет полезно для роле-плей мода).

Суть в исходном коде, Вы можете в функции GetClientCommunicationEntity() обработать клиента и отдать нужный номер ентити(например, если человек танцует через fortnite emotes).

Узнать больше об этом ресурсе...
 

nick_staticks

Гений LR-WEB(-а)
Сообщения
180
Реакции
94
Уже предвижу людей на пабликах которые будут орать лишь бы их услышали за стенкой…
 

include.sqlx

Участник
Сообщения
27
Реакции
38
Этот плагин прекрасная иллюстрация того, что в sourcemod нету форварда отлавливающего нажатия микрофона, в связи с чем приходится использовать костыль с таймером и циклом.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@include.sqlx, когда-то делали расширение для ксго и l4d, которое создавало такие форварды, емнип.
Хз работает ли сейчас в ксго (там же дополнительный голосовой протокол добавили после этого).
Ну и не помню оно под какой ОСью работало.
Сообщения автоматически склеены:

Вот, кстати, тема на AM:
 
Последнее редактирование:

xstage

🏹
Сообщения
726
Реакции
754
Иллюстрация того как не нужно писать, черт с этими таймерами, там сам по себе код не понятный, хз как это вообще работает
Да вроде он тут все понятно расписал, прямо для каждого условия :D

1654519265703.png
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
ну это просто гениально:
C-подобный:
public void OnClientPostAdminCheck(int client)
{
    CreateTimer(1.0, VoiceSettings, client, TIMER_REPEAT);
}

int GetClientCommunicationEntity(int client)
{
    return client;
}
@xstage, а можно было просто написать точно те же самые проверки одной строкой:
C-подобный:
stock bool IsPlayerValid(int client)
{
    return 0 < client && client <= MaxClients && IsValidEdict(client) && IsClientInGame(client) && !IsFakeClient(client) && IsClientAuthorized(client);
}
Сообщения автоматически склеены:

Я бы сделал так.
  • Квар расстояния теперь имеет минимальное значение в 45 юнитов (ширина модельки игрока дефолтом 32 юнита, т.е. расстояние м/у двумя игроками на одной горизонтальной поверхности может быть от 32 до 45 юнитов в зависимости от того как они повёрнуты относительно друг-друга).
  • Добавил квар, которым можно изменять время между проверками (не менее 0.1сек), и автоматическое создание конфига.
  • Ну и переименовал квары.
  • Сделал так, чтобы проверка между парой игроков производилась только раз за цикл.
  • Расстояние измеряется между глазами игроков, а не их стопами (вроде люди слышат друг-друга не ногами ^_^).
  • Живые не будут слышать мёртвых и наоборот. Мёртвые будут слышать друг-друга независимо от расстояния. Живые будут слышать друг-друга только на расстоянии меньше выставленного кваром.
 

Вложения

  • sm_voice_settings_by_distance 1.1.0.sp
    2.8 КБ · Просмотры: 10
Последнее редактирование:
Сверху Снизу