Ir para conteúdo

Featured Replies

Postado

Boa tarde, galera gostaria de saber como adiciono musica em certos locais do mapa, quando o player passar por está area a musica toca.

Eu encontrei um arquivo no meu otc que eu acredito que a função dele é fazer exatamente isto.

Na pasta do otc/Mods/Rc sound. No codigo as ares listadas nele funciona a musica, pois ja aveio pre configurado, e quando eu tentei coloquei no cogio a parte de TESTE e tentei adcionar a musica em outra area quando chego la nada acontece. Alguem poderia me explicar direito como funciona a musica do OTC e esse script ?

 

SOUNDS_CONFIG = {

soundChannel = SoundChannels.Music,
checkInterval = 500,
folder = 'music/',
noSound = 'No sound file for this area.',
}
 
SOUNDS = {
-- Konoha
{fromPos = {x=2370, y=1657, z=7}, toPos = {x=2752, y=1961, z=7}, priority = 2, sound="Konoha.ogg"},
{fromPos = {x=2370, y=1657, z=6}, toPos = {x=2752, y=1961, z=6}, priority = 2, sound="Konoha.ogg"},
{fromPos = {x=2370, y=1657, z=5}, toPos = {x=2752, y=1961, z=5}, priority = 2, sound="Konoha.ogg"},
{fromPos = {x=2370, y=1657, z=4}, toPos = {x=2752, y=1961, z=4}, priority = 2, sound="Konoha.ogg"},
{fromPos = {x=2370, y=1657, z=3}, toPos = {x=2752, y=1961, z=3}, priority = 2, sound="Konoha.ogg"},
 
-- Cave
{fromPos = {x=2425, y=1883, z=8}, toPos = {x=2627, y=1985, z=8}, priority = 1, sound="Cave.ogg"},
{fromPos = {x=2425, y=1883, z=9}, toPos = {x=2627, y=1985, z=9}, priority = 1, sound="Cave.ogg"},
{fromPos = {x=2425, y=1883, z=10}, toPos = {x=2627, y=1985, z=10}, priority = 1, sound="Cave.ogg"},
{fromPos = {x=2425, y=1883, z=11}, toPos = {x=2627, y=1985, z=11}, priority = 1, sound="Cave.ogg"},
 
-- Konoha South Exit
{fromPos = {x=2291, y=1854, z=7}, toPos = {x=2786, y=2290, z=7}, priority = 1, sound="New_Evening.ogg"},
{fromPos = {x=2291, y=1854, z=6}, toPos = {x=2786, y=2290, z=6}, priority = 1, sound="New_Evening.ogg"},
{fromPos = {x=2291, y=1854, z=5}, toPos = {x=2786, y=2290, z=5}, priority = 1, sound="New_Evening.ogg"},
{fromPos = {x=2291, y=1854, z=4}, toPos = {x=2786, y=2290, z=4}, priority = 1, sound="New_Evening.ogg"},
{fromPos = {x=2291, y=1854, z=3}, toPos = {x=2786, y=2290, z=3}, priority = 1, sound="New_Evening.ogg"},
 
-- Boss
{fromPos = {x=977, y=903, z=8}, toPos = {x=1009, y=916, z=9}, priority = 1, sound="FF VII - Main.ogg"},
{fromPos = {x=1001, y=917, z=9}, toPos = {x=1002, y=919, z=9}, priority = 1, sound="FF VII - Main.ogg"},
 
-- Main
 
-- Dragon
{fromPos = {x=1089, y=1110, z=8}, toPos = {x=1135, y=1142, z=8}, priority = 1, sound="Fairy Tail - Main.ogg"},
{fromPos = {x=1102, y=1128, z=9}, toPos = {x=1131, y=1149, z=9}, priority = 1, sound="Fairy Tail - Main.ogg"},
{fromPos = {x=1117, y=1124, z=9}, toPos = {x=1128, y=1127, z=9}, priority = 1, sound="Fairy Tail - Main.ogg"},
{fromPos = {x=1100, y=1104, z=10}, toPos = {x=1127, y=1131, z=10}, priority = 1, sound="Fairy Tail - Main.ogg"},
{fromPos = {x=1103, y=1108, z=9}, toPos = {x=1108, y=1112, z=9}, priority = 1, sound="Fairy Tail - Main.ogg"},
 
{fromPos = {x=1096, y=1088, z=5}, toPos = {x=1110, y=1100, z=6}, priority = 1, sound="Fairy Tail - Main.ogg"},
 
-- Teste
{fromPos = {x=2507, y=2412, z=6}, toPos = {x=2474, y=2413, z=6}, priority = 1, sound="Konoha.ogg"},
{fromPos = {x=2507, y=2412, z=7}, toPos = {x=2474, y=2413, z=7}, priority = 1, sound="Konoha.ogg"},
 
} ----------
 
-- Sound
local rcSoundChannel
local showPosEvent
local playingSound
 
-- Design
soundWindow = nil
soundButton = nil
 
function toggle()
  if soundButton:isOn() then
    soundWindow:close()
    soundButton:setOn(false)
  else
    soundWindow:open()
    soundButton:setOn(true)
  end
end
 
function onMiniWindowClose()
  soundButton:setOn(false)
end
 
function init()
for i = 1, #SOUNDS do
SOUNDS.sound = SOUNDS_CONFIG.folder .. SOUNDS.sound
end
 
connect(g_game, { onGameStart = onGameStart,
                    onGameEnd = onGameEnd })
 
rcSoundChannel = g_sounds.getChannel(SOUNDS_CONFIG.soundChannel)
-- rcSoundChannel:setGain(value/COUNDS_CONFIG.volume)
 
soundButton = modules.client_topmenu.addRightGameToggleButton('soundButton', tr('Sound Info') .. '', '/images/audio', toggle)
soundButton:setOn(true)
 
soundWindow = g_ui.loadUI('rcsound', modules.game_interface.getRightPanel())
soundWindow:disableResize()
soundWindow:setup()
 
if(g_game.isOnline()) then
onGameStart()
end
end
 
function terminate()
disconnect(g_game, { onGameStart = onGameStart,
                       onGameEnd = onGameEnd })
onGameEnd()
soundWindow:destroy()
soundButton:destroy()
end
 
function onGameStart()
stopSound()
toggleSoundEvent = addEvent(toggleSound, SOUNDS_CONFIG.checkInterval)
end
 
function onGameEnd()
stopSound()
removeEvent(toggleSoundEvent)
end
 
function isInPos(pos, fromPos, toPos)
return
pos.x>=fromPos.x and
pos.y>=fromPos.y and
pos.z>=fromPos.z and
pos.x<=toPos.x and
pos.y<=toPos.y and
pos.z<=toPos.z
end
 
function toggleSound()
local player = g_game.getLocalPlayer()
if not player then return end
 
local pos = player:getPosition()
local toPlay = nil
 
for i = 1, #SOUNDS do
if(isInPos(pos, SOUNDS.fromPos, SOUNDS.toPos)) then
if(toPlay) then
toPlay.priority = toPlay.priority or 0
if((toPlay.sound~=SOUNDS.sound) and (SOUNDS.priority>toPlay.priority)) then
toPlay = SOUNDS
end
else
toPlay = SOUNDS
end
end
end
 
playingSound = playingSound or {sound='', priority=0}
 
if(toPlay~=nil and playingSound.sound~=toPlay.sound) then
g_logger.info("RC Sounds: New sound area detected:")
g_logger.info("  Position: {x=" .. pos.x .. ", y=" .. pos.y .. ", z=" .. pos.z .. "}")
g_logger.info("  Music: " .. toPlay.sound)
stopSound()
playSound(toPlay.sound)
playingSound = toPlay
elseif(toPlay==nil) and (playingSound.sound~='') then
g_logger.info("RC Sounds: New sound area detected:")
g_logger.info("  Left music area.")
stopSound()
end
 
toggleSoundEvent = scheduleEvent(toggleSound, SOUNDS_CONFIG.checkInterval)
end
 
function playSound(sound)
rcSoundChannel:enqueue(sound, 0)
setLabel(clearName(sound))
end
 
function clearName(soundName)
local explode = string.explode(soundName, "/")
soundName = explode[#explode]
explode = string.explode(soundName, ".ogg")
soundName = ''
for i = 1, #explode-1 do
soundName = soundName .. explode
end
return soundName
end
 
function stopSound()
setLabel(SOUNDS_CONFIG.noSound)
rcSoundChannel:stop()
playingSound = nil
end
 
function setLabel(str)
soundWindow:recursiveGetChildById('currentSound'):getChildById('value'):setText(str)
end

 

  • 1 year later...
  • 3 months later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo