JO

Audio Em Lua

Por joaohd, 12 de jul. de 2011 em Mods, funções e outros

script
5.0 (1)
7
2.1k
joaohdJ
12 de julho de 2011 às 07:26

É isso mesmo! Bom, muita gente não conhece o poder da linguagem lua e constantemente venho batendo nesta tecla para mostrar que pode-se fazer todo tipo de coisa com lua. Hoje venho mostrar a biblioteca ProteaAudio, que executa arquivos .ogg. Para tanto, fiz uma função que executa uma playlist, com a opção de randomizar a execução. Este script surgiu quando eu estava trabalhando na minha equipe para montar um servidor de pokemon com audio, daí as músicas serem de pokemon. Vamos ao script:

 

require("proAudioRt")

-- Função que cria uma playlist e a executa
function play(list, stack, rand, loop)
rand = rand or false
if not proAudio.create() then os.exit(1) end
	if stack == (#list+1) then
		if loop == false then
			proAudio.destroy()
			return false
		else
			stack = 1
		end
	end
		local nex = rand == true and list[math.random(#list)] or list[stack]
		local x = proAudio.sampleFromFile(nex)
		if x then proAudio.soundPlay(x) print("Now playing: ".. nex .. "[".. stack .. "/".. #list .."]") end
			while proAudio.soundActive() ~= 0 do
				proAudio.sleep(0.5)
			end
return play(list, stack+1, rand, loop)
end

-- Minha playlist
local c = {
[1] = "bgm-01.ogg",
[2] = "bgm-02.ogg",
[3] = "bgm-03.ogg",
[4] = "bgm-04.ogg",
[5] = "bgm-05.ogg",
[6] = "bgm-06.ogg",
[7] = "bgm-07.ogg",
[8] = "bgm-08.ogg",
[9] = "bgm-09.ogg",
[10] = "bgm-10.ogg",

}


-- Executa a playlist c, iniciando de 2 com randomização habilitada
play(c, 2, true)

 

Para executar, é necessária a biblioteca ProteaAudio e de preferência o Scite instalados.

 

Você pode também baixar o pacote com todos os arquivos (biblioteca ProteaAudio, função e músicas) aqui.

Removi a dll lua5.1 do pacote pois acusava virus. Caso forem executar, lembrem-se de adicioná-la à pasta dos arquivos.

 

flw

Editado Julho 12 por apocarai

meubkM
12 de julho de 2011 às 08:19

muito bom apocarai, sempre trazendo novidades...

 

só falta agora, colocar pra executar em ot : )

 

flw's, aguardando isso /\.

 

 

 

REP+

AdministradorA
12 de julho de 2011 às 13:26

Fala camarada,

 

fiquei curioso como imagina colocar isso para funcionar no ot já que tem que enviar

isso ao client do jogo, tem alguma idéia?

joaohdJ
12 de julho de 2011 às 15:23

Eu conheço dois modos de se fazer isto. Usando algum tipo de dll injection + tibiaapi ou entao um aplicativo que seria responsavel por executar a musica, iniciando junto ao cliente e monitorando alguma porta do pc esperando por pacotes enviados por um outro aplicativo que roda no servidor.

 

O melhor método é o primeiro, mas infelizmente não sei mexer com dll injection e/ou tibiaapi.

 

flw

AdministradorA
12 de julho de 2011 às 16:26

interessante camarada, um sistema desses para OT seria legal ... alguém

saberia fazer?

2 semanas depois...
Kuro o ShinigaK
22 de julho de 2011 às 14:04

Estou fazendo pelo primeiro método qe você disse apocarai jaja edito para ver se deu certo :D

gustavoMtekG
27 de julho de 2011 às 00:33

vamo vamo gente !!! Coloca esse projeto pra frente ai !! Muitos a espera dessa funçao !