From c589863ba3b1380c64e7b1d4c705db22270a4d49 Mon Sep 17 00:00:00 2001 From: BrunoMine Date: Fri, 13 Jul 2018 16:42:53 -0300 Subject: [PATCH] Melhorias diversas --- bau.lua | 11 ++++++++++- bau_spawn.lua | 2 +- corda.lua | 6 ++++++ init.lua | 1 + interface_bau.lua | 10 ++++++---- ir_balao.lua | 18 ++++++++++-------- mensagens.lua | 4 ++-- reivindicar.lua | 14 ++++++++------ 8 files changed, 44 insertions(+), 22 deletions(-) diff --git a/bau.lua b/bau.lua index 5d883b8..1b6d89f 100644 --- a/bau.lua +++ b/bau.lua @@ -35,6 +35,8 @@ minetest.register_node("telepro:bau", { paramtype2 = "facedir", groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1}, sounds = default.node_sound_wood_defaults(), + drop = "", + on_rightclick = function(pos, node, player) local meta = minetest.get_meta(pos) if (meta:get_string("dono") or "") == player:get_player_name() then @@ -43,7 +45,14 @@ minetest.register_node("telepro:bau", { minetest.chat_send_player(player:get_player_name(), S("Esse Balao nao lhe pertence")) end end, - drop = "", + + -- Remove corda em cima caso exista + after_destruct = function(pos, oldnode) + local node_superior = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}) + if node_superior.name == "telepro:corda_balao" then + minetest.remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + end + end, }) -- Atualização constante do balão diff --git a/bau_spawn.lua b/bau_spawn.lua index 3d984d3..ed3f114 100644 --- a/bau_spawn.lua +++ b/bau_spawn.lua @@ -33,7 +33,7 @@ minetest.register_node("telepro:bau_spawn", { -- Verifica privilegios de quem coloca if pointed_thing and pointed_thing.above and minetest.check_player_privs(placer:get_player_name(), {server=true}) == true then telepro.spawn = pos - telepro.bd.salvar("centro", "pos", {x=pos.x, y=pos.y+2, z=pos.z}) + telepro.bd.salvar("centro", "pos", {x=pos.x, y=pos.y+3, z=pos.z}) minetest.chat_send_player(placer:get_player_name(), S("Novo centro definido")) else minetest.chat_send_player(placer:get_player_name(), S("Precisa do privilegio 'server' para colocar esse bau")) diff --git a/corda.lua b/corda.lua index 18fa806..797ff1e 100644 --- a/corda.lua +++ b/corda.lua @@ -35,6 +35,12 @@ minetest.register_node("telepro:corda_balao", { if telepro.cordas_f == true and minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name == "telepro:corda_balao" then minetest.remove_node({x=pos.x,y=pos.y-1,z=pos.z}) end + + -- Remove corda ou balao em cima caso exista + local node_superior = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}) + if node_superior.name == "telepro:corda_balao" or node_superior.name == "telepro:balao_jogador" then + minetest.remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + end end, -- Ao ser colocado de uma pos diff --git a/init.lua b/init.lua index 6dc7092..f314319 100644 --- a/init.lua +++ b/init.lua @@ -34,6 +34,7 @@ end -- Funções dofile(modpath.."/tradutor.lua") +dofile(modpath.."/mensagens.lua") dofile(modpath.."/online.lua") dofile(modpath.."/reivindicar.lua") dofile(modpath.."/ir_balao.lua") diff --git a/interface_bau.lua b/interface_bau.lua index 1851757..3275f90 100644 --- a/interface_bau.lua +++ b/interface_bau.lua @@ -114,6 +114,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) -- Teleportar jogador player:setpos(telepro.spawn) minetest.chat_send_player(name, S("Viagem ao Centro realizada")) + elseif fields.reparar then -- Pegar nome do jogador @@ -167,10 +168,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) return telepro.acessar(minetest.get_player_by_name(name)) end - -- Verificar se o balao esta ativo - if minetest.get_meta(telepro.bd.pegar("jogador_"..name, "pos")):get_string("status") ~= "ativo" then - minetest.chat_send_player(name, S(telepro.msg.balao_inativo)) - end + -- Verificar se o balao esta ativo + -- CANCELADO: não deve ser necessario, isso pode atrapalhar muito o retorno do jogador, ao retornar ele resolvera isso + --if minetest.get_meta(telepro.bd.pegar("jogador_"..name, "pos")):get_string("status") ~= "ativo" then + -- minetest.chat_send_player(name, S(telepro.msg.balao_inativo)) + --end -- Tenta teleportar o jogador telepro.ir_balao(player) diff --git a/ir_balao.lua b/ir_balao.lua index de3d1c5..1b850c0 100644 --- a/ir_balao.lua +++ b/ir_balao.lua @@ -44,10 +44,11 @@ telepro.ir_balao = function(player) do -- Verificar se o nome do bloco é o de uma bau - if pegar_node(pos).name ~= "telepro:bau" then - minetest.chat_send_player(player:get_player_name(), S("Seu balao foi destruido")) - return false - end + -- CANCELADO: não deve ser necessario, isso pode atrapalhar muito o retorno do jogador, ao retornar ele resolvera isso + --if pegar_node(pos).name ~= "telepro:bau" then + -- minetest.chat_send_player(player:get_player_name(), S("Seu balao foi destruido")) + -- return false + --end -- Pega os metadados do bau local meta = minetest.get_meta(pos) @@ -56,10 +57,11 @@ telepro.ir_balao = function(player) local n = meta:get_string("dono") or "" -- Verifica se é o mesmo nome do jogador - if n ~= name then - minetest.chat_send_player(player:get_player_name(), S("Seu balao foi destruido")) - return false - end + -- CANCELADO: não deve ser necessario, isso pode atrapalhar muito o retorno do jogador, ao reto + --if n ~= name then + -- minetest.chat_send_player(player:get_player_name(), S("Seu balao foi destruido")) + -- return false + --end end diff --git a/mensagens.lua b/mensagens.lua index 7ca9a05..6af60e2 100644 --- a/mensagens.lua +++ b/mensagens.lua @@ -35,7 +35,7 @@ telepro.msg = { -- Local baixo local_muito_baixo = S("Precisa subir para um local mais alto"), -- Local muito fechado (obstruções ao balao) - local_muito_fechado = S("Precisa estar num lugar mais aberto") + local_muito_fechado = S("Precisa estar num lugar mais aberto"), -- Objetos estao ocupando a area que o modelo/malha do balão vai ocupar - objetos_obstruem_balao = S("Objetos obstruem a parte de cima portanto libere o local ou suba") + objetos_obstruem_balao = S("Objetos obstruem a parte de cima portanto libere o local ou suba"), } diff --git a/reivindicar.lua b/reivindicar.lua index 23b25ec..aa12d58 100644 --- a/reivindicar.lua +++ b/reivindicar.lua @@ -30,10 +30,11 @@ telepro.reivindicar = function(player) local name = player:get_player_name() -- Verificar se está travado - if telepro.travados[name] == true then - minetest.chat_send_player(name, S(telepro.msg.limite_de_usos_por_dia)) - return false - end + -- CANCELADO: O balao fica travado no local, evitando que o jogar explore tão rapido + --if telepro.travados[name] == true then + -- minetest.chat_send_player(name, S(telepro.msg.limite_de_usos_por_dia)) + -- return false + --end -- Pegar coordenada do jogador local pos = player:getpos() @@ -141,8 +142,9 @@ telepro.reivindicar = function(player) player:setpos({x=pos.x, y=pos.y+1.5, z=pos.z}) -- Travar por 24 horas para impedir ficar gerando em vaios locais - telepro.travados[name] = true - minetest.after(3600, telepro.destravar, name) + -- CANCELADO: O balao fica travado no local, evitando que o jogar explore tão rapido + --telepro.travados[name] = true + --minetest.after(3600, telepro.destravar, name) -- Finaliza minetest.chat_send_player(name, S("Balao reivindicado com sucesso"))