Melhorias

master
BrunoMine 2018-07-15 15:29:50 -03:00
parent 35d66cf155
commit 462dfb2381
12 changed files with 142 additions and 10 deletions

20
api.lua
View File

@ -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)

View File

@ -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")

55
ligas.lua Normal file
View File

@ -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
}

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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,

20
shop.lua Normal file
View File

@ -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

BIN
textures/xpro_liga_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
textures/xpro_xp_bar.png Normal file

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