UserToDelete Posted February 14, 2015 Share Posted February 14, 2015 (edited) Bueno, no hay mucho que explicar, esto es lo que intento hacer; Cuando un jugador se logea, el script comprueba la base de datos y dice si el jugador existe en la base de datos o no, si no existe, crea la fila, indicando el nombre de la cuenta y le establece el dinero en "0", Bien pues esto, si el jugador existiera, simplemente le estableceria su dinero como indica en el "else", la cuestion del error es; Puse unos outputChatBox para reconocer el tipo de error, y me encuentro con estos: [2015-02-14 12:47:58] [Output] : BOOL ERROR = userdata: 0200032A Este codigo lo suelta en chat, tanto si existo en la tabla como si no. El error debe de ser que no reconoce las cuentas o el dinero. No lo sé sinceramente, por eso estoy preguntando aqui Cobnclusion propia, (x = false) Returns a query handle unless the connection is incorrect, in which case it return false. Por cierto, no hay ningun error en debugscript Codigo de servidor: function saveSystem_setmoney (as, asd) playerAccount = getAccountName(asd) db = dbConnect("sqlite", "database.db") x = dbQuery(db, 'select * from save where Cuenta=?', playerAccount) xsg = dbPoll(x,-1) if not type(x) == "boolean" then for id, values in ipairs(xsg) do outputChatBox(tostring(values.Dinero).."|"..tostring(values.Cuenta), root, 255,255,0,true) if not type(values.Dinero) == "number" then dbExec(db,"insert into save values (?,?)", playerAccount, 0) outputChatBox("Tu cuenta ha sido registrada en la base de datos", source, 255,0,0,true) else vD = tonumber(values.Dinero) setPlayerMoney(source,vD) outputChatBox("Tu cuenta ha cargada desde la base de datos", source, 0,255,0,true) end end else outputChatBox("BOOL ERROR = "..tostring(x), root, 255,255,0,true) end end addEventHandler("onPlayerLogin", root, saveSystem_setmoney) Edited April 3, 2015 by Guest Link to comment
Tomas Posted February 14, 2015 Share Posted February 14, 2015 function saveSystem_setmoney (as, asd) playerAccount = getAccountName(asd) db = dbConnect("sqlite", "database.db") x = dbQuery(db, 'select * from save where Cuenta=?', playerAccount) xsg = dbPoll(x,-1) if x then for id, values in ipairs(xsg) do outputChatBox(tostring(values.Dinero).."|"..tostring(values.Cuenta), root, 255,255,0,true) if not type(values.Dinero) == "number" then dbExec(db,"insert into save values (?,?)", playerAccount, 0) outputChatBox("Tu cuenta ha sido registrada en la base de datos", source, 255,0,0,true) else vD = tonumber(values.Dinero) setPlayerMoney(source,vD) outputChatBox("Tu cuenta ha cargada desde la base de datos", source, 0,255,0,true) end end else outputChatBox("BOOL ERROR = "..tostring(x), root, 255,255,0,true) end end addEventHandler("onPlayerLogin", root, saveSystem_setmoney) Intenta con eso, de todos modos no te recomiendo conectar la base de datos cada vez que alguien se conecta, colócalo afuera de la función y se conectará cuando el recurso se inicie, ahorrarás mucha CPU. Link to comment
Recommended Posts