Hola de nuevo =P,
Hoy me trae de nuevo el LP HM7. Pero esta vez por un error. Tengo el siguiente código:
math.randomseed(os.time()) mp3 = System.listDirectory("ms0:/MUSIC") num = {} num[1] = math.random(3, table.maxn(mp3)) num[2] = math.random(3, table.maxn(mp3)) num[3] = math.random(3, table.maxn(mp3)) num[4] = math.random(3, table.maxn(mp3)) [...] function check() if mp3[num[1]].directory then -- Linea n° 34 local tempDir = System.listDirectory(mp3[num[1]].name) mp3[num[1]] = math.random(3, table.maxn(tempDir)) check() end if mp3[num[2]].directory then -- Linea n° 39 local tempDir2 = System.listDirectory(mp3[num[2]].name) mp3[num[2]] = math.random(3, table.maxn(tempDir2)) check() end if mp3[num[3]].directory then -- Linea n° 44 local tempDir3 = System.listDirectory(mp3[num[3]].name) mp3[num[3]] = math.random(3, table.maxn(tempDir3)) check() end if mp3[num[4]].directory then -- Linea n° 49 local tempDir4 = System.listDirectory(mp3[num[4]].name) mp3[num[4]] = math.random(3, table.maxn(tempDir4)) check() end end [...] -- No les pongo todo el código porque es enorme y no creo que quieran pasarse la tarde leyendolo XD
Me manda el error " Script.lua:34: Attempt to index field '?' (A number value)".
Este es el script.lua y he marcado la linea 34.
Lo que se me hace raro es que se supone que mp3[num[1]].directory es booleana. Pero me dice que es numerica? Eso es lo que no entiendo...
Si necesitan algún trozo más de código, diganlo. No lo puse todo porque es bastante extenso...
Un saludo.
PD: También pasa en las lineas 39, 44 y 49...
Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.
No preguntes por MP, mejor pregunta aquí.
Error...
"Intento de indexación del campo '?' (un numero)"
Esto es... que no se encontró ese campo en la tabla mp3.
Primero vigila que los randoms que te devuelve sean números enteros, por si akaso.
Y cuando te pase añade más debug, por ejemplo:
if mp3 then
System.message("OK 1",1);
end
if num[1] then
System.message("OK "..num[1],1);
end
if mp3[num[1]] then
System.message("OK 2",1);
end
if mp3[num[1]].directory then
System.message("OK "..mp3[num[1]].directory,1);
end
Y de ahi ya buscas qué te produce el error.
Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es
Número con decimales no puede
Número con decimales no puede ser porque le implementé un math.floor para asegurarme.
Y de que no este en el rango del array mp3, tampoco. Ya que es math.floor(math.random(3, table.maxn(mp3))). Por eso. Ya he tratado de millones de formas y es imposible! XD.
Creo que dejaré esto para más adelante. Mientras seguiré con otras mejoras (Ya que si me quedo atascado con esta.... :S).
Un saludo y gracias Dev.
Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.
No preguntes por MP, mejor pregunta aquí.