UserToDelete Posted May 4, 2015 Share Posted May 4, 2015 (edited) El problema que tengo es que 'xmlLoadFile()' me devuelve false sin mucha razon logica. El problema es la linea 3, devuelve false (no da error, pero lo comprobe con tostring?) if not isGuestAccount(getPlayerAccount(source)) then local acc = getAccountName(getPlayerAccount(source)) local rootFile = xmlLoadFile("data/"..acc..".xml") Y el archivo existe, y si, tiene nodo y todo eso <rootNode> <0>false</0> <1>false</1> <2>false</2> <3>false</3> <4>false</4> <5>false</5> <6>false</6> <7>false</7> <8>false</8> <9>false</9> <10>false</10> <11>false</11> <12>false</12> <13>false</13> <14>false</14> <15>false</15> <16>false</16> <17>false</17> </rootNode> Edited May 6, 2015 by Guest Link to comment
Tomas Posted May 4, 2015 Share Posted May 4, 2015 xmlLoadFile te devuelve el nodo del archivo que estás leyendo, usar 'tostring' te devolverá false ya que los xmlnode no son elementos/strings/números, etc. Link to comment
MTA Team 0xCiBeR Posted May 4, 2015 MTA Team Share Posted May 4, 2015 · Hidden Hidden No se que estas tratando de lograr específicamente, pero por experiencia personal, y en especial si pensas tener muchos usuarios en tu servidor te recomiendo el uso de SQLite o MySQL. Como así también funciones de file ya que son mucho mas eficientes que XML. Link to comment
UserToDelete Posted May 5, 2015 Author Share Posted May 5, 2015 No se que estas tratando de lograr específicamente, pero por experiencia personal, y en especial si pensas tener muchos usuarios en tu servidor te recomiendo el uso de SQLite o MySQL. Como así también funciones de file ya que son mucho mas eficientes que XML. Intentare hacerlo con file, hare caso de esa eficiencia , probare por ese metodo. No lo hago por SQL(ite) porque andaria casi todo el rato haciendo query, asi que por eso lo puse por XML que ahora pasare a file, aver si no me da ese error que debe ser bug de MTA xmlLoadFile te devuelve el nodo del archivo que estás leyendo, usar 'tostring' te devolverá false ya que los xmlnode no son elementos/strings/números, etc. Entonces explica esto: if not isGuestAccount(getPlayerAccount(source)) then local acc = getAccountName(getPlayerAccount(source)) local rootFile = xmlLoadFile("data/"..acc..".xml") -- outputChatBox(tostring(rootFile).." "..acc, root) if rootFile then for k=0,17 do local c = xmlFindChild(rootFile, tostring(k), 0) [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:19: Bad argument @ 'xmlFindChild' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:20: Bad argument @ 'xmlNodeSetValue' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:22: Bad argument @ 'xmlSaveFile' [Expected xml-node at argument 1, got boolean] [2015-05-04 21:53:35] WARNING: trosnos_ropaCJ\server.lua:23: Bad argument @ 'xmlUnloadFile' [Expected xml-node at argument 1, got boolean] Es un error que en el pasado nunca me dio Link to comment
MTA Team 0xCiBeR Posted May 5, 2015 MTA Team Share Posted May 5, 2015 · Hidden Hidden Estas seguro que existe el archivo? Intenta cambiar el nombre de las variables y del nodo, quizás ese sea el problema. Link to comment
UserToDelete Posted May 5, 2015 Author Share Posted May 5, 2015 Estas seguro que existe el archivo? Intenta cambiar el nombre de las variables y del nodo, quizás ese sea el problema. Descubri una cosa, no son las variables (o eso creo), me explico Borre el archivo y ejecute el script, me creo el archivo y escribio dentro lo que tenia que escribir (Como si funcionara perfectamente), hasta aqui bien, pero al volver a ejecutarlo (con el archivo ya existente), me da esos errores. Esto es muy raro, mas que nada porque funciona exactamente de la misma forma en ambas situaciones Link to comment
UserToDelete Posted May 5, 2015 Author Share Posted May 5, 2015 Estas seguro que existe el archivo? Intenta cambiar el nombre de las variables y del nodo, quizás ese sea el problema. Descubri una cosa, no son las variables (o eso creo), me explico Borre el archivo y ejecute el script, me creo el archivo y escribio dentro lo que tenia que escribir (Como si funcionara perfectamente), hasta aqui bien, pero al volver a ejecutarlo (con el archivo ya existente), me da esos errores. Esto es muy raro, mas que nada porque funciona exactamente de la misma forma en ambas situaciones ---------------------------------------------------------------------------------------------- Un poco fuera de tema, mas bien otro error: server.lua:9: fileDelete; unable to delete file Me salta esto con el siguiente codigo: function r (source,_) acc = getAccountName(getPlayerAccount(source)) for id=0,17 do if not fileExists("data/"..acc.."/"..tostring(id)..".s") then fileCreate("data/"..acc.."/"..tostring(id)..".s") else fileDelete("data/"..acc.."/"..tostring(id)..".s") fileCreate("data/"..acc.."/"..tostring(id)..".s") end r_file = fileOpen("data/"..acc.."/"..tostring(id)..".s") if r_file then fileWrite(r_file, "pero q lol") fileFlush(r_file) fileClose(r_file) end end end addCommandHandler("s", r) Puede ser error del servidor de MTA? Link to comment
MTA Team 0xCiBeR Posted May 6, 2015 MTA Team Share Posted May 6, 2015 · Hidden Hidden Eso no tiene sentido, ejecutas un loop borrando y creando archivos iguales. En algún punto estas intentando borrar algo que no existe. Al usar funciones de file, recorda leer los bytes ya escritos para no sobre-escribir el archivo. Link to comment
UserToDelete Posted May 6, 2015 Author Share Posted May 6, 2015 Eso no tiene sentido, ejecutas un loop borrando y creando archivos iguales. En algún punto estas intentando borrar algo que no existe.Al usar funciones de file, recorda leer los bytes ya escritos para no sobre-escribir el archivo. Vale vale, listo, error resuelto, y usando file functions! Link to comment
Recommended Posts