Melhorias
parent
35d66cf155
commit
462dfb2381
20
api.lua
20
api.lua
|
@ -10,7 +10,7 @@
|
|||
]]
|
||||
|
||||
-- Niveis de acoordo com XP
|
||||
local tb_niveis = {
|
||||
xpro.niveis = {
|
||||
0, -- Nivel 1
|
||||
150, -- Nivel 2
|
||||
300, -- Nivel 3
|
||||
|
@ -28,7 +28,25 @@ local tb_niveis = {
|
|||
6000, -- Nivel 15
|
||||
6900, -- Nivel 16
|
||||
8000, -- Nivel 17
|
||||
9200, -- Nivel 18
|
||||
10500, -- Nivel 19
|
||||
11900, -- Nivel 20
|
||||
13400, -- Nivel 21
|
||||
15000, -- Nivel 22
|
||||
16700, -- Nivel 23
|
||||
18500, -- Nivel 24
|
||||
20400, -- Nivel 25
|
||||
22400, -- Nivel 26
|
||||
24500, -- Nivel 27
|
||||
26700, -- Nivel 28
|
||||
29000, -- Nivel 29
|
||||
31400, -- Nivel 30
|
||||
33900, -- Nivel 31
|
||||
36500, -- Nivel 32
|
||||
39200, -- Nivel 33
|
||||
42000, -- Nivel 34
|
||||
}
|
||||
local tb_niveis = xpro.niveis
|
||||
|
||||
-- Pegar nivel de acordo com XP
|
||||
local get_lvl = function(my_xp)
|
||||
|
|
1
init.lua
1
init.lua
|
@ -32,6 +32,7 @@ xpro.var = {}
|
|||
|
||||
-- API
|
||||
dofile(modpath.."/api.lua")
|
||||
dofile(modpath.."/ligas.lua")
|
||||
dofile(modpath.."/sfinv.lua")
|
||||
dofile(modpath.."/progresso.lua")
|
||||
dofile(modpath.."/ranking.lua")
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
--[[
|
||||
Mod Xpro para Minetest
|
||||
Copyright (C) 2018 BrunoMine (https://github.com/BrunoMine)
|
||||
|
||||
Recebeste uma cópia da GNU Lesser General
|
||||
Public License junto com esse software,
|
||||
se não, veja em <http://www.gnu.org/licenses/>.
|
||||
|
||||
Ligas dos Niveis
|
||||
]]
|
||||
|
||||
-- Tabela de Ligas
|
||||
xpro.ligas = {
|
||||
-- Liga Novato
|
||||
{img="[inventorycube{default_dirt.png{default_dirt.png{default_dirt.png", name="Novato I"}, -- Nivel 1
|
||||
{img="[inventorycube{default_grass.png{default_dirt.png&default_grass_side.png{default_dirt.png&default_grass_side.png", name="Novato II"}, -- Nivel 2
|
||||
{img="default_apple.png", name="Novato III"}, -- Nivel 3
|
||||
-- Liga Madeira
|
||||
{img="default_stick.png", name="Madeira I"}, -- Nivel 4
|
||||
{img="[inventorycube{default_wood.png{default_wood.png{default_wood.png", name="Madeira II"}, -- Nivel 5
|
||||
{img="[inventorycube{default_tree_top.png{default_tree.png{default_tree.png", name="Madeira III"}, -- Nivel 6
|
||||
{img="default_tool_woodshovel.png", name="Madeira IV"}, -- Nivel 7
|
||||
{img="default_tool_woodaxe.png", name="Madeira V"}, -- Nivel 8
|
||||
{img="default_tool_woodpick.png", name="Madeira VI"}, -- Nivel 9
|
||||
{img="default_tool_woodsword.png", name="Madeira VII"}, -- Nivel 10
|
||||
-- Liga Pedra
|
||||
{img="[inventorycube{default_cobble.png{default_cobble.png{default_cobble.png", name="Pedra I"}, -- Nivel 11
|
||||
{img="[inventorycube{default_stone.png{default_stone.png{default_stone.png", name="Pedra II"}, -- Nivel 12
|
||||
{img="default_tool_stoneshovel.png", name="Pedra III"}, -- Nivel 13
|
||||
{img="default_tool_stoneaxe.png", name="Pedra IV"}, -- Nivel 14
|
||||
{img="default_tool_stonepick.png", name="Pedra V"}, -- Nivel 15
|
||||
{img="default_tool_stonesword.png", name="Pedra VI"}, -- Nivel 16
|
||||
-- Liga Ferro
|
||||
{img="default_iron_lump.png", name="Ferro I"}, -- Nivel 17
|
||||
{img="default_steel_ingot.png", name="Ferro II"}, -- Nivel 18
|
||||
{img="default_tool_steelshovel.png", name="Ferro III"}, -- Nivel 19
|
||||
{img="default_tool_steelaxe.png", name="Ferro IV"}, -- Nivel 20
|
||||
{img="default_tool_steelpick.png", name="Ferro V"}, -- Nivel 21
|
||||
{img="default_tool_steelsword.png", name="Ferro VI"}, -- Nivel 22
|
||||
-- Liga Mese
|
||||
{img="default_mese_crystal_fragment.png", name="Mese I"}, -- Nivel 23
|
||||
{img="default_mese_crystal.png", name="Mese II"}, -- Nivel 24
|
||||
{img="default_tool_meseshovel.png", name="Mese III"}, -- Nivel 25
|
||||
{img="default_tool_meseaxe.png", name="Mese IV"}, -- Nivel 26
|
||||
{img="default_tool_mesepick.png", name="Mese V"}, -- Nivel 27
|
||||
{img="default_tool_mesesword.png", name="Mese VI"}, -- Nivel 28
|
||||
-- Liga Diamante
|
||||
{img="[inventorycube{default_stone.png&default_mineral_diamond.png{default_stone.png&default_mineral_diamond.png{default_stone.png&default_mineral_diamond.png", name="Diamante I"}, -- Nivel 29
|
||||
{img="default_diamond.png", name="Diamante II"}, -- Nivel 30
|
||||
{img="default_tool_diamondshovel.png", name="Diamante III"}, -- Nivel 31
|
||||
{img="default_tool_diamondaxe.png", name="Diamante IV"}, -- Nivel 32
|
||||
{img="default_tool_diamondpick.png", name="Diamante V"}, -- Nivel 33
|
||||
{img="default_tool_diamondsword.png", name="Diamante VI"}, -- Nivel 34
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
minetest.register_on_dignode(function(pos, oldnode, digger)
|
||||
|
||||
xpro.add_xp(digger:get_player_name(), 30)
|
||||
xpro.add_xp(digger:get_player_name(), 200)
|
||||
|
||||
end)
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing)
|
||||
|
||||
xpro.rem_xp(placer:get_player_name(), 30)
|
||||
xpro.rem_xp(placer:get_player_name(), 200)
|
||||
|
||||
end)
|
||||
|
||||
|
|
33
ranking.lua
33
ranking.lua
|
@ -19,8 +19,10 @@ xpro.ranking = {}
|
|||
|
||||
-- Atualizar ranking
|
||||
xpro.update_rank = function(name)
|
||||
local att_name = {}
|
||||
local rank = xpro.get_rank()
|
||||
local pontos = xpro.bd.pegar("jogador_"..name, "xp")
|
||||
local pontos = 0
|
||||
if xpro.bd.verif("jogador_"..name, "xp") == true then pontos = xpro.bd.pegar("jogador_"..name, "xp") end
|
||||
local m1 = {name=name,pontos=pontos}
|
||||
local m2 = {}
|
||||
for x=1, 10 do
|
||||
|
@ -53,6 +55,9 @@ xpro.update_rank = function(name)
|
|||
|
||||
-- Se o objeto atual for um recolocado
|
||||
else
|
||||
-- Marca para reclassificalos posteriormente
|
||||
table.insert(att_name, tostring(m1.name))
|
||||
|
||||
-- Se for o objeto novo que ja foi colocado
|
||||
if rank[tostring(x)].name == name then
|
||||
rank[tostring(x)].name = m1.name
|
||||
|
@ -76,8 +81,15 @@ xpro.update_rank = function(name)
|
|||
|
||||
end
|
||||
end
|
||||
|
||||
xpro.bd.salvar("ranking", "pontos", rank)
|
||||
xpro.ranking = minetest.deserialize(minetest.serialize(rank))
|
||||
|
||||
-- Recoloca os necessarios
|
||||
for _, n in ipairs(att_name) do
|
||||
xpro.update_rank(n)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
-- Certifica de que rank existe
|
||||
|
@ -102,18 +114,27 @@ xpro.ranking_formspec = ""
|
|||
|
||||
local update_formspec = function()
|
||||
|
||||
xpro.ranking_formspec = "size[7,6]"
|
||||
xpro.ranking_formspec = "size[7,7]"
|
||||
..default.gui_bg
|
||||
..default.gui_bg_img
|
||||
.."label[0.6,0.4;Pontos]"
|
||||
.."label[2.1,0.4;Jogador]"
|
||||
.."label[2.4,0.4;Jogador]"
|
||||
|
||||
-- Monta Ranking
|
||||
local rank = xpro.get_rank()
|
||||
for x=1, 10 do
|
||||
local w = (0.4+(0.5*x))
|
||||
local w = (0.4+(0.5*x))+(0.1*x)
|
||||
local liga = nil
|
||||
if xpro.bd.verif("jogador_"..rank[tostring(x)].name, "lvl") == true then liga = xpro.ligas[xpro.bd.pegar("jogador_"..rank[tostring(x)].name, "lvl")] end
|
||||
if liga ~= nil then
|
||||
liga = "image[1.75,"..(w*0.995-0.05)..";0.66,0.66;"..liga.img.."]"
|
||||
else
|
||||
liga = ""
|
||||
end
|
||||
xpro.ranking_formspec = xpro.ranking_formspec .."label[0.6,"..w..";"..rank[tostring(x)].pontos.."]"
|
||||
.."label[2.1,"..w..";"..rank[tostring(x)].name.."]"
|
||||
.."image[1.6,"..(w*0.995-0.05)..";1,0.66;xpro_liga_bg.png]"
|
||||
..liga
|
||||
.."label[2.4,"..w..";"..rank[tostring(x)].name.."]"
|
||||
end
|
||||
end
|
||||
update_formspec()
|
||||
|
@ -125,7 +146,7 @@ xpro.register_on_add_xp(function(name, xp_added)
|
|||
end)
|
||||
xpro.register_on_rem_xp(function(name, xp_removed)
|
||||
xpro.update_rank(name)
|
||||
update_formspec(name)
|
||||
update_formspec()
|
||||
end)
|
||||
|
||||
|
||||
|
|
19
sfinv.lua
19
sfinv.lua
|
@ -23,9 +23,26 @@ sfinv.register_page("xpro:info", {
|
|||
local my_xp = xpro.get_player_xp(name)
|
||||
local my_lvl = xpro.get_player_lvl(name)
|
||||
|
||||
-- Calcula progresso da barra
|
||||
local progresso = 1
|
||||
if xpro.niveis[my_lvl+1] ~= nil then
|
||||
local xp = xpro.niveis[my_lvl] - my_xp
|
||||
local xp_t = xpro.niveis[my_lvl] - xpro.niveis[my_lvl+1]
|
||||
progresso = xp/xp_t
|
||||
end
|
||||
|
||||
local formspec = "label[0,0;Nivel "..my_lvl.."]"
|
||||
.."label[0,0.5;Pontos: "..my_xp.."]"
|
||||
.."button[4,0;4,1;ranking;Ranking Global]"
|
||||
.."button[0,2.5;3,1;ranking;Ranking Global]"
|
||||
|
||||
-- Liga
|
||||
.."image[2.8,0.4;"..(1.3*5)..","..(1.3*3)..";xpro_liga_bg.png]"
|
||||
.."label[3,0;Liga "..xpro.ligas[my_lvl].name.."]"
|
||||
.."image[4.17,0.7;3.2,3.2;"..xpro.ligas[my_lvl].img.."]"
|
||||
|
||||
.."label[0,3.3;Progresso]"
|
||||
.."image[0,3.8;9.65,0.8;xpro_xp_bar_alfa.png^[lowpart:"..math.ceil(progresso*100)..":xpro_xp_bar.png^[transformR270]"
|
||||
.."image[0,3.8;9.65,0.8;xpro_xp_bar_grade.png]"
|
||||
|
||||
return sfinv.make_formspec(player, context, formspec, true)
|
||||
end,
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
--[[
|
||||
Mod Xpro para Minetest
|
||||
Copyright (C) 2018 BrunoMine (https://github.com/BrunoMine)
|
||||
|
||||
Recebeste uma cópia da GNU Lesser General
|
||||
Public License junto com esse software,
|
||||
se não, veja em <http://www.gnu.org/licenses/>.
|
||||
|
||||
Shopping de XP
|
||||
]]
|
||||
|
||||
local S = xpro.S
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 99 B |
Binary file not shown.
After Width: | Height: | Size: 338 B |
Loading…
Reference in New Issue