mirror of
https://gitlab.com/lunovox/minertrade.git
synced 2025-03-21 16:01:22 +00:00
[feat] add The Governmemt Menu
This commit is contained in:
parent
791b6ec14d
commit
8d35a41e9c
2 changed files with 88 additions and 39 deletions
|
@ -40,6 +40,53 @@ modMinerTrade.salary = {
|
||||||
end
|
end
|
||||||
return tonumber(modMinerTrade.salary.intervalcheck)
|
return tonumber(modMinerTrade.salary.intervalcheck)
|
||||||
end,
|
end,
|
||||||
|
doPay = function()
|
||||||
|
local players = minetest.get_connected_players()
|
||||||
|
if #players >= 1 then
|
||||||
|
if modMinerTrade.bank.last_pay ~= minetest.get_day_count() then
|
||||||
|
modMinerTrade.bank.last_pay = minetest.get_day_count()
|
||||||
|
local valueSalary = modMinerTrade.salary.getValue()
|
||||||
|
local description = modMinerTrade.translate("The Government deposited the %2d° salary in your bank account!"):format(minetest.get_day_count())
|
||||||
|
local payedPeoples = 0
|
||||||
|
for _, player in ipairs(players) do
|
||||||
|
local playername = player:get_player_name()
|
||||||
|
if minetest.get_player_privs(playername).salary then
|
||||||
|
if modMinerTrade.isExistAcount(playername) then
|
||||||
|
local publicBalance = modMinerTrade.getBalance("THE GOVERNMENT")
|
||||||
|
local colorTitle = ""
|
||||||
|
if publicBalance >= valueSalary then
|
||||||
|
payedPeoples = payedPeoples + 1
|
||||||
|
modMinerTrade.addBalance("THE GOVERNMENT", 0 - valueSalary)
|
||||||
|
modMinerTrade.addBalance(playername, valueSalary)
|
||||||
|
modMinerTrade.addStatement(playername, valueSalary, description)
|
||||||
|
colorTitle = "#00FF00"
|
||||||
|
modMinerTrade.doSoundPlayer(playername, "sfx_cash_register", 5)
|
||||||
|
else
|
||||||
|
colorTitle = "#FF0000"
|
||||||
|
modMinerTrade.doSoundPlayer(playername, "sfx_failure", 5)
|
||||||
|
description = modMinerTrade.translate("The Government did not have enough balance to deposit the %2dth salary in its bank account!"):format(minetest.get_day_count())
|
||||||
|
end
|
||||||
|
minetest.chat_send_player(
|
||||||
|
playername,
|
||||||
|
core.colorize(colorTitle,
|
||||||
|
"["..modMinerTrade.translate("THE GOVERNMENT").."]: "
|
||||||
|
)..description
|
||||||
|
)
|
||||||
|
--else
|
||||||
|
--modMinerTrade.debug("api_payday.lua >>> "..playername.." sem conta!")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end -- Final off for _, player in ipairs(players) do
|
||||||
|
if payedPeoples >= 1 then
|
||||||
|
modMinerTrade.addStatement("THE GOVERNMENT", 0 - (payedPeoples * valueSalary),
|
||||||
|
modMinerTrade.translate("Daily Bonus Payment for %02d players online!"):format(payedPeoples)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
minetest.log('action',"[MINERTRADE] "..description)
|
||||||
|
modMinerTrade.doBankSave()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
minetest.after(3.5, function()
|
minetest.after(3.5, function()
|
||||||
|
@ -49,34 +96,10 @@ minetest.after(3.5, function()
|
||||||
modMinerTrade.salary.timer = modMinerTrade.salary.timer + dtime
|
modMinerTrade.salary.timer = modMinerTrade.salary.timer + dtime
|
||||||
if modMinerTrade.salary.timer >= modMinerTrade.salary.getIntervalCheck() then
|
if modMinerTrade.salary.timer >= modMinerTrade.salary.getIntervalCheck() then
|
||||||
modMinerTrade.salary.timer = 0
|
modMinerTrade.salary.timer = 0
|
||||||
local players = minetest.get_connected_players()
|
modMinerTrade.salary.doPay()
|
||||||
if #players >= 1 then
|
|
||||||
if modMinerTrade.bank.last_pay ~= minetest.get_day_count() then
|
|
||||||
modMinerTrade.bank.last_pay = minetest.get_day_count()
|
|
||||||
local description = modMinerTrade.translate("The city hall deposited the %2d° salary in your bank account!"):format(minetest.get_day_count())
|
|
||||||
for _, player in ipairs(players) do
|
|
||||||
local playername = player:get_player_name()
|
|
||||||
if minetest.get_player_privs(playername).salary then
|
|
||||||
if modMinerTrade.isExistAcount(playername) then
|
|
||||||
local value = modMinerTrade.salary.getValue()
|
|
||||||
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
|
|
||||||
minetest.log('action',"[MINERTRADE] "..description)
|
|
||||||
modMinerTrade.doBankSave()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
48
item_atm.lua
48
item_atm.lua
|
@ -92,6 +92,7 @@ modMinerTrade.createAcount = function(playername)
|
||||||
}
|
}
|
||||||
--modMinerTrade.bank.player[playername].account_created
|
--modMinerTrade.bank.player[playername].account_created
|
||||||
modMinerTrade.bank.accounts = modMinerTrade.bank.accounts + 1
|
modMinerTrade.bank.accounts = modMinerTrade.bank.accounts + 1
|
||||||
|
modMinerTrade.doBankSave()
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
return false
|
return false
|
||||||
|
@ -344,6 +345,18 @@ modMinerTrade.showAccountBank = {
|
||||||
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
||||||
modMinerTrade.showAccountBank.frmMain(playername)
|
modMinerTrade.showAccountBank.frmMain(playername)
|
||||||
end,
|
end,
|
||||||
|
--[[ ]]
|
||||||
|
inPublicAccess = function(playername) --
|
||||||
|
local accountname = "THE GOVERNMENT"
|
||||||
|
if not modMinerTrade.isExistAcount(accountname) then
|
||||||
|
modMinerTrade.createAcount(accountname)
|
||||||
|
end
|
||||||
|
modMinerTrade.bank.player[playername].focused_accountname = accountname
|
||||||
|
modMinerTrade.bank.player[playername].focused_accountmode = "public_access"
|
||||||
|
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
||||||
|
modMinerTrade.showAccountBank.frmMain(playername)
|
||||||
|
end,
|
||||||
|
--]]
|
||||||
frmMain = function(playername) --FORMULÁRIO: PRINCIPAL / RAIZ
|
frmMain = function(playername) --FORMULÁRIO: PRINCIPAL / RAIZ
|
||||||
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
||||||
local accountmode = modMinerTrade.bank.player[playername].focused_accountmode
|
local accountmode = modMinerTrade.bank.player[playername].focused_accountmode
|
||||||
|
@ -358,14 +371,20 @@ modMinerTrade.showAccountBank = {
|
||||||
.. "box[0.00,0.10;5.50,9.5;#000000]"
|
.. "box[0.00,0.10;5.50,9.5;#000000]"
|
||||||
.. "button[0.25,0.50;5.00,0.5;btnBalance;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BALANCE"))).."]"
|
.. "button[0.25,0.50;5.00,0.5;btnBalance;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BALANCE"))).."]"
|
||||||
.. "button[0.25,1.25;5.00,0.5;btnStatement;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("STATEMENT"))).."]"
|
.. "button[0.25,1.25;5.00,0.5;btnStatement;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("STATEMENT"))).."]"
|
||||||
.. "button[0.25,3.50;5.00,0.5;btnTransfers;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("TRANSFERS"))).."]"
|
if type(accountmode) == "string" and ( --Aacesso público à contas públicas não tem transferência.
|
||||||
if
|
accountmode == "atm"
|
||||||
accountmode~=nil
|
or accountmode == "online"
|
||||||
and type(accountmode) == "string"
|
)
|
||||||
and accountmode == "atm"
|
|
||||||
then
|
then
|
||||||
|
formspec = formspec
|
||||||
|
.. "button[0.25,3.50;5.00,0.5;btnTransfers;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("TRANSFERS"))).."]"
|
||||||
|
end
|
||||||
|
if type(accountmode) == "string" and (accountmode == "atm" or accountmode == "public_access") then
|
||||||
formspec = formspec
|
formspec = formspec
|
||||||
.. "button[0.25,2.00;5.00,0.5;btnDeposits;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("DEPOSITS"))).."]"
|
.. "button[0.25,2.00;5.00,0.5;btnDeposits;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("DEPOSITS"))).."]"
|
||||||
|
end
|
||||||
|
if type(accountmode) == "string" and accountmode == "atm" then
|
||||||
|
formspec = formspec
|
||||||
.. "button[0.25,2.75;5.00,0.5;btnWithdrawals;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("WITHDRAWALS"))).."]" -- [DINHEIRO E CHECK]
|
.. "button[0.25,2.75;5.00,0.5;btnWithdrawals;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("WITHDRAWALS"))).."]" -- [DINHEIRO E CHECK]
|
||||||
end
|
end
|
||||||
if minetest.get_player_privs(playername).developer then
|
if minetest.get_player_privs(playername).developer then
|
||||||
|
@ -375,6 +394,10 @@ modMinerTrade.showAccountBank = {
|
||||||
.. "button[0.25,5.75;5.00,0.5;btnLottery;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOTTERY"))).."]" --Lotérica
|
.. "button[0.25,5.75;5.00,0.5;btnLottery;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOTTERY"))).."]" --Lotérica
|
||||||
.. "button[0.25,6.50;5.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,6.50;5.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.
|
||||||
end
|
end
|
||||||
|
if type(accountmode) == "string" and accountmode ~= "public_access" then
|
||||||
|
formspec = formspec
|
||||||
|
.."button[0.25,6.50;5.00,0.5;btnPublicAccess;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("THE GOVERNMENT"))).."]"
|
||||||
|
end
|
||||||
formspec = formspec
|
formspec = formspec
|
||||||
.."button_exit[0.25,7.25;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
.."button_exit[0.25,7.25;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
||||||
|
|
||||||
|
@ -550,7 +573,7 @@ modMinerTrade.showAccountBank = {
|
||||||
end,
|
end,
|
||||||
frmGiveCash = function(playername, txtValue, msgDetails) --FORMULÁRIO: SAQUE EM DINHEIRO
|
frmGiveCash = function(playername, txtValue, msgDetails) --FORMULÁRIO: SAQUE EM DINHEIRO
|
||||||
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
||||||
--modMinerTrade.debug("modMinerTrade.showAccountBank.frmGiveCash() >>> playername = "..playername.." | txtValue = "..dump(txtValue).." | msgDetails = "..dump(msgDetails))
|
modMinerTrade.debug("modMinerTrade.showAccountBank.frmGiveCash() >>> playername = "..playername.." | txtValue = "..dump(txtValue).." | msgDetails = "..dump(msgDetails))
|
||||||
|
|
||||||
local msgBalance = ""
|
local msgBalance = ""
|
||||||
if modMinerTrade.isExistAcount(accountname) then
|
if modMinerTrade.isExistAcount(accountname) then
|
||||||
|
@ -603,7 +626,7 @@ modMinerTrade.showAccountBank = {
|
||||||
frmDeposits = function(playername) --FORMULÁRIO: DEPÓSITOS
|
frmDeposits = function(playername) --FORMULÁRIO: DEPÓSITOS
|
||||||
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
||||||
-- playername = player:get_player_name()
|
-- playername = player:get_player_name()
|
||||||
local newInv = minetest.create_detached_inventory("deposits_"..accountname, {
|
local newInv = minetest.create_detached_inventory("deposits_"..playername, {
|
||||||
|
|
||||||
-- Called when a player wants to move items inside the inventory
|
-- Called when a player wants to move items inside the inventory
|
||||||
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
||||||
|
@ -704,7 +727,7 @@ modMinerTrade.showAccountBank = {
|
||||||
.."label[7.00,3.00;"..minetest.formspec_escape(modMinerTrade.translate("ATM entrance"))..":]"
|
.."label[7.00,3.00;"..minetest.formspec_escape(modMinerTrade.translate("ATM entrance"))..":]"
|
||||||
.."image[9.00,3.35;2,2;obj_minercoin.png]"
|
.."image[9.00,3.35;2,2;obj_minercoin.png]"
|
||||||
.."image[10.50,3.75;1,1;gui_arrow.png^[transformR270]"
|
.."image[10.50,3.75;1,1;gui_arrow.png^[transformR270]"
|
||||||
.."list[detached:"..minetest.formspec_escape("deposits_"..accountname)..";deposit;11.50,3.75;1,1;]"
|
.."list[detached:"..minetest.formspec_escape("deposits_"..playername)..";deposit;11.50,3.75;1,1;]"
|
||||||
|
|
||||||
--.."button[3,2.0;2,1;exchange;"..minetest.formspec_escape(modMinerTrade.translate("DEPOSIT")).."]"
|
--.."button[3,2.0;2,1;exchange;"..minetest.formspec_escape(modMinerTrade.translate("DEPOSIT")).."]"
|
||||||
|
|
||||||
|
@ -900,6 +923,8 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
|
||||||
elseif fields.btnLoans ~= nil then
|
elseif fields.btnLoans ~= nil then
|
||||||
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
||||||
modMinerTrade.showAccountBank.frmLoanFunctions(playername)
|
modMinerTrade.showAccountBank.frmLoanFunctions(playername)
|
||||||
|
elseif fields.btnPublicAccess ~= nil then
|
||||||
|
modMinerTrade.showAccountBank.inPublicAccess(playername)
|
||||||
end
|
end
|
||||||
elseif formname == "frmAtmStatement" then
|
elseif formname == "frmAtmStatement" then
|
||||||
--modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> player = "..playername.." | formname = "..formname.." | fields = "..dump(fields))
|
--modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> player = "..playername.." | formname = "..formname.." | fields = "..dump(fields))
|
||||||
|
@ -930,8 +955,9 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
|
||||||
and tonumber(fields.txtValue) >= 1
|
and tonumber(fields.txtValue) >= 1
|
||||||
then
|
then
|
||||||
local myValue = fields.txtValue
|
local myValue = fields.txtValue
|
||||||
if modMinerTrade.isExistAcount(playername) then
|
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
||||||
local myBalance = modMinerTrade.getBalance(playername)
|
if modMinerTrade.isExistAcount(accountname) then
|
||||||
|
local myBalance = modMinerTrade.getBalance(accountname)
|
||||||
if tonumber(myValue) <= myBalance then
|
if tonumber(myValue) <= myBalance then
|
||||||
local player = minetest.get_player_by_name(playername)
|
local player = minetest.get_player_by_name(playername)
|
||||||
if player ~= nil and player:is_player() then
|
if player ~= nil and player:is_player() then
|
||||||
|
@ -983,7 +1009,7 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
|
||||||
):format(myBalance)
|
):format(myBalance)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
else
|
else --if modMinerTrade.isExistAcount(playername) then
|
||||||
modMinerTrade.doSoundPlayer(playername, "sfx_failure", 5)
|
modMinerTrade.doSoundPlayer(playername, "sfx_failure", 5)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue