×

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
  • /
  • [Guia] Crear sistema de logros o títulos
[Guia] Crear sistema de logros o títulos
Musugas
« Citoyen »
1410733320000
    • Musugas#0000
    • Profil
    • Derniers messages
    • Tribu
#1
  0
Hola, este es mi primer tutorial
En esta guia, explicare cómo añadir un sistema de logros o títulos, teniendo en cuenta el número de quesos obtenidos por un usuario.

Primero que todo, debemos crear una tabla que almacene los datos, para ello, me remito al tema de Eliaseeg Guardar estadística y sistema de perfiles, usaremos esta base como ejemplo para poder aplicar el sistema.

Paso 1: Crear un nuevo dato en las tablas
Para crear un sistema de títulos funcional, necesitaremos almacenar ciertos datos, los cuales nos permitirán obtener información de los títulos desbloqueados y así poder desbloquear, además de guardar el título y los títulos actuales de un usuario.

Para ello, buscamos la función eventNewPlayer, y agregamos lo siguiente:


    function eventNewPlayer(name)
    if not data[name] then

      data[name]={}
      data[name].puntos = 0
      data[name].muertes = 0
      data[name].title = 1
      data[name].titles = {1}

    end
    end


En esas dos tablas, almacenaremos los datos correspondientes al usuario. La tabla "title" nos permitirá guardar el título actual del usuario, y la tabla "titles" todos los títulos que este posee.

Paso 2: Crear el sistema de desbloqueo

Primero, debemos crear la tabla de títulos:

local titles = {"Noob","Pro","Divino"}

Debemos poner los títulos entre comillas (") y separarlos por una coma (,), ya que este tipo de datos son Strings (Texto). Si quieres agregar un título más, buscar la comilla final del ultimo titulo, pones una coma (,) y entre comillas (") agregar el título

local titles = {"Noob","Pro","Divino","Cool"}

Luego de esto, definiremos la manera de la cual ganaremos esos títulos, para ello, haremos una tabla con el número de wins (puede ser cualquier cosa) que se deberán tener para desbloquear un título.

local numerodewins = {1,2,3}

Debemos poner los numeros sin comillas y separarlos por una coma (,), ya que este tipo de datos son Ints (Numero). Si quieres agregar un valor más, buscar la comilla final del ultimo número, pones una coma (,) y escribes el valor sin comillas

Luego fabricaremos la función para desbloquear un título, Recuerda que este es un ejemplo, puedes modificarlo y adaptarlo a tu gusto.


    function desbloquearT(name)
      for i,ulo in ipairs(numerodewins) do
        if data[n].puntos==ulo then
          til = #data[n].titles + 1
          table.insert(data[n].titles, til)
          ui.addPopup(0, 0, "<VP>Has desbloqueado un nuevo título! <font color='#db186d'>"..titles[til].."</font> (<font color='#BABD2F'>!title "..til.."</font>)",n, 300, 175, nil)

        end
      end
    end



Aqui dice, que si el total de puntos es igual a los datos que guardamos en la tabla "numerodewins" son iguales, suma todos los datos que estan en la tabla del usuario llamada "titles" con 1, y manda a desbloquear el resultado, es decir

Numero de títulos desbloqueados + 1 = Siguiente título

3 Paso: Cambiar de títulos

Estamos finalizando, pero antes de eso, debemos hacer un pequeño sistema donde podamos cambiarnos el título.

Este podría ser asi:


    function changeTitle(change, playerName)

      if have(tonumber(change),data[playerName].titles) then

        data[playerName].title = tonumber(change)
        enviarM("<VP>Ahora tienes el título: <J>"..titles[tonumber(change)].." <VP>", playerName)
        else
        ui.addPopup(0, 0, "<n>No tienes ese título :(",playerName, 300, 175, nil)

      end

    end


Esta función permite conocer si el usuario tiene X titulo, si lo tiene, se le pondrá.

Para esto, saqué una función, que es "have", la cual es necesaria si usarás la base de arriba


function have(x,tabla)
for _,objetc in pairs(tabla) do
if objetc == x then return true end
end
return false
end


Y acá, hemos finalizado.

Podrás re-diseñar, cambiar, agregar, remover cosas de este script. Deberás añadir las funciones que acá se especifiquen en el lugar donde tú consideres.

Esto es solo un pasabocas, ¡Consigue más y experimenta!, así podrás hacer una función donde se muestren todos los títulos que tiene el usuario, todos los titulos y como desbloquearlos, ¡El cielo es el límite!

Aquí está el script completo, donde puedes observar todo lo explicado aquí:

!title n° Para cambiarte el título

http://pastebin.com/814ADV5F

¡Muchas gracias por leer! Estaré cambiando el BBcode.

¿Tienes dudas, comentarios, sugerencias? Comentalas!
Yoab
« Citoyen »
1410733380000
    • Yoab#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
genial me sirvió de mucho xd
Anoniimouser
« Citoyen »
1411907760000
    • Anoniimouser#0000
    • Profil
    • Derniers messages
    • Tribu
#3
  0
Buen hilo, servirá de mucho.
Neelfr
« Consul »
1411912440000
    • Neelfr#0000
    • Profil
    • Derniers messages
#4
  0
Gran hilo musu :]
Sirve mucho
Thony
« Citoyen »
1412189580000
    • Thony#9396
    • Profil
    • Derniers messages
    • Tribu
#5
  0
Bueno hilo
Omaryesidxx
1412615520000
    • Omaryesidxx#0000
    • Profil
    • Derniers messages
    • Tribu
#6
[Modéré par Luyushi]
Jdkdffedogifk
« Citoyen »
1412820120000
    • Jdkdffedogifk#0839
    • Profil
    • Derniers messages
#7
  0
Ahy perfil?
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • Guías y Tutoriales
  • /
  • [Guia] Crear sistema de logros o títulos
© Atelier801 2018

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

Version 1.27