added skills page to the players inventory
This commit is contained in:
parent
291d23743d
commit
8378451406
@ -81,6 +81,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
if not(default.player_inventory.tabs[default.player_inventory.contexts[name].tab]) then return end
|
||||
if not(default.player_inventory.tabs[default.player_inventory.contexts[name].tab]).on_event then return end
|
||||
default.player_inventory.tabs[default.player_inventory.contexts[name].tab].on_event(player, fields)
|
||||
default.player_inventory.update(player)
|
||||
end
|
||||
end)
|
||||
|
||||
|
@ -28,6 +28,25 @@ function skills.get_text(name)
|
||||
return str
|
||||
end
|
||||
|
||||
function skills.level_up(name, text)
|
||||
if not(skills.lvls[name][text]) then
|
||||
return false
|
||||
end
|
||||
|
||||
local count = 0
|
||||
for s,l in pairs(skills.lvls[name]) do
|
||||
count = count + (l-1)
|
||||
end
|
||||
if xp.player_levels[name] > count then
|
||||
skills.lvls[name][text] = skills.lvls[name][text] + 1
|
||||
skills.save_skills()
|
||||
cmsg.push_message_player(minetest.get_player_by_name(name), "[skills] " .. skills.get_text(name))
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
function skills.register_weapon(name, fromLevel, levels, def)
|
||||
if not def.damage then
|
||||
if def.damage_m and def.damage_d then
|
||||
@ -144,6 +163,38 @@ function skills.save_skills()
|
||||
end
|
||||
end
|
||||
|
||||
default.player_inventory.register_tab({
|
||||
name = "Skills",
|
||||
type = "function",
|
||||
get_formspec = function(name)
|
||||
local text = minetest.formspec_escape("If you level up your skills, you will be able\nto use better tools or weapons.")
|
||||
text = text .. "\n"
|
||||
|
||||
local formspec = "size[8,7.5;]" ..
|
||||
default.gui_colors ..
|
||||
default.gui_bg ..
|
||||
"label[0,0;Skills:]"..
|
||||
"label[2.5,0;"..text.."]"
|
||||
|
||||
|
||||
local i = 0
|
||||
for skill_name, skill_level in pairs(skills.lvls[name]) do
|
||||
formspec = formspec .. "button[0,"..tostring(i+0.5)..";2,1;" .. skill_name .. ";" .. skill_name .. " : " .. tostring(skill_level) .. "]"
|
||||
i = i +1
|
||||
end
|
||||
|
||||
return formspec
|
||||
end,
|
||||
on_event = function(player, fields)
|
||||
local name = player:get_player_name()
|
||||
for n,v in pairs(fields) do
|
||||
if v then
|
||||
skills.level_up(name, n)
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- cmd
|
||||
|
||||
minetest.register_chatcommand("skill", {
|
||||
|
Loading…
x
Reference in New Issue
Block a user