mirror of
https://gitlab.com/lunovox/minertrade.git
synced 2025-03-15 05:31:20 +00:00
Persistencia Resolvida!
This commit is contained in:
parent
ce91e651db
commit
ffabc5f748
7 changed files with 451 additions and 49 deletions
80
api_payday.lua
Normal file
80
api_payday.lua
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
minetest.register_privilege("salary", {
|
||||||
|
description=modMinerTrade.translate("Only players with this privilege will receive a daily payment."),
|
||||||
|
--give_to_singleplayer=false,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.after(3.5, function()
|
||||||
|
if modMinerTrade.salary.enabled then
|
||||||
|
modMinerTrade.salary.timer = 0
|
||||||
|
minetest.register_globalstep(function(dtime)
|
||||||
|
modMinerTrade.salary.timer = modMinerTrade.salary.timer + dtime
|
||||||
|
if modMinerTrade.salary.timer >= modMinerTrade.salary.intervalcheck then
|
||||||
|
modMinerTrade.salary.timer = 0
|
||||||
|
local players = minetest.get_connected_players()
|
||||||
|
if #players >= 1 then
|
||||||
|
if modMinerTrade.bank.last_pay ~= minetest.get_day_count() then
|
||||||
|
--[[
|
||||||
|
modMinerTrade.debug(
|
||||||
|
"api_payday.lua >>> "
|
||||||
|
.."modMinerTrade.bank.last_pay = "..modMinerTrade.bank.last_pay
|
||||||
|
.." | minetest.get_day_count() = "..minetest.get_day_count()
|
||||||
|
)
|
||||||
|
--]]
|
||||||
|
modMinerTrade.bank.last_pay = minetest.get_day_count()
|
||||||
|
for _, player in ipairs(players) do
|
||||||
|
local playername = player:get_player_name()
|
||||||
|
if minetest.get_player_privs(playername).salary then
|
||||||
|
--[[
|
||||||
|
modMinerTrade.debug(
|
||||||
|
"api_payday.lua >>> "
|
||||||
|
.."modMinerTrade.isExistAcount("..playername..") = "..dump(modMinerTrade.isExistAcount(playername))
|
||||||
|
)
|
||||||
|
--]]
|
||||||
|
if modMinerTrade.isExistAcount(playername) then
|
||||||
|
local value = modMinerTrade.salary.value
|
||||||
|
local description = modMinerTrade.translate("The city hall deposited the %2d° salary in your bank account!"):format(minetest.get_day_count())
|
||||||
|
modMinerTrade.addBalance(playername, value)
|
||||||
|
modMinerTrade.addStatement(playername, value, description)
|
||||||
|
minetest.chat_send_player(
|
||||||
|
playername,
|
||||||
|
core.colorize("#00FF00",
|
||||||
|
"["..modMinerTrade.translate("CITY HALL").."]: "
|
||||||
|
)..description
|
||||||
|
)
|
||||||
|
modMinerTrade.doSoundPlayer(playername, "sfx_cash_register", 5)
|
||||||
|
else
|
||||||
|
modMinerTrade.debug("api_payday.lua >>> "..playername.." sem conta!")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end -- Final off for _, player in ipairs(players) do
|
||||||
|
modMinerTrade.doBankSave()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--[[
|
||||||
|
minetest.after(3.5, function()
|
||||||
|
modMinerTrade.payday = {
|
||||||
|
interval = (60 *24) / (tonumber(minetest.setting_get("time_speed")) or 72),
|
||||||
|
time = 0
|
||||||
|
}
|
||||||
|
modMinerTrade.payday.interval = 1
|
||||||
|
minetest.register_globalstep(function(dtime)
|
||||||
|
modMinerTrade.salary.timer = modMinerTrade.salary.timer + dtime
|
||||||
|
if modMinerTrade.salary.timer >= modMinerTrade.payday.interval then
|
||||||
|
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
--]]
|
||||||
|
|
||||||
|
|
21
init.lua
21
init.lua
|
@ -1,12 +1,18 @@
|
||||||
modMinerTrade = {
|
modMinerTrade = {
|
||||||
modName = minetest.get_current_modname(),
|
modName = minetest.get_current_modname(),
|
||||||
modPath = minetest.get_modpath(minetest.get_current_modname()),
|
modPath = minetest.get_modpath(minetest.get_current_modname()),
|
||||||
urlTabela = minetest.get_worldpath().."/minertrade.db64", --Extensao '.tbl' ou '.db'
|
save_compressed = (minetest.settings:get("minertrade.save_compressed") ~= "false"),
|
||||||
delayConstruct = 300,
|
delayConstruct = 300,
|
||||||
bank = {
|
bank = {
|
||||||
acounts = 0,
|
acounts = 0,
|
||||||
|
last_pay = 0,
|
||||||
player = { },
|
player = { },
|
||||||
},
|
},
|
||||||
|
salary = {
|
||||||
|
enabled = (minetest.settings:get("minertrade.salary.enabled") ~= "false"),
|
||||||
|
value = tonumber(minetest.settings:get("minertrade.salary.value") or 1),
|
||||||
|
intervalcheck = tonumber(minetest.settings:get("minertrade.salary.intervalcheck") or 1),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
--dofile(modMinerTrade.modPath.."/config.lua") -- <== Antes de carregar tudo!
|
--dofile(modMinerTrade.modPath.."/config.lua") -- <== Antes de carregar tudo!
|
||||||
|
@ -18,14 +24,13 @@ dofile(modMinerTrade.modPath.."/item_dispensing_machine.lua")
|
||||||
dofile(modMinerTrade.modPath.."/item_atm.lua")
|
dofile(modMinerTrade.modPath.."/item_atm.lua")
|
||||||
--dofile(modMinerTrade.modPath.."/item_strongbox.lua")
|
--dofile(modMinerTrade.modPath.."/item_strongbox.lua")
|
||||||
--dofile(modMinerTrade.modPath.."/item_strongbox_old.lua")
|
--dofile(modMinerTrade.modPath.."/item_strongbox_old.lua")
|
||||||
--dofile(modMinerTrade.modPath.."/item_miner_cash.lua")
|
dofile(modMinerTrade.modPath.."/item_minercash.lua")
|
||||||
-- --dofile(path.."/item_rent_door.lua")
|
--dofile(path.."/item_rent_door.lua")
|
||||||
--dofile(modMinerTrade.modPath.."/payday.lua")
|
dofile(modMinerTrade.modPath.."/api_payday.lua")
|
||||||
--dofile(modMinerTrade.modPath.."/commands.lua")
|
--dofile(modMinerTrade.modPath.."/commands.lua")
|
||||||
|
|
||||||
if modMinerTrade.doAtmLoad ~= nil then
|
--if modMinerTrade.doBankLoad ~= nil then
|
||||||
modMinerTrade.doAtmLoad()
|
modMinerTrade.doBankLoad()
|
||||||
end
|
--end
|
||||||
|
|
||||||
|
|
||||||
minetest.log('action',"["..modMinerTrade.modName:upper().."] Loaded!")
|
minetest.log('action',"["..modMinerTrade.modName:upper().."] Loaded!")
|
||||||
|
|
131
item_atm.lua
131
item_atm.lua
|
@ -1,30 +1,49 @@
|
||||||
modMinerTrade.doBankSave = function()
|
|
||||||
modMinerTrade.debug("modMinerTrade.doBankSave() >>> "..modMinerTrade.urlTabela)
|
|
||||||
local file = io.open(modMinerTrade.urlTabela, "w")
|
modMinerTrade.getUrlDatabase = function()
|
||||||
if file then
|
--Extensao '.tbl' ou '.db'
|
||||||
file:write(
|
local extension = ""
|
||||||
minetest.encode_base64(minetest.serialize(modMinerTrade.bank))
|
if modMinerTrade.save_compressed then
|
||||||
--minetest.serialize(modMinerTrade.bank)
|
extension = ".db64"
|
||||||
)
|
|
||||||
file:close()
|
|
||||||
--minetest.log('action',"[MINERTRADE] Banco de dados salvo !")
|
|
||||||
else
|
else
|
||||||
minetest.log('error',"[MINERTRADE:ERRO] "..modMinerTrade.translate("The file '%s' is not in table format!"):format(modMinerTrade.urlTabela))
|
extension = ".tbl"
|
||||||
|
end
|
||||||
|
return minetest.get_worldpath().."/minertrade"..extension
|
||||||
|
end
|
||||||
|
|
||||||
|
modMinerTrade.doBankSave = function()
|
||||||
|
--modMinerTrade.debug("modMinerTrade.doBankSave() >>> "..modMinerTrade.getUrlDatabase())
|
||||||
|
local file = io.open(modMinerTrade.getUrlDatabase(), "w")
|
||||||
|
if file then
|
||||||
|
local content = minetest.serialize(modMinerTrade.bank)
|
||||||
|
--modMinerTrade.debug("modMinerTrade.doBankSave() >>> content = "..dump(content))
|
||||||
|
if modMinerTrade.save_compressed then
|
||||||
|
content = minetest.encode_base64(content)
|
||||||
|
end
|
||||||
|
file:write(content)
|
||||||
|
file:close()
|
||||||
|
minetest.log('action',"[MINERTRADE] Banco de dados salvo !")
|
||||||
|
else
|
||||||
|
minetest.log('error',"[MINERTRADE:ERRO] "..modMinerTrade.translate("The file '%s' is not in table format!"):format(modMinerTrade.getUrlDatabase()))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
modMinerTrade.doBankLoad = function()
|
modMinerTrade.doBankLoad = function()
|
||||||
modMinerTrade.debug("modMinerTrade.doBankSave() >>> "..modMinerTrade.urlTabela)
|
modMinerTrade.debug("modMinerTrade.doBankSave() >>> "..modMinerTrade.getUrlDatabase())
|
||||||
local file = io.open(modMinerTrade.urlTabela, "r")
|
local file = io.open(modMinerTrade.getUrlDatabase(), "r")
|
||||||
if file then
|
if file then
|
||||||
modMinerTrade.bank = minetest.decode_base64(minetest.deserialize(file:read("*all")))
|
if modMinerTrade.save_compressed then
|
||||||
--modMinerTrade.bank = minetest.deserialize(file:read("*all"))
|
modMinerTrade.bank = minetest.deserialize(minetest.decode_base64(file:read("*all")))
|
||||||
|
else
|
||||||
|
modMinerTrade.bank = minetest.deserialize(file:read("*all"))
|
||||||
|
end
|
||||||
|
modMinerTrade.debug("modMinerTrade.doBankLoad() >>> modMinerTrade.bank = "..dump(modMinerTrade.bank))
|
||||||
file:close()
|
file:close()
|
||||||
if not modMinerTrade.bank or type(modMinerTrade.bank) ~= "table" then
|
if not modMinerTrade.bank or type(modMinerTrade.bank) ~= "table" then
|
||||||
minetest.log('error',"[MINERTRADE:ERRO] "..modMinerTrade.translate("The file '%s' is not in table format!"):format(modMinerTrade.urlTabela))
|
minetest.log('error',"[MINERTRADE:ERRO] "..modMinerTrade.translate("The file '%s' is not in table format!"):format(modMinerTrade.getUrlDatabase()))
|
||||||
return { }
|
return { }
|
||||||
else
|
else
|
||||||
minetest.log('action',"[MINERTRADE] "..modMinerTrade.translate("Opening '%s'!"):format(modMinerTrade.urlTabela))
|
minetest.log('action',"[MINERTRADE] "..modMinerTrade.translate("Opening '%s'!"):format(modMinerTrade.getUrlDatabase()))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -42,7 +61,9 @@ modMinerTrade.createAcount = function(playername)
|
||||||
modMinerTrade.bank.player[playername] = {
|
modMinerTrade.bank.player[playername] = {
|
||||||
acount_created = os.date("%Y/%b/%d %Hh:%Mm:%Ss"),
|
acount_created = os.date("%Y/%b/%d %Hh:%Mm:%Ss"),
|
||||||
balance = 0,
|
balance = 0,
|
||||||
|
statement = { }
|
||||||
}
|
}
|
||||||
|
modMinerTrade.bank.acounts = modMinerTrade.bank.acounts + 1
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
return false
|
return false
|
||||||
|
@ -57,6 +78,33 @@ modMinerTrade.getBalance = function(playername)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
modMinerTrade.addBalance = function(playername, value)
|
||||||
|
if value ~= nil and type(value) == "number" and value ~= 0 then
|
||||||
|
if modMinerTrade.isExistAcount(playername) then
|
||||||
|
modMinerTrade.bank.player[playername].balance = modMinerTrade.bank.player[playername].balance + value
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
modMinerTrade.addStatement = function(playername, value, description)
|
||||||
|
if value ~= nil and type(value) == "number" and value ~= 0 then
|
||||||
|
if modMinerTrade.isExistAcount(playername) then
|
||||||
|
table.insert(
|
||||||
|
modMinerTrade.bank.player[playername].statement,
|
||||||
|
{
|
||||||
|
when = os.date("%Y/%b/%d %Hh:%Mm:%Ss"),
|
||||||
|
value = value,
|
||||||
|
description = description,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
modMinerTrade.showAtm = {
|
modMinerTrade.showAtm = {
|
||||||
frmMain = function(playername) --FORMULÁRIO: PRINCIPAL / RAIZ
|
frmMain = function(playername) --FORMULÁRIO: PRINCIPAL / RAIZ
|
||||||
local formspec = "size[15,10]"
|
local formspec = "size[15,10]"
|
||||||
|
@ -78,7 +126,7 @@ modMinerTrade.showAtm = {
|
||||||
.. "button[0.25,5.75;4.00,0.5;btnSetings;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("SETTINGS"))).."]" --Se quer ou não uma senha, se quer receber uma carta quando houver uma nova movimentacao.
|
.. "button[0.25,5.75;4.00,0.5;btnSetings;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("SETTINGS"))).."]" --Se quer ou não uma senha, se quer receber uma carta quando houver uma nova movimentacao.
|
||||||
.."button_exit[0.25,6.50;4.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
.."button_exit[0.25,6.50;4.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
||||||
|
|
||||||
.."box" .."[5.0,0.25;9.5,9.5;#000000]"
|
--.."box" .."[5.0,0.25;9.5,9.5;#000000]"
|
||||||
.."background[5.0,0.25;9.5,9.5;text_atm_front.png]"
|
.."background[5.0,0.25;9.5,9.5;text_atm_front.png]"
|
||||||
|
|
||||||
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
||||||
|
@ -105,7 +153,7 @@ modMinerTrade.showAtm = {
|
||||||
--.."button_exit[0,3.0;4,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
--.."button_exit[0,3.0;4,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
||||||
|
|
||||||
.. "box[0.00,0.10;4.50,9.5;#000000]"
|
.. "box[0.00,0.10;4.50,9.5;#000000]"
|
||||||
.. "button[0.25,0.50;4.00,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BALANCE"))).."]"
|
.. "button[0.25,0.50;4.00,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
|
||||||
--.. "button[0.25,1.25;4.00,0.5;btnStatement;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("STATEMENT"))).."]"
|
--.. "button[0.25,1.25;4.00,0.5;btnStatement;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("STATEMENT"))).."]"
|
||||||
--.. "button[0.25,2.00;4.00,0.5;btnDeposits;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("DEPOSITS"))).."]"
|
--.. "button[0.25,2.00;4.00,0.5;btnDeposits;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("DEPOSITS"))).."]"
|
||||||
--.. "button[0.25,2.75;4.00,0.5;btnWithdrawals;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("WITHDRAWALS"))).."]" -- [DINHEIRO E CHECK]
|
--.. "button[0.25,2.75;4.00,0.5;btnWithdrawals;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("WITHDRAWALS"))).."]" -- [DINHEIRO E CHECK]
|
||||||
|
@ -115,10 +163,12 @@ modMinerTrade.showAtm = {
|
||||||
--.. "button[0.25,5.75;4.00,0.5;btnSetings;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("SETTINGS"))).."]" --Se quer ou não uma senha, se quer receber uma carta quando houver uma nova movimentacao.
|
--.. "button[0.25,5.75;4.00,0.5;btnSetings;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("SETTINGS"))).."]" --Se quer ou não uma senha, se quer receber uma carta quando houver uma nova movimentacao.
|
||||||
.."button_exit[0.25,6.50;4.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
.."button_exit[0.25,6.50;4.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
||||||
|
|
||||||
.."background[5.00,0.25;9.5,9.5;text_atm_front.png]"
|
.. "box[5.0,0.25;9.5,9.5;#00000088]"
|
||||||
.. "box[5.00,0.25;9.5,9.5;#000000CC]"
|
.."background[5.0,0.25;9.5,9.5;text_atm_front.png]"
|
||||||
.. "label[5.25,0.50;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":")).."]"
|
|
||||||
.. "label[5.25,2.50;"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
|
--.. "label[5.25,0.50;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":")).."]"
|
||||||
|
--.. "label[5.25,2.50;"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
|
||||||
|
.. "textarea[5.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
|
||||||
|
|
||||||
|
|
||||||
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
||||||
|
@ -163,19 +213,6 @@ end
|
||||||
|
|
||||||
--###############################################################################################################
|
--###############################################################################################################
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(sender, formname, fields)
|
|
||||||
return modMinerTrade.onReceiveFields(sender, formname, fields)
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_leaveplayer(function(player)
|
|
||||||
modMinerTrade.doBankSave()
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_shutdown(function()
|
|
||||||
modMinerTrade.doBankSave()
|
|
||||||
minetest.log('action',"[STRONGBOX] "..modMinerTrade.translate("Saving bank from all players in the file '%s'!"):format(modMinerTrade.urlTabela))
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_node("minertrade:atm", {
|
minetest.register_node("minertrade:atm", {
|
||||||
description = modMinerTrade.translate("PUBLIC ATM\n* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map."),
|
description = modMinerTrade.translate("PUBLIC ATM\n* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map."),
|
||||||
--inventory_image = minetest.inventorycube("text_atm_front_1.png"),
|
--inventory_image = minetest.inventorycube("text_atm_front_1.png"),
|
||||||
|
@ -292,7 +329,7 @@ minetest.register_node("minertrade:atm", {
|
||||||
):format(opentime-now)
|
):format(opentime-now)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
modMinerTrade.debug("on_rightclick() >>> "..modMinerTrade.urlTabela)
|
--modMinerTrade.debug("on_rightclick() >>> "..modMinerTrade.getUrlDatabase())
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -308,3 +345,23 @@ minetest.register_craft({
|
||||||
--]]
|
--]]
|
||||||
minetest.register_alias("atm","minertrade:atm")
|
minetest.register_alias("atm","minertrade:atm")
|
||||||
minetest.register_alias(modMinerTrade.translate("atm"),"minertrade:atm")
|
minetest.register_alias(modMinerTrade.translate("atm"),"minertrade:atm")
|
||||||
|
|
||||||
|
minetest.register_on_player_receive_fields(function(sender, formname, fields)
|
||||||
|
return modMinerTrade.onReceiveFields(sender, formname, fields)
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
local playername = player:get_player_name()
|
||||||
|
if not modMinerTrade.isExistAcount(playername) then
|
||||||
|
modMinerTrade.createAcount(playername)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_leaveplayer(function(player)
|
||||||
|
modMinerTrade.doBankSave()
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_shutdown(function()
|
||||||
|
modMinerTrade.doBankSave()
|
||||||
|
minetest.log('action',"[STRONGBOX] "..modMinerTrade.translate("Saving bank from all players in the file '%s'!"):format(modMinerTrade.getUrlDatabase()))
|
||||||
|
end)
|
||||||
|
|
256
item_minercash.lua
Normal file
256
item_minercash.lua
Normal file
|
@ -0,0 +1,256 @@
|
||||||
|
|
||||||
|
|
||||||
|
--#########################################################################################
|
||||||
|
|
||||||
|
minetest.register_craftitem("minertrade:minercoin", {
|
||||||
|
description = core.colorize("#00FF00",
|
||||||
|
modMinerTrade.translate("MINERCOIN")
|
||||||
|
).."\n* "..modMinerTrade.translate("Basic craftable minercash with gold and steel."),
|
||||||
|
inventory_image = "obj_minecoin.png",
|
||||||
|
stack_max=9, --Acumula 9 por slot
|
||||||
|
groups = {cash=1, trade=1, coin=1},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:minercoin",
|
||||||
|
recipe = {
|
||||||
|
{"default:gold_ingot","default:steel_ingot","default:gold_ingot"},
|
||||||
|
},
|
||||||
|
--https://github.com/minetest/minetest_game/blob/master/mods/default/craftitems.lua
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "default:gold_ingot",
|
||||||
|
recipe = "minertrade:minercoin",
|
||||||
|
cooktime = 5,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_alias(
|
||||||
|
modMinerTrade.translate("minercoin"),
|
||||||
|
"minertrade:minercoin"
|
||||||
|
)
|
||||||
|
|
||||||
|
--##########################################################################################################
|
||||||
|
|
||||||
|
minetest.register_craftitem("minertrade:minermoney_blue", {
|
||||||
|
description = core.colorize("#00FF00",
|
||||||
|
modMinerTrade.translate("BLUE MINERMONEY")
|
||||||
|
).."\n* "..modMinerTrade.translate("Equals %02d minercash."):format(9),
|
||||||
|
inventory_image = "obj_minemoney.png^[multiply:#0088FF",
|
||||||
|
stack_max=9, --Acumula 9 por slot
|
||||||
|
groups = {cash=9, trade=1, money=1},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:minermoney_blue",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:minercoin", "minertrade:minercoin", "minertrade:minercoin"},
|
||||||
|
{"minertrade:minercoin", "minertrade:minercoin", "minertrade:minercoin"},
|
||||||
|
{"minertrade:minercoin", "minertrade:minercoin", "minertrade:minercoin"}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:minercoin 9",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:minermoney_blue"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_alias("minermoney_blue", "minertrade:minermoney_blue")
|
||||||
|
minetest.register_alias("minermoneyblue", "minertrade:minermoney_blue")
|
||||||
|
minetest.register_alias("minercash9", "minertrade:minermoney_blue")
|
||||||
|
|
||||||
|
--##########################################################################################################
|
||||||
|
|
||||||
|
minetest.register_craftitem("minertrade:minermoney_green", {
|
||||||
|
description = core.colorize("#00FF00",
|
||||||
|
modMinerTrade.translate("GREEN MINERMONEY")
|
||||||
|
).."\n* "..modMinerTrade.translate("Equals %02d minercash."):format(81),
|
||||||
|
inventory_image = "obj_minemoney.png",
|
||||||
|
stack_max=9, --Acumula 9 por slot
|
||||||
|
groups = {cash=81, trade=1, money=1},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:minermoney_green",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:minermoney_blue", "minertrade:minermoney_blue", "minertrade:minermoney_blue"},
|
||||||
|
{"minertrade:minermoney_blue", "minertrade:minermoney_blue", "minertrade:minermoney_blue"},
|
||||||
|
{"minertrade:minermoney_blue", "minertrade:minermoney_blue", "minertrade:minermoney_blue"}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:minermoney_blue 9",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:minermoney_green"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_alias("minermoney_green", "minertrade:minermoney_green")
|
||||||
|
minetest.register_alias("minermoneygreen", "minertrade:minermoney_green")
|
||||||
|
minetest.register_alias("minercash81", "minertrade:minermoney_green")
|
||||||
|
|
||||||
|
--##########################################################################################################
|
||||||
|
|
||||||
|
minetest.register_craftitem("minertrade:minermoney_yellow", {
|
||||||
|
description = core.colorize("#00FF00",
|
||||||
|
modMinerTrade.translate("YELLOW MINERMONEY")
|
||||||
|
).."\n* "..modMinerTrade.translate("Equals %02d minercash."):format(729),
|
||||||
|
inventory_image = "obj_minemoney.png^[multiply:#FFFF00",
|
||||||
|
stack_max=9, --Acumula 9 por slot
|
||||||
|
groups = {cash=729, trade=1, money=1},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:minermoney_yellow",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:minermoney_green", "minertrade:minermoney_green", "minertrade:minermoney_green"},
|
||||||
|
{"minertrade:minermoney_green", "minertrade:minermoney_green", "minertrade:minermoney_green"},
|
||||||
|
{"minertrade:minermoney_green", "minertrade:minermoney_green", "minertrade:minermoney_green"}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:minermoney_green 9",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:minermoney_yellow"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_alias("minermoney_yellow", "minertrade:minermoney_yellow")
|
||||||
|
minetest.register_alias("minermoneyyellow", "minertrade:minermoney_yellow")
|
||||||
|
minetest.register_alias("minercash729", "minertrade:minermoney_yellow")
|
||||||
|
|
||||||
|
--##########################################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_craftitem("minertrade:checkbank", {
|
||||||
|
description = core.colorize("#00FF00",
|
||||||
|
modMinerTrade.translate("BANK CHECK")
|
||||||
|
).."\n* "..modMinerTrade.translate("Equivalent to as much minercash as your creator wants.."),
|
||||||
|
inventory_image = "obj_bank_check.png",
|
||||||
|
stack_max=9, --Acumula 9 por slot
|
||||||
|
groups = {cash=0, trade=1},
|
||||||
|
})
|
||||||
|
|
||||||
|
--[[
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:checkbank",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:minermoney", "minertrade:minermoney", "minertrade:minermoney"},
|
||||||
|
{"minertrade:minermoney", "minertrade:minermoney", "minertrade:minermoney"},
|
||||||
|
{"minertrade:minermoney", "minertrade:minermoney", "minertrade:minermoney"}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
--]]
|
||||||
|
|
||||||
|
--[[
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:minermoney_green 1",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:checkbank"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
--]]
|
||||||
|
|
||||||
|
--[[
|
||||||
|
minetest.register_alias(
|
||||||
|
modMinerTrade.translate("checkbank"),
|
||||||
|
"minertrade:checkbank"
|
||||||
|
)
|
||||||
|
--]]
|
||||||
|
|
||||||
|
--##########################################################################################################
|
||||||
|
|
||||||
|
minetest.register_craftitem("minertrade:creditcard", {
|
||||||
|
description = modMinerTrade.translate("CREDIT CARD (Unowned)")
|
||||||
|
.."\n* "..modMinerTrade.translate("Allows you to access the bank account of the credit card owner anywhere in the world."),
|
||||||
|
inventory_image = "obj_credit_card.png",
|
||||||
|
--stack_max=9, --Acumula 9 por slot
|
||||||
|
groups = {cash=0, trade=1},
|
||||||
|
--[[
|
||||||
|
on_use = function(itemstack, player)
|
||||||
|
local playername = player:get_player_name()
|
||||||
|
local meta = itemstack:get_meta()
|
||||||
|
local old_data = minetest.deserialize(itemstack:get_metadata())
|
||||||
|
if old_data then
|
||||||
|
meta:from_table({ fields = old_data })
|
||||||
|
end
|
||||||
|
local tmpDatabase = meta:to_table().fields
|
||||||
|
|
||||||
|
if type(tmpDatabase.ownername)~="string" or tmpDatabase.ownername=="" then
|
||||||
|
tmpDatabase.ownername = playername
|
||||||
|
tmpDatabase.description = modMinerTrade.translate("CREDIT CARD of '%s'"):format(tmpDatabase.ownername)
|
||||||
|
local invPlayer = player:get_inventory()
|
||||||
|
local new_stack
|
||||||
|
local count = itemstack:get_count()
|
||||||
|
itemstack:set_count(count - 1)
|
||||||
|
new_stack = ItemStack("minertrade:creditcard")
|
||||||
|
new_stack:get_meta():from_table({ fields = tmpDatabase })
|
||||||
|
if invPlayer:room_for_item("main", new_stack) then
|
||||||
|
invPlayer:add_item("main", new_stack)
|
||||||
|
else
|
||||||
|
minetest.add_item(player:get_pos(), new_stack)
|
||||||
|
end
|
||||||
|
minetest.chat_send_player(playername,
|
||||||
|
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
|
||||||
|
modMinerTrade.showInventory(
|
||||||
|
player,
|
||||||
|
tmpDatabase.ownername,
|
||||||
|
modMinerTrade.translate("ACCOUNT BANK of '%s':"):format(tmpDatabase.ownername)
|
||||||
|
)
|
||||||
|
return itemstack
|
||||||
|
end,
|
||||||
|
--]]
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:creditcard",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:checkbank", "minertrade:checkbank", "minertrade:checkbank"},
|
||||||
|
{"minertrade:checkbank", "minertrade:checkbank", "minertrade:checkbank"},
|
||||||
|
{"minertrade:checkbank", "minertrade:checkbank", "minertrade:checkbank"}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:checkbank 9",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:creditcard"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_alias(
|
||||||
|
modMinerTrade.translate("creditcard"),
|
||||||
|
"minertrade:creditcard"
|
||||||
|
)
|
||||||
|
|
||||||
|
--##########################################################################################################
|
||||||
|
|
||||||
|
minetest.register_craftitem("minertrade:minermoney", {
|
||||||
|
description = core.colorize("#00FF00",
|
||||||
|
modMinerTrade.translate("OBSOLETE MONEY")
|
||||||
|
).."\n* "..modMinerTrade.translate("You can make money from it."),
|
||||||
|
inventory_image = "obj_moneybag.png",
|
||||||
|
stack_max=99, --Acumula 9 por slot
|
||||||
|
groups = {cash=0, trade=0, money=0},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "minertrade:minercoin 9",
|
||||||
|
recipe = {
|
||||||
|
{"minertrade:minermoney"},
|
||||||
|
},
|
||||||
|
})
|
|
@ -1 +0,0 @@
|
||||||
return {["player"] = {}, ["acounts"] = 0}
|
|
|
@ -1,21 +1,26 @@
|
||||||
# MINERTRADE SETTINGS
|
# MINERTRADE SETTINGS
|
||||||
# Only players with "salary" privilege received a daily payment.
|
# Only players with "salary" privilege received a daily payment.
|
||||||
|
|
||||||
|
# MINERTRADE:
|
||||||
|
# Whether the database will be BASE64 compressed.
|
||||||
|
# Default: true
|
||||||
|
minertrade.save_compressed (Database Compressed) bool true
|
||||||
|
|
||||||
# MINERTRADE:
|
# MINERTRADE:
|
||||||
# If server will reward the player daily..
|
# If server will reward the player daily..
|
||||||
# Default: true
|
# Default: true
|
||||||
minertrade.payday.enabled (Daily Salary Enabled) bool true
|
minertrade.salary.enabled (Daily Salary Enabled) bool true
|
||||||
|
|
||||||
# MINERTRADE:
|
# MINERTRADE:
|
||||||
# Value of the prize minercash that each player will receive at the end of the virtual day.
|
# Value of the prize minercash that each player will receive at the end of the virtual day.
|
||||||
# Default: 1 | Min: 1
|
# Default: 1 | Min: 1
|
||||||
minertrade.payday.value (Daily Salary Value) int 1 1
|
minertrade.salary.value (Daily Salary Value) int 1 1
|
||||||
|
|
||||||
# MINERTRADE:
|
# MINERTRADE:
|
||||||
# Time interval in seconds to check for rewardable players.
|
# Time interval in seconds to check for rewardable players.
|
||||||
# WARNING: Decreasing this value too much can cause server lag.
|
# WARNING: Decreasing this value too much can cause server lag.
|
||||||
# Deafault: 60 | Min: 1
|
# Deafault: 60 | Min: 1
|
||||||
minertrade.payday.interval (Interval Check Salary) int 60 1
|
minertrade.salay.intervalcheck (Interval Check Salary) int 60 1
|
||||||
|
|
||||||
# MINERTRADE:
|
# MINERTRADE:
|
||||||
# Allows you to print the debug information of this mod on the screen.
|
# Allows you to print the debug information of this mod on the screen.
|
||||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Loading…
Add table
Reference in a new issue