×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • Guías y Tutoriales
  • /
  • [Tutorial] Guardar estadísticas y sistema de perfiles
[Tutorial] Guardar estadísticas y sistema de perfiles
Eliaseeg
« Citoyen »
1392592380000
    • Eliaseeg#0000
    • Profil
    • Derniers messages
#1
  0
Este tema ha sido reconstruido con la finalidad de ayudar a entender a usuarios nuevos sobre cómo hacer un sistema simple de datos para la sala (Ojo, sólo para la sala). Los datos son para cada jugador, es decir:

Yo conseguí 10 quesos, Thetroz consiguió otros 15 y Haku consiguió 100, siempre seguiré teniendo 10 ya que como he dicho más atrás se guardan para cada nombre de jugador.

Primero iniciamos con la tabla que guardará las estadísticas y la que usaremos para llamar a los datos, yo usaré "data". Ustedes pueden usar el que deseen (mice, player, players, etc).
a dit :

local data = {}

De ahí empezamos para que el nuevo jugador tenga su data ahí, intacta (esto sólo ocurre si el módulo no ha sido reiniciado y si ya tiene estadísticas)
a dit :

function eventNewPlayer(name)
if not data[name] then
data[name]={}
data[name].puntos = 0,
data[name].muertes = 0
end
end


Como veréis he añadido puntos y muertes, es decir estos se sumarán más adelante cuando personas ganen/mueran

Ahora añado el bucle for para que todos los jugadores que estén ahí tengan la nueva data.
a dit :

for name, player in pairs(tfm.get.room.playerList) do
eventNewPlayer(name)
end

Ahora vamos a añadir para que esas estadísticas aumenten por cada vez que morimos o ganamos (ya que está adecuado para lo que hemos hecho, que son puntos y muertes)
a dit :

function eventPlayerDied(name)
local dieds = data[name].muertes
dieds = dieds+1
print(name.." ha muerto, ahora tiene "..dieds.." muertes")
end

function eventPlayerWon(name)
local won = data[name].puntos
won = won+10
print(name.." ha conseguido un queso, ahora tiene "..won.." puntos")
end


Pues, como vemos he hecho la función acortando el data[name]. por algo más sencillo y que nos ayudará con códigos grandes.

Ahora vamos por el sistema de perfiles :D


Hacemos el chatCommand para ver el perfil de otra persona. Usaremos la siguiente plantilla:
a dit :

function eventChatCommand(name, command)
local args={}
for arg in command:gmatch("[^%s]+") do
table.insert(args,arg:lower())
end

Por ahora dejaremos esto así y nos concentraremos en otra cosa.

Haremos una nueva función a la que llamaremos "getProfile" para conseguir el perfil de dicha persona.
a dit :

function getPerfil(name,to)
ui.addTextArea(2,"<font size='13'><br><bl>• Puntos: <g>"..data[name].puntos.."<br><bl>• Muertes: <g>"..data[name].muertes.."",to,300,120,260,nil,0x324650,0x324650,nil,true)
ui.addTextArea(3,"<font size='17'><v>Perfil: <n>"..name.."",to,300,100,260,nil,0x1C3C41,0x1C3C41,nil,true)
ui.addTextArea(4,"",to,543,104,13,13,0x009D9D,0x009D9D,nil,true)
ui.addTextArea(5,"<font size='15' color='#1C3C41'><b><a href='event:cperfil'>X",to,542,99,nil,nil,"0","0",nil,true)
end

Y pues, esa función mostrará lo que llevamos hecho (Puntos, muertes). Tiene 2 argumentos, el primero es el nombre del perfil y el 2 es al que va.

Ahora vamos a editar el chatCommand y añadiremos esto:
a dit :

if args[1] == "stats" or args[1] == "s" or args[1] == "profile" or args[1] == "p" or args[1] == "perfil" then
getPerfil(args[2] or name, name)

Lo que hará es que al colocar "stats", "s", "profile", "p", "perfil" te mostrará el perfil.

Puedes añadirle lo que quieras, así para hacerlo más original y mucho más funcional. Si has seguido los pasos correctamente, te saldrá algo parecido a esto: Click!

Y con esto terminamos el tutorial, mucha suerte y disfruta!
Chicleeman
« Citoyen »
1392604140000
    • Chicleeman#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
:O Buen hilo. #Pole
Zutto
« Citoyen »
1392658380000
    • Zutto#4451
    • Profil
    • Derniers messages
    • Tribu
#3
  0
Muy buen tutorial! :D

mis dieces
Agustiiiiina
« Citoyen »
1399072980000
    • Agustiiiiina#0000
    • Profil
    • Derniers messages
#4
  0
Me encantó y me será de mucha ayuda! Y una pregunta, que no sé si alguien más se la habra echo, ¿se puede poner algo más además de quesos?
Eliaseeg
« Citoyen »
1399074900000
    • Eliaseeg#0000
    • Profil
    • Derniers messages
#5
  0
Eliaseeg a dit :
Obviamente pueden añadir ahí lo que quieran, por ejemplo: ["muertes"]="0" y con la función playerDied se va aumentando.


Por ejemplo, tienes todo el código, puedes a;adir [muertes]=0;

y más abajo

funcion eventPlayerDied(name)
data[name].muertes = data[name].muertes + 1
end

y así, puedes a;adir lo que quieras
Minstens
« Censeur »
1399109580000
    • Minstens#0000
    • Profil
    • Derniers messages
    • Tribu
#6
  0
Creo que esto me sera útil para crear juegos como Cookie Clicker.
Jdkdffedogifk
« Citoyen »
1399152240000
    • Jdkdffedogifk#0839
    • Profil
    • Derniers messages
#7
  0
Esta chido. Pero cuando lo uso y saco el Lua y lo vuelvo a poner empieza de 0 quesos de vuelta


Se puede corregir eso para que queden guardados ?
Eliasegg
« Citoyen »
1399152360000
    • Eliasegg#0000
    • Profil
    • Derniers messages
    • Tribu
#8
  0
No, no se puede :(

El porqué de eso es porque tig no nos deja usar saveData para casas de la tribu y pues, con saveData y loadData se podría guardar datos y cargarlos al mismo tiempo.
Jdkdffedogifk
« Citoyen »
1399153020000
    • Jdkdffedogifk#0839
    • Profil
    • Derniers messages
#9
  0
Como podemos hacer que nos deje ?
Eliasegg
« Citoyen »
1399153260000
    • Eliasegg#0000
    • Profil
    • Derniers messages
    • Tribu
#10
  0
Sebitacapoda a dit :
Como podemos hacer que nos deje ?

No creo que lo deje, pero si quieres perder el tiempo envía un mensaje al contacto de transformice:

http://transformice.com/contact
Jdkdffedogifk
1399153620000
    • Jdkdffedogifk#0839
    • Profil
    • Derniers messages
#11
[Modéré par Shyraa]
Eliaseeg
« Citoyen »
1402202580000
    • Eliaseeg#0000
    • Profil
    • Derniers messages
#12
  0
Tutorial actualizado, con una mejor gráfica en los perfiles y una nueva función para coger el nombre del perfil.

(tkm arit)
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • Guías y Tutoriales
  • /
  • [Tutorial] Guardar estadísticas y sistema de perfiles
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27