[Guia] Crear sistema de logros o títulos |
Musugas « Citoyen » 1410733320000
| 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)
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 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! |
0 | ||
genial me sirvió de mucho xd |
Anoniimouser « Citoyen » 1411907760000
| 0 | ||
Buen hilo, servirá de mucho. |
Neelfr « Consul » 1411912440000
| 0 | ||
Gran hilo musu :] Sirve mucho |
0 | ||
Bueno hilo |
Omaryesidxx 1412615520000
| | ||
[Modéré par Luyushi] |
Jdkdffedogifk « Citoyen » 1412820120000
| 0 | ||
Ahy perfil? |