В общем хочу запустить звук для одного игрока только, и в итоге получается дессинхрон
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] синий и т.д.
тогда это вернет позицию локального героя, а если герой не существует то центр карты
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
14
biridius:
ну и точки потом убить тоже, да
Я не понимаю гетлокал...Что это?
biridius:
ну и точки потом убить тоже, да
Вот там PlayerID и в нем гетлокалплеер, вот это я не понимаю вообще
22
вот это код, в котором ты NecromancerPissed2 меняешь на свой звук и вставляешь в свою карту
GetPlayerId(GetLocalPlayer()) вместо целого в той функции.
14
вот это код, в котором ты NecromancerPissed2 меняешь на свой звук и вставляешь в свою карту
Ты не представляешь как я себя сдерживаю чтобы не сорваться от твоих миссов. Еще раз повторяю, я понимаю все, кроме использования GetLocal
biridius:
вот это код, в котором ты NecromancerPissed2 меняешь на свой звук и вставляешь в свою карту
GetPlayerId(GetLocalPlayer()) вместо целого в той функции.
МНе нужно объяснить только гетлокал, и все, я не понимаю как выводится айди для всех игроков сразу через гетлокал
22
ты не поймешь
но напишу еще раз: каждый компьютер (монитор, процессор) каждого игрока выполняет этот код
но каждый по своему, потому что камера у каждого в разном месте
14
biridius:
ты не поймешь
но напишу еще раз: каждый компьютер (монитор, процессор) каждого игрока выполняет этот код
но каждый по своему, потому что камера у каждого в разном месте
Но нужно понять, ибо какой толк от гетлокал, если юзать его бездумно.
22
вот у красного игрока камера там где нужно, и его комп поставит правильную строку
а вот синий смотрит не туда, и его копм сделает пустую строку
оба компа создают звук, но у красного звук есть, а у синего звука нет потому что путь пустой
14
ты не поймешь
но напишу еще раз: каждый компьютер (монитор, процессор) каждого игрока выполняет этот код
но каждый по своему, потому что камера у каждого в разном месте
Все, я понял как работает гетлокал, теперь мне нужна другая инфа, о loc, точнее о current camera.
22
current camera возвращает куда смотрит локальный игрок
14
вот у красного игрока камера там где нужно, и его комп поставит правильную строку
а вот синий смотрит не туда, и его копм сделает пустую строку
оба компа создают звук, но у красного звук есть, а у синего звука нет потому что путь пустой
Хорошо, если бы я использовал вместо центра карты позицию героя каждого игрока(у них по 1 юниту), то?цикл использовался только для чего?Для назначения N-точек?
+Нужно было бы всовывать в цикл Условие и создавать N строк, и N раз запускать функцию звука, так?
22
если тебе звук нужен только для обладателя героя, то ты используешь вместо current camera view
position of hero[GetPlayerId(GetLocalPlayer())]
где hero - массив героев, индекс это номер игрока начиная с нуля
то есть hero[0] красный геро, hero[1] синий и т.д.
тогда это вернет позицию локального героя, а если герой не существует то центр карты
Принятый ответ
14
biridius:
если тебе звук нужен только для обладателя героя, то ты используешь вместо current camera view
position of hero[GetPlayerId(GetLocalPlayer())]
где hero - массив героев, индекс это номер игрока начиная с нуля
то есть hero[0] красный геро, hero[1] синий и т.д.
тогда это вернет позицию локального героя
Я опять ничерта не понял, какая же эта функция конченная. Ладно, вернемся к моей.
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
Она ведь осталась неизменной, следовательно десинхрон останется, что поменять?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.