mirror of
https://gitlab.com/lunovox/minertrade.git
synced 2025-03-21 16:01:22 +00:00
BUG DE NÃO CARREGAMENTO DE CAIXA ELETRONICO
\ O Animetrom me pediu para tentar corrigir este bug. Mas, não estou conseguindo porque parece que é um bug do proprio jogo minetest. Pois o comando 'newInv:set_size' da linha 62 do api.lua esta voltando o resultado antes de salvar o resultado dentro do inventario. E nas versões anteriores isso não ocorria. Felizmente esse bug não é crítico. Pois, o jogador consegue abrir o caixa eletrônico se insistir em abré-lo. (e o lag ajudar). Mais tarde tentarei mais uma vez corrigir este bug.
This commit is contained in:
parent
18d1b5271b
commit
1c8b6395e5
4 changed files with 49 additions and 48 deletions
10
api.lua
10
api.lua
|
@ -146,3 +146,13 @@ modMinerTrade.getDetachedInventory = function(playername)
|
||||||
|
|
||||||
return newInv
|
return newInv
|
||||||
end
|
end
|
||||||
|
|
||||||
|
modMinerTrade.showInventory = function(playername, ownername, title)
|
||||||
|
local inv = modMinerTrade.getDetachedInventory(ownername)
|
||||||
|
minetest.sound_play("sfx_alert", {player=playername, max_hear_distance=5.0,})
|
||||||
|
minetest.show_formspec(
|
||||||
|
playername,
|
||||||
|
"safe_"..ownername,
|
||||||
|
modMinerTrade.getFormspec(ownername, title)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
11
item_atm.lua
11
item_atm.lua
|
@ -86,16 +86,13 @@ minetest.register_node("minertrade:atm", {
|
||||||
local opentime = tonumber(meta:get_string("opentime")) or 0
|
local opentime = tonumber(meta:get_string("opentime")) or 0
|
||||||
local now = os.time() --Em milisegundos
|
local now = os.time() --Em milisegundos
|
||||||
if now >= opentime or minetest.get_player_privs(playername).server then
|
if now >= opentime or minetest.get_player_privs(playername).server then
|
||||||
local inv = modMinerTrade.getDetachedInventory(playername)
|
modMinerTrade.showInventory(
|
||||||
minetest.show_formspec(
|
playername,
|
||||||
playername,
|
playername,
|
||||||
"safe_"..playername,
|
|
||||||
modMinerTrade.getFormspec(
|
|
||||||
playername,
|
|
||||||
modMinerTrade.translate("PUBLIC ATM - Account of '%s':"):format(playername)
|
modMinerTrade.translate("PUBLIC ATM - Account of '%s':"):format(playername)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
else
|
else
|
||||||
|
minetest.sound_play("sfx_failure", {player=playername, max_hear_distance=5.0,})
|
||||||
minetest.chat_send_player(playername,
|
minetest.chat_send_player(playername,
|
||||||
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
|
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
|
||||||
..modMinerTrade.translate("The ATM will only run %02d seconds after it is installed!"):format(opentime-now)
|
..modMinerTrade.translate("The ATM will only run %02d seconds after it is installed!"):format(opentime-now)
|
||||||
|
|
|
@ -99,46 +99,42 @@ minetest.register_craftitem("minertrade:creditcard", {
|
||||||
inventory_image = "obj_credit_card.png",
|
inventory_image = "obj_credit_card.png",
|
||||||
--stack_max=9, --Acumula 9 por slot
|
--stack_max=9, --Acumula 9 por slot
|
||||||
groups = {cash=1, trade=1},
|
groups = {cash=1, trade=1},
|
||||||
on_use = function(itemstack, player)
|
on_use = function(itemstack, player)
|
||||||
local playername = player:get_player_name()
|
local playername = player:get_player_name()
|
||||||
local meta = itemstack:get_meta()
|
local meta = itemstack:get_meta()
|
||||||
local old_data = minetest.deserialize(itemstack:get_metadata())
|
local old_data = minetest.deserialize(itemstack:get_metadata())
|
||||||
if old_data then
|
if old_data then
|
||||||
meta:from_table({ fields = old_data })
|
meta:from_table({ fields = old_data })
|
||||||
end
|
end
|
||||||
local tmpDatabase = meta:to_table().fields
|
local tmpDatabase = meta:to_table().fields
|
||||||
if type(tmpDatabase.ownername)~="string" or tmpDatabase.ownername=="" then
|
|
||||||
tmpDatabase.ownername = playername
|
if type(tmpDatabase.ownername)~="string" or tmpDatabase.ownername=="" then
|
||||||
tmpDatabase.description = modMinerTrade.translate("CREDIT CARD of '%s'"):format(tmpDatabase.ownername)
|
tmpDatabase.ownername = playername
|
||||||
local invPlayer = player:get_inventory()
|
tmpDatabase.description = modMinerTrade.translate("CREDIT CARD of '%s'"):format(tmpDatabase.ownername)
|
||||||
local new_stack
|
local invPlayer = player:get_inventory()
|
||||||
local count = itemstack:get_count()
|
local new_stack
|
||||||
itemstack:set_count(count - 1)
|
local count = itemstack:get_count()
|
||||||
new_stack = ItemStack("minertrade:creditcard")
|
itemstack:set_count(count - 1)
|
||||||
new_stack:get_meta():from_table({ fields = tmpDatabase })
|
new_stack = ItemStack("minertrade:creditcard")
|
||||||
if invPlayer:room_for_item("main", new_stack) then
|
new_stack:get_meta():from_table({ fields = tmpDatabase })
|
||||||
invPlayer:add_item("main", new_stack)
|
if invPlayer:room_for_item("main", new_stack) then
|
||||||
else
|
invPlayer:add_item("main", new_stack)
|
||||||
minetest.add_item(player:get_pos(), new_stack)
|
else
|
||||||
end
|
minetest.add_item(player:get_pos(), new_stack)
|
||||||
minetest.chat_send_player(playername,
|
end
|
||||||
core.colorize("#00ff00", "["..modMinerTrade.translate("CREDIT CARD").."]: ")
|
minetest.chat_send_player(playername,
|
||||||
..modMinerTrade.translate("Your name has been saved to this credit card. Anyone using this credit card will be able to access the '%s' bank account."):format(tmpDatabase.ownername)
|
core.colorize("#00ff00", "["..modMinerTrade.translate("CREDIT CARD").."]: ")
|
||||||
)
|
..modMinerTrade.translate("Your name has been saved to this credit card. Anyone using this credit card will be able to access the '%s' bank account."):format(tmpDatabase.ownername)
|
||||||
minetest.sound_play("sfx_alert", {object=player, max_hear_distance=5.0,})
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
|
|
||||||
local inv = modMinerTrade.getDetachedInventory(tmpDatabase.ownername)
|
|
||||||
minetest.show_formspec(
|
|
||||||
playername,
|
|
||||||
"safe_"..tmpDatabase.ownername,
|
|
||||||
modMinerTrade.getFormspec(
|
|
||||||
tmpDatabase.ownername,
|
|
||||||
modMinerTrade.translate("ACCOUNT BANK of '%s':"):format(tmpDatabase.ownername)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
--return itemstack
|
minetest.sound_play("sfx_alert", {object=player, max_hear_distance=5.0,})
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
modMinerTrade.showInventory(
|
||||||
|
playername,
|
||||||
|
tmpDatabase.ownername,
|
||||||
|
modMinerTrade.translate("ACCOUNT BANK of '%s':"):format(tmpDatabase.ownername)
|
||||||
|
)
|
||||||
|
return itemstack
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -42,22 +42,20 @@ minetest.register_node("minertrade:strongbox", {
|
||||||
local opentime = tonumber(meta:get_string("opentime")) or 0
|
local opentime = tonumber(meta:get_string("opentime")) or 0
|
||||||
local now = os.time() --Em milisegundos
|
local now = os.time() --Em milisegundos
|
||||||
if now >= opentime or minetest.get_player_privs(playername).server then
|
if now >= opentime or minetest.get_player_privs(playername).server then
|
||||||
local inv = modMinerTrade.getDetachedInventory(ownername)
|
modMinerTrade.showInventory(
|
||||||
minetest.show_formspec(
|
playername,
|
||||||
playername,
|
ownername,
|
||||||
"safe_"..ownername,
|
modMinerTrade.translate("STRONGBOX owned by '%s':"):format(ownername)
|
||||||
modMinerTrade.getFormspec(
|
|
||||||
ownername,
|
|
||||||
modMinerTrade.translate("STRONGBOX owned by '%s':"):format(ownername)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
|
minetest.sound_play("sfx_failure", {player=playername, max_hear_distance=5.0,})
|
||||||
minetest.chat_send_player(playername,
|
minetest.chat_send_player(playername,
|
||||||
core.colorize("#00ff00", "["..modMinerTrade.translate("STRONGBOX").."]: ")
|
core.colorize("#00ff00", "["..modMinerTrade.translate("STRONGBOX").."]: ")
|
||||||
..modMinerTrade.translate("The safe is going to work %02d seconds after it is installed!"):format(opentime-now)
|
..modMinerTrade.translate("The safe is going to work %02d seconds after it is installed!"):format(opentime-now)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
minetest.sound_play("sfx_failure", {player=playername, max_hear_distance=5.0,})
|
||||||
minetest.chat_send_player(playername,
|
minetest.chat_send_player(playername,
|
||||||
core.colorize("#00ff00", "["..modMinerTrade.translate("STRONGBOX").."]: ")
|
core.colorize("#00ff00", "["..modMinerTrade.translate("STRONGBOX").."]: ")
|
||||||
..modMinerTrade.translate("You do not have access to the safe belonging to '%s'!"):format(ownername)
|
..modMinerTrade.translate("You do not have access to the safe belonging to '%s'!"):format(ownername)
|
||||||
|
|
Loading…
Add table
Reference in a new issue