FireShok 4 Postado Fevereiro 21, 2017 Share Postado Fevereiro 21, 2017 (editado) Estou com um problema com sistema de som , no qual o som so pega na cordenada que possua Z= 7 , outra diferente nao funciona exemplo Z= 6 ou Z= 2. Aki o script: Spoiler SOUNDS_CONFIG = { soundChannel = SoundChannels.Music, checkInterval = 100, folder = 'music/', noSound = 'Nenhum arquivo de som para esta area', } SOUNDS = { {fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=7}, priority = 1, sound="Smile Town.ogg"}, {fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=6}, priority = 1, sound="Smile Town.ogg"}, {fromPos = {x=1579, y=1697, z=7}, toPos = {x=1593, y=1707, z=7}, priority = 2, sound="Fairy Tail - Main.ogg"}, {fromPos = {x=1558, y=1695, z=7}, toPos = {x=1572, y=1707, z=7}, priority = 2, sound="Pokemon Center.ogg"}, {fromPos = {x=729, y=851, z=7}, toPos = {x=808, y=905, z=7}, priority = 1, sound="Elite Four Battle.ogg"}, {fromPos = {x=852, y=848, z=7}, toPos = {x=914, y=898, z=7}, priority = 1, sound="Elite Four Battle.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() endend 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.zend 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 soundNameend function stopSound() setLabel(SOUNDS_CONFIG.noSound) rcSoundChannel:stop() playingSound = nilend function setLabel(str) soundWindow:recursiveGetChildById('currentSound'):getChildById('value'):setText(str)end Editado Fevereiro 21, 2017 por FireShok Link para o comentário Compartilhar em outros sites More sharing options...
Crypter 136 Postado Fevereiro 24, 2017 Share Postado Fevereiro 24, 2017 Em 21/02/2017 at 14:17, FireShok disse: Estou com um problema com sistema de som , no qual o som so pega na cordenada que possua Z= 7 , outra diferente nao funciona exemplo Z= 6 ou Z= 2. Aki o script: Ocultar conteúdo SOUNDS_CONFIG = { soundChannel = SoundChannels.Music, checkInterval = 100, folder = 'music/', noSound = 'Nenhum arquivo de som para esta area', } SOUNDS = { {fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=7}, priority = 1, sound="Smile Town.ogg"}, {fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=6}, priority = 1, sound="Smile Town.ogg"}, {fromPos = {x=1579, y=1697, z=7}, toPos = {x=1593, y=1707, z=7}, priority = 2, sound="Fairy Tail - Main.ogg"}, {fromPos = {x=1558, y=1695, z=7}, toPos = {x=1572, y=1707, z=7}, priority = 2, sound="Pokemon Center.ogg"}, {fromPos = {x=729, y=851, z=7}, toPos = {x=808, y=905, z=7}, priority = 1, sound="Elite Four Battle.ogg"}, {fromPos = {x=852, y=848, z=7}, toPos = {x=914, y=898, z=7}, priority = 1, sound="Elite Four Battle.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 Ja tentou assim: {fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=7}, priority = 1, sound="Smile Town.ogg"},{fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=6}, priority = 1, sound="Smile Town.ogg"},{fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=5}, priority = 1, sound="Smile Town.ogg"},{fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=4}, priority = 1, sound="Smile Town.ogg"}, Link para o comentário Compartilhar em outros sites More sharing options...
FireShok 4 Postado Fevereiro 25, 2017 Autor Share Postado Fevereiro 25, 2017 22 horas atrás, Crypter disse: Ja tentou assim: {fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=7}, priority = 1, sound="Smile Town.ogg"},{fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=6}, priority = 1, sound="Smile Town.ogg"},{fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=5}, priority = 1, sound="Smile Town.ogg"},{fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=4}, priority = 1, sound="Smile Town.ogg"}, continua do mesmo geito Link para o comentário Compartilhar em outros sites More sharing options...
Crypter 136 Postado Fevereiro 25, 2017 Share Postado Fevereiro 25, 2017 Agora, FireShok disse: continua do mesmo geito Ja viu na source se ela so limita no andar 7? Link para o comentário Compartilhar em outros sites More sharing options...
FireShok 4 Postado Fevereiro 25, 2017 Autor Share Postado Fevereiro 25, 2017 kkk mechi nas sources nao , eu peguei o script aki no forum mesmo . Agora, Crypter disse: Ja viu na source se ela so limita no andar 7? mas deve ser o client n ? Link para o comentário Compartilhar em outros sites More sharing options...
Crypter 136 Postado Fevereiro 25, 2017 Share Postado Fevereiro 25, 2017 Agora, FireShok disse: kkk mechi nas sources nao , eu peguei o script aki no forum mesmo . mas deve ser o client n ? Não sei , não mecho direito com otc Link para o comentário Compartilhar em outros sites More sharing options...
FireShok 4 Postado Fevereiro 25, 2017 Autor Share Postado Fevereiro 25, 2017 (editado) Agora, Crypter disse: Não sei , não mecho direito com otc mas vlw rep++ pela tentativa Editado Fevereiro 25, 2017 por FireShok Link para o comentário Compartilhar em outros sites More sharing options...
Crypter 136 Postado Fevereiro 25, 2017 Share Postado Fevereiro 25, 2017 Agora, FireShok disse: mas vlw rep++ pela tentativa Marca quem fez esse code, se o criador estiver no xtibia e pergunta no topico dele... Link para o comentário Compartilhar em outros sites More sharing options...
FireShok 4 Postado Fevereiro 25, 2017 Autor Share Postado Fevereiro 25, 2017 Agora, Crypter disse: Marca quem fez esse code, se o criador estiver no xtibia e pergunta no topico dele... eu ja perguntei ele disse que la pega normal. Link para o comentário Compartilhar em outros sites More sharing options...
Crypter 136 Postado Fevereiro 25, 2017 Share Postado Fevereiro 25, 2017 Agora, FireShok disse: eu ja perguntei ele disse que la pega normal. Ja testou em outro client? Link para o comentário Compartilhar em outros sites More sharing options...
FireShok 4 Postado Fevereiro 25, 2017 Autor Share Postado Fevereiro 25, 2017 Agora, Crypter disse: Ja testou em outro client? ja mas e a mesma coisa , so funciona Z = 7 Link para o comentário Compartilhar em outros sites More sharing options...
XzXNoraX 48 Postado Fevereiro 25, 2017 Share Postado Fevereiro 25, 2017 Deve estár acontecendo alguma interferência entre os floors, exemplo o floor 7 é á superfície padrão do Tíbia já o floor 6 é embaixo ou sejá o subterrâneo e o floor 8 acima dá superfície é provável que o código esteja somente pegando o floor 7 mais como o criador disse que funciona no dele em todos floors não faz sentido. Link para o comentário Compartilhar em outros sites More sharing options...
Scizorgame 58 Postado Fevereiro 26, 2017 Share Postado Fevereiro 26, 2017 (editado) Tentou verificar se os floors estão ao contrário ? Invés de 4 seria 10, é bobeira mas é uma possibilidade. Editado Fevereiro 26, 2017 por Scizorgame Link para o comentário Compartilhar em outros sites More sharing options...
FireShok 4 Postado Fevereiro 26, 2017 Autor Share Postado Fevereiro 26, 2017 4 horas atrás, Scizorgame disse: Tentou verificar se os floors estão ao contrário ? Invés de 4 seria 10, é bobeira mas é uma possibilidade. Funciona do Floor 7 ao 15 , agora 6 ao 0 nao funciona. Link para o comentário Compartilhar em outros sites More sharing options...
Scizorgame 58 Postado Fevereiro 26, 2017 Share Postado Fevereiro 26, 2017 (editado) 50 minutos atrás, FireShok disse: Funciona do Floor 7 ao 15 , agora 6 ao 0 nao funciona. Esquece tudo, essa linha aqui: {fromPos = {x=1509, y=1654, z=7}, toPos = {x=1662, y=1758, z=6}, priority = 1, sound="Smile Town.ogg"}, essa função aqui: 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.zend Entendeu ? é obvio que não vai funcionar, tem que botar o X, Y e Z do fromPos SEMPRE menores que os X, Y e Z do toPos. no caso seria: {fromPos = {x=1509, y=1654, z=6}, toPos = {x=1662, y=1758, z=7}, priority = 1, sound="Smile Town.ogg"}, O pior que no final acabou sendo por estarem ao contrario só que em outro sentido kkk. =D Editado Fevereiro 26, 2017 por Scizorgame Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados