xS0NYx 15 #1 Posted July 22, 2013 O que faz? Esse mod, ao definirmos posições para ele, quando você estiver entre as posições ele tocará a música definida por você. Como Instalar? Bastante simples, siga os passos a seguir: 1- Em sua pasta otc/mods crie uma pasta chamada rcsound, crie um arquivo chamado rcsound.lua e adicione isto: SOUNDS_CONFIG = { soundChannel = SoundChannels.Music, checkInterval = 500, folder = 'music/', noSound = 'No sound file for this area.', } SOUNDS = { -- Rook Cave {fromPos = {x=879, y=803, z=8}, toPos = {x=1079, y=963, z=15}, sound = "FF VII - Main.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"}, } ---------- -- 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[i].sound = SOUNDS_CONFIG.folder .. SOUNDS[i].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[i].fromPos, SOUNDS[i].toPos)) then if(toPlay) then toPlay.priority = toPlay.priority or 0 if((toPlay.sound~=SOUNDS[i].sound) and (SOUNDS[i].priority>toPlay.priority)) then toPlay = SOUNDS[i] end else toPlay = SOUNDS[i] 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[i] 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 2- Crie um arquivo chamado rcsound.otmod e adicione isto: Module name: rc_sound description: Handels sounds for Rising Client. author: Shawak website: none autoload: true autoload-priority: 1000 sandbox: true scripts: [ rcsound ] @onLoad: init() @onUnload: terminate() 3- Crie um arquivo chamado rcsound.otui e adicione isto: Module name: rc_sound description: Handels sounds for Rising Client. author: Shawak website: none autoload: true autoload-priority: 1000 sandbox: true scripts: [ rcsound ] @onLoad: init() @onUnload: terminate() 4- Crie uma pasta dentro da rcsound, chamada music, dentro dela adicione os sons desejados, lembrando que o formato tem que ser OGG . Como configurar? Acho que não preciso explicar, mas vou ... é bastante simples, como definir as posições e a musica que tocará quando entrar nela: {fromPos = {x=879, y=803, z=8}, toPos = {x=1079, y=963, z=15}, sound = "FF VII - Main.ogg"} Então, o frompos = da posição, topos = para a posição, ou seja, frompos vai ser onde começa e topos termina. Sound = "FF VII - Main.ogg", o que está entre aspas é o nome da musica que se encontra na pasta music, lembrando que tem que colocar o .ogg Créditos xS0NYx Shawak 3 1 Skytron, BahamutxD2, LordBelkil and 1 other reacted to this Share this post Link to post
vHp 6 #2 Posted July 22, 2013 Muito bom parabéns! Só funciona para formato OGG? Sabe por que? REP+ Share this post Link to post
xS0NYx 15 #3 Posted July 22, 2013 Muito bom parabéns! Só funciona para formato OGG? Sabe por que? REP+ Pelo que vi, é padrão do OTC, acho que pra trocar precisaria mexer nas sources dele.. Share this post Link to post
Eratsu 37 #4 Posted July 22, 2013 Acho que é pq ogg é uma extensão simples e funcional em todos os s.o, diferente do mp3 q precisa de uma lib especial para ela. por isso o otc foi feito com certas engines para que funcionasse/compilasse perfeitamente tanto no windows quanto no linux e mac. Share this post Link to post
xS0NYx 15 #5 Posted July 22, 2013 Acho que é pq ogg é uma extensão simples e funcional em todos os s.o, diferente do mp3 q precisa de uma lib especial para ela.por isso o otc foi feito com certas engines para que funcionasse/compilasse perfeitamente tanto no windows quanto no linux e mac. Não sabia disso, nem sabia que .ogg existia, se eu não vejo no OTC não veria nunca haha Share this post Link to post
vyctor17 35 #6 Posted July 22, 2013 da pra fazer tocar todas as extensoes é ate bem simples só precisa da dll mesmo. Share this post Link to post
xS0NYx 15 #7 Posted July 22, 2013 da pra fazer tocar todas as extensoes é ate bem simples só precisa da dll mesmo. É, como disse, é porque é o padrão do OTC não é? Share this post Link to post
henriqueberr 0 #8 Posted July 22, 2013 nada que um simples conversor não resolva, excelente module, vou fazer algumas modificações de usa-lo, abraços. Share this post Link to post
xS0NYx 15 #9 Posted July 22, 2013 nada que um simples conversor não resolva, excelente module, vou fazer algumas modificações de usa-lo, abraços. Sim, o que eu uso aqui é o "OGG Converter", verei se pode colocar o link no post pra baixarem.. Share this post Link to post
vyctor17 35 #10 Posted July 22, 2013 (edited) É, como disse, é porque é o padrão do OTC não é? o 'OTC' só roda '.ogg' como padrão de áudio mas vc pode usar a 'lib' do 'irrKlang' pra rodar outras formas de mídia eu fiz um 'mod' que eu chamei de 'advanced sound' com essa 'lib' ele suporta som '3D' e todos os tipos de mídia. http://www.youtube.com/watch?edit=vd&v=qgn39MXFNhI os sons do vídeo são do 'cs 1.6' todos em formato original '.wav'. Edited July 22, 2013 by vyctor17 Share this post Link to post
xS0NYx 15 #11 Posted July 22, 2013 o 'OTC' só roda '.ogg' como padrão de áudio mas vc pode usar a 'lib' do 'irrKlang' pra rodar outras formas de mídia eu fiz um 'mod' que eu chamei de 'advanced sound' com essa 'lib' ele suporta som '3D' e todos os tipos de mídia. os sons do vídeo são do 'cs 1.6' todos em formato original '.wav'. Interessante, e esse projeto é seu ? haha que show Share this post Link to post
vyctor17 35 #12 Posted July 23, 2013 Interessante, e esse projeto é seu ? haha que show é sim, eu brinco um pouco com esse ot, é bom pra aprender as funções do otclient. Share this post Link to post
Zazeros 0 #13 Posted April 19, 2016 ai amigo, quando uso esse mod e entro no jogo, fica o som da tela de login do client pra sempre, ela não some como deveria. Todos os tutoriais que vejo são iguais e esse não eh diferente.... Share this post Link to post