Эффект тот-же, если можешь напиши разработчикам.
Была еще проблема, что передавалось только одному человеку в радиусе, добавил сферу чтоб собрать всех людей в радиусе.
Вот смотри что получилось.
addEventHandler("onPlayerVoiceStart", root,
function()
outputChatBox("Внимание;- голосовой чат ограничен!(10м)", source)
voice_dist = 10
sourX, sourY, sourZ = getElementPosition( source )
for i, thePlayer in ipairs( getElementsByType( 'player' ) ) do
tarX, tarY, tarZ = getElementPosition( thePlayer )
if not(source == thePlayer) then
distance = getDistanceBetweenPoints3D ( sourX, sourY, sourZ, tarX, tarY, tarZ )
if (distance > voice_dist) then
setPlayerVoiceIgnoreFrom(thePlayer, source)
setPlayerVoiceIgnoreFrom(source, thePlayer)
else
voiceSphere = createColSphere( sourX, sourY, sourZ, voice_dist )
nearbyPlayers = getElementsWithinColShape( voiceSphere, "player" )
destroyElement( voiceSphere )
for index, nearbyPlayer in ipairs( nearbyPlayers ) do
setPlayerVoiceIgnoreFrom(thePlayer, nil)
setPlayerVoiceIgnoreFrom(source, nil)
setPlayerVoiceBroadcastTo(source, nearbyPlayer)
setPlayerVoiceBroadcastTo(nearbyPlayer, source)
end
end
end
end
end
)
Или если у тебя есть еще идея,- пиши....