2013-01-04 04:18:42 +01:00
|
|
|
--File Manipulating
|
2013-06-30 05:45:28 +02:00
|
|
|
specialties.writeXP = function(name)
|
|
|
|
local file = io.open(minetest.get_worldpath().."/"..name.."_XP", "w")
|
2013-07-02 00:58:49 +02:00
|
|
|
for skill,num in pairs(specialties.players[name].skills) do
|
|
|
|
file:write(skill.." "..tostring(num).."\n")
|
2013-06-30 05:45:28 +02:00
|
|
|
end
|
2013-01-04 04:18:42 +01:00
|
|
|
file:close()
|
|
|
|
end
|
2013-06-30 05:45:28 +02:00
|
|
|
specialties.readXP = function(name, specialty)
|
|
|
|
local file = io.open(minetest.get_worldpath().."/"..name.."_XP", "r")
|
2013-01-04 04:18:42 +01:00
|
|
|
if file == nil then
|
2013-06-30 05:45:28 +02:00
|
|
|
specialties.writeXP(name)
|
|
|
|
local empty = {}
|
|
|
|
for skill,_ in pairs(specialties.skills) do
|
|
|
|
empty[skill] = 0
|
|
|
|
end
|
|
|
|
return empty
|
|
|
|
end
|
|
|
|
local xp = {}
|
|
|
|
local line = file:read("*l")
|
|
|
|
while line ~= nil do
|
|
|
|
local params = line:split(" ")
|
|
|
|
xp[params[1]] = tonumber(params[2])
|
|
|
|
line = file:read("*l")
|
2013-01-04 04:18:42 +01:00
|
|
|
end
|
|
|
|
file:close()
|
|
|
|
return xp
|
|
|
|
end
|
|
|
|
|
|
|
|
--Table Modification
|
2013-06-30 05:45:28 +02:00
|
|
|
specialties.changeXP = function(name, specialty, amount)
|
2013-07-02 00:58:49 +02:00
|
|
|
local newAmount = specialties.players[name].skills[specialty]+amount
|
|
|
|
if newAmount >= 0 then
|
|
|
|
specialties.players[name].skills[specialty] = newAmount
|
|
|
|
local player = minetest.get_player_by_name(name)
|
|
|
|
local id = specialties.players[name].menu[specialty]
|
|
|
|
local hudItem = player:hud_get(id)
|
|
|
|
hudItem.text = tostring(newAmount)
|
|
|
|
hudItem.offset = {x=100, y=0}
|
|
|
|
hudItem.alignment = {x=1, y=0}
|
|
|
|
player:hud_remove(id)
|
|
|
|
specialties.players[name].menu[specialty] = player:hud_add(hudItem)
|
2013-01-04 04:18:42 +01:00
|
|
|
return true
|
|
|
|
else
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
end
|