В общем хочу запустить звук для одного игрока только, и в итоге получается дессинхрон
function PlayLocalSound takes string s, integer p returns nothing
local sound snd
if GetLocalPlayer() != Player(p) then
set s = ""
endif
set snd = CreateSound(s,false, false, false,10,10,"")
call SetSoundChannel(snd,5)
call SetSoundVolume(snd,127)
call SetSoundPitch(snd, 1)
call StartSound(snd)
call KillSoundWhenDone(snd)
set snd = null
endfunction
Код функции, который использую для звука
На скрине запуск

Принятый ответ

если тебе звук нужен только для обладателя героя, то ты используешь вместо current camera view
position of hero[GetPlayerId(GetLocalPlayer())]
где hero - массив героев, индекс это номер игрока начиная с нуля
то есть hero[0] красный геро, hero[1] синий и т.д.
тогда это вернет позицию локального героя, а если герой не существует то центр карты

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
20
7 лет назад
0
кинь скрин триггера где используется функция и что за строку ты в нее передаешь
еще скрин твой не видно, нажми кнопку "вставить ссылку на файл" рядом с ним
0
27
7 лет назад
0
Не уверен, возможно ошибаюсь, напишу вот что: в блок вставляй число, например громкость звука. обычно вставляют строки и числа, а если объекты хэндла, то фаталит. Тут ты всунул в блок звук, точнее сказать локалку звука, вот и фаталит.
0
14
7 лет назад
0
Щас кину
Steal nerves:
Не уверен, возможно ошибаюсь, напишу вот что: в блок вставляй число, например громкость звука. обычно вставляют строки и числа, а если объекты хэндла, то фаталит. Тут ты всунул в блок звук, точнее сказать локалку звука, вот и фаталит.
Все работает не фаталит, только рассинхрон и все
Загруженные файлы
0
20
7 лет назад
Отредактирован biridius
0
А что это должно делать?
Я думаю проблема в условии target of current camera view (оно проверяется у локального игрока, и из-за этого создается объект только у какого-то из игроков), но я не понимаю что этот триггер должен делать
0
14
7 лет назад
0
А что это должно делать?
Я думаю проблема в условии target of current camera view (оно проверяется у локального игрока, и из-за этого создается объект только у какого-о из игроков), но я не понимаю что этот триггер должен делать
Он должен проигрывать звук относительно расстояния источника до камеры
biridius:
А что это должно делать?
Я думаю проблема в условии target of current camera view (оно проверяется у локального игрока, и из-за этого создается объект только у какого-то из игроков), но я не понимаю что этот триггер должен делать
Нууу, типо если рядом смотришь камерой, то звук проигрывается, вот так
0
20
7 лет назад
Отредактирован biridius
0
надо сделать переменную типа строка, и в если расстояние неправильное, задавать пустую строку, а если правильная то путь к звуку. после этого проигрывать звук по этой строке. без цикла и без getlocalplayer
0
14
7 лет назад
0
biridius:
надо сделать переменную типа строка, и в если расстояние неправильное, задавать пустую строку, а если правильная то путь к звуку. после этого проигрывать звук по этой строке. без цикла и без getlocalplayer
Цикл для игроков происходит, мне нужно проиграть только тем игрокам, которые смотрят рядом
biridius:
надо сделать переменную типа строка, и в если расстояние неправильное, задавать пустую строку, а если правильная то путь к звуку. после этого проигрывать звук по этой строке. без цикла и без getlocalplayer
Ты прямо сейчаас озвучил принцип действия моей функции или что?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.