Jump to content

Anzo

Members
  • Posts

    276
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Anzo

  1. Seria bueno si cuando le des a 'play' o 'login' (desde el teléfono se ve muy borroso el video y no puedo ver bien que dice) se vaya quitando el panel y la imagen de atrás lentamente y no se quite de una. Por otro lado, muy bueno el panel, a mi me gusto.
  2. Anzo

    Error con SQLite

    Entonces, qué puedo hacer? , no entiendo por que da error y no sé como arreglarlo...
  3. Anzo

    Error con SQLite

    Lo sé, pero eso es lo que no entiendo, se supone que lo que paso Tomas tiene esto: dbExec(connects, "CREATE TABLE IF NOT EXISTS `position` (`table` TEXT)") No debería estar ya creada la tabla 'position' ?
  4. Anzo

    Error con SQLite

    Los errores están en estas dos lineas: dbExec(connects, "INSERT INTO `position` (`table`) VALUES(?)", toJSON(cache))--Linea 14 ERROR: dxExec failed; (1) no such table: position for _, v in ipairs(qh) do --Linea 21 ERROR: bad argument #1 to 'ipairs' (table expected, got userdata)
  5. Anzo

    Error con SQLite

    Ahora solo me da el error que dije antes (bad argument #1 to 'ipairs' (table expected, got userdata) el otro de 'no such table: position' ya no aparece, pero sigue sin funcionar.
  6. Anzo

    Error con SQLite

    Me daba error en un end y se lo quite, también me decía que el argumento 2 (db) de dbQuery estaba mal, así que le puse connects, en vez de db, pero me sigue saliendo el mismo error en las tablas, 'no such table: position', y después me da error en el for loop : bad argument #1 to 'ipairs' (table expected, got userdata) Así quedo: local connects = dbConnect ("sqlite", "file.db") dbExec(connects, "CREATE TABLE IF NOT EXISTS `position` (`table` TEXT)") cache = {} function saveP () for i,vp in ipairs(getElementsByType("object"), resourceRoot) do local modelid = getElementModel(vp) local x,y,z = getElementPosition (source) local rx,ry,rz = getElementPosition (source) cache[i] = {modelid, x, y, z, rx, ry, rz} end dbExec(connects, "INSERT INTO `position` (`table`) VALUES(?)", toJSON(cache)) end addEventHandler ("onResourceStop", getRootElement(), saveP) function loadP () dbQuery(function(qh) local result = dbPoll(qh, 0) for _, v in pairs(qh) do for _,vv in pairs(fromJSON(v)) do model, x, y, z, rx, ry, rz = unpack(vv) createObject(model, x, y, z, rx, ry, rz) end end end, connects, "SELECT * FROM `position`") dbExec(connects, "DROP TABLE IF EXISTS `position`") end addEventHandler ("onResourceStart", getRootElement(), loadP)
  7. Anzo

    Error con SQLite

    Blue... si no te molesta, podrías ayudarme a hacer para que se guarden los objetos al reiniciar el script? es que la verdad me cuesta entender esto del sqlite ._:, no entiendo mucho las funciones que usa y como usarlas...
  8. Anzo

    Error con SQLite

    Nunca entendí muy bien esto del sqlite, pensé que estaba bien eso pero parece que no. Entonces, seria así como tengo que hacer el update: dbQuery("UPDATE position WHERE 'x' =".. X) ?
  9. Anzo

    Error con SQLite

    Voy a probarlo más tarde, ahora no puedo usar la pc. Y no, no se estaban guardando en la db.
  10. Anzo

    Error con SQLite

    Como dije arriba, esa parte la saque de un post viejo que vi, y tenía 'soure', por alguna razón si pongo otra cosa no me sale el mensaje. Voy a probar con el método que dices a ver que tal. Esto es lo único que se me ocurrió: addEvent("useObjects",true) objs = {} function uselt(modelosID) if (modelosID) then local x, y, z = getElementPosition ( source ) local rx, ry, rz = getElementRotation ( source ) local matrix = (Matrix.create(x,y,z,rx,ry,rz)) local forward = (Matrix.getForward(matrix) * 2) local pos = (Matrix.getPosition(matrix) + forward) local dim = getElementDimension(source) local int = getElementInterior(source) allObjs = createObject(modelosID, pos) table.insert(objs,allObjs) setElementRotation(allObjs,x,y,z,"default",true) setElementDimension(allObjs,dim) setElementInterior(allObjs,int) -- end end addEventHandler("useObjects", root, uselt) function saveObject() for index, theObject in ipairs(objs) do createObject(objs) end end addEventHandler("onResourceStart", root, saveObject) Pero igual desaparecen los objetos.
  11. Anzo

    Error con SQLite

    Pues no sé que pasa, porque cuando reinicio el script desaparecen los objetos, verifica tu el script para ver si hay algo mal: -Server local connects = dbConnect ("sqlite", "file.db") addEvent("onSavePlayerData", true) addEvent("onLoadPlayerData", true) function saveIT( player ) for i,vp in ipairs(getElementsByType("object")) do local modelid = getElementModel(vp) local x,y,z = getElementPosition (player) local rx,ry,rz = getElementPosition (player) local pos = dbQuery (connects, "CREATE TABLE IF NOT EXISTS `position` (`modelid` int, `x` float, `y` float, `z` float,`rx` float,`ry` float, `rz` float)") local query = dbQuery ( connects, "SELECT * FROM position") local result = dbPoll (query, -1) if (#result == 0) or not result or type(result) ~= "table" then local q = dbQuery (connects, "INSERT INTO `position` VALUES (?, ?, ?)", modelid, x, y, z,rx,ry,rz) else local qq = dbQuery (connects, "UPDATE `position` SET `modelid`="..modelid.."`x`="..x..", `y`="..y..", `z`="..z.."`rx`="..rx.."`ry`="..ry.."`rz`="..rz) end end end addEventHandler("onSavePlayerData", root, saveIT) function loadP () local query = dbQuery ( connects, "SELECT * FROM `position`") local result = dbPoll (query, -1) for i,v in pairs (result) do createObject (tonumber(v.modelid), v.x, v.y, v.z,v.rx,v.ry,v.rz) outputChatBox ("Cargando objetos...", soure, 255, 255, 255) end end addEventHandler("onLoadPlayerData", root, loadP) -Client function triggerSave() if ( localPlayer == source ) then triggerServerEvent( "onSavePlayerData", localPlayer, localPlayer ) end end addEventHandler("onClientPlayerQuit", root, triggerSave) function triggerLoad() if ( localPlayer == source ) then triggerServerEvent( "onLoadPlayerData", localPlayer, localPlayer ) end end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), triggerLoad) Y esta es la parte cuando se crean los objetos: function uselt(modelosID) if (modelosID) then local x, y, z = getElementPosition ( source ) -- Obtengo la posicion del jugador local rx, ry, rz = getElementRotation ( source ) -- Obtengo la rotacion del jugador local matrix = (Matrix.create(x,y,z,rx,ry,rz))--Creo la matrix local forward = (Matrix.getForward(matrix) * 2) local pos = (Matrix.getPosition(matrix) + forward) local dim = getElementDimension(source) local int = getElementInterior(source) allObjs = createObject(modelosID, pos) setElementRotation(allObjs,x,y,z,"default",true) setElementDimension(allObjs,dim) setElementInterior(allObjs,int) end end addEventHandler("useObjects", root, uselt)
  12. Anzo

    Error con SQLite

    Una pregunta, si yo creo un objeto y me salgo del servidor se quedará ahí aunque no use sqlite? e_a Lo que me pasaste me sirve, pero yo quiero que se queden donde estaban cuando reinicie el script, esto es por si tengo que modificar algo después.
  13. Anzo

    Error con SQLite

    Ok, pero, lo que estoy haciendo es un decorador de interiores, obviamente si no le doy stop al script los objetos nunca se borraran, pero cómo puedo hacer para que los objetos se queden ahí aún así yo reinicie o apague el script? PD: Si pongo lo que me pasaste Simple, no me manda ningún error, pero yo quiero que se queden donde los puse para siempre. :v
  14. Anzo

    Error con SQLite

    Y cómo sería? no sé que cambiar para que deje de tirar errores en esas lineas. Se que es por eso pero no sé porque esta vacía ni como arreglarlo. Se supone que en realidad eso debería guardar la posición del jugador donde quedo la ultima vez al salir del servidor, yo solo intente hacer que guarde la posición de los objetos al apagar el script, pero no funciona.
  15. Ya intentaste descargando el freeroam de nuevo?
  16. Estoy intentando hacer que se guarden las posiciones de los objetos con sql, pero me dio este error y no sé por que será. (tampoco se que cambiarle para que funcione) Lo que debería hacer es guardar la posición de los objetos al apagar el script, y al iniciarlo que se creen de nuevo. Este es mi código: function uselt(modelosID) if (modelosID) then local x, y, z = getElementPosition ( source ) local rx, ry, rz = getElementRotation ( source ) local matrix = (Matrix.create(x,y,z,rx,ry,rz)) local forward = (Matrix.getForward(matrix) * 2) local pos = (Matrix.getPosition(matrix) + forward) local dim = getElementDimension(source) local int = getElementInterior(source) allObjs = createObject(modelosID, pos) setElementRotation(allObjs,x,y,z,"default",true) setElementDimension(allObjs,dim) setElementInterior(allObjs,int) end end addEventHandler("useObjects", root, uselt) local connects = dbConnect ("sqlite", "file.db") function saveP () for i,vp in ipairs(getElementsByType("object")) do local modelid = getElementModel(vp) local x,y,z = getElementPosition (source) local rx,ry,rz = getElementPosition (source) local pos = dbQuery (connects, "CREATE TABLE IF NOT EXISTS `position` (`modelid` int, `x` float, `y` float, `z` float,`rx` float,`ry` float, `rz` float)") local query = dbQuery ( connects, "SELECT * FROM position") local result = dbPoll (query, -1) if (#result == 0) or not result or type(result) ~= "table" then local q = dbQuery (connects, "INSERT INTO `position` VALUES (?, ?, ?)", modelid, x, y, z,rx,ry,rz) else local qq = dbQuery (connects, "UPDATE `position` SET `modelid`="..modelid.."`x`="..x..", `y`="..y..", `z`="..z.."`rx`="..rx.."`ry`="..ry.."`rz`="..rz) end end end addEventHandler ("onResourceStop", getRootElement(), saveP) function loadP () local query = dbQuery ( connects, "SELECT * FROM position") local result = dbPoll (query, -1) for i,v in pairs (result) do createObject (v.modelid, v.x, v.y, v.z,v.rx,v.ry,v.rz) outputChatBox ("Cargando objetos...", soure, 255, 255, 255) end end addEventHandler ("onResourceStart", getRootElement(), loadP) El error esta en esta linea: local result = dbPoll (query, -1) me dice: dbPoll failed; no such table: position y luego, me da error en la linea de abajo for i,v in pairs (result) do dice esto: bad argument #1 to 'pairs' (table expected, got boolean) Ojo, nunca he usado sqlite, esto lo pude hacer gracias a un post que vi, así que si hay muchos errores o algo sin sentido ya saben por que.
  17. Gracias por las cosas que pasaron. Bueno, que más, toca leer .
  18. Edit: Ya no hay problema, use Matrix y me funciono bien.
  19. Pero en server-side no devuelve nada, o si? Intente poniendo camerax, cameray, cameraz = getCameraMatrix(source) pero no hace nada, no se crea el objeto.
  20. ¿Qué funciones puedo usar para que un objeto se cree siempre a donde esta mirando el jugador? Tengo esto: function uselt(modelosID) if (modelosID) then local posX,posY,posZ = getElementPosition(source) local dim = getElementDimension(source) local int = getElementInterior(source) allObjs = createObject(tonumber(modelosID), posX,posY+2,posZ-2) setElementDimension(allObjs,dim) setElementInterior(allObjs,int) end end addEventHandler("useObjects", root, uselt) Pero eso no crea el objeto según donde estés mirando (se que no lo hará porque no he puesto para que lo haga, pero no sé que funciones usar para lograr esto). Sería mucho mejor si solo me dijeran que funciones tengo que usar.
  21. No pero, no le pase la parte del server-side para ver si lo podía hacer solo y entendió, de todas formas si no entendió le explicaría. De nada.
  22. Ya busque eso, pero no entendí mucho que digamos. Pondré la parte de un script que usa esos math para ver si alguien sabe y me puede explicar para que los uso . addEventHandler("onClientPedDamage", getRootElement(), function(attacker) -- attacker == getLocalPlayer() because setElementVelocity is synced with server if(attacker and attacked ~= source and attacker == getLocalPlayer())then local aPosX, aPosY, aPosZ = getElementPosition(attacker) local sPosX, sPosY, sPosZ = getElementPosition(source) local angle = math.atan2(aPosX - sPosX, aPosY - sPosY) - math.rad(90) local velX, velY, velZ = getElementVelocity(source) setElementVelocity(source, velX + power*-math.cos(angle), velY + power*math.sin(angle), velZ + powerUp) end end) Ese es un script que vi en un post, lo que hace es mandar a volar a un ped si lo golpeas, pero para qué uso math.rad ,math.atan2, y los otros math que están ahí? no era más fácil solo usar setElementVelocity(x,y+15,z+0.5)? ¿Sabes que es trigonometria? Esos math sirven para obtener funciones trigonometricas. No, no sé que es trigonometria. Creo que he escuchado esa palabra antes pero no le preste atención.
  23. Yo aprendí a hacer un nametag para los boss gracias al recurso del 'tank' que esta en la comunidad. Ahora lo puedo hacer sin mirar el script pero aún hay unas cositas que no entiendo . local Distancia = 30 --Desde que distancia se podrá ver el nametag function nametag() local bossa = getElementsByType("ped", getRootElement(),true) local MatriX,MatriY,MatriZ = getCameraMatrix()--Para obtener la posición de la camara for num, myBoss in ipairs(boossa) do local bossX,bossY,bossZ = getElementPosition(myBoss)--Obtenemos la posición del boss local BoneX,BoneY,BoneZ = getPedBonePosition(myBoss, -- s8) -->--Con getPedBonePosition si no mal recuerdo es para que el nametag salga en una parte del cuerpo, en este caso yo puse 8 que es la cabeza if (getDistanceBetweenPoints3D(MatriX,MatriY,MatriZ,BoneX,BoneY,BoneZ) < Distancia) then --Si MatriX,MatriY,MatriZ,BoneX,BoneY,BoneZ es menor a la distancia '30',entonces.. if (getElementData(myBoss) == true) then--Esto una data para verificar que es el boss al que se le vera el nametag (no estoy 100% seguro de esto, ya que hay algunas cosas que no entendí muy bien, ya que me centre primero en saber hacerlo sin ver el otro script) local scx,scy = getScreenFromWorldPosition(BoneX,BoneY,BoneZ)--Esto para que el nametag del boss se vea en 3D local maxHP = exports.extra_health:getElementExtraHealth(myBoss)--Para obtener la vida extra del boss local hp = getElementData(myBoss, "tuDataDeHp")--Tienes que poner un setElementData en server-side local name = getElementData(myBoss, "tuDataDelNombreDelBoss")--Tienes que poner un setElementData en server-side if (scx > getElementHealth(myBoss) > 0) then--Si la vida del boss es mayor a 0, apareceran los dx --aqui pones los dxRectangle y dxText end end end end end addEventHandler("onClientRender", root, nametag) Creo que así funcionaría bien. Recuerda que tienes que poner un setElementData en server-side con el nombre y la hp. También trata de entenderlo para luego poder hacerlo sin tener que ver el script o con ayuda de alguien.
  24. Ya busque eso, pero no entendí mucho que digamos. Pondré la parte de un script que usa esos math para ver si alguien sabe y me puede explicar para que los uso . addEventHandler("onClientPedDamage", getRootElement(), function(attacker) -- attacker == getLocalPlayer() because setElementVelocity is synced with server if(attacker and attacked ~= source and attacker == getLocalPlayer())then local aPosX, aPosY, aPosZ = getElementPosition(attacker) local sPosX, sPosY, sPosZ = getElementPosition(source) local angle = math.atan2(aPosX - sPosX, aPosY - sPosY) - math.rad(90) local velX, velY, velZ = getElementVelocity(source) setElementVelocity(source, velX + power*-math.cos(angle), velY + power*math.sin(angle), velZ + powerUp) end end) Ese es un script que vi en un post, lo que hace es mandar a volar a un ped si lo golpeas, pero para qué uso math.rad ,math.atan2, y los otros math que están ahí? no era más fácil solo usar setElementVelocity(x,y+15,z+0.5)?
  25. Para qué sirven estos math y para qué se pueden usar? math.atan2 math.rad math.cos No entiendo mucho el inglés (lo que dice en el manual de lua de math.atan,math.rad y math.cos, si entiendo lo que dice, pero aún no me queda claro en que momento usarlo ) así que si alguien sabe para que sirven y en que se podrían usar, sería de mucha ayuda si lo postean. Me entro curiosidad saber para que sirven por que las vi en un script y no entendí nada.
×
×
  • Create New...