From a48f00919276b970bd1f7da8d8d305cc97f7cd28 Mon Sep 17 00:00:00 2001 From: Yawin Date: Wed, 1 Feb 2017 01:25:59 +0100 Subject: [PATCH] =?UTF-8?q?Bugfix:=20Si=20hac=C3=ADas=20dos=20runas=20de?= =?UTF-8?q?=20"sethome",=20la=20segunda=20sobreescrib=C3=ADa=20los=20datos?= =?UTF-8?q?=20de=20"sethome";=20pero=20al=20romper=20la=20primera,=20?= =?UTF-8?q?=C3=A9sta=20borraba=20los=20datos=20de=20"sethome":=20=09-=20Se?= =?UTF-8?q?=20ha=20implementado=20un=20sistema=20de=20token.=20Cada=20runa?= =?UTF-8?q?=20posee=20un=20identificador=20=C3=BAnico=20=09=20=20que=20ins?= =?UTF-8?q?cribe=20en=20el=20registro=20de=20homes.=20De=20esta=20manera,?= =?UTF-8?q?=20al=20destruirse=20la=20runa=20=09=20=20s=C3=B3lo=20elimina?= =?UTF-8?q?=20el=20warp=20si=20su=20token=20coincide=20con=20el=20registra?= =?UTF-8?q?do.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -- Yawin --- mods/magic/home_stone.lua | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/mods/magic/home_stone.lua b/mods/magic/home_stone.lua index 7d50863..967d010 100644 --- a/mods/magic/home_stone.lua +++ b/mods/magic/home_stone.lua @@ -20,7 +20,8 @@ local loadHomes = function () x = tonumber(paramlist[2]), y = tonumber(paramlist[3]), z = tonumber(paramlist[4]), - } + }, + token = paramlist[5], } table.insert(magic.playerHomes, w) end @@ -34,7 +35,7 @@ local saveHomes = function() return end for i = 1,table.getn(magic.playerHomes) do - local s = magic.playerHomes[i].player .. " " .. magic.playerHomes[i].homepos.x .. " " .. magic.playerHomes[i].homepos.y .. " " .. magic.playerHomes[i].homepos.z .. "\n" + local s = magic.playerHomes[i].player .. " " .. magic.playerHomes[i].homepos.x .. " " .. magic.playerHomes[i].homepos.y .. " " .. magic.playerHomes[i].homepos.z .. " " .. magic.playerHomes[i].token .. "\n" fh:write(s) end fh:close() @@ -136,6 +137,8 @@ magic.register_recipe("home_warp", local arrID = checkHome(player:get_player_name()) + local token = node.under.x .. node.under.y .. node.under.z + if arrID == -1 then arrID = #magic.playerHomes + 1 end @@ -143,6 +146,7 @@ magic.register_recipe("home_warp", magic.playerHomes[arrID] = {} magic.playerHomes[arrID].player = player:get_player_name() magic.playerHomes[arrID].homepos = {x = node.under.x, y = node.under.y + 1, z = node.under.z} + magic.playerHomes[arrID].token = token saveHomes() @@ -152,7 +156,8 @@ magic.register_recipe("home_warp", minetest.set_node({x = posx + i, y = posy, z = posz + j}, {name="magic:magicalobsidian"}) local meta = minetest.get_meta({x = posx + i, y = posy, z = posz + j}) - meta:set_string("referido",player:get_player_name()) + meta:set_string("magic_referido",player:get_player_name()) + meta:set_string("magic_token",token) end j = j + 1 end @@ -193,14 +198,16 @@ minetest.register_node("magic:magicalobsidian", { local meta = minetest.env:get_meta(pos) meta:from_table(oldmetadata) - local s = meta:get_string("referido") + local s = meta:get_string("magic_referido") local home = checkHome(s) if home ~= -1 then - table.remove(magic.playerHomes,home) - saveHomes() - return + if magic.playerHomes[home].token == meta:get_string("magic_token") then + table.remove(magic.playerHomes,home) + saveHomes() + end end + return end, drop = "default:obsidian",