Correção de bug de estoque superlotado.

(Estava apagando o item)
This commit is contained in:
Lunovox 2017-09-09 04:23:51 -03:00
parent 71b4feef63
commit 88948f10b9
2 changed files with 31 additions and 7 deletions

View file

@ -247,28 +247,40 @@ minetest.register_on_player_receive_fields(function(sender, formname, fields)
if wants == nil or gives == nil then return end -- do not crash the server
-- Check if we can exchange
local can_exchange = true
local owners_fault = false
local error_name = ""
for i, item in pairs(wants) do
if not pinv:contains_item("customer_gives",item) then
can_exchange = false
break
end
if not minv:room_for_item("customers_gave",item) then -- verifica se compartimento de Recebimento de pagamento do vendedor tem espaço
can_exchange = false
error_name = "without_space_to_profit"
break
end
end
for i, item in pairs(gives) do
if not minv:contains_item("stock",item) then
can_exchange = false
owners_fault = true
error_name = "owners_fault"
break
end
if not pinv:room_for_item("customer_gets",item) then -- verifica se a caixa de entrega ao jogador tem espaço
can_exchange = false
error_name = "without_space_to_offer"
break
end
end
if fields.quit==nil then
if can_exchange then
for i, item in pairs(wants) do
pinv:remove_item("customer_gives",item)
minv:add_item("customers_gave",item)
pinv:remove_item("customer_gives",item) --Remove do compartimento de Oferta de pagamento
minv:add_item("customers_gave",item) --Adiciona do compartimento de Recebimento de pagamento
end
for i, item in pairs(gives) do
minv:remove_item("stock",item)
pinv:add_item("customer_gets",item)
minv:remove_item("stock",item) -- Remove do Estoque
pinv:add_item("customer_gets",item) -- Entrega ao jogador.
end
minetest.chat_send_player(name,
core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
@ -276,11 +288,21 @@ minetest.register_on_player_receive_fields(function(sender, formname, fields)
)
minetest.sound_play("sfx_cash_register", {object=sender, max_hear_distance=5.0,})
else
if owners_fault then
if error_name == "owners_fault" then
minetest.chat_send_player(name,
core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
..modMinerTrade.translate("The stock of '%s' is gone. Contact him!"):format(owner)
)
elseif error_name == "without_space_to_profit" then
minetest.chat_send_player(name,
core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
..modMinerTrade.translate("Without enough space in Dispensing Machine to receive the customer item. (Please, contact the seller '%s'!)"):format(owner)
)
elseif error_name == "without_space_to_offer" then
minetest.chat_send_player(name,
core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
..modMinerTrade.translate("Without enough space in Dispensing Machine to receive the seller's item. (Please, empty the receiving box!)")
)
else
minetest.chat_send_player(name,
core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")

View file

@ -34,6 +34,8 @@ Dispensing Machine of '%s'.=Maquina Dispensadora de '%s'.
The Dispensing Machine can not be removed before being emptied!=A Máquina Dispensadora não pode ser retirada antes de ser esvaziada!
You can not change your own machine!=Voce nao pode trocar na sua propria maquina!
The stock of '%s' is gone. Contact him!=O estoque de '%s' acabou. Contacte-o!
Without enough space in Dispensing Machine to receive the customer item. (Please, contact the seller '%s'!)=Sem espaço suficiente na Maquina Dispensadora para receber o item do cliente. (Por favor, entre em contato com o vendedor '%s'!)
Without enough space in Dispensing Machine to receive the seller's item. (Please, empty the receiving box!)=Sem espaço suficiente na Maquina Dispensadora para receber o item do vendedor. (Por favor, esvazie a caixa de recebimento!)
The dispending can not be done. Make sure you offer what the machine asks for!=A dispensa não pode ser feita. Verifique se você ofereceu o que a máquina pede!
#------- item_exchange_table.lua ---------------------------------------------------------------------------