Jump to content

-Rex-

Members
  • Posts

    206
  • Joined

  • Last visited

Everything posted by -Rex-

  1. Hola, a todos, He decidido liberar mi sistema de guardado de tiendas y vehiculos para tu DayZ, Este funciona a través de una base de datos SQLite. ¿Como lo uso? Pues simple al iniciar el recurso este restaura todas las Tiendas y Autos que se hayan guardado, Pero para guardar las tiendas y vehiculos solo basta con parar el recurso y este comenzara a guardar Todas las Tiendas y Vehiculos de tu servidor ( Destruye cada tienda y auto que va guardando ) en la base de datos y esto Dara solo unos segundos de network trouble.. En pocas palabras, Al iniciar el recurso restaura lo que se haya guardado y al parar el recurso guarda las tiendas y vehiculos. ¿Lo puedo Editar? Claro, Pero no remover los creditos. ¿Necesita permisos ACL? No necesariamente, Solo necesitaria permisos ACL si la base de datos esta en una carpeta externa. Debes agregar en el meta esto, Por que hay algunas funciones que usan OOP. true Aquí el codigo --///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// --Proyecto: N/A. // --Desarrolladores: -Rex- // --Testers: "N/A". // / --Informacion: Sistema de guardado de Tiendas y Vehiculos para tu DayZ A través de una base de datos SQLite. --Version: 1.0 BETA // --Derechos: Tu tienes derecho a editar 100% el codigo, Pero NO tienes derecho a vender o quitar los creditos del mismo, Sin permisos del autor. // --///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// local inventoryItems = { --Aqui pegas la tabla del inventory.lua {"AK-74", 3}, {"AKM", 3}, {"AKS-74 Kobra", 3}, {"PKP", 3 }, {"PKM", 3 }, {"L85A2 Holo", 3}, {"L85A2 SUSAT", 3}, {"M16A2", 3}, {"M16A2 M203", 3}, {"M16A4 ACOG", 3}, {"M4A1", 3}, {"M4A1 CCO", 3}, {"M4A1 CCO SD", 3}, {"M4A1 Holo", 3}, {"M4A3 CCO", 3}, {"SA-58 CCO", 3}, {"SA-58P", 3}, {"SA-58V", 3}, {"SA-58V ACOG", 3}, {"M240", 3}, {"MAX_Slots"}, } --El directorio de tu base de datos ( Usa SQLitebrowser para crear una ) local db = dbConnect( "sqlite", ":sqlitedb/dbData.db" ) local cache = {} local objeto = {} local vehis = {} local actual = 0 local totaltents = 0 local totalveh = 0 function onStart( ) local qh = db:query( "CREATE TABLE IF NOT EXISTS tents_backups ( tent_n INTEGER, dato STRING, cantidad INTEGER, posx FLOAT, posy FLOAT, posz FLOAT ) ") local qh2 = db:query( "CREATE TABLE IF NOT EXISTS vehiculos_backups ( modelo INTEGER, maxslots INTEGER, fuel INTEGER, maxfuel INTEGER, ruedas INTEGER, motor INTEGER, deposito INTEGER, posx FLOAT, posy FLOAT, posz FLOAT, rotx FLOAT, roty FLOAT, rotz FLOAT ) ") dbFree( qh ) dbFree( qh2 ) outputServerLog( "Se restauro los datos del servidor") outputChatBox("Atencion! Se esta Restaurando todos los datos del servidor, Por favor no desconectarse!",getRootElement( )) local qee = db:query("SELECT tent_n, posx, posy, posz FROM tents_backups") for ide, valor in pairs( dbPoll( qee, -1 ) ) do if actual ~= valor["tent_n"] then actual = valor["tent_n"] totaltents = totaltents +1 local x, y, z = valor["posx"], valor["posy"], valor["posz"]; objeto.tent = createObject(3243, x,y,z) setObjectScale(objeto.tent,1) objeto.tentCol = createColSphere(x,y,z,10) attachElements ( objeto.tentCol, objeto.tent, 0, 0, 0 ) setElementData(objeto.tentCol,"parent",objeto.tent) setElementData(objeto.tent,"parent",objeto.tentCol) setElementData(objeto.tentCol,"tent",true) setElementData(objeto.tentCol,"vehicle",true) setElementData(objeto.tentCol, "MAX_Slots", 100) local qeee = db:query("SELECT dato, cantidad FROM tents_backups WHERE tent_n=?", valor["tent_n"] ) for _, v in pairs( dbPoll( qeee, -1 ) ) do setElementData(objeto.tentCol, v["dato"], tonumber( v["cantidad"] ) ) end end end local qhj = db:query( "SELECT * FROM vehiculos_backups") local vehiclesTable = dbPoll( qhj, -1 ) for t, columna in ipairs( vehiclesTable ) do totalveh = totalveh + 1 local modelo, maxsl, fuel, maxfue = columna["modelo"],columna["maxslots"],columna["fuel"],columna["maxfuel"]; local rueda, motor = columna["ruedas"], columna["motor"] local deposito, vehx = columna["deposito"],columna["posx"] local vehy, vehz, vehrx = columna["posy"],columna["posz"],columna["rotx"]; local vehry, vehrz = columna["roty"],columna["rotz"]; vehis.vehic = createVehicle( modelo, vehx, vehy, vehz ) setElementRotation( vehis.vehic, vehrx, vehry, vehrz ) vehis.colS = createColSphere( vehx, vehy, vehz, 4 ) attachElements ( vehis.colS, vehis.vehic, 0, 0, 0 ) setElementData(vehis.colS,"parent",vehis.vehic) setElementData(vehis.vehic,"parent",vehis.colS) setElementData(vehis.colS,"vehicle",true) setElementData(vehis.colS,"MAX_Slots",maxsl) setElementData(vehis.colS,"maxfuel",maxfue) setElementData(vehis.colS,"Tire_inVehicle",rueda) setElementData(vehis.colS,"Engine_inVehicle",motor) setElementData(vehis.colS,"Parts_inVehicle",deposito) setElementData(vehis.colS,"fuel",fuel) end outputChatBox("Se han restaurado "..totaltents.." Tiendas y "..tostring( totalveh ).." Vehiculos!") end addEventHandler("onResourceStart", getResourceRootElement( getThisResource()), onStart) local tentNum = 0 function startBackup( ) local qhr = db:query( "DROP TABLE tents_backups" ) dbFree( qhr ) local qhrE = db:query( "DROP TABLE vehiculos_backups" ) dbFree( qhrE ) local qh3 = db:query( "CREATE TABLE IF NOT EXISTS tents_backups ( tent_n INTEGER, dato STRING, cantidad INTEGER, posx FLOAT, posy FLOAT, posz FLOAT ) ") dbFree( qh3 ) local qh2 = db:query( "CREATE TABLE IF NOT EXISTS vehiculos_backups ( modelo INTEGER, maxslots INTEGER, fuel INTEGER, maxfuel INTEGER, ruedas INTEGER, motor INTEGER, deposito INTEGER, bateria INTEGER, rotor INTEGER, posx FLOAT, posy FLOAT, posz FLOAT, rotx FLOAT, roty FLOAT, rotz FLOAT ) ") dbFree( qh2 ) outputChatBox("Atencion! Se esta llevando a cabo una copia de seguridad del servidor, Por favor no desconectarse",getRootElement( )) --Guardado de tents En la base de datos for i, col in ipairs( getElementsByType("colshape") ) do if col:getData("tent") == true then local x,y,z = getElementPosition( col ) local ta = db:query("SELECT * FROM tents_backups WHERE posx=? AND posy=? AND posz=?", x,y,z ) if #dbPoll( ta, -1 ) == 0 then tentNum = tentNum + 1 db:exec("INSERT INTO tents_backups ( tent_n, dato, cantidad, posx, posy, posz ) VALUES ( ?, ?, ?, ?, ?, ? )", tentNum, "",1, x,y,z ) end for _, datot in ipairs( inventoryItems ) do local qh = db:query("SELECT * FROM tents_backups WHERE posx=? AND posy=? AND posz=?", x,y,z ) for _, columna in ipairs( dbPoll( qh, - 1 )) do local ntent = columna["tent_n"] if cache["tentguardada_"..tostring(ntent)] then if cache["tentguardada_"..tostring(ntent)] == true then break end end local itemD = datot[1]; local dat = col:getData( itemD ) or 0 if dat and dat >= 1 then local q = db:query("SELECT * FROM tents_backups WHERE dato=? AND tent_n=?", itemD, tentNum) local h = #dbPoll( q, -1 ) if h == 0 then db:exec("INSERT INTO tents_backups ( tent_n, dato, cantidad, posx, posy, posz ) VALUES ( ?, ?, ?, ?, ?,? )", ntent, itemD, dat, 0,0,0 ) end end end end destroyElement(getElementData(col,"parent")) destroyElement(col) cache["tentguardada_"..tostring(tentNum)] = true --Guardando la id de la tent en una variable logica, Se evita que se vuelva a repetir el loop end end --Vehiculos for _, vehiculo in ipairs( getElementsByType("vehicle") ) do local veh = getElementData( vehiculo,"parent" ) local modelID = getElementModel( vehiculo ) local vehx, vehy, vehz = getElementPosition( vehiculo) local rx, ry, rz = getElementRotation( vehiculo ) if getElementData( veh, "vehicle" ) then totalveh = totalveh + 1 local maxSl = getElementData( veh, "MAX_Slots" ) local maxFuel = getElementData( veh, "maxfuel" ) local fuel = getElementData( veh, "fuel" ) local ruedas = getElementData( veh, "Tire_inVehicle" ) local motor = getElementData( veh, "Engine_inVehicle" ) local deposito = getElementData( veh, "Parts_inVehicle" ) db:exec( "INSERT INTO vehiculos_backups ( modelo, maxslots, fuel, maxfuel, ruedas, motor, deposito, posx, posy, posz, rotx, roty, rotz ) VALUES ( ?, ?, ?,?,?, ?, ?, ?,?, ?, ?, ?, ? )", modelID, maxSl, fuel, maxFuel, ruedas, motor, deposito, vehx, vehy, vehz, rx, ry, rz) destroyElement( getElementData( veh,"parent" ) ) destroyElement( veh ) end end outputChatBox("Copia de seguridad Guardada!",getRootElement( )) end addEventHandler("onResourceStop", getResourceRootElement( getThisResource()), startBackup) Cualquier bug o error no dudes en avisarme.
  2. addCommandHandler ( "minutosencasino", function ( player ) --if isLoggedIn ( player ) then local minutos = getElementData ( player, "minutosCasino" ) outputChatBox ( "Llevas "..tonumber ( minutos ).." jugados en el casino.", player, 0, 255, 0 ) --end end ) setTimer ( function ( ) for k, player in ipairs ( getElementsByType ( 'player' ) ) do -- if isLoggedIn ( player ) then local minutosDentro = getElementData ( player, "minutosCasino" ) or 0 setElementData ( player, "minutosCasino", minutosDentro + 1 ) outputChatBox( tostring( type( minutosDentro) ) ) if tonumber ( minutosDentro ) >= 2 then outputChatBox ( "¡A LA PUTA CALLE!" ) end --end end end, 1000, 0 ) No se tu pero a mi me funciona, Checa esa funcion isLoggedIn por si sea la que te este fallando.
  3. Te movi algunas cosas pero, Verifica con el outputChatBox y checa si realmente esta contando los minutos como quieres.
  4. Just released an update today. *Created a GitHub repository. Link: https://github.com/mihayy5/mtadayz07 *Updated all bug's I know. *If you find others don't be shy, report the issue on GitHub. *Also updated the first topic. Greetings. I can contribute in gitHub to fix smalls bug?
  5. Explica como se puede hacer eso https://wiki.multitheftauto.com/wiki/DxDrawGifImage Pero y el sonido?
  6. Explica como se puede hacer eso
  7. Ya lo pude encontrar ( En mtaz se llama escada no escaleras ._. ) mtaz.wikiforum.net/t7632-new-sistema-de-subir-escada
  8. Es un sistema que con el map editor puedes ir agregando el objeto de una escalera ( Por defecto en MTA ya viene una ) si te acercas a la escalera y mantienes presionado W vas subiendo por ella y si aplastas S Bajas.
  9. Creo es fácil hacerlo, Te acercas a la escalera ( objeto ) y una animación al ped y setElementPosition. Pero el que ya esta hecho es uno que permite agregar las escaleras con el mapa editor.
  10. Cada una es de 256 x 256 px Tratare de borrar las repetidas e innecesarias. PD: Si tal vez esta es la única solución cierren el post.
  11. Alguien por favor podría pasarme ese sistema para el GM DayZ? PD: En mtaz no lo he encontrado.
  12. Prueba el ejemplo del fileDelete como te lo dije arriba. Si funciona de esa manera, Pero si el jugador vuelve a entrar tendrá que volver a descarga las imágenes que son un total de 21 mb, Si realmente no se puede hacer lo que quiero Tal vez tendré que usar fileDelete en las texturas principales.
  13. UP Imagenes del shader http://imgur.com/a/gBwun
  14. ¿Me podrias dar un ejemplo?
  15. ¿Como se puede hacer eso?
  16. Pero con eso el jugador cada vez que entre tendrá que descargar esas imágenes o no? En total son 21mb de imágenes
  17. Hola a todos, Actualmente estoy desarrollando un servidor DayZ y he estado creando texturas en photoshop y como el shader que uso, reemplaza las texturas con imagenes entonces queria saber si hay alguna forma de evitar que descargen las imagenes de las texturas para evitar que las roben.
  18. Hola a todos, Actualmente estoy desarrollando un servidor DayZ y he estado creando texturas en photoshop y como el shader que uso, reemplaza las texturas con imagenes entonces queria saber si hay alguna forma de evitar que descargen las imagenes de las texturas para evitar que las roben.
  19. -----Made by Alen141(ingame name:Jimboy)------ -----Special thanks to : Solidsnake14(ingame name:Castillo)----- -----Visit SAUR Utopia RPG, IP: 128.204.203.103:22003----- -----Feel free to edit script on your own----- -----Don't remove credits----- Cuando cambiara esta gente..
  20. No le recomiendo usar tablas, además eso no gasta recursos, y como es un top seguro solo lo que harás hacer una query que ordene los 30 primeros datos mayores de X columna, No se por que se complican por optimizar algo.
  21. Comparto con ustedes mi barra de mensajes Identica al del WarZ. Cualquier duda o bug avisame Dentro del recurso hay un archivo donde se indica como usar el recurso y sus funciones https://community.multitheftauto.com/in ... s&id=12780
  22. Esto tal vez te sira http://laradiomagica.orgfree.com/descar ... uccion.pdf
×
×
  • Create New...