diff --git a/item_dispensing_machine.lua b/item_dispensing_machine.lua index d979406..8ca8907 100644 --- a/item_dispensing_machine.lua +++ b/item_dispensing_machine.lua @@ -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").."]: ") diff --git a/locale/pt.txt b/locale/pt.txt index 8cfb717..f2f1154 100644 --- a/locale/pt.txt +++ b/locale/pt.txt @@ -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 ---------------------------------------------------------------------------