inital upload
parent
1d9aa2e793
commit
282ed5307f
|
@ -0,0 +1,6 @@
|
|||
default
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
xp = {}
|
||||
|
||||
xp.values = {}
|
||||
|
||||
dofile(minetest.get_modpath("xp").."/values.lua")
|
||||
|
||||
xp.level = {}
|
||||
xp.xp = {}
|
||||
xp.huds = {}
|
||||
local mod_storage = minetest.get_mod_storage()
|
||||
local blue = minetest.get_color_escape_sequence("#0000ff")
|
||||
|
||||
function xp.add_xp(player,XP)
|
||||
local name = player:get_player_name()
|
||||
XP = xp.xp[name]+XP
|
||||
local level = xp.level[name]
|
||||
if (math.floor(1.15^level)+100-XP)<1 then
|
||||
XP = XP-(math.floor(1.15^level)+100)
|
||||
level = level+1
|
||||
xp.level[name] = level
|
||||
mod_storage:set_int(name.."_level",level)
|
||||
player:set_nametag_attributes({text = name.."\n"..blue..level})
|
||||
end
|
||||
xp.xp[name] = XP
|
||||
mod_storage:set_int(name.."_xp",XP)
|
||||
xp.update_hud(player,level,XP)
|
||||
end
|
||||
|
||||
function xp.update_hud(player,level,XP)
|
||||
local name = player:get_player_name()
|
||||
if xp.huds[name] then
|
||||
player:hud_change(xp.huds[name],"text","Level: "..level.."\nXP: "..XP.."\nXP needed: "..(math.floor(1.15^level)+100-XP))
|
||||
else
|
||||
xp.huds[name] = player:hud_add({
|
||||
hud_elem_type = "text",
|
||||
position = {x = 0, y = 0.5},
|
||||
offset = {x = 10, y = 0},
|
||||
scale = {x = 100, y = 100},
|
||||
text = "Level: "..level.."\nXP: "..XP.."\nXP needed: "..(math.floor(1.15^level)+100-XP),
|
||||
number = 0xFFFFFF,
|
||||
alignment = {x = 1, y = 0.5},
|
||||
direction = 2,
|
||||
})
|
||||
minetest.chat_send_all("test")
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
minetest.chat_send_all("test")
|
||||
local name = player:get_player_name()
|
||||
local level = mod_storage:get_int(name.."_level")
|
||||
local XP = mod_storage:get_int(name.."_xp")
|
||||
if level == 0 then
|
||||
level = 1
|
||||
mod_storage:set_int(name.."_level",level)
|
||||
end
|
||||
if XP == 0 then
|
||||
XP = 0
|
||||
mod_storage:set_int(name.."_xp",XP)
|
||||
end
|
||||
xp.level[name] = level
|
||||
xp.xp[name] = XP
|
||||
player:set_nametag_attributes({text = name.."\n"..blue..""..level})
|
||||
xp.update_hud(player,level,XP)
|
||||
end)
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
local name = player:get_player_name()
|
||||
xp.huds[name] = nil
|
||||
xp.level[name] = nil
|
||||
xp.xp[name] = nil
|
||||
end)
|
||||
|
||||
|
||||
minetest.register_on_dignode(function(pos, oldnode, digger)
|
||||
local XP = xp.values[oldnode.name]
|
||||
if XP then
|
||||
xp.add_xp(digger,XP)
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
minetest.register_chatcommand("getxp",{
|
||||
privs = {server = true},
|
||||
params = "<name>",
|
||||
description = "returns the xp level of a player",
|
||||
func = function(name, param)
|
||||
local level = mod_storage:get_int(param.."_level")
|
||||
local XP = mod_storage:get_int(param.."_xp")
|
||||
minetest.chat_send_player(name,"Level: "..level.."\nXP: "..XP.."\nXP needed: "..(math.floor(1.15^level)+100-XP))
|
||||
end,
|
||||
})
|
|
@ -0,0 +1,113 @@
|
|||
xp.values["default:dirt"] = 1
|
||||
xp.values["default:stone"] = 1
|
||||
xp.values["default:cobble"] = 1
|
||||
xp.values["default:stonebrick"] = 1
|
||||
xp.values["default:stone_block"] = 1
|
||||
xp.values["default:mossycobble"] = 1
|
||||
xp.values["default:desert_stone"] = 1
|
||||
xp.values["default:desert_cobble"] = 1
|
||||
xp.values["default:desert_stonebrick"] = 1
|
||||
xp.values["default:desert_stone_block"] = 1
|
||||
xp.values["default:sandstone"] = 1
|
||||
xp.values["default:sandstonebrick"] = 1
|
||||
xp.values["default:sandstone_block"] = 1
|
||||
xp.values["default:desert_sandstone"] = 1
|
||||
xp.values["default:desert_sandstone_brick"] = 1
|
||||
xp.values["default:desert_sandstone_block"] = 1
|
||||
xp.values["default:silver_sandstone"] = 1
|
||||
xp.values["default:silver_sandstone_brick"] = 1
|
||||
xp.values["default:silver_sandstone_block"] = 1
|
||||
xp.values["default:dirt"] = 1
|
||||
xp.values["default:dirt_with_grass"] = 1
|
||||
xp.values["default:dirt_with_grass_footsteps"] = 1
|
||||
xp.values["default:dirt_with_dry_grass"] = 1
|
||||
xp.values["default:dirt_with_snow"] = 1
|
||||
xp.values["default:dirt_with_rainforest_litter"] = 1
|
||||
xp.values["default:sand"] = 1
|
||||
xp.values["default:desert_sand"] = 1
|
||||
xp.values["default:silver_sand"] = 1
|
||||
xp.values["default:gravel"] = 1
|
||||
xp.values["default:clay"] = 1
|
||||
xp.values["default:snow"] = 1
|
||||
xp.values["default:snowblock"] = 1
|
||||
xp.values["default:ice"] = 1
|
||||
xp.values["default:obsidian"] = 1
|
||||
xp.values["default:obsidianbrick"] = 1
|
||||
xp.values["default:obsidian_block"] = 1
|
||||
xp.values["default:tree"] = 1
|
||||
xp.values["default:wood"] = 1
|
||||
xp.values["default:leaves"] = 1
|
||||
xp.values["default:sapling"] = 1
|
||||
xp.values["default:apple"] = 1
|
||||
xp.values["default:jungletree"] = 1
|
||||
xp.values["default:junglewood"] = 1
|
||||
xp.values["default:jungleleaves"] = 1
|
||||
xp.values["default:junglesapling"] = 1
|
||||
xp.values["default:pine_tree"] = 1
|
||||
xp.values["default:pine_wood"] = 1
|
||||
xp.values["default:pine_needles"] = 1
|
||||
xp.values["default:pine_sapling"] = 1
|
||||
xp.values["default:acacia_tree"] = 1
|
||||
xp.values["default:acacia_wood"] = 1
|
||||
xp.values["default:acacia_leaves"] = 1
|
||||
xp.values["default:acacia_sapling"] = 1
|
||||
xp.values["default:aspen_tree"] = 1
|
||||
xp.values["default:aspen_wood"] = 1
|
||||
xp.values["default:aspen_leaves"] = 1
|
||||
xp.values["default:aspen_sapling"] = 1
|
||||
xp.values["default:stone_with_coal"] = 1
|
||||
xp.values["default:coalblock"] = 1
|
||||
xp.values["default:stone_with_iron"] = 1
|
||||
xp.values["default:steelblock"] = 1
|
||||
xp.values["default:stone_with_copper"] = 1
|
||||
xp.values["default:copperblock"] = 1
|
||||
xp.values["default:stone_with_tin"] = 1
|
||||
xp.values["default:tinblock"] = 1
|
||||
xp.values["default:bronzeblock"] = 1
|
||||
xp.values["default:stone_with_gold"] = 1
|
||||
xp.values["default:goldblock"] = 1
|
||||
xp.values["default:stone_with_mese"] = 1
|
||||
xp.values["default:mese"] = 1
|
||||
xp.values["default:stone_with_diamond"] = 1
|
||||
xp.values["default:diamondblock"] = 1
|
||||
xp.values["default:cactus"] = 1
|
||||
xp.values["default:papyrus"] = 1
|
||||
xp.values["default:dry_shrub"] = 1
|
||||
xp.values["default:junglegrass"] = 1
|
||||
xp.values["default:grass_1"] = 1
|
||||
xp.values["default:grass_2"] = 1
|
||||
xp.values["default:grass_3"] = 1
|
||||
xp.values["default:grass_4"] = 1
|
||||
xp.values["default:grass_5"] = 1
|
||||
xp.values["default:dry_grass_1"] = 1
|
||||
xp.values["default:dry_grass_2"] = 1
|
||||
xp.values["default:dry_grass_3"] = 1
|
||||
xp.values["default:dry_grass_4"] = 1
|
||||
xp.values["default:dry_grass_5"] = 1
|
||||
xp.values["default:bush_stem"] = 1
|
||||
xp.values["default:bush_leaves"] = 1
|
||||
xp.values["default:bush_sapling"] = 1
|
||||
xp.values["default:acacia_bush_stem"] = 1
|
||||
xp.values["default:acacia_bush_leaves"] = 1
|
||||
xp.values["default:acacia_bush_sapling"] = 1
|
||||
xp.values["default:coral_brown"] = 1
|
||||
xp.values["default:coral_orange"] = 1
|
||||
xp.values["default:coral_skeleton"] = 1
|
||||
xp.values["default:chest"] = 1
|
||||
xp.values["default:chest_locked"] = 1
|
||||
xp.values["default:bookshelf"] = 1
|
||||
xp.values["default:sign_wall_wood"] = 1
|
||||
xp.values["default:sign_wall_steel"] = 1
|
||||
xp.values["default:ladder_wood"] = 1
|
||||
xp.values["default:ladder_steel"] = 1
|
||||
xp.values["default:fence_wood"] = 1
|
||||
xp.values["default:fence_acacia_wood"] = 1
|
||||
xp.values["default:fence_junglewood"] = 1
|
||||
xp.values["default:fence_pine_wood"] = 1
|
||||
xp.values["default:fence_aspen_wood"] = 1
|
||||
xp.values["default:glass"] = 1
|
||||
xp.values["default:obsidian_glass"] = 1
|
||||
xp.values["default:brick"] = 1
|
||||
xp.values["default:meselamp"] = 1
|
||||
xp.values["default:mese_post_light"] = 1
|
||||
|
Loading…
Reference in New Issue