command reset; default values

master
A. Demant 2018-12-06 17:52:28 +01:00
parent c8aa6276b4
commit 05c0724041
4 changed files with 29 additions and 2 deletions

16
api.lua
View File

@ -67,12 +67,26 @@ M.register_experience=function(name,indata)
M.experiences[name]=tid
end
xpfw.player_reset_attributes(player)
for i,att_def in ipairs(xpfw.attributes) do
local setval=att_def.min or 0
if att_def.default ~= nil then
setval=att_def.default
end
player:set_attribute(xpfw.prefix.."_"..att_def.name,setval)
end
end
minetest.register_on_joinplayer(function(player)
local playername = player:get_player_name()
for i,att_def in ipairs(xpfw.attributes) do
if player:get_attribute(xpfw.prefix.."_"..att_def.name) == nil then
player:set_attribute(xpfw.prefix.."_"..att_def.name,att_def.min or 0)
local defval=att_def.min or 0
if att_def.default ~= nil then
defval=att_def.default
end
player:set_attribute(xpfw.prefix.."_"..att_def.name,defval)
end
end
if M.player[playername]==nil then

View File

@ -20,6 +20,17 @@ minetest.register_chatcommand("xpset", {
end
})
minetest.register_chatcommand("xpreset", {
privs = {
xpfwset = true
},
description = "Reset the statistics/experience for yourself",
func = function(name, param)
xpfw.player_reset_attribute(player)
minetest.chat_send_player(name, "All Attributs resetted")
end
})
minetest.register_chatcommand("xpfw", {
privs = {
server = true

View File

@ -14,8 +14,9 @@ xpfw.experience_max=minetest.settings:get("xpfw.experience_max") or 20
for i,attr in ipairs({"walked","distance","login","dug","build","deaths","spoke","killed_mobs","killed_player",
"lastlogin","logon"}) do
xpfw.register_attribute(attr,{min=0,max=math.huge})
xpfw.register_attribute(attr,{min=0,max=math.huge,default=0})
end
xpfw.register_attribute("meanlight",{min=0,max=default.LIGHT_MAX,
moving_average_factor=minetest.settings:get("xpfw.light_mean_weight") or 500
default=math.min(default.LIGHT_MAX,minetest.settings:get("xpfw.default")) or 11
})

View File

@ -1,4 +1,5 @@
xpfw.prefix (Prefix for variable name) string "xp"
xpfw.light_mean_weight (Weight factor for light value) int 5000 1 10000
xpfw.light_mean_default (Weight factor for light value) int 11 0 14
xpfw.mean_weight (Weight factor for calculating mean value) int 5000 1 10000
xpfw.experience_max (Normal max value for experiences) int 20 10 100