mirror of
https://gitlab.com/lunovox/minertrade.git
synced 2025-03-15 05:31:20 +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
|
||||
return tonumber(modMinerTrade.salary.intervalcheck)
|
||||
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()
|
||||
|
@ -49,34 +96,10 @@ minetest.after(3.5, function()
|
|||
modMinerTrade.salary.timer = modMinerTrade.salary.timer + dtime
|
||||
if modMinerTrade.salary.timer >= modMinerTrade.salary.getIntervalCheck() 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.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
|
||||
modMinerTrade.salary.doPay()
|
||||
|
||||
|
||||
|
||||
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.accounts = modMinerTrade.bank.accounts + 1
|
||||
modMinerTrade.doBankSave()
|
||||
return true
|
||||
else
|
||||
return false
|
||||
|
@ -344,6 +345,18 @@ modMinerTrade.showAccountBank = {
|
|||
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
||||
modMinerTrade.showAccountBank.frmMain(playername)
|
||||
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
|
||||
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
||||
local accountmode = modMinerTrade.bank.player[playername].focused_accountmode
|
||||
|
@ -358,14 +371,20 @@ modMinerTrade.showAccountBank = {
|
|||
.. "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,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
|
||||
accountmode~=nil
|
||||
and type(accountmode) == "string"
|
||||
and accountmode == "atm"
|
||||
if type(accountmode) == "string" and ( --Aacesso público à contas públicas não tem transferência.
|
||||
accountmode == "atm"
|
||||
or accountmode == "online"
|
||||
)
|
||||
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
|
||||
.. "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]
|
||||
end
|
||||
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,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
|
||||
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
|
||||
.."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,
|
||||
frmGiveCash = function(playername, txtValue, msgDetails) --FORMULÁRIO: SAQUE EM DINHEIRO
|
||||
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 = ""
|
||||
if modMinerTrade.isExistAcount(accountname) then
|
||||
|
@ -603,7 +626,7 @@ modMinerTrade.showAccountBank = {
|
|||
frmDeposits = function(playername) --FORMULÁRIO: DEPÓSITOS
|
||||
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
||||
-- 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
|
||||
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"))..":]"
|
||||
.."image[9.00,3.35;2,2;obj_minercoin.png]"
|
||||
.."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")).."]"
|
||||
|
||||
|
@ -900,6 +923,8 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
|
|||
elseif fields.btnLoans ~= nil then
|
||||
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
||||
modMinerTrade.showAccountBank.frmLoanFunctions(playername)
|
||||
elseif fields.btnPublicAccess ~= nil then
|
||||
modMinerTrade.showAccountBank.inPublicAccess(playername)
|
||||
end
|
||||
elseif formname == "frmAtmStatement" then
|
||||
--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
|
||||
then
|
||||
local myValue = fields.txtValue
|
||||
if modMinerTrade.isExistAcount(playername) then
|
||||
local myBalance = modMinerTrade.getBalance(playername)
|
||||
local accountname = modMinerTrade.bank.player[playername].focused_accountname
|
||||
if modMinerTrade.isExistAcount(accountname) then
|
||||
local myBalance = modMinerTrade.getBalance(accountname)
|
||||
if tonumber(myValue) <= myBalance then
|
||||
local player = minetest.get_player_by_name(playername)
|
||||
if player ~= nil and player:is_player() then
|
||||
|
@ -983,7 +1009,7 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
|
|||
):format(myBalance)
|
||||
)
|
||||
end
|
||||
else
|
||||
else --if modMinerTrade.isExistAcount(playername) then
|
||||
modMinerTrade.doSoundPlayer(playername, "sfx_failure", 5)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue