Melhorias no balao

master
BrunoMine 2018-07-11 18:46:22 -03:00
parent 3158aef19d
commit be9173f69e
21 changed files with 171 additions and 212 deletions

165
balao.lua
View File

@ -19,121 +19,54 @@ local function pegar_node(pos)
return node return node
end end
-- Node
-- Registro da entidade minetest.register_node("telepro:balao_jogador", {
minetest.register_entity("telepro:balao", { description = "Balao Decorativo",
hp_max = 1, tiles = {"telepro_balao.png"},
physical = true, paramtype = "light",
weight = 5, paramtype2 = "facedir",
collisionbox = {-7,0,-7, 7,25,7}, sunlight_propagates = true,
visual = "mesh", drawtype = "mesh",
visual_size = {x=5, y=5}, mesh = "telepro_node_balao.b3d",
mesh = "telepro_balao.b3d", visual_scale = 0.45,
textures = {"telepro_balao.png"}, -- number of required textures depends on visual groups = {choppy = 2, oddly_breakable_by_hand = 2},
spritediv = {x=1, y=1}, sounds = default.node_sound_wood_defaults(),
initial_sprite_basepos = {x=0, y=0}, drop = "",
is_visible = true,
makes_footstep_sound = false,
automatic_rotate = false,
on_step = function(self, dtime)
self.timer = (self.timer or 0) + dtime
if self.timer > 4 then
self.timer = 0
-- Pegar nome do jogador
local name = self.dono
-- Pegar coordenada do balao
local pos = self.object:getpos()
-- Pegar coordenada do bau
local bau_pos = {x=pos.x, y=pos.y-23, z=pos.z}
-- Verifica se ainda tem o bau
if pegar_node(bau_pos).name == "telepro:bau" then
-- Verifica se o bau eh do dono
-- Pegar metadados
local meta = minetest.get_meta(bau_pos)
if
meta:get_string("dono") == name
and meta:get_string("status") == "ativo"
then
return
end
end
-- Remover cordas
do
local y = -1
while y <= 24 do
if pegar_node({x=pos.x, y=pos.y-y, z=pos.z}).name == "telepro:corda_balao" then
minetest.remove_node({x=pos.x, y=pos.y-y, z=pos.z})
end
y = y + 1
end
end
-- Remove o objeto pois nao encontrou o bau do dono
self.object:remove()
return
end
end,
on_activate = function(self, staticdata)
if staticdata ~= "" then
self.dono = minetest.serialize({dono=self.dono,name=self.name}).dono
self.name = minetest.serialize({dono=self.dono,name=self.name}).name
end
end,
get_staticdata = function(self)
return minetest.serialize({dono=self.dono,name=self.name})
end,
}) })
-- Criar um balao -- Verifica se tem bau ativo
telepro.criar_balao = function(pos, bau_pos, name) minetest.register_abm{
if not pos then nodenames = {"telepro:balao_jogador"},
minetest.log("error", "[Telepro] pos == nil (em telepro.criar_balao)") interval = 4,
return false chance = 1,
end action = function(pos)
if not bau_pos then
minetest.log("error", "[Telepro] bau_pos == nil (em telepro.criar_balao)") -- Pos bau
return false local pos_bau = {x=pos.x, y=pos.y-25, z=pos.z}
end
if not name then -- Bau
minetest.log("error", "[Telepro] name == nil (em telepro.criar_balao)") local node = pegar_node(pos_bau)
return false
end -- Verifica se tem bau
if node.name ~= "telepro:bau" then
-- Cria o objeto minetest.remove_node(pos)
local obj = minetest.add_entity(pos, "telepro:balao") return
end
-- Verifica se foi criado
if not obj then -- Pegar metadados do bau
minetest.log("error", "[Telepro] Falha ao cria o objeto (em telepro.criar_balao)") local meta = minetest.get_meta(pos_bau)
return false
end -- Verifica se o bau tem dono
if meta:get_string("dono") == "" then
-- Cria animação no objeto minetest.remove_node(pos)
obj:set_animation({x=1,y=40}, 5, 0) return
end
-- Pega a entidade
local ent = obj:get_luaentity() -- Verifica se o bau ta ativo
if meta:get_string("status") ~= "ativo" then
-- Cria o temporizador minetest.remove_node(pos)
ent.timer = 0 return
end
-- Salva o nome do dono
ent.dono = name end,
}
-- Salva nome da entidade
ent.name = "telepro:balao"
return true
end

25
balao_decor.lua Normal file
View File

@ -0,0 +1,25 @@
--[[
Mod Telepro para Minetest
Copyright (C) 2018 BrunoMine (https://github.com/BrunoMine)
Recebeste uma cópia da GNU Lesser General
Public License junto com esse software,
se não, veja em <http://www.gnu.org/licenses/>.
Balao Decorativo para Spawn
]]
-- Node
minetest.register_node("telepro:balao_decorativo", {
description = "Balao Decorativo",
tiles = {"telepro_balao.png"},
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
drawtype = "mesh",
mesh = "telepro_node_balao.b3d",
visual_scale = 0.45,
groups = {choppy = 2, oddly_breakable_by_hand = 2},
sounds = default.node_sound_wood_defaults(),
drop = "",
})

68
bau.lua
View File

@ -9,6 +9,16 @@
Bau do balao Bau do balao
]] ]]
-- Pegar node distante nao carregado
local function pegar_node(pos)
local node = minetest.get_node(pos)
if node.name == "ignore" then
minetest.get_voxel_manip():read_from_map(pos, pos)
node = minetest.get_node(pos)
end
return node
end
-- Node -- Node
minetest.register_node("telepro:bau", { minetest.register_node("telepro:bau", {
description = "Bau do Balao", description = "Bau do Balao",
@ -37,7 +47,7 @@ minetest.register_node("telepro:bau", {
-- Atualização constante do balão -- Atualização constante do balão
minetest.register_abm{ minetest.register_abm{
nodenames = {"telepro:bau"}, nodenames = {"telepro:bau"},
interval = 2, interval = 5,
chance = 1, chance = 1,
action = function(pos) action = function(pos)
@ -51,46 +61,6 @@ minetest.register_abm{
-- Verificar se ta tudo ok -- Verificar se ta tudo ok
-- --
-- Salvar o nome do dono
if meta:get_string("status") == "ativo" then
-- Verificar cordas
do
-- Pegar os nodes
local nodes = minetest.find_nodes_in_area(
{x=pos.x, y=pos.y+1, z=pos.z},
{x=pos.x, y=pos.y+24, z=pos.z},
{"telepro:corda_balao"}
)
-- Verificar se estao todos
if table.maxn(nodes) < 24 then
-- Desativa o bau
meta:set_string("status", "inativo")
return
end
end
-- Verifica balao
do
local r = false -- Variavel que avisa se achou o balao
for _,obj in ipairs(minetest.get_objects_inside_radius(pos, 30)) do
local ent = obj:get_luaentity() or {}
-- Verifica se eh o balao
if ent and ent.name == "telepro:balao" and ent.dono == meta:get_string("dono") then
r = true -- achou balao
end
end
if r == false then
-- Desativa o bau
meta:set_string("status", "inativo")
return
end
end
-- Tudo ok
return
end
-- --
-- Verificar se consegue colocar o balao e cordas -- Verificar se consegue colocar o balao e cordas
-- --
@ -115,7 +85,7 @@ minetest.register_abm{
local nodes = minetest.find_nodes_in_area( local nodes = minetest.find_nodes_in_area(
{x=pos.x-7, y=pos.y+24, z=pos.z-7}, {x=pos.x-7, y=pos.y+24, z=pos.z-7},
{x=pos.x+7, y=pos.y+24+25, z=pos.z+7}, {x=pos.x+7, y=pos.y+24+25, z=pos.z+7},
{"air", "telepro:corda_balao"} {"air", "telepro:corda_balao", "telepro:balao_jogador"}
) )
-- Verifica se pegou todos nodes de ar -- Verifica se pegou todos nodes de ar
@ -133,7 +103,19 @@ minetest.register_abm{
-- Montar o balao e cordas -- Montar o balao e cordas
-- --
telepro.montar_balao(pos, meta:get_string("dono")) -- Verifica se ja tem todas as cordas
if table.maxn(minetest.find_nodes_in_area(
{x=pos.x, y=pos.y+1, z=pos.z},
{x=pos.x, y=pos.y+24, z=pos.z},
{"telepro:corda_balao"}
)) ~= 24
-- Verifica balao
or pegar_node({x=pos.x, y=pos.y+25, z=pos.z}).name ~= "telepro:balao_jogador"
then
-- Repara tudo
telepro.montar_balao(pos)
end
meta:set_string("status", "ativo") meta:set_string("status", "ativo")

View File

@ -26,5 +26,18 @@ minetest.register_node("telepro:bau_spawn", {
on_rightclick = function(pos, node, player) on_rightclick = function(pos, node, player)
telepro.acessar_bau_spawn(player) telepro.acessar_bau_spawn(player)
end, end,
after_place_node = function(pos, placer, itemstack, pointed_thing)
-- 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})
minetest.chat_send_all("Novo centro definido")
else
minetest.chat_send_all("Precisa do privilegio 'server' para colocar esse bau")
minetest.remove_node(pos)
end
end,
drop = "", drop = "",
}) })

View File

@ -21,13 +21,13 @@ telepro.check_balao_proprio = function(player)
local name = player:get_player_name() local name = player:get_player_name()
-- Verificar se o jogador tem um balao -- Verificar se o jogador tem um balao
if telepro.bd.verif(name, "pos") ~= true then if telepro.bd.verif("jogador_"..name, "pos") ~= true then
minetest.chat_send_player(name, "Precisas ter um balao ativo") minetest.chat_send_player(name, "Precisas ter um balao ativo")
return 1, "Nenhum balao proprio existente" return 1, "Nenhum balao proprio existente"
end end
-- Pega os metadados do bau -- Pega os metadados do bau
local meta = minetest.get_meta(telepro.bd.pegar(name, "pos")) local meta = minetest.get_meta(telepro.bd.pegar("jogador_"..name, "pos"))
if meta:get_string("status") ~= "ativo" then if meta:get_string("status") ~= "ativo" then
return 2, "Balao proprio inoperante" return 2, "Balao proprio inoperante"
end end

View File

@ -45,7 +45,7 @@ end
-- Criar balao e cordas para um bau de balao (ignora verificações) -- Criar balao e cordas para um bau de balao (ignora verificações)
telepro.montar_balao = function(pos, name) telepro.montar_balao = function(pos)
-- Colocar cordas -- Colocar cordas
do do
@ -63,6 +63,6 @@ telepro.montar_balao = function(pos, name)
end end
-- Colocar balao -- Colocar balao
telepro.criar_balao({x=pos.x, y=pos.y+23, z=pos.z}, pos, name) minetest.set_node({x=pos.x, y=pos.y+25, z=pos.z}, {name="telepro:balao_jogador"})
end end

View File

@ -44,9 +44,9 @@ local finalizar = function(name, spos)
-- Desativa o bau anterior -- Desativa o bau anterior
do do
-- Verificar se existe registro no banco de dados -- Verificar se existe registro no banco de dados
if telepro.bd.verif(name, "pos") == true then if telepro.bd.verif("jogador_"..name, "pos") == true then
-- Pega a coordenada -- Pega a coordenada
local pp = telepro.bd.pegar(name, "pos") local pp = telepro.bd.pegar("jogador_"..name, "pos")
-- Acessa os metadados -- Acessa os metadados
local meta = minetest.get_meta(pp) local meta = minetest.get_meta(pp)
-- Limpa o parametro dono -- Limpa o parametro dono
@ -63,7 +63,7 @@ local finalizar = function(name, spos)
meta:set_string("status", "ativo") -- Salvar status inicial meta:set_string("status", "ativo") -- Salvar status inicial
-- Salva a coordenada do novo bau no banco de dados -- Salva a coordenada do novo bau no banco de dados
telepro.bd.salvar(name, "pos", pb) telepro.bd.salvar("jogador_"..name, "pos", pb)
-- Montar balao -- Montar balao
telepro.montar_balao(pb, name) telepro.montar_balao(pb, name)

View File

@ -21,15 +21,17 @@ local modpath = minetest.get_modpath("telepro")
-- Variavel global -- Variavel global
telepro = {} telepro = {}
-- Spawn do servidor (para onde os baloes permitem ir)
telepro.spawn = minetest.setting_get_pos("static_spawnpoint") or {x=0, y=0, z=0}
-- Carregar scripts -- Carregar scripts
notificar("Carregando scripts...") notificar("Carregando scripts...")
-- Criação do banco de dados -- Criação do banco de dados
telepro.bd = dofile(modpath.."/lib/memor.lua") telepro.bd = dofile(modpath.."/lib/memor.lua")
-- Spawn do servidor (para onde os baloes permitem ir)
if telepro.bd.verif("centro", "pos") == true then
telepro.spawn = telepro.bd.pegar("centro", "pos")
end
-- Funções -- Funções
dofile(modpath.."/online.lua") dofile(modpath.."/online.lua")
dofile(modpath.."/reivindicar.lua") dofile(modpath.."/reivindicar.lua")
@ -52,6 +54,7 @@ dofile(modpath.."/balao.lua")
dofile(modpath.."/corda.lua") dofile(modpath.."/corda.lua")
dofile(modpath.."/bau.lua") dofile(modpath.."/bau.lua")
dofile(modpath.."/bau_spawn.lua") dofile(modpath.."/bau_spawn.lua")
dofile(modpath.."/balao_decor.lua")
-- Comandos -- Comandos
dofile(modpath.."/comandos.lua") dofile(modpath.."/comandos.lua")

View File

@ -29,10 +29,14 @@ telepro.acessar_bau = function(player)
local formspec = "size[6,5.8]" local formspec = "size[6,5.8]"
..default.gui_bg ..default.gui_bg
..default.gui_bg_img ..default.gui_bg_img
.."image[0,0;7.3,3;telepro_intro.png]" .."image[1.7,-0.25;3,3;telepro_ir_centro.png]"
.."button_exit[0,3;6,1;ir_centro;Ir para Centro]" .."button_exit[0,2.4;6,1;ir_centro;Ir para Centro]"
.."button_exit[0,4;6,1;reparar;Reparar Balao]"
.."button[0,5;6,1;visitas;Receber seguidor]" .."image[0.1,3.7;1,1;screwdriver.png]"
.."button_exit[1,3.7;5,1;reparar;Reparar Balao]"
.."image[0.1,5;1,1;telepro_aceitar_visita.png]"
.."button[1,5;5,1;visitas;Receber seguidor]"
-- Exibir formspec -- Exibir formspec
minetest.show_formspec(player:get_player_name(), "telepro:bau", formspec) minetest.show_formspec(player:get_player_name(), "telepro:bau", formspec)
@ -49,12 +53,14 @@ telepro.acessar_bau_spawn = function(player)
-- Exibir formulario de opcoes ao jogador -- Exibir formulario de opcoes ao jogador
-- Cria formspec -- Cria formspec
local formspec = "size[6,5]" local formspec = "size[6,3]"
..default.gui_bg ..default.gui_bg
..default.gui_bg_img ..default.gui_bg_img
.."image[0,0;7.3,3;telepro_intro.png]" .."image[0.1,-0.2;3,3;telepro_ir_casa.png]"
.."button[0,3;6,1;visitas;Seguir jogador]" .."button_exit[0,2;3,1;ir_balao;Ir para seu Balao]"
.."button_exit[0,4;6,1;ir_balao;Ir para o posto de seu Balao]" .."image[3.1,-0.2;3,3;telepro_visitar.png]"
.."button[3,2;3,1;visitas;Seguir jogador]"
-- Exibir formspec -- Exibir formspec
minetest.show_formspec(player:get_player_name(), "telepro:bau_spawn", formspec) minetest.show_formspec(player:get_player_name(), "telepro:bau_spawn", formspec)
@ -81,7 +87,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local pos = player:getpos() local pos = player:getpos()
-- Verificar se o jogador tem um balao -- Verificar se o jogador tem um balao
if telepro.bd.verif(name, "pos") ~= true then if telepro.bd.verif("jogador_"..name, "pos") ~= true then
minetest.chat_send_player(name, "Precisas ter um balao ativo") minetest.chat_send_player(name, "Precisas ter um balao ativo")
return return
end end
@ -95,7 +101,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
-- Verifica status do bau do balao -- Verifica status do bau do balao
do do
-- Pega os metadados do bau -- Pega os metadados do bau
local meta = minetest.get_meta(telepro.bd.pegar(name, "pos")) local meta = minetest.get_meta(telepro.bd.pegar("jogador_"..name, "pos"))
if meta:get_string("status") ~= "ativo" then if meta:get_string("status") ~= "ativo" then
minetest.chat_send_player(name, "Balao inoperante. Aguarde mantenha o local limpo e aberto e aguarde ele ficar pronto.") minetest.chat_send_player(name, "Balao inoperante. Aguarde mantenha o local limpo e aberto e aguarde ele ficar pronto.")
@ -118,7 +124,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end end
-- Pegar coordenada do bau -- Pegar coordenada do bau
local pos = telepro.bd.pegar(name, "pos") local pos = telepro.bd.pegar("jogador_"..name, "pos")
-- Verificar se o balao ja esta ativo -- Verificar se o balao ja esta ativo
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
@ -155,12 +161,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end end
-- Verificar se o jogador tem um balao -- Verificar se o jogador tem um balao
if telepro.bd.verif(name, "pos") ~= true then if telepro.bd.verif("jogador_"..name, "pos") ~= true then
minetest.chat_send_all("dados de jogador_"..name.." nao encontrado")
return telepro.acessar(minetest.get_player_by_name(name)) return telepro.acessar(minetest.get_player_by_name(name))
end end
-- Verificar se o balao esta ativo -- Verificar se o balao esta ativo
if minetest.get_meta(telepro.bd.pegar(name, "pos")):get_string("status") ~= "ativo" then if minetest.get_meta(telepro.bd.pegar("jogador_"..name, "pos")):get_string("status") ~= "ativo" then
minetest.chat_send_player(name, "O Seu Balao nao esta funcionando. O local foi destruido ou obstruido.") minetest.chat_send_player(name, "O Seu Balao nao esta funcionando. O local foi destruido ou obstruido.")
end end

View File

@ -30,13 +30,13 @@ telepro.ir_balao = function(player)
local name = player:get_player_name() local name = player:get_player_name()
-- Verifica se o registro de balao existe no banco de dados -- Verifica se o registro de balao existe no banco de dados
if telepro.bd.verif(name, "pos") == false then if telepro.bd.verif("jogador_"..name, "pos") == false then
minetest.chat_send_player(player:get_player_name(), "Sem nenhum balao ainda.") minetest.chat_send_player(player:get_player_name(), "Sem nenhum balao ainda.")
return false return false
end end
-- Pegar coordenada do bau -- Pegar coordenada do bau
local pos = telepro.bd.pegar(name, "pos") local pos = telepro.bd.pegar("jogador_"..name, "pos")
-- Verificar se o balao existente no banco de dados ainda existe no mapa -- Verificar se o balao existente no banco de dados ainda existe no mapa
do do

View File

@ -1,12 +1,13 @@
--[[ --[[
Lib Memor para Minetest Lib Memor para Minetest
Memor v1.3 Copyright (C) 2017 BrunoMine (https://github.com/BrunoMine) Memor v2.0.0 Copyright (C) 2017 BrunoMine (https://github.com/BrunoMine)
Recebeste uma cópia da GNU Lesser General Recebeste uma cópia da GNU Lesser General
Public License junto com esse software, Public License junto com esse software,
se não, veja em <http://www.gnu.org/licenses/>. se não, veja em <http://www.gnu.org/licenses/>.
Inicializador de scripts Autoria do código:
Originalmente por BrunoMine, Bruno Borges <borgesdossantosbruno@gmail.com>
]] ]]
local modname = minetest.get_current_modname() local modname = minetest.get_current_modname()
@ -14,7 +15,7 @@ local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname) local modpath = minetest.get_modpath(modname)
-- Variavel global -- Variavel global
local memor = {} memor = {}
-- Rotinas de interação com arquivos -- Rotinas de interação com arquivos
@ -57,18 +58,10 @@ function memor.escrever(dir, arquivo, dados)
saida:write(dados) saida:write(dados)
io.close(saida) io.close(saida)
return true return true
else
minetest.log("info", "[Memor] memor.escrever tentou escrever num diretorio inexistente")
return false
end end
-- Cria diretorio (tabela) caso nao exista
memor.mkdir(modname.."/"..dir)
saida = io.open(wpath .. "/" .. modname .. "/" .. dir .. "/" .. arquivo, "w")
if saida then
saida:write(dados)
io.close(saida)
return true
end
minetest.log("error", "[Memor] Impossivel escrever dados em "..modname.."/"..dir.."/"..arquivo.." (em memor.escrever)")
return false
end end
-- Ler dados de um arquivo de memória (Carregar) -- Ler dados de um arquivo de memória (Carregar)
@ -131,23 +124,24 @@ end
-- Verifica diretorios e corrige -- Verifica diretorios e corrige
verificar = function(subdir) verificar = function(subdir)
local dir = modname
-- Verifica e corrige diretorio -- Verifica e corrige diretorio
local list = minetest.get_dir_list(minetest.get_worldpath(), true) local list = minetest.get_dir_list(minetest.get_worldpath(), true)
local r = false local r = false
for n, ndir in ipairs(list) do for n, ndir in ipairs(list) do
if ndir == modname then if ndir == dir then
r = true r = true
break break
end end
end end
-- Diretorio inexistente -- Diretorio inexistente
if r == false then if r == false then
memor.mkdir(modname) memor.mkdir(dir)
end end
-- Verifica e corrige subdiretorio -- Verifica e corrige subdiretorio
list = minetest.get_dir_list(minetest.get_worldpath().."/"..modname, true) list = minetest.get_dir_list(minetest.get_worldpath().."/"..dir, true)
r = false r = false
for n, ndir in ipairs(list) do for n, ndir in ipairs(list) do
if ndir == subdir then if ndir == subdir then
@ -157,7 +151,7 @@ verificar = function(subdir)
end end
-- Subdiretorio inexistente -- Subdiretorio inexistente
if r == false then if r == false then
memor.mkdir(modname.."/"..subdir) memor.mkdir(dir.."/"..subdir)
end end
end end

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -37,16 +37,16 @@ telepro.reivindicar = function(player)
local pos = player:getpos() local pos = player:getpos()
-- Verifica se está numa coordenada muito baixa (menor que o nível do mar) -- Verifica se está numa coordenada muito baixa (menor que o nível do mar)
if pos.y < 0 then if pos.y < 10 then
minetest.chat_send_player(name, "Local muito baixo. Precisa subir para um local mais alto.") minetest.chat_send_player(name, "Local muito baixo. Precisa subir para um local mais alto.")
return false return false
end end
-- Verificar se está na luz do dia (força estar na superficie) -- Verificar se está na luz do dia (força estar na superficie)
do do
local luz = minetest.get_node_light(pos) local luz = minetest.get_node_light(pos, 0.5)
if not luz or luz < 13 then if not luz or luz < 13 then
minetest.chat_send_player(name, "Precisa estar na luz do dia.") minetest.chat_send_player(name, "Precisa estar num lugar mais aberto.")
return false return false
end end
end end
@ -111,9 +111,9 @@ telepro.reivindicar = function(player)
-- Desativa o bau anterior -- Desativa o bau anterior
do do
-- Verificar se existe registro no banco de dados -- Verificar se existe registro no banco de dados
if telepro.bd.verif(name, "pos") == true then if telepro.bd.verif("jogador_"..name, "pos") == true then
-- Pega a coordenada -- Pega a coordenada
local p = telepro.bd.pegar(name, "pos") local p = telepro.bd.pegar("jogador_"..name, "pos")
-- Acessa os metadados -- Acessa os metadados
local meta = minetest.get_meta(p) local meta = minetest.get_meta(p)
-- Limpa o parametro dono -- Limpa o parametro dono
@ -130,7 +130,7 @@ telepro.reivindicar = function(player)
meta:set_string("status", "ativo") -- Salvar status inicial meta:set_string("status", "ativo") -- Salvar status inicial
-- Salva a coordenada do novo bau no banco de dados -- Salva a coordenada do novo bau no banco de dados
telepro.bd.salvar(name, "pos", pos) telepro.bd.salvar("jogador_"..name, "pos", pos)
-- Montar balao -- Montar balao
telepro.montar_balao(pos, name) telepro.montar_balao(pos, name)

View File

@ -14,9 +14,9 @@ telepro.reparar_balao = function(name, pos)
-- Verificar se está na luz do dia (força estar na superficie) -- Verificar se está na luz do dia (força estar na superficie)
do do
local luz = minetest.get_node_light({x=pos.x, y=pos.y+1, z=pos.z+1}) local luz = minetest.get_node_light({x=pos.x, y=pos.y+1, z=pos.z+1}, 0.5)
if not luz or luz < 13 then if not luz or luz < 13 then
minetest.chat_send_player(name, "Precisa estar na luz do dia.") minetest.chat_send_player(name, "Precisa estar em local aberto.")
return false return false
end end
end end

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -35,7 +35,8 @@ telepro.acessar_visitas = function(player, tipo)
.."label[0,0;Pedidos recebidos]" .."label[0,0;Pedidos recebidos]"
.."dropdown[0,0.5;5.25,1;visita;"..visitas..";]" .."dropdown[0,0.5;5.25,1;visita;"..visitas..";]"
.."button[0,1.15;5,1;receber_visita;Receber seguidor]" .."button[0,1.15;5,1;receber_visita;Receber seguidor]"
.."image[0.4,2;1.5,1.5;telepro_aceitar_visita.png]"
.."button[2,2.25;3,1;voltar;Voltar]" .."button[2,2.25;3,1;voltar;Voltar]"
elseif tipo == "centro" then elseif tipo == "centro" then
@ -45,7 +46,8 @@ telepro.acessar_visitas = function(player, tipo)
..default.gui_bg_img ..default.gui_bg_img
.."field[0.28,0.8;5,1;visitado;Seguir jogador;]" .."field[0.28,0.8;5,1;visitado;Seguir jogador;]"
.."button_exit[0,1.25;5,1;enviar_pedido;Enviar pedido]" .."button_exit[0,1.25;5,1;enviar_pedido;Enviar pedido]"
.."image[0.4,2;1.5,1.5;telepro_visitar.png]"
.."button[2,2.25;3,1;voltar;Voltar]" .."button[2,2.25;3,1;voltar;Voltar]"
end end