Posted By

clarkdevlin on 09/21/18


Tagged


Versions (?)

MTA Scripting - setAccountData Optimizado


 / Published in: Lua
 

Funciones útiles para aquellas personas que quieran guardar datos en data base mediante accountData

  1. Saludos gente mi nombre es ClarkDevlin y les traigo estas 2 pequeñas funciones utiles para aquellas
  2. personas que no sepan guardar cosas con accountData y para aquellas que les interese optimizar su
  3. codigo empecemos
  4.  
  5. --funcion para guardar
  6.  
  7. function setDatos(jugador,table)
  8. local cuenta = getPlayerAccount( jugador )-- obtenemos la cuenta del jugador...
  9. local json = toJSON(table)-- convertirnos nuestra respectiva tabla en una tabla JSON
  10. setAccountData( cuenta, 'Datos de '..getAccountName( cuenta ), json )--creamos nuestra accountdata le damos un nombre con el nombre de su cuenta e insertamos nuestra tabla json
  11. end -- cierre de funcion ..
  12.  
  13. --funcion para obtener
  14.  
  15. function getDatos(jugador)
  16. local cuenta = getPlayerAccount( jugador )-- obtenemos la cuenta del jugador...
  17. local accData = getAccountData(cuenta, 'Datos de '..getAccountName( cuenta ))-- extraemos nuestros datos guardados
  18. if accData then -- nos fijamos si hay datos
  19. local tabla = fromJSON( accData )--lo convertimos de json a tabla normal
  20. return tabla --retornamos nuestra tabla
  21. end
  22. return false -- en caso de que no retorne nada ... que mande un false
  23. end -- cierre de funcion ..
  24.  
  25. Ejemplo de como usar
  26.  
  27. addEventHandler( "onPlayerQuit", getRootElement(),
  28. function()
  29. local money = getPlayerMoney( source ) -- en este caso guardare dinero
  30. local x,y,z = getElementPosition( source ) -- y su position
  31. --cabe destacar que dentro de la tabla -> { } <- tienen que inserta clave y valor ejemplo .. clave=valor ..
  32. setDatos(source,{dinero=money, PosX=x, PosY=y, PosZ=z}) -- llamamos nuestra funcion util .. colocando nuestros respectivos argumentos
  33. -- con esto ya estaria guardado en su respectiva data base que seria el "internal"
  34. end
  35. )
  36.  
  37. addEventHandler( "onPlayerLogin", getRootElement(),
  38. function()
  39. local datos = getDatos(source) -- extraemos los datos
  40. if datos then -- verificamos si los estrajo los exito
  41. -- para extraer datos usaremos la clave que colocamos a cada valor ejemplo
  42. local x,y,z = datos.PosX, datos.PosY, datos.PosZ -- la variable de la funcion ... mas la clave que asignamos a cada valor
  43. if spawnPlayer( source, x,y,z ) then --verificamos si ya desovo en un lugar del mapa ...
  44. givePlayerMoney( source, datos.dinero ) -- le damos su respectivo dinero
  45. end
  46. else -- en caso de no tener ningun dato guardado y sea nuevo player entonces
  47. spawnPlayer( source, 0,0,4 ) -- lo desove en el medio del mapa
  48. givePlayerMoney( source, 2000 ) -- y le de 2000 de dinero
  49. end
  50. end
  51. )
  52.  
  53. Espero hayan entendido...

Report this snippet  

You need to login to post a comment.