Compare commits

...

80 commits

Author SHA1 Message Date
Lunovox
407b671e08 2024-12-06 00:40:48 -03:00
Lunovox
4159eb3205 [fix] Fixed the critical glitch. 2024-11-25 07:43:50 -03:00
Lunovox
f617ce5fbb [change] New format of 'dispensing mschine'. 2024-11-24 01:20:19 -03:00
Lunovox
2376bb969d 2024-11-19 15:14:53 -03:00
Lunovox
1627146ffe [add] Adding integration to 'computing' mod apps. 2024-11-19 14:27:03 -03:00
Lunovox
30775e527f 2024-11-04 04:57:36 -03:00
Lunovox
ac908795b3 [fix] Fixed URLs. 2024-11-04 04:53:48 -03:00
Lunovox
eab03d1121 2024-11-04 04:40:35 -03:00
Lunovox
07042aff76 [fix] Fixing the license for ContentDB. 2024-11-04 04:26:07 -03:00
Lunovox
ffa421159a [doc][fix] Fixed doc to version '2.2.3'. 2024-11-04 00:03:53 -03:00
Lunovox
79d3eb0682 [fix] Fixed the new method to config then dispensing machine to trade.
ALERTER: https://qoto.org/@reinaldo/112832090438550688
2024-07-23 11:11:09 -03:00
Lunovox
83dac770b0 Merge branch 'master' of gitlab.com:lunovox/minertrade 2024-07-22 09:56:38 -03:00
Lunovox
0059f0646b [refact] New method to config then dispensing machine to trade. 2024-07-22 09:55:26 -03:00
Lunovox
e3d3f8b4b8 2024-04-05 20:55:22 -03:00
Lunovox
c437c7c4e8 [fix] Pequena adaptação ao ContentDB. 2024-03-24 08:03:58 -03:00
Lunovox
7382f4f16d 2024-03-21 11:42:31 -03:00
Lunovox
e2ba5ac452 [fix][tested] Fixed the background to new Printed Paper. 2024-03-21 11:37:48 -03:00
Lunovox
a12f929178 [remake][notested] New background to Printed Paper. 2024-03-21 11:14:51 -03:00
Lunovox
7effda9f5c [fix] Fix the Paper Printed. (but the texture of background is ugly.) 2024-03-21 10:30:11 -03:00
Lunovox
d60357fd34 [bugfix] Fix Critical Bug.
2024-03-19 13:26:09: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod '' in callback environment_Step(): ...t.minetest/files/Minetest/mods/minertrade/api_payday.lua:57: attempt to compare number with nil
2024-03-19 13:26:09: ERROR[Main]: stack traceback:
2024-03-19 13:26:09: ERROR[Main]: 	...t.minetest/files/Minetest/mods/minertrade/api_payday.lua:57: in function 'doPay'
2024-03-19 13:26:09: ERROR[Main]: 	...t.minetest/files/Minetest/mods/minertrade/api_payday.lua:99: in function <...t.minetest/files/Minetest/mods/minertrade/api_payday.lua:95>
2024-03-19 13:26:09: ERROR[Main]: 	...test.minetest/files/Minetest/builtin/common/register.lua:26: in function <...test.minetest/files/Minetest/builtin/common/register.lua:12>
2024-03-19 13:57:03 -03:00
Lunovox
7e9a30ff95 [feat][v2.2.0] Change account 'City Hall' to 'THE GOVERNMENT' of mod 'E-Urn'. 2024-03-01 20:27:27 -03:00
Lunovox
8d35a41e9c [feat] add The Governmemt Menu 2024-03-01 11:45:35 -03:00
Lunovox Heavenfinder
791b6ec14d Update mod.conf 2023-08-23 17:32:57 +00:00
Lunovox
178164563a 2023-08-23 14:16:06 -03:00
Lunovox
2471875ef4 2023-08-23 13:32:37 -03:00
Lunovox
d36e89016f Melhorando o README.md 2023-08-23 13:31:19 -03:00
Lunovox
48eeb90539 Melhorando o README.md 2023-08-23 13:28:16 -03:00
Lunovox Heavenfinder
5d5a176dee Update [mod.conf] exigido pelo importador do [https://content.minetest.net]. 2023-08-23 14:51:10 +00:00
Lunovox
a4db88c4fa Disabled Transfer Proof Version 2 (per Fail Code) 2023-08-09 22:21:22 -03:00
Lunovox
4cfe11e751 Transfer Proof Version 1 2023-08-09 20:41:29 -03:00
Lunovox
be485f6f2f Papel Impresso com Cópia 2023-08-09 06:00:25 -03:00
Lunovox
01e144108f Criação do Papel Impresso. (Ainda não implementado no Caixa Eletrônico) 2023-08-08 22:54:53 -03:00
Lunovox
38f1ddee69 preparação de versão 2.0.2 estável para lançamento em servidores online. 2023-07-27 21:38:44 -03:00
Lunovox
974f408f98 preparação de versão estável para lançamento em servidores online. 2023-07-27 20:51:47 -03:00
Lunovox Heavenfinder
8ac62fcba8 Enxugando código! 2023-04-18 14:13:14 +00:00
Lunovox Heavenfinder
325c1ac117 Enxugando código! 2023-04-18 14:11:04 +00:00
Lunovox
77debf1915 Declarando depósito no terminal. (espero que não demasiado verboso) 2023-04-13 12:04:10 -03:00
Lunovox
247dc5cb62 Enxugando comentário da 'api.lua'. 2023-04-13 12:02:30 -03:00
Lunovox
6096a55035 Melhorndo o README.md 2022-06-28 11:03:57 -03:00
Lunovox
6472c24ea3 Melhorndo o README.md 2022-06-28 10:54:14 -03:00
Lunovox
fee8b1f7b2 Novo Botão de 'Lotérica' no caixa eletronico. (ainda infuncional) 2022-06-21 01:27:02 -03:00
Lunovox
bb462d17b8 2022-06-08 09:44:18 -03:00
Lunovox
5b687d1177 Inicio da Função de Emprestimos. (Incompleta) 2022-06-08 09:23:18 -03:00
Lunovox
6cd4c51749 Correção de Bug e melhora de tradução 2022-06-08 02:48:08 -03:00
Lunovox
da051a0c61 Função de Transferência: testada, traduzida, e liberada ao publico. 2022-06-06 17:45:54 -03:00
Lunovox
2aac65d875 Função de Transferência. (Não testada) 2022-06-06 13:28:02 -03:00
Lunovox
cd8c75e3e2 Correção de bug no painel de Transferência (ainda Incompleto) 2022-06-03 00:57:09 -03:00
Lunovox
971b6a12c9 Correção de Bugs. Metroria de ATM. 2022-06-02 09:48:39 -03:00
Lunovox
a086a2da7f 2022-06-01 12:55:32 -03:00
Lunovox
fa5dde2b28 Melhora no README.md e nas configurações. 2022-06-01 09:15:36 -03:00
Lunovox
f30e288d5c 2022-05-30 18:39:28 -03:00
Lunovox
1168439c8c Melhora na tradução! 2022-05-18 11:59:28 -03:00
Lunovox
43e1acaae5 tentativa de desafoga o servidor... 2022-05-16 05:13:48 -03:00
Lunovox
a7b44b1ffd Substituindo Comando Deprecado 2022-05-15 14:28:26 -03:00
Lunovox
19acc2b704 melhora Na aparência da interface de depósito bancário. 2022-05-15 09:57:51 -03:00
Lunovox
73924b68bc Formulário de Depósitos. +/- ok! 2022-05-15 01:27:41 -03:00
Lunovox
831e35eaef Melhorando a estética do Saldo e do Extrato 2022-05-14 21:41:54 -03:00
Lunovox
f7b32dcdad Formulário de Saques Operante 2022-05-13 23:24:20 -03:00
Lunovox
5e3efd0121 Traduções e e alguma Retexturização 2022-05-13 13:26:01 -03:00
Lunovox
7103e29128 Extrato de Trasações bancárias. ok! 2022-05-13 12:40:50 -03:00
Lunovox
ffabc5f748 Persistencia Resolvida! 2022-05-12 23:32:22 -03:00
Lunovox
ce91e651db Saldo Ok! 2022-05-12 17:03:46 -03:00
Lunovox
de41278c0b fazendo o formspec 2022-05-12 11:34:07 -03:00
Lunovox
2ddff423e2 fazendo o formspec 2022-05-12 11:32:28 -03:00
Lunovox
accedeb3aa inicio da versão 2.0.0 2022-05-12 09:22:52 -03:00
Lunovox Heavenfinder
3573720c1d CORREÇÃO DE BUG
* O comando '/checkstrongbox' estava bugando o servidor.
2020-05-17 16:22:55 -03:00
Lunovox
0de37b28dc TENTATIVA DE ALIVIAR A MEMÓRIA RAM
Não sei se essa tentativa irá funcionar. mas precisarei testar. Talvez isso impedirá que o salário seja depositado. Mas só após os testes saber se é realmente isso acontecerá.
2020-04-22 20:03:55 -03:00
Lunovox Heavenfinder
a7026c4d53 CORREÇÃO DE BUG 2020-04-19 14:57:41 -03:00
Lunovox Heavenfinder
169d86e448 BOTOES 'DEPOSITAR TODO' e 'SACAR TUDO' estão funcionando! 2020-04-16 18:08:31 -03:00
Lunovox
2284201672 TENTATIVA DE OTIMIZAÇÃO DE MEMÓRIA
Agora é possível apagar inventário desatarraxado quando o jogador fecha o formulário. isso provavelmente otimizará o uso da memória RAM.

Mais tarde precisarei fazer o mesmo nos mods "tradelands" e "checkinventoryplayer".
2020-04-16 15:00:01 -03:00
Lunovox Heavenfinder
8fe7da0293 Correção de bug grotesco! =( 2020-04-15 20:46:19 -03:00
Lunovox Heavenfinder
923a61e1b7 Correção de bug grotesco! =( 2020-04-15 20:39:25 -03:00
Lunovox Heavenfinder
3ecd89974b NOVAS TEXTURAS E FUNCIONALIDADE
* A máquina dispensadora e o cofre ganharam novas texturas
* O cofre ganhou dois novos botões que ainda não funcionam.
* A dispensadora ganhou um botão de salvar anuncio. (Porque no celular não era possivel salvar).
2020-04-14 21:23:44 -03:00
Lunovox Heavenfinder
62ad32b2ee configuração e atribuição 2020-04-13 18:59:23 -03:00
Lunovox Heavenfinder
119a0a737d MAQUINA DISPENSADORA ENVIA EMAIL
A pedido de Animetrom...
2020-04-13 18:55:23 -03:00
Lunovox Heavenfinder
82f1b0d097 CORREÇÃO DE BUG DE SOM
O som das máquinas estava soando em todo o servidor. Até nos jogadores q não estavam próximos das máquinas.
2020-04-13 16:23:45 -03:00
Lunovox Heavenfinder
1c8b6395e5 BUG DE NÃO CARREGAMENTO DE CAIXA ELETRONICO
\![](https://disroot.org/upload/EEE8zxgjmPMM7zN-/screenshot_20200406_181005.png)

O Animetrom me pediu para tentar corrigir este bug. Mas, não estou conseguindo porque parece que é um bug do proprio jogo minetest. Pois o comando 'newInv:set_size' da linha 62 do api.lua esta voltando o resultado antes de salvar o resultado dentro do inventario. E nas versões anteriores isso não ocorria.

Felizmente esse bug não é crítico. Pois, o jogador consegue abrir o caixa eletrônico se insistir em abré-lo. (e o lag ajudar). Mais tarde tentarei mais uma vez corrigir este bug.
2020-04-08 23:52:00 -03:00
Lunovox Heavenfinder
18d1b5271b Melhorando o Alias 2020-04-08 22:46:39 -03:00
Lunovox Heavenfinder
d58a013b30 Melhorando tradução! 2020-04-08 22:23:57 -03:00
Lunovox
05a2b627aa acesso a conta bancária através do cartão de crédito em qualquer lugar do mapa 2020-04-06 20:35:37 -03:00
69 changed files with 4457 additions and 1071 deletions

23
.gitconfig Normal file
View file

@ -0,0 +1,23 @@
[user]
email = lunovox@disroot.org
name = Lunovox Heavenfinder
[alias]
nlog = log --oneline --decorate --all --graph -n 10
# Add the following to your .gitconfig file.
[diff]
tool = meld
[difftool]
prompt = false
[difftool "meld"]
cmd = meld "$LOCAL" "$REMOTE" #
# Add the following to your .gitconfig file.
[merge]
tool = meld
[mergetool "meld"]
# Choose one of these 2 lines (not both!) explained below.
cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED"
cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"

52
.gitignore vendored
View file

@ -1,46 +1,12 @@
#Lunovox Files
.git
# Backup Files
*.~
*.old
*~
*.bkp
*.backup
# Compiled Lua sources
luac.out
# luarocks build files
*.src.rock
*.zip
*.tar.gz
# Object files
*.o
*.os
*.ko
*.obj
*.elf
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
*.def
*.exp
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# Files of POedit
*.mo
# Arquivo de versionamento:
*.diff
*.patch

433
LICENSE_MEDIA Normal file
View file

@ -0,0 +1,433 @@
Creative Commons BY-SA 4.0
Legal Code International
[Attribution] [ShareAlike]
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution-ShareAlike 4.0 International Public
License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-ShareAlike 4.0 International Public License ("Public
License"). To the extent this Public License may be interpreted as a
contract, You are granted the Licensed Rights in consideration of Your
acceptance of these terms and conditions, and the Licensor grants You
such rights in consideration of benefits the Licensor receives from
making the Licensed Material available under these terms and
conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. BY-SA Compatible License means a license listed at
creativecommons.org/compatiblelicenses, approved by Creative
Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
e. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name
of a Creative Commons Public License. The License Elements of this
Public License are Attribution and ShareAlike.
h. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
i. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
k. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
l. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
m. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. Additional offer from the Licensor -- Adapted Material.
Every recipient of Adapted Material from You
automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material
under the conditions of the Adapter's License You apply.
c. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share
Adapted Material You produce, the following conditions also apply.
1. The Adapter's License You apply must be a Creative Commons
license with the same License Elements, this version or
later, or a BY-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the
Adapter's License You apply. You may satisfy this condition
in any reasonable manner based on the medium, means, and
context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms
or conditions on, or apply any Effective Technological
Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material,
including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.
Source: https://creativecommons.org/licenses/by-sa/4.0/legalcode

168
README.md
View file

@ -1,67 +1,129 @@
# MINERTRADE
![01]
It adds various types of money, exchange table, Dispensing Machines, Strongbox in homes interconnected with ATMs in stores.
Other Screenshots: [02] [03] [04] [05] [06] [07] [08] [09]
**Itens adicionados:**
* Types of Moneys:
* Minercoin
* Minermoney
* Piggy Bank
* Credit Card
* Exchange Table (P2P)
* It makes safe exchanges from player to player without the need to put your items on the ground.
* Dispensing Machine
* Sells your items, even if you are not online.
* Personal Strongbox
* Save your money in this safe and withdraw your money at any shop that has an ATM.
* Public ATM
* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map.
Badge: [![ContentDB_en_icon]][ContentDB_en_link] [![DownloadsCDB_en_icon]][DownloadsCDB_en_link]
**Dependencies:**
* default → Minetest Game Included
* dye → Minetest Game Included
# 💵 [MINERTRADE][mod_minertrade]
**Optional Dependencies:**
* [intllib](https://github.com/minetest-mods/intllib) → Facilitates the translation of several other mods into your native language, or other languages.
* [tradelands](https://github.com/Lunovox/tradelands) → Protection of rent door (not yet implemented).
[![minetest_icon]][minetest_link] It adds various types of money, Exchange Table, Dispensing Machines, and ATMs in stores.
**Licence:**
* GNU AGPL: https://pt.wikipedia.org/wiki/GNU_Affero_General_Public_License
## 📦 **Itens adicionados:**
**Developers:**
* [Lunovox](https://libreplanet.org/wiki/User:Lunovox)
### 💰 Types of Moneys:
**Comandos:**
* Lets you check the contents of another players strongbox.
* /checkstrongbox <player_name>
* /csb <player_name>
| Types | Amount |
| :-- | --: |
| ```Minercoin``` | 01 minercash. (9^0 M$) |
| ```Minermoney Blue``` | 09 minercash. (9^1 M$) |
| ```Minermoney Green``` | 81 minercash. (9^2 M$) |
| ```Minermoney Yellow``` | 729 minercash. (9^3 M$) |
| ```Minermoney Orange``` | 6,561 minercash. (9^4 M$) |
| ```Minermoney Red``` | 59,049 minercash. (9^5 M$) |
| ```Minermoney Black``` | 531,441 minercash. (9^6 M$) |
**Settings:**
* Change the file **'[config.lua](https://github.com/Lunovox/minertrade/blob/master/config.lua)'** to change the initial settings of the mod, such as:
* Path of Database
* Delay of Install Strongbox and ATM,
* Size of inventory of Strongbox and ATM,
### 🏦 Bank Items:
**Translate to Others Languages:**
| Items | Descryption |
| :--: | :-- |
| ```Public ATM``` | Save your minercash (money type) in the ATM, and withdraw your minercash in other ATM in the shops scattered around the map. |
| ```Credit Card``` | Transfers between bank accounts, issuing a bank transfer receipt. |
* This mod currently are configured to language:
* English (DEFAULT)
* [Portuguese](https://raw.githubusercontent.com/Lunovox/minertrade/master/locale/pt.txt)
### 🏙️ Store Items:
* To add a new language to this mod just follow the steps below:
* Enable the complementary mod **'intllib'.**
* Set your language in **'minetest.conf'** by adding the [````language = <your language>````] property.
* Example for French Language: ````language = fr````
* Make a copy of the file [ **pt.txt** ] in the [ **locale** ] folder that is inside the mod for [````locale/<your_language>.txt````].
* Example for French language: ````locale/fr.txt````
* Open the file [````locale/<your_language>.txt````] in a simple text editor.
* Translate all lines. But, just here that stems the right of the equals symbol (=).
* Example for French Language: ````DISPENSING MACHINE = MACHINE DE DISTRIBUTION````
* Send your translated file to [lunovox@openmailbox.org](mailto:lunovox@openmailbox.org).
| Items | Descryption |
| :--: | :-- |
| ```Exchange Table (P2P)``` | It makes safe exchanges from player to player without the need to put your items on the ground. |
| ```Dispensing Machine``` | Sells your items, even if you are not online. |
**SCREENSHOT IN PORTUGUESE:**
![](https://raw.githubusercontent.com/Lunovox/minertrade/master/screenshot.png)
## **Dependencies:**
| Mod Name | Dependency Type | Descryption |
| :--: | :--: | :-- |
| default | Mandatory | Minetest Game Included. |
| dye | Mandatory | Minetest Game Included. |
| [intllib][mod_intllib] | Optional | Facilitates the translation of this mod into your native language, or other languages. |
| [correio][mod_correio] | Optional | Issues a letter to the owner of the ```Dispensing Machine``` when the machine needs the owner's intervention. |
| [eurn][mod_eurn] | Optional | Select by vote who will be the president of the server with access to the public safe. |
| [computing][mod_computing] | Optional | Add multiple devices, such as mobile phones and desktops, that allow you to access the bank remotely. |
## **License:**
* [![license_code_icon]][license_code_link]
* [![license_media_icon]][license_media_link]
See more details in wiki:
[![wiki_en_icon]][wiki_en_link] [![wiki_pt_icon]][wiki_pt_link]
## **Developers:**
* Lunovox Heavenfinder: [email](mailto:lunovox@disroot.org), [social web](https://qoto.org/@lunovox), [WebChat](https://cloud.disroot.org/call/9aa2t7ib), [xmpp](xmpp:lunovox@disroot.org?join), [audio conference](mumble:mumble.disroot.org), [more contacts](https://libreplanet.org/wiki/User:Lunovox)
## **Downloads:**
* [Stable Versions] : There are several versions in different stages of completion. Usually recommended for servers because they are more secure.
* [Git Repository] : It is the version currently under construction. There may be some stability if used on servers. It is only recommended for testers and mod developers.
## **Translate this mod to Your Language:**
See more details in file: [locale/README.md]
## **Settings:**
In **minetest.conf** file:
You don't need to do any of these presets mentioned below to make this mod work. But it's worth knowing the configuration values in case you want to directly change the ````minetest.conf```` file.
| Settings | Descryption |
| :-- | :-- |
| ````minertrade.debug = <boolean>```` | If show debug info of this mod. Only util to developers. Default: ````false````. |
| ````minertrade.save_compressed = <boolean>```` | If enabled will save database bank in file '.db64', else in file '.tbl'. Default: ````true````. |
| ````minertrade.bank.max_statements = <number>```` | Specifies the amount statement records to each player in databade bank. Default: ````30````; Min: ````1````, Max: ````300````. |
| ````minertrade.salary.enabled = <boolean>```` | Allows for daily distribution of Salary. Default: ````true````. |
| ````minertrade.salary.value = <number>```` | Specifies the amount of salary paid daily. Default: ````1````. |
| ````minertrade.salary.intervalcheck = <number>```` | Specifies how many seconds the salary will be checked who still has to receive. Values below 5 can cause server lag. Default: ````60````. |
[01]:https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot.png
[02]:https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot2.png
[03]:https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot3.png
[04]:https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot4.png
[05]:https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot5.png
[06]:https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot6.png
[07]:https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot7.png
[08]:https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot8.png
[09]:https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot9.png
[English]:https://en.wikipedia.org/wiki/GNU_Affero_General_Public_License
[Git Repository]:https://gitlab.com/lunovox/minertrade
[license_code_icon]:https://img.shields.io/static/v1?label=LICENSE%20CODE&message=GNU%20AGPL%20v3.0&color=yellow
[license_code_link]:https://gitlab.com/lunovox/minertrade/-/raw/master/LICENSE_CODE
[license_media_icon]:https://img.shields.io/static/v1?label=LICENSE%20MEDIA&message=CC%20BY-SA-4.0&color=yellow
[license_media_link]:https://gitlab.com/lunovox/minertrade/-/raw/master/LICENSE_MEDIA
[locale/README.md]:https://gitlab.com/lunovox/minertrade/-/tree/master/locale?ref_type=heads
[mod_minertrade]:https://gitlab.com/lunovox/minertrade
[minetest_icon]:https://img.shields.io/static/v1?label=Minetest&message=Mod&color=brightgreen
[minetest_link]:https://minetest.net
[mod_computing]:https://gitlab.com/lunovox/computing
[mod_correio]:https://gitlab.com/lunovox/correio
[mod_eurn]:https://gitlab.com/lunovox/e-urn
[mod_intllib]:https://content.luanti.org/packages/kaeza/intllib/
[mod_tradelands]:https://gitlab.com/Lunovox/tradelands
[Portuguese]:https://pt.wikipedia.org/wiki/GNU_Affero_General_Public_License
[Stable Versions]:https://gitlab.com/lunovox/minertrade/-/tags
[wiki_en_icon]:https://img.shields.io/static/v1?label=GNU%20AGPL%20v3.0&message=EN&color=blue
[wiki_en_link]:https://en.wikipedia.org/wiki/GNU_Affero_General_Public_License
[wiki_pt_icon]:https://img.shields.io/static/v1?label=GNU%20AGPL%20v3.0&message=PT&color=blue
[wiki_pt_link]:https://pt.wikipedia.org/wiki/GNU_Affero_General_Public_License
[ContentDB_en_icon]:https://content.luanti.org/packages/Lunovox/minertrade/shields/title/
[ContentDB_en_link]:https://content.luanti.org/packages/Lunovox/minertrade/
[DownloadsCDB_en_icon]:https://content.luanti.org/packages/Lunovox/minertrade/shields/downloads/
[DownloadsCDB_en_link]:https://gitlab.com/lunovox/minertrade/-/tags
![](https://raw.githubusercontent.com/Lunovox/minertrade/master/screenshot2.png)
![](https://raw.githubusercontent.com/Lunovox/minertrade/master/screenshot3.png)

289
api.lua
View file

@ -1,148 +1,201 @@
--FONTE: https://forum.minetest.net/viewtopic.php?pid=48124
--FONTE: https://forum.core.net/viewtopic.php?pid=48124
minetest.register_privilege("checkchest", {
description=modMinerTrade.translate("Permission to open locked chests of other players"),
give_to_singleplayer=false,
})
modMinerTrade.debug = function(text, playername)
if text ~= nil
and type(text) == "string"
and text ~= ""
then
if core.settings:get_bool("minertrade.debug") then
if playername ~= nil
and type(playername) == "string"
and playername ~= ""
then
local player = core.get_player_by_name(playername)
if player ~=nil and player:is_player() then
core.chat_send_player(
playername, text
)
core.log('warning',"["..modMinerTrade.modName:upper()..":DEBUG:"..playername.."] "..text)
else
core.log('error',
"["..modMinerTrade.modName:upper()..":DEBUG] "
..modSoundChat.translate(
"Unable to address debug for player '%s'."
):format(dump(playername))
)
core.log('warning',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
end
else
core.chat_send_all(text)
core.log('warning',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
end
end
end
end
modMinerTrade.safe = {}
modMinerTrade.getNodesInRange = function(pos, search_distance, node_name)
modMinerTrade.getNodesInRange = function(pos, search_distance, nodenames)
if pos==nil then return 0 end
if pos.x==nil or type(pos.x)~="number" then return 0 end
if pos.y==nil or type(pos.y)~="number" then return 0 end
if pos.z==nil or type(pos.z)~="number" then return 0 end
if search_distance==nil or type(search_distance)~="number" and search_distance<=0 then return 0 end
if node_name==nil or type(node_name)~="string" and node_name=="" then return 0 end
if nodenames==nil or type(nodenames)~="string" and nodenames=="" then return 0 end
local minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance}
local maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance}
local nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name)
local nodes = core.find_nodes_in_area(minp, maxp, nodenames)
--local nodes = core.env:find_nodes_in_area(minp, maxp, nodenames) --deprecado
return #nodes
end
modMinerTrade.doSave = function()
local file = io.open(modMinerTrade.urlTabela, "w")
if file then
file:write(minetest.serialize(modMinerTrade.safe))
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.urlTabela))
modMinerTrade.doSoundPlayer = function(playername, sfxFile, intDistace)
if intDistace == nil or (type(intDistace) == "number" and intDistace>= 0) then
if type(playername) == "string" and type(sfxFile) == "string" and playername ~= "" and sfxFile ~= "" then
local player = core.get_player_by_name(playername)
if player ~=nil and player:is_player() then
return core.sound_play(sfxFile, {
object = player, --Se retirar esta linha tocará para todos. (Provavelmente ¬¬)
gain = 1.0, -- 1.0 = Volume total
max_hear_distance = intDistace,
loop = false,
})
end
end
modMinerTrade.doLoad = function()
local file = io.open(modMinerTrade.urlTabela, "r")
if file then
modMinerTrade.safe = minetest.deserialize(file:read("*all"))
file:close()
if not modMinerTrade.safe or type(modMinerTrade.safe) ~= "table" then
minetest.log('error',"[MINERTRADE:ERRO] "..modMinerTrade.translate("The file '%s' is not in table format!"):format(modMinerTrade.urlTabela))
return { }
else
minetest.log('action',"[MINERTRADE] "..modMinerTrade.translate("Opening '%s'!"):format(modMinerTrade.urlTabela))
end
end
end
modMinerTrade.setSafeInventory = function(playername, tblListInventory)
local newInv = minetest.create_detached_inventory_raw("safe_"..playername)
newInv:set_list("safe", tblListInventory)
local tamanho = newInv:get_size("safe")
modMinerTrade.safe[playername] = { }
for i=1,tamanho do
modMinerTrade.safe[playername][i] = newInv:get_stack("safe", i):to_table()
end
end
modMinerTrade.getSafeInventory = function(playername)
local newInv = minetest.create_detached_inventory_raw("safe_"..playername)
newInv:set_size("safe", modMinerTrade.size.width*modMinerTrade.size.height)
--local listInventory = { }
for i=1,(modMinerTrade.size.width*modMinerTrade.size.height) do
if modMinerTrade.safe and modMinerTrade.safe[playername] and modMinerTrade.safe[playername][i] then
newInv:set_stack("safe", i, ItemStack(modMinerTrade.safe[playername][i]))
else
newInv:set_stack("safe", i, nil)
end
end
return newInv:get_list("safe")
end
modMinerTrade.getFormspec = function(playername, title)
if not title then title = "" end
local formspec = "size[8,9]"
.."bgcolor[#636D76FF;false]"
--..default.gui_bg
--..default.gui_bg_img
..default.gui_slots
.."label[0,0;"..minetest.formspec_escape(title).."]"
.."list[detached:safe_"..playername .. ";safe;"
..((8 - modMinerTrade.size.width)/2)..","..(((4 - modMinerTrade.size.height)/2)+0.62)..";"
..modMinerTrade.size.width..","..modMinerTrade.size.height
..";]" -- <= ATENCAO: Nao pode esquecer o prefixo 'detached:xxxxxxx'
.."list[current_player;main;0,5;8,4;]"
.."listring[detached:safe_"..playername .. ";safe]"
.."listring[current_player;main]"
return formspec
end
modMinerTrade.isOpen = function(meta, player)
modMinerTrade.canInteract = function(meta, player)
if player:get_player_name() == meta:get_string("owner")
or minetest.get_player_privs(player:get_player_name()).server
or minetest.get_player_privs(player:get_player_name()).checkchest
or (minetest.get_modpath("tradelands") and modTradeLands.canInteract(player:getpos(), player:get_player_name()))
or core.get_player_privs(player:get_player_name()).server
or core.get_player_privs(player:get_player_name()).checkchest
or (core.get_modpath("tradelands") and modTradeLands.canInteract(player:getpos(), player:get_player_name()))
then
return true
end
return false
end
modMinerTrade.getDetachedInventory = function(playername)
-- playername = player:get_player_name()
local newInv = minetest.create_detached_inventory("safe_"..playername, { --trunk
modMinerTrade.floor_pos = function(pos)
return {
x=math.floor(pos.x),
y=math.floor(pos.y),
z=math.floor(pos.z)
}
end
-- 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)
return count
end,
-- Called when a player wants to put items into the inventory
allow_put = function(inv, listname, index, stack, player)
return stack:get_count()
end,
-- Called when a player wants to take items out of the inventory
allow_take = function(inv, listname, index, stack, player)
return stack:get_count()
end,
-- on_* - no return value
-- Called after the actual action has happened, according to what was allowed.
on_move = function(inv, from_list, from_index, to_list, to_index, count, player)
modMinerTrade.setSafeInventory(playername, inv:get_list("safe"))
--minetest.log('action',playername.." colocou "..stack:get_count().." '"..stack:get_name().."' em seu cofre!")
end,
on_put = function(inv, listname, index, stack, player)
modMinerTrade.setSafeInventory(playername, inv:get_list("safe"))
minetest.log('action',modMinerTrade.translate("Player '%s' has placed %02d '%s' in his safe!"):format(playername, stack:get_count(), stack:get_name()))
end,
on_take = function(inv, listname, index, stack, player)
modMinerTrade.setSafeInventory(playername, inv:get_list("safe"))
minetest.log('action',modMinerTrade.translate("Player '%s' has removed %02d '%s' in his safe!"):format(playername, stack:get_count(), stack:get_name()))
end,
})
local invList = modMinerTrade.getSafeInventory(playername)
if invList~=nil and #invList>=1 then
newInv:set_list("safe", invList)
modMinerTrade.getPosMachineName = function(posMachine)
if type(posMachine)=="table" and type(posMachine.x)=="number" and type(posMachine.y)=="number" and type(posMachine.z)=="number" then
return core.pos_to_string(modMinerTrade.floor_pos(posMachine))
else
newInv:set_size("safe", modMinerTrade.size.width*modMinerTrade.size.height)
core.log(
"error",("[modMinerTrade.getPosMachineName(posMachine='%s')] "):format(dump(posMachine))
..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("posMachine")
)
end
end
return newInv
modMinerTrade.setMachineFlagsAlert = function (posMachine, value)
if type(posMachine)=="table" and type(posMachine.x)=="number" and type(posMachine.y)=="number" and type(posMachine.z)=="number" then
local posMachineName = modMinerTrade.getPosMachineName(posMachine)
if type(modMinerTrade.machine_flags)~="table" then modMinerTrade.machine_flags={} end
if type(modMinerTrade.machine_flags[posMachineName])~="table" then modMinerTrade.machine_flags[posMachineName]={} end
if type(value)=="number" and value>=0 then
modMinerTrade.machine_flags[posMachineName].lastalert = value
else
core.log(
"error",("[modMinerTrade.setMachineFlagsAlert(posMachine='%s', value='%d')] "):format(dump(posMachine), dump(value))
..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("message")
)
end
else
core.log(
"error",("[modMinerTrade.setMachineFlagsAlert(posMachine='%s', value='%s')] "):format(dump(posMachine), dump(dump))
..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("posMachine")
)
end
end
modMinerTrade.getMachineFlagsAlert = function (posMachine)
if type(posMachine)=="table" and type(posMachine.x)=="number" and type(posMachine.y)=="number" and type(posMachine.z)=="number" then
local posMachineName = modMinerTrade.getPosMachineName(posMachine)
if type(modMinerTrade.machine_flags)~="table" then modMinerTrade.machine_flags={} end
if type(modMinerTrade.machine_flags[posMachineName])~="table" then modMinerTrade.machine_flags[posMachineName]={} end
if type(modMinerTrade.machine_flags[posMachineName].lastalert)~="number" or modMinerTrade.machine_flags[posMachineName].lastalert < 0 then modMinerTrade.machine_flags[posMachineName].lastalert = 0 end
return modMinerTrade.machine_flags[posMachineName].lastalert
else
core.log(
"error",("[modMinerTrade.getMachineFlagsAlert(posMachine='%s', value='%s')] "):format(dump(posMachine), dump(dump))
..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("posMachine")
)
end
end
modMinerTrade.sendMailMachine = function(posMachine, ownername, message)
if core.get_modpath("correio") then
local mailMachineInterval = (60*60)
if type(posMachine)=="table" and type(posMachine.x)=="number" and type(posMachine.y)=="number" and type(posMachine.z)=="number" then
if type(ownername)=="string" and ownername:trim()~="" and core.player_exists(ownername) then --Checks whether the owner really exists.
if type(message)=="string" and message:trim()~="" then
local agora = os.time()
local macFlag = modMinerTrade.getMachineFlagsAlert(posMachine)
if macFlag + mailMachineInterval < agora then
local carta = modCorreio.set_mail(
modMinerTrade.translate("DISPENSING MACHINE").." "..modMinerTrade.getPosMachineName(posMachine),
ownername,
message:trim()
)
if carta~=nil then
core.log('action',
modMinerTrade.translate("A letter was sent by the dispensing machine '%s' to '%s' advising about '%s'!"):
format(modMinerTrade.getPosMachineName(posMachine), ownername , message)
)
else
core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message))
..modMinerTrade.translate("Due to an unknown error, it was not possible to send an email through the dispensing machine!")
)
end
modMinerTrade.setMachineFlagsAlert(posMachine, agora)
end --if macFlag + mailMachineInterval < agora then
else
core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message))
..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("message")
)
end
else
core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message))
..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("ownername")
)
end
else
core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message))
..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("posMachine")
)
end
end --if core.get_modpath("correio") then
end
modMinerTrade.errorDispensing = function(erroMessage, player, pos, ownername)
if type(erroMessage)=="string" and erroMessage:trim()~="" then
if player:is_player() then
local playername = player:get_player_name()
core.chat_send_player(playername, core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")..erroMessage)
core.sound_play("sfx_failure", {object=player, max_hear_distance=5.0,})
end
if type(pos)~="nil" and type(ownername)=="string" and ownername:trim()~="" then
modMinerTrade.sendMailMachine(pos, ownername, erroMessage)
end
else
core.log(
"error",("[modMinerTrade.errorDispensing(erroMessage='%s', player, pos, ownername)] "):format(dump(erroMessage))
..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("erroMessage")
)
end
end

102
api_payday.lua Normal file
View file

@ -0,0 +1,102 @@
minetest.register_privilege("salary", {
description=modMinerTrade.translate("Only players with this privilege will receive a daily payment."),
--give_to_singleplayer=false,
})
modMinerTrade.salary = {
isEnabled = function()
if modMinerTrade.salary.enabled == nil then
modMinerTrade.salary.enabled = (minetest.settings:get_bool("minertrade.salary.enabled") ~= false)
minetest.settings:set_bool("minertrade.salary.enabled", modMinerTrade.salary.enabled)
end
return modMinerTrade.salary.enabled
end,
--value = tonumber(minetest.settings:get("minertrade.salary.value") or 1),
getValue = function()
if modMinerTrade.salary.value == nil then
modMinerTrade.salary.value = minetest.settings:get("minertrade.salary.value")
if type(modMinerTrade.salary.value) ~= "number"
or tonumber(modMinerTrade.salary.value) < 1
then
modMinerTrade.salary.value = 1
minetest.settings:set("minertrade.salary.value", modMinerTrade.salary.value)
end
end
return tonumber(modMinerTrade.salary.value)
end,
--intervalcheck = tonumber(minetest.settings:get("minertrade.salary.intervalcheck") or 60),
getIntervalCheck = function()
if modMinerTrade.salary.intervalcheck == nil then
modMinerTrade.salary.intervalcheck = minetest.settings:get("minertrade.salary.intervalcheck")
if modMinerTrade.salary.intervalcheck == nil
or type(tonumber(modMinerTrade.salary.intervalcheck)) ~= "number"
or tonumber(modMinerTrade.salary.intervalcheck) < 1
or tonumber(modMinerTrade.salary.intervalcheck) > (60*60*24)
then
modMinerTrade.salary.intervalcheck = 60
minetest.settings:set("minertrade.salary.intervalcheck", modMinerTrade.salary.intervalcheck)
end
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()
if modMinerTrade.salary.isEnabled() then
modMinerTrade.salary.timer = 0
minetest.register_globalstep(function(dtime)
modMinerTrade.salary.timer = modMinerTrade.salary.timer + dtime
if modMinerTrade.salary.timer >= modMinerTrade.salary.getIntervalCheck() then
modMinerTrade.salary.timer = 0
modMinerTrade.salary.doPay()
end
end)
end
end)

View file

@ -1,44 +1,56 @@
--[[
minetest.register_privilege("checkstrongbox", {
description=modMinerTrade.translate("Lets you check the contents of another players strongbox."),
give_to_singleplayer=false,
})
modMinerTrade.propCheckStrongBox = function(playername, param)
modMinerTrade.propCheckStrongBox = function(admname, param)
return {
params = "<PlayerName>",
description = modMinerTrade.translate("Lets you check the contents of another players strongbox."),
func = function(playername, param)
if minetest.get_player_privs(playername).checkstrongbox then
func = function(admname, param)
local player = minetest.get_player_by_name(admname)
if type(player)~="nil" and player:is_player() then --checha se o player que digitou o comando ainda esta online!
if minetest.get_player_privs(admname).checkstrongbox then
local targetname = string.match(param, "^([^ ]+)$")
if type(targetname)=="string" and targetname~="" then
if modMinerTrade.safe and modMinerTrade.safe[targetname] then
local inv = modMinerTrade.getDetachedInventory(targetname)
minetest.show_formspec(
playername,
"safe_"..targetname,
modMinerTrade.getFormspec(targetname)
modMinerTrade.showInventory(player, targetname,
modMinerTrade.translate("INVENTORY OF '%s':"):format(targetname)
)
return true
else
minetest.chat_send_player(playername, "[MINERTRADE:ERRO] "..modMinerTrade.translate("The strongbox of %s was not created yet!"):format(dump(targetname)))
minetest.chat_send_player(admname,
core.colorize("#ff0000","[MINERTRADE:ERRO] ")
..modMinerTrade.translate("The strongbox of %s was not created yet!"):format(dump(targetname))
)
end
else
minetest.chat_send_player(playername, "[MINERTRADE:ERRO] /"..modMinerTrade.translate("checkstrongbox").." <PlayerName> | "..modMinerTrade.translate("Lets you check the contents of another players strongbox."))
minetest.chat_send_player(admname,
core.colorize("#ff0000","[MINERTRADE:ERRO] ")
.." /"..modMinerTrade.translate("checkstrongbox").." <PlayerName> | "..modMinerTrade.translate("Lets you check the contents of another players strongbox.")
)
end
else
minetest.chat_send_player(playername, "[MINERTRADE:ERRO] "..modMinerTrade.translate("You do not have permission to run this command without the privileges 'checkstrongbox'!"))
minetest.chat_send_player(admname,
core.colorize("#ff0000","[MINERTRADE:ERRO] ")
..modMinerTrade.translate("You do not have permission to run this command without the privileges 'checkstrongbox'!")
)
end
end
return false
end,
end, --FIM DE: func = function(admname, param)
}
end
minetest.register_chatcommand(modMinerTrade.translate("checkstrongbox"), modMinerTrade.propCheckStrongBox())
minetest.register_chatcommand("csb", modMinerTrade.propCheckStrongBox())
--]]
--###############################################################################################################
--[[
minetest.register_chatcommand("minertrade", {
params = "",
description = "Exibe informações adicionais deste mod.",
@ -80,3 +92,4 @@ minetest.register_chatcommand("minertrade", {
minetest.chat_send_player(name, name..", precione F10 e use a rolagem do mouse para ler todo este tutorial!!!", false)
end,
})
--]]

View file

@ -1,8 +1,11 @@
modMinerTrade = {
urlTabela = minetest.get_worldpath().."/minertrade.db", --Extensao '.tbl' ou '.db'
delayConstruct = 1800, -- Após colocar o atm ou o strongbox no chão existe um intervalo 1800 segundos para começar a utilizá-los.
size = {
width = 8, --Slots number of atm and strongbox (Default:6 Max:8)
height = 4, --Slots number of atm and strongbox (Default:2 Max:4)
modName = minetest.get_current_modname(),
modPath = minetest.get_modpath(minetest.get_current_modname()),
save_compressed = (minetest.settings:get_bool("minertrade.save_compressed") ~= false),
bank = {
accounts = 0,
last_pay = 0,
player = { },
},
}

View file

@ -1,5 +0,0 @@
default
dye
intllib?
tradelands?
areas?

View file

@ -1,50 +0,0 @@
It adds various types of money, exchange table, Dispensing Machines, Strongbox in homes interconnected with ATMs in stores.
Itens adicionados:
* Types of Moneys:
→ Minercoin
→ Minermoney
→ Piggy Bank
→ Credit Card
* Exchange Table (P2P)
→ It makes safe exchanges from player to player without the need to put your items on the ground.
* Dispensing Machine
→ Sells your items, even if you are not online.
* Personal Strongbox
→ Save your money in this safe and withdraw your money at any shop that has an ATM.
* Public ATM
→ Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map.
Licence:
* GNU AGPL: https://pt.wikipedia.org/wiki/GNU_Affero_General_Public_License
Developers:
* Lunovox <lunovox@openmailbox.org>
Comandos:
* Lets you check the contents of another players strongbox.
* /checkstrongbox <player_name>
* /csb <player_name>
Settings:
* Change the file 'config.lua' to change the initial settings of the mod, such as:
* Path of Database
* Delay of Install Strongbox and ATM,
* Size of inventory of Strongbox and ATM,
Translate to Others Languages:
* This mod currently are configured to language:
* English
* Portuguese
* To add a new language to this mod just follow the steps below:
* Enable the complementary mod 'intllib'.
* Set your language in 'minetest.conf' by adding the [language = <your language>] property.
* Example for French Language: language = fr
* Make a copy of the file [ pt.txt ] in the [ locale ] folder that is inside the mod for [locale/<your_language>.txt].
* Example for French language: locale/fr.txt
* Open the file [locale/<your_language>.txt] in a simple text editor.
* Translate all lines. But, just here that stems the right of the equals symbol (=).
* Example for French Language: DISPENSING MACHINE = MACHINE DE DISTRIBUTION

View file

@ -1,21 +1,22 @@
local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname)
local modPath = minetest.get_modpath(minetest.get_current_modname())
dofile(modpath.."/config.lua") -- <== Antes de carregar tudo!
dofile(modpath.."/translate.lua") -- <== Antes de 'api.lua'!
dofile(modpath.."/api.lua")
dofile(modpath.."/item_atm.lua")
dofile(modpath.."/item_strongbox.lua")
--dofile(modpath.."/item_strongbox_old.lua")
dofile(modPath.."/config.lua") -- <== Antes de carregar tudo!
dofile(modPath.."/translate.lua") -- <== Antes de 'api.lua'!
dofile(modPath.."/api.lua")
dofile(modPath.."/item_paper_written.lua")
dofile(modPath.."/item_exchange_table.lua")
dofile(modPath.."/item_dispensing_machine.lua")
dofile(modPath.."/item_atm.lua")
--dofile(modPath.."/item_strongbox.lua")
--dofile(modPath.."/item_strongbox_old.lua")
dofile(modPath.."/item_minercash.lua")
dofile(modPath.."/item_computing_app.lua")
--dofile(path.."/item_rent_door.lua")
dofile(modPath.."/api_payday.lua")
--dofile(modPath.."/commands.lua")
--if modMinerTrade.doBankLoad ~= nil then
modMinerTrade.doBankLoad()
--end
dofile(modpath.."/item_miner_cash.lua")
dofile(modpath.."/item_exchange_table.lua")
dofile(modpath.."/item_dispensing_machine.lua")
-- --dofile(path.."/item_rent_door.lua")
dofile(modpath.."/payday.lua") -- <== Pay diary per playing in server.
dofile(modpath.."/commands.lua")
dofile(modpath.."/on_final.lua") -- <== Only after load all code!
minetest.log('action',"["..modname:upper().."] Loaded!")
minetest.log('action',"["..modMinerTrade.modName:upper().."] Loaded!")

File diff suppressed because it is too large Load diff

24
item_computing_app.lua Normal file
View file

@ -0,0 +1,24 @@
if core.global_exists("modComputing") then
modComputing.add_app("minertrade:btnWebBank", {
icon_name = "btnWebBank",
icon_title = modMinerTrade.translate("WEB BANK"),
icon_descryption = modMinerTrade.translate("Allows you to access the bank account anywhere in the world."),
icon_type = "button", --types: button/button_exit
icon_image = "obj_credit_card.png",
on_iconclick = function(player)
local playername = player:get_player_name()
core.log(
"action","["..modMinerTrade.modName:upper().."] "
..modMinerTrade.translate(
"Player '@1' is trying to access the '@2' via the '@3'!"
, playername
, "bank account"
, "computing app"
)
)
modMinerTrade.showAccountBank.inCreditCard(playername, playername)
end,
})
end

View file

@ -4,17 +4,14 @@ modMinerTrade.dispensing = {
modMinerTrade.dispensing.formspec = {
customer = function(pos)
local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z
local formspec = "size[8,10.5]"
--..default.gui_bg
--..default.gui_bg_img
--..default.gui_slots
.."bgcolor[#004400DD;false]"
--.."background[-0.5,0;8.5,11;dispensador_frente.png]"
local formspec = "size[8,10.25]"
--.."bgcolor[#00880033;false]"
.."background[-0.25,-0.25;8.50,11.00;dispensador_traz.png]"
--listcolors[slot_bg_normal;slot_bg_hover;slot_border;tooltip_bgcolor;tooltip_fontcolor]
.."listcolors[#00000055;#008800;#FFFFFF]"
.."listcolors[#004400EE;#008800;#00FF00;#CCCC00;#FFFFFF]"
.."label[2,-0.25;"..minetest.formspec_escape(modMinerTrade.translate("DISPENSING MACHINE")).."]"
.."label[0,0.25;"..minetest.formspec_escape("* "..minetest.env:get_meta(pos):get_string("offer")).."]"
.."label[0,0.25;"..minetest.formspec_escape("* "..minetest.get_meta(pos):get_string("offer")).."]"
.."label[0,1.0;"..minetest.formspec_escape(modMinerTrade.translate("Customer Offer"))..":]"
.."list[current_player;customer_gives;0,1.5;3,2;]"
@ -23,17 +20,17 @@ modMinerTrade.dispensing.formspec = {
.."list[current_player;customer_gets;0,4.0;3,2;]"
.."button[3,2.0;2,1;exchange;"..minetest.formspec_escape(modMinerTrade.translate("ACCEPT")).."]"
.."button[3,3.0;2,1;btnRefill;"..minetest.formspec_escape(modMinerTrade.translate("REFILL")).."]"
.."label[0,6.0;"..minetest.formspec_escape(modMinerTrade.translate("Current customer inventory"))..":]"
.."list[current_player;main;0,6.5;8,4;]"
.."label[5,1.0;"..minetest.formspec_escape(modMinerTrade.translate("The Machine Need"))..":]"
.."list["..list_name..";owner_wants;5,1.5;3,2;]"
.."label[5,3.5;"..minetest.formspec_escape(modMinerTrade.translate("The Machine Offer"))..":]"
.."list["..list_name..";owner_gives;5,4.0;3,2;]"
--.."label[0,10.75;("..minetest.formspec_escape(modMinerTrade.translate("Ctrl + RMB → Owner Interface"))..")]"
--.."listcolors[#00000000;#00000022;#00000000;#00000033;#FFFFFFFF]"
--.."listcolors[#00000000;#00000033]"
@ -42,12 +39,12 @@ modMinerTrade.dispensing.formspec = {
end,
owner = function(pos)
local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z
local formspec = "size[8,11]"
.."bgcolor[#000000CC;false]"
local formspec = "size[8,10.50]"
--.."bgcolor[#00880033;false]"
.."background[-0.25,-0.25;8.50,11.25;dispensador_traz.png]"
--listcolors[slot_bg_normal;slot_bg_hover;slot_border;tooltip_bgcolor;tooltip_fontcolor]
.."listcolors[#88888844;#888888;#FFFFFF]"
.."label[0,0;"..minetest.formspec_escape(modMinerTrade.translate("Items Received (Your Profit)"))..":]"
.."listcolors[#004400EE;#008800;#00FF00;#CCCC00;#FFFFFF]"
.."label[0,0;"..minetest.formspec_escape(modMinerTrade.translate("Received (Your Profit)"))..":]"
.."list["..list_name..";customers_gave;0,0.5;3,2;]"
.."label[0,2.5;"..minetest.formspec_escape(modMinerTrade.translate("Stock to Offer"))..":]"
.."list["..list_name..";stock;0,3;3,2;]"
@ -57,14 +54,16 @@ modMinerTrade.dispensing.formspec = {
.."list["..list_name..";owner_gives;5,3;3,2;]"
--.."label[0,5;Proprietario: Pressione (E) + Botao(RMB) no Mouse para a interface com o cliente]"
--.."label[0,5;Vendedor: Evite o estoque baixo e guardar lucros no balcao.]"
.."field[0.29,5.75;8,0.85;txtOffer;"
.."field[0.29,5.75;7.25,0.85;txtOffer;"
..minetest.formspec_escape(modMinerTrade.translate("Make an announcement about what this machine will do"))..":;"
..minetest.formspec_escape(
minetest.env:get_meta(pos):get_string("offer")
minetest.get_meta(pos):get_string("offer")
).."]"
.."image_button_exit[7.25,5.4;0.8,0.8;sbl_disket.png;btnSaveText;]"
.."tooltip[btnSaveText;"..minetest.formspec_escape(modMinerTrade.translate("Save The Announcement"))..";#CCCC00;#000000]"
.."label[0,6.25;"..minetest.formspec_escape(modMinerTrade.translate("Seller current inventory"))..":]"
.."list[current_player;main;0,6.75.0;8,4;]"
.."label[0,10.75;("..minetest.formspec_escape(modMinerTrade.translate("Ctrl + Right Click Mouse → Customer Interface"))..")]"
--.."label[0,10.75;("..minetest.formspec_escape(modMinerTrade.translate("Ctrl + RMB → Customer Interface"))..")]"
return formspec
end,
}
@ -105,9 +104,10 @@ modMinerTrade.dispensing.exchange = function(meta)
end
modMinerTrade.dispensing.canOpen = function(pos, playername)
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if
meta:get_string("owner")==playername
or minetest.get_player_privs(playername).protection_bypass
or (
minetest.get_modpath("tradelands")
and modTradeLands.getOwnerName(pos)~=""
@ -125,7 +125,11 @@ end
local box_format = {
type = "fixed",
fixed = { {-.5,-.5,-.3125, .5,.5+1/3,.3125} }
fixed = {
--{-.5,-.5,-.3125, .5,.5+1/3,.3125},
{-.5,-.1875,-.3250, .5, .5000,.3000},
{-.5,-.5000,-.3000, .5,-.1875,.3000},
}
}
minetest.register_node("minertrade:dispensingmachine", {
@ -151,7 +155,7 @@ minetest.register_node("minertrade:dispensingmachine", {
sounds = default.node_sound_wood_defaults(),
after_place_node = function(pos, placer, itemstack)
local owner = placer:get_player_name()
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", modMinerTrade.translate("Dispensing Machine of '%s'."):format(owner))
meta:set_string("owner",owner)
--[[meta:set_string("pl1","")
@ -161,42 +165,46 @@ minetest.register_node("minertrade:dispensingmachine", {
inv:set_size("stock", 3*2)
inv:set_size("owner_wants", 3*2)
inv:set_size("owner_gives", 3*2)
modMinerTrade.setMachineFlagsAlert(pos, 0)--0 = Can send new emails
end,
on_rightclick = function(pos, node, clicker, itemstack)
--print("minertrade:dispensing.on_rightclick aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
clicker:get_inventory():set_size("customer_gives", 3*2)
clicker:get_inventory():set_size("customer_gets", 3*2)
modMinerTrade.dispensing.loja_atual[clicker:get_player_name()] = pos
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
local clickername = clicker:get_player_name()
minetest.show_formspec(clickername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.customer(pos))
--[[
if modMinerTrade.dispensing.canOpen(pos, clickername) and not clicker:get_player_control().aux1 then
minetest.show_formspec(clickername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.owner(pos))
else
minetest.show_formspec(clickername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.customer(pos))
end
--]]
--return itemstack
end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local playername = player:get_player_name()
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if not modMinerTrade.dispensing.canOpen(pos, playername) then return 0 end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local playername = player:get_player_name()
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if not modMinerTrade.dispensing.canOpen(pos, playername) then return 0 end
return stack:get_count()
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local playername = player:get_player_name()
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if not modMinerTrade.dispensing.canOpen(pos, playername) then return 0 end
return stack:get_count()
end,
can_dig = function(pos, player)
local playername = player:get_player_name()
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local isCanDig = inv:is_empty("stock") and inv:is_empty("customers_gave") and inv:is_empty("owner_wants") and inv:is_empty("owner_gives")
if isCanDig~=true then
@ -211,31 +219,47 @@ minetest.register_node("minertrade:dispensingmachine", {
minetest.register_on_player_receive_fields(function(sender, formname, fields)
if formname == "modMinerTrade.balcaodeloja_formspec" then
local name = sender:get_player_name()
local pos = modMinerTrade.dispensing.loja_atual[name]
local meta = minetest.env:get_meta(pos)
local owner = meta:get_string("owner")
--minetest.chat_send_player(name,"owner('"..owner.."') == name('"..name.."')")
local sendername = sender:get_player_name()
local pos = modMinerTrade.dispensing.loja_atual[sendername]
local meta = minetest.get_meta(pos)
local ownername = meta:get_string("owner") or ""
local offer = meta:get_string("offer") or ""
if modMinerTrade.dispensing.canOpen(pos, name) and sender:get_player_control().aux1 then
minetest.chat_send_player(name,
core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
--minetest.chat_send_player(sendername,"ownername('"..ownername.."') == sendername('"..sendername.."')")
if fields.btnRefill then
if modMinerTrade.dispensing.canOpen(pos, sendername) then
minetest.show_formspec(sendername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.owner(pos))
else
minetest.chat_send_player(sendername,
core.colorize("#ff0000", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
..modMinerTrade.translate("You cannot fill the dispensing machine if you are not the owner!")
)
minetest.sound_play("sfx_alert", {object=sender, max_hear_distance=5.0,})
end
return
end
if modMinerTrade.dispensing.canOpen(pos, sendername) and sender:get_player_control().aux1 then
minetest.chat_send_player(sendername,
core.colorize("#ff0000", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
..modMinerTrade.translate("You can not change your own machine!")
)
minetest.sound_play("sfx_alert", {object=sender, max_hear_distance=5.0,})
return
else
--minetest.chat_send_player(name,"fields="..dump(fields))
--minetest.chat_send_player(sendername,"fields="..dump(fields))
if fields.txtOffer ~= nil then
if fields.txtOffer ~= "" then
meta:set_string("offer", fields.txtOffer)
meta:set_string("infotext",
modMinerTrade.translate("Dispensing Machine of '%s'."):format(owner).."\n\n"
modMinerTrade.translate("Dispensing Machine of '%s'."):format(ownername).."\n\n"
.." * "..fields.txtOffer
)
else
meta:set_string("offer", "")
meta:set_string("infotext", modMinerTrade.translate("Dispensing Machine of '%s'."):format(owner))
meta:set_string("infotext", modMinerTrade.translate("Dispensing Machine of '%s'."):format(ownername))
end
minetest.sound_play("sfx_alert", {object=sender, max_hear_distance=5.0,})
return
@ -290,34 +314,39 @@ minetest.register_on_player_receive_fields(function(sender, formname, fields)
minv:remove_item("stock",item) -- Remove do Estoque
pinv:add_item("customer_gets",item) -- Entrega ao jogador.
end
minetest.chat_send_player(name,
minetest.chat_send_player(sendername,
core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
..modMinerTrade.translate("Dispending done!")
)
minetest.sound_play("sfx_cash_register", {object=sender, max_hear_distance=5.0,})
modMinerTrade.setMachineFlagsAlert(pos, 0)--0 = Can send new emails
else
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)
modMinerTrade.errorDispensing(
modMinerTrade.translate(
--"The stock of '%s' is gone."
"The Dispensing Machine with offer '%s' cannot deliver more items to '%s' because stock of '%s' is empty!"
):format(offer, sendername, ownername)
,sender ,pos ,ownername
)
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)
modMinerTrade.errorDispensing(
modMinerTrade.translate(
"The Dispensing Machine with offer '%s' is out of space to receive customer item '%s'."
):format(offer, sendername)
,sender ,pos ,ownername
)
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!)")
modMinerTrade.errorDispensing(
modMinerTrade.translate("Without enough space in Dispensing Machine to receive the seller's item. (Please, empty the receiving box!)")
,sender
)
else
minetest.chat_send_player(name,
core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
..modMinerTrade.translate("The dispending can not be done. Make sure you offer what the machine asks for!")
modMinerTrade.errorDispensing(
modMinerTrade.translate("The dispending can not be done. Make sure you offer what the machine asks for!")
,sender
)
end
minetest.sound_play("sfx_failure", {object=sender, max_hear_distance=5.0,})
end
end --if fields.quit==nil then
end

View file

@ -99,7 +99,7 @@ minetest.register_node("minertrade:exchangetable", {
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", modMinerTrade.translate("EXCHANGE TABLE\n* It makes safe exchanges from player to player without the need to put your items on the ground."))
meta:set_string("pl1","")
meta:set_string("pl2","")
@ -109,7 +109,7 @@ minetest.register_node("minertrade:exchangetable", {
inv:set_size("pl2", 3*4)
end,
on_receive_fields = function(pos, formname, fields, sender)
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", modMinerTrade.translate("EXCHANGE TABLE\n* It makes safe exchanges from player to player without the need to put your items on the ground."))
local pl_receive_fields = function(n)
if fields[n.."_start"] and meta:get_string(n) == "" then
@ -144,18 +144,18 @@ minetest.register_node("minertrade:exchangetable", {
modMinerTrade.exchangetable.update_formspec(meta)
end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if not modMinerTrade.exchangetable.getPrivilegios(from_list,player:get_player_name(),meta) then return 0 end
if not modMinerTrade.exchangetable.getPrivilegios(to_list,player:get_player_name(),meta) then return 0 end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if not modMinerTrade.exchangetable.getPrivilegios(listname,player:get_player_name(),meta) then return 0 end
return stack:get_count()
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if not modMinerTrade.exchangetable.getPrivilegios(listname,player:get_player_name(),meta) then return 0 end
return stack:get_count()
end,

View file

@ -1,128 +0,0 @@
--#########################################################################################
minetest.register_craftitem("minertrade:minercoin", {
description = modMinerTrade.translate("MINERCOIN\n* Basic craftable money with gold and steel."),
inventory_image = "obj_minecoin.png",
stack_max=9, --Acumula 9 por slot
groups = {cash=1, trade=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", {
description = modMinerTrade.translate("MINERMONEY\n* equals 09 Minercoins."),
inventory_image = "obj_minemoney.png",
stack_max=9, --Acumula 9 por slot
groups = {cash=1, trade=1},
})
minetest.register_craft({
output = "minertrade:minermoney",
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"},
},
})
minetest.register_alias(
modMinerTrade.translate("minermoney"),
"minertrade:minermoney"
)
--##########################################################################################################
minetest.register_craftitem("minertrade:piggybank", {
description = modMinerTrade.translate("PIGGY BANK\n* equals 09 Minermoneys."),
inventory_image = "obj_piggy_bank.png",
stack_max=9, --Acumula 9 por slot
groups = {cash=1, trade=1},
})
minetest.register_craft({
output = "minertrade:piggybank",
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 9",
recipe = {
{"minertrade:piggybank"},
},
})
minetest.register_alias(
modMinerTrade.translate("piggybank"),
"minertrade:piggybank"
)
--##########################################################################################################
minetest.register_craftitem("minertrade:creditcard", {
description = modMinerTrade.translate("CREDIT CARD\n* equals 09 Piggy Banks."),
inventory_image = "obj_credit_card.png",
stack_max=9, --Acumula 9 por slot
groups = {cash=1, trade=1},
})
minetest.register_craft({
output = "minertrade:creditcard",
recipe = {
{"minertrade:piggybank", "minertrade:piggybank", "minertrade:piggybank"},
{"minertrade:piggybank", "minertrade:piggybank", "minertrade:piggybank"},
{"minertrade:piggybank", "minertrade:piggybank", "minertrade:piggybank"}
},
})
minetest.register_craft({
output = "minertrade:piggybank 9",
recipe = {
{"minertrade:creditcard"},
},
})
minetest.register_alias(
modMinerTrade.translate("creditcard"),
"minertrade:creditcard"
)
--##########################################################################################################

332
item_minercash.lua Normal file
View file

@ -0,0 +1,332 @@
--#########################################################################################
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_minercoin.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^1),
inventory_image = "obj_minermoney_satured.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("minermoney1", "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(9^2),
inventory_image = "obj_minermoney_satured.png^[multiply:#00FF00",
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("minermoney2", "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(9^3),
inventory_image = "obj_minermoney_satured.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("minermoney3", "minertrade:minermoney_yellow")
minetest.register_alias("minercash729", "minertrade:minermoney_yellow")
--##########################################################################################################
minetest.register_craftitem("minertrade:minermoney_orange", {
description = core.colorize("#00FF00",
modMinerTrade.translate("ORANGE MINERMONEY")
).."\n* "..modMinerTrade.translate("Equals %02d minercash."):format(9^4),
inventory_image = "obj_minermoney_satured.png^[multiply:#FF8800",
stack_max=9, --Acumula 9 por slot
groups = {cash=6561, trade=1, money=1},
})
minetest.register_craft({
output = "minertrade:minermoney_orange",
recipe = {
{"minertrade:minermoney_yellow", "minertrade:minermoney_yellow", "minertrade:minermoney_yellow"},
{"minertrade:minermoney_yellow", "minertrade:minermoney_yellow", "minertrade:minermoney_yellow"},
{"minertrade:minermoney_yellow", "minertrade:minermoney_yellow", "minertrade:minermoney_yellow"}
},
})
minetest.register_craft({
output = "minertrade:minermoney_yellow 9",
recipe = {
{"minertrade:minermoney_orange"},
},
})
minetest.register_alias("minermoney_orange", "minertrade:minermoney_orange")
minetest.register_alias("minermoneyorange", "minertrade:minermoney_orange")
minetest.register_alias("minermoney4", "minertrade:minermoney_orange")
minetest.register_alias("minercash6561", "minertrade:minermoney_orange")
--##########################################################################################################
minetest.register_craftitem("minertrade:minermoney_red", {
description = core.colorize("#00FF00",
modMinerTrade.translate("RED MINERMONEY")
).."\n* "..modMinerTrade.translate("Equals %02d minercash."):format(9^5),
inventory_image = "obj_minermoney_satured.png^[multiply:#FF0000",
stack_max=9, --Acumula 9 por slot
groups = {cash=59049, trade=1, money=1},
})
minetest.register_craft({
output = "minertrade:minermoney_red",
recipe = {
{"minertrade:minermoney_orange", "minertrade:minermoney_orange", "minertrade:minermoney_orange"},
{"minertrade:minermoney_orange", "minertrade:minermoney_orange", "minertrade:minermoney_orange"},
{"minertrade:minermoney_orange", "minertrade:minermoney_orange", "minertrade:minermoney_orange"}
},
})
minetest.register_craft({
output = "minertrade:minermoney_orange 9",
recipe = {
{"minertrade:minermoney_red"},
},
})
minetest.register_alias("minermoney_red", "minertrade:minermoney_red")
minetest.register_alias("minermoneyred", "minertrade:minermoney_red")
minetest.register_alias("minermoney5", "minertrade:minermoney_red")
minetest.register_alias("minercash59049", "minertrade:minermoney_red")
--##########################################################################################################
minetest.register_craftitem("minertrade:minermoney_black", {
description = core.colorize("#00FF00",
modMinerTrade.translate("BLACK MINERMONEY")
).."\n* "..modMinerTrade.translate("Equals %02d minercash."):format(9^6),
inventory_image = "obj_minermoney_satured.png^[multiply:#666666",
stack_max=9, --Acumula 9 por slot
groups = {cash=531441, trade=1, money=1},
})
minetest.register_craft({
output = "minertrade:minermoney_black",
recipe = {
{"minertrade:minermoney_red", "minertrade:minermoney_red", "minertrade:minermoney_red"},
{"minertrade:minermoney_red", "minertrade:minermoney_red", "minertrade:minermoney_red"},
{"minertrade:minermoney_red", "minertrade:minermoney_red", "minertrade:minermoney_red"}
},
})
minetest.register_craft({
output = "minertrade:minermoney_red 9",
recipe = {
{"minertrade:minermoney_black"},
},
})
minetest.register_alias("minermoney_black", "minertrade:minermoney_black")
minetest.register_alias("minermoneyblack", "minertrade:minermoney_black")
minetest.register_alias("minermoney6", "minertrade:minermoney_black")
minetest.register_alias("minercash531441", "minertrade:minermoney_black")
--##########################################################################################################
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 = core.colorize("#00FF00",
modMinerTrade.translate("CREDIT CARD")
).."\n\t* "..modMinerTrade.translate("Allows you to access the bank account 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()
modMinerTrade.showAccountBank.inCreditCard(playername, playername)
end,
})
--[[
minetest.register_craft({
output = "minertrade:creditcard",
recipe = {
{"minertrade:minermoney_green"},
},
})
--]]
--[[
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("creditcard", "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"},
},
})

148
item_paper_written.lua Normal file
View file

@ -0,0 +1,148 @@
minetest.register_craftitem("minertrade:paper_written", {
description = modMinerTrade.translate("Paper Written"),
--inventory_image = "bgf_scroll.png",
--inventory_image = "default_paper.png",
--inventory_image = "[combine:16x32:0,0=default_cobble.png:0,16=default_wood.png", --ok
--inventory_image = "default_paper.png^[fill:32x32:8,8:#20F02080",
inventory_image = "default_paper.png^[colorize:#888800:127", --ok
--inventory_image = "bgf_scroll.png^[resize:16x16", --ok
--inventory_image = "bgf_scroll.png^obj_minercoin.png", --ok
groups = {paper = 1, printed = 1, not_in_creative_inventory = 1, flammable = 1},
stack_max = 1,
on_use = function(itemstack, user)
local playername = user:get_player_name()
local meta = itemstack:get_meta()
local data = meta:to_table().fields
local text = minetest.decode_base64(data.text)
modMinerTrade.showPaperPrinted(playername, text)
end,
})
default.register_craft_metadata_copy("default:paper", "minertrade:paper_written")
modMinerTrade.paperprinted = {
max_title_size = 80,
}
modMinerTrade.addPaperPrinted = function(player, txtTitle, txtPrinted)
local playername = player:get_player_name()
local data = {}
--data.title = fields.title:sub(1, max_title_size)
--data.title = txtTitle:sub(1, modMinerTrade.paperprinted.max_title_size)
--data.description = core.colorize("#00FF00", modMinerTrade.translate("PAPER WRITTEN") )
--.."\n".." * "..data.title
data.description = txtItemDescription
data.when = os.date() --os.date("%Y-%B-%d %Hh:%Mm:%Ss")
data.text = minetest.encode_base64(txtPrinted:trim())
local objPaperPrinted = ItemStack("minertrade:paper_written")
objPaperPrinted:get_meta():from_table({ fields = data })
local invPlayer = player:get_inventory()
if invPlayer:room_for_item("main", objPaperPrinted) then-- verifica se compartimento de Recebimento de pagamento do vendedor tem espaço
invPlayer:add_item("main", objPaperPrinted)
minetest.chat_send_player(playername,
core.colorize("#00FF00", "["..modMinerTrade.translate("PRINTER").."]: ")
..modMinerTrade.translate("Paper printing completed!")
)
else
minetest.add_item(player:get_pos(), objPaperPrinted)
minetest.chat_send_player(playername,
core.colorize("#00FF00", "["..modMinerTrade.translate("PRINTER").."]: ")
..core.colorize("#FF0000",
modMinerTrade.translate("The printed paper was left on the floor because the '%s' inventory has no free space."):format(playername)
)
)
end
end
modMinerTrade.showPaperPrinted = function(playername, text)
--Fonte:
-- * https://minetest.gitlab.io/minetest/formspec/
-- * https://minetest.gitlab.io/minetest/formspec/#hypertextxywhnametext
-- * https://github.com/minetest/minetest/blob/master/doc/lua_api.md
local myFormSpec = ""
myFormSpec = myFormSpec
--.."formspec_version[5.6.0]"
.."formspec_version[6]"
.."size[11,11,true]"
.."no_prepend[]"
.."bgcolor[#08080844;true]" --Padrão: #080808BB
.."background[0,0;11,11;bgf_scroll.png]"
--.."vertlabel[15.75,0.5;"..minetest.formspec_escape(modMinerTrade.translate("PRINTED PAPER")).."]"
.."hypertext[1.00,1.00;9.25,7.50;myPage;"
--..minetest.formspec_escape("<global margin=10 valign=0 color=#FF00FF hovercolor=#00FFFF size=12 font=normal halign=center >")
.."<global valign=middle halign=left margin=10 background=#FFFFFF00 color=#000000 hovercolor=#00FF00 size=12 font=normal>"
.."<tag name=action color=#FF0000 hovercolor=#00FF00 font=normal size=12>"
--.."<tag name=item valign=top width=32 height=32>"
..minetest.formspec_escape(text)
.."]" -- Fim de hypertext[]
minetest.show_formspec(playername, "paper_written", myFormSpec)
end
minetest.register_chatcommand("printsample", {
params = "",
description = "Imprime um papel no Inventário no jogador!.",
privs = {server = true},
func = function(playername, param)
local txtPrintedSample = [[
<center>
<img name=obj_piggy_bank.png float=center width=96 height=96>
<style font=mono color=#FF0000 size=24><b>MINETEST BANK</b></style>
</center>
<item name=minertrade:minercoin valign=middle width=32 height=32> <big>Bem vindo, <b>%s</b>!</big>
Esse é um <action name=lnkMinercoin>Exemplo de Link</action> (não funcional) escrito em formato hyperlink.
<center>
---------------------------------= FIM DA IMPRESSÃO =-------------------------------------
<bigger>=D</bigger>
Pressione <b>ESC</b> para sair desta tela!
</center>
]]
local player = minetest.get_player_by_name(playername)
modMinerTrade.addPaperPrinted(
player,
core.colorize("#00FF00", modMinerTrade.translate("PAPER WRITTEN") )
.."\n * Exemplo de Impressão em Papel.",
txtPrintedSample:format(playername)
)
end,
})

View file

@ -55,7 +55,7 @@ function lunotrades.doCTRLRightClick(pos, node, clicker)
clicker:get_inventory():set_size("customer_gives", 3*2)
clicker:get_inventory():set_size("customer_gets", 3*2)
lunotrades.balcaodeloja.loja_atual[clicker:get_player_name()] = pos
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if inv:is_empty("customers_gave") then
@ -168,19 +168,19 @@ for _,ItemID in ipairs(instancias) do
--[[
props.allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local playername = player:get_player_name()
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if player:get_player_name() ~= meta:get_string("owner") then return 0 end
return count
end,
props.allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local playername = player:get_player_name()
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if player:get_player_name() ~= meta:get_string("owner") then return 0 end
return stack:get_count()
end,
props.allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local playername = player:get_player_name()
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
if player:get_player_name() ~= meta:get_string("owner") then return 0 end
return stack:get_count()
end,

View file

@ -1,92 +0,0 @@
minetest.register_node("minertrade:strongbox", {
description = modMinerTrade.translate("STRONGBOX\n* Save your money in this safe and withdraw your money at any shop that has an ATM."),
--inventory_image = "safe_front.png",
paramtype = "light",
sunlight_propagates = true,
light_source = default.LIGHT_MAX,
paramtype2 = "facedir",
is_ground_content = false,
groups = {cracky=1},
tiles = {
"safe_side.png",
"safe_side.png",
"safe_side.png",
"safe_side.png",
"safe_side.png",
"safe_front.png",
},
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
local ownername = placer:get_player_name() or ""
meta:set_string("owner", ownername)
meta:set_string("infotext", modMinerTrade.translate("STRONGBOX (Property of '%s')\n* Save your money in this safe and withdraw your money at any shop that has an ATM."):format(ownername))
local now = os.time() --Em milisegundos
meta:set_string("opentime", now+modMinerTrade.delayConstruct)
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
if modMinerTrade.isOpen(meta, player) then
return true
else
return false
end
end,
on_rightclick = function(pos, node, clicker)
local playername = clicker:get_player_name()
local meta = minetest.get_meta(pos)
local ownername = meta:get_string("owner")
meta:set_string("infotext", modMinerTrade.translate("STRONGBOX (Property of '%s')\n* Save your money in this safe and withdraw your money at any shop that has an ATM."):format(ownername))
if modMinerTrade.isOpen(meta, clicker) then
local opentime = tonumber(meta:get_string("opentime")) or 0
local now = os.time() --Em milisegundos
if now >= opentime or minetest.get_player_privs(playername).server then
local inv = modMinerTrade.getDetachedInventory(ownername)
minetest.show_formspec(
playername,
"safe_"..ownername,
modMinerTrade.getFormspec(
ownername,
modMinerTrade.translate("STRONGBOX owned by '%s':"):format(ownername)
)
)
else
minetest.chat_send_player(playername,
core.colorize("#00ff00", "["..modMinerTrade.translate("STRONGBOX").."]: ")
..modMinerTrade.translate("The safe is going to work %02d seconds after it is installed!"):format(opentime-now)
)
end
else
minetest.chat_send_player(playername,
core.colorize("#00ff00", "["..modMinerTrade.translate("STRONGBOX").."]: ")
..modMinerTrade.translate("You do not have access to the safe belonging to '%s'!"):format(ownername)
)
end
end,
})
minetest.register_on_player_receive_fields(function(sender, formname, fields)
local sendername = sender:get_player_name()
--minetest.chat_send_player(sendername, "formname="..formname.." fields="..dump(fields))
if formname == "safe_"..sendername then -- This is your form name
if fields.quit then
modMinerTrade.doSave()
minetest.log('action',"[STRONGBOX] "..modMinerTrade.translate("Saving strongbox from all players in the file '%s'!"):format(modMinerTrade.urlTabela))
end
end
end)
minetest.register_craft({
output = 'minertrade:strongbox',
recipe = {
{"default:steel_ingot" ,"default:steel_ingot" ,"default:steel_ingot"},
{"default:steel_ingot" ,"" ,"default:mese_crystal"},
{"default:steel_ingot" ,"default:steel_ingot" ,"default:steel_ingot"},
}
})
minetest.register_alias(
modMinerTrade.translate("strongbox"),
"minertrade:strongbox"
)

View file

@ -2,18 +2,55 @@
To generate file '**template.pot**', did use terminal command:
````xgettext -n *.lua -L Lua --force-po --keyword=modMinerTrade.translate --from-code=UTF-8 -o template.pot````
```bash
cd minertrade
xgettext -n *.lua -L Lua --force-po --keyword=modMinerTrade.translate --from-code=UTF-8 -o ./locale/template.pot
```
To translate '**template.pot**' to your language use app poedit.:
````sudo apt-get inatall poedit````
### Cria arquivo .po a partir de um arquivo de templante .pot
Sintaxe:
```bash
$ msginit --no-translator --no-wrap --locale=$LANG.UTF-8 --output-file=$LANG.po --input=$POT
```
### Atualiza arquivo ,po a partir de um arquivo de templante .pot
Sintaxe:
```bash
$ msgmerge --sort-output --no-wrap --update --backup=off $LANG.po $POT
```
Example:
```bash
msgmerge --sort-output --no-wrap --update --backup=off ./locale/pt_BR.po ./locale/template.pot
```
### Install the PoEdit:
```bash
sudo apt-get install poedit
```
* Locales used: ca;cs;da;de;dv;eo;es;et;fr;hu;id;it;ja;jbo;kn;lt;ms;nb;nl;pl;pt;pt_BR;ro;ru;sl;sr_Cyrl;sv;sw;tr;uk
* Translate Sample: "locale/pt.po" to portuguese language.
* To enable the translate to portuguese language, write "language = pt" in file "minetest.conf". Or write the command "```/set -n language pt```" in game chat, and run again the minetest game.
### Exemple of enable the portuguese language in minetest:
Translate Sample:
* "locale/pt.po" to portuguese language.
To enable the translate to portuguese language, write "language = pt" in file "minetest.conf". Or write the command ```/set -n language pt``` in game chat, and run again the minetest game.
----
> See more:
* https://forum.minetest.net/viewtopic.php?f=47&t=21974
* https://github.com/minetest/minetest/issues/8158
* https://gist.githubusercontent.com/mamchenkov/3690981/raw/8ebd48c2af20c893c164e8d5245d9450ad682104/update_translations.sh

View file

@ -1,89 +0,0 @@
#Transdutor: Lunovox <lunovox@openmailbox.org>
#------- api.lua ---------------------------------------------------------------------------
Permission to open locked chests of other players=Permissão de abertura de baús trancados de outros jogadores
The file '%s' is not in table format!=O arquivo '%s' não esta no formato de tabela!
Opening '%s'!=Abrindo '%s'!
Player '%s' has placed %02d '%s' in his safe!=O jogador '%s' colocou %02d '%s' em seu cofre!
Player '% s' has removed %02d '% s' in his safe!=O jogador '%s' retirou %02d '%s' em seu cofre!
#------- item_miner_cahs.lua ---------------------------------------------------------------------------
MINERCOIN\n* Basic craftable money with gold and steel.=MINERMOEDA\n* Dinheiro básico criado com ouro e aço.
MINERMONEY\n* equals 09 Minercoins.=MINERCÉDULA\n* Equivale a 09 Minermoedas.
PIGGY BANK\n* equals 09 Minermoneys.=COFRE PORQUINHO\n* Equivale a 09 Minercédulas.
CREDIT CARD\n* equals 09 Piggy Banks.=CARTÃO DE CRÉDITO\n* Equivale a 09 Cofre-Porquinhos.
#------- item_dispensing_machine.lua ---------------------------------------------------------------------------
DISPENSING MACHINE=MÁQUINA DE DISPENSADORA
Customer Offer=Cliente Oferece
Customer Receive=Cliente Recebe
ACCEPT=ACEITAR
Dispending done!=Dispensa Concluida!
Current customer inventory=Inventário atual do cliente
The Machine Need=A Maquina Precisa
The Machine Offer=A Maquina Oferece
Items Received (Your Profit)=Itens Recebido (Seu Lucro)
Stock to Offer=Estoque a Oferetar
You need=Você Precisa
You offer=Você Oferece
Make an announcement about what this machine will do=Faça um anúncio sobre o que esta máquina dispensará
Seller current inventory=Inventario atual do vendedor
Ctrl + Right Click Mouse → Customer Interface=Ctrl + Clique Direito do Mouse → Interface do Cliente
DISPENSING MACHINE\n* Sells your items, even if you are not online.=MÁQUINA DE DISPENSADORA\n* Vende seus itens, mesmo se você não estiver online.
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 ---------------------------------------------------------------------------
EXCHANGE TABLE\n(Player to Player)=MESA DE ESCAMBO\n(Jogador para Jogador)
EXCHANGE TABLE\n* It makes safe exchanges from player to player without the need to put your items on the ground.=MESA DE ESCAMBO\n* Faz trocas seguras jogador a jogador sem a necessidade de colocar seu itens no chão.
'%s' offer='%s' oferece
Your inventory=Seu inventario
Open=Abrir
Offer=Oferecer
Cancel=Cancelar
Confirm=Confirmar
#------- item_strongbox.lua ---------------------------------------------------------------------------
STRONGBOX=COFRE
STRONGBOX\n* Save your money in this safe and withdraw your money at any shop that has an ATM.=COFRE\n* Guarde seu dinheiro neste cofre e retire seu dinheiro em qualquer loja que possua um Caixa Eletrônico.
STRONGBOX (Property of '%s')\n* Save your money in this safe and withdraw your money at any shop that has an ATM.=COFRE (Propriedade de '%s')\n* Guarde seu dinheiro neste cofre e retire seu dinheiro em qualquer loja que possua um Caixa Eletrônico.
The safe is going to work %02d seconds after it is installed!=O cofre só vai funcionar %02d segundos depois de instalado!
You do not have access to the safe belonging to '%s'!=Você não tem acesso ao cofre pertencente a '%s'!
STRONGBOX owned by '%s':=COFRE FORTE de '%s':
#------- item_atm.lua ---------------------------------------------------------------------------
ATM=CAIXA ELETRÔNICO
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.=CAIXA ELETRÔNICO\n* Guarde o seu dinheiro neste Caixa Eletrônico, e retire seu dinheiro em seu Cofre Pessoal ou qualquer outro Caixa Eletrônico nas lojas espalhadas pelo mapa.
You can not install this 'ATM' too far from a 'Dispensing Machine'!=Você não pode instalar este 'Caixa Eletrônico' muito longe de uma 'Máquina Dispensadora'!
The ATM will only run %02d seconds after it is installed!=O Caixa Eletrônico só vai funcionar %02d segundos depois de instalado!
PUBLIC ATM - Account of '%s':=CAIXA ELETRÔNICO - Conta de '%s':
#------- payday.lua ---------------------------------------------------------------------------
CITY HALL=PREFEITURA
Only players with this privilege will receive a daily payment.=Somente jogadores com esse privilégio receberão um pagamento diário.
Your Strongbox is full! %2d items weren't added in your bank account.=O seu cofre está cheio! %2d itens não foram adicionados à sua conta bancária.
The city hall deposited the %2d° salary in your bank account!=A prefeitura depositou o %2d° salário em sua conta bancária!
#------- commands.lua ---------------------------------------------------------------------------
checkstrongbox=checacofre
Lets you check the contents of another players strongbox.=Permite verificar o conteúdo do cofre de outro jogador.
The strongbox of %s was not created yet!=O Cofre de %s não foi criado ainda!
You do not have permission to run this command without the privileges 'checkstrongbox'!=Você não tem permissão para executar este comando sem o privilégio 'checkstrongbox'!
#------- on_final.lua ---------------------------------------------------------------------------
Saving strongbox from all players in the file '%s'!=Salvando cofre de todos os jogadores no arquivo '%s'!
# ------- alias ---------------------------------------------------------------------------
minercoin=minermoeda
minermoney=minercedula
piggybank=cofreporquinho
creditcard=cartaodecredito
dispensingmachine=dispensadora
exchangetable=mesadetroca
strongbox=caixaforte
atm=caixaeletronico

574
locale/pt.po Normal file
View file

@ -0,0 +1,574 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-08 02:40-0300\n"
"PO-Revision-Date: 2022-05-18 11:16-0300\n"
"Last-Translator: Lunovox Heavenfinder <lunovox@disroot.org>\n"
"Language-Team: \n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.6\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: item_exchange_table.lua:13 item_exchange_table.lua:21
#, lua-format
msgid "'%s' offer"
msgstr "'%s' oferece"
#: api.lua:415
#, lua-format
msgid "A letter was sent by the dispensing machine '%s' to '%s' advising about '%s'!"
msgstr "Uma carta foi enviada pela Máquina Dispensadora '%s' para '%s' informando sobre '%s'!"
#: item_dispensing_machine.lua:22
msgid "ACCEPT"
msgstr "ACEITAR"
#: item_atm.lua:333
msgid "ACCOUNT CREATED"
msgstr "CONTA CRIADA"
#: item_atm.lua:929 item_atm.lua:935 item_atm.lua:1081 item_atm.lua:1112
msgid "ATM"
msgstr "CAIXA ELETRÔNICO"
#: item_atm.lua:624
msgid "ATM entrance"
msgstr "Entrada do Caixa Eletrônico"
#: item_atm.lua:208
msgid "Account Holder"
msgstr "Correntista"
#: item_atm.lua:956
#, lua-format
msgid "Account holder '%s' cannot be a beneficiary of itself."
msgstr "O titular da conta '%s' não pode ser beneficiário de si mesmo."
#: item_minercash.lua:276
msgid "Allows you to access the bank account of the credit card owner anywhere in the world."
msgstr "Permite acessar a conta bancária do titular do cartão de crédito em qualquer lugar do mundo."
#: item_atm.lua:325 item_atm.lua:361 item_atm.lua:449 item_atm.lua:489
#: item_atm.lua:606 item_atm.lua:654
msgid "BACK"
msgstr "VOLTAR"
#: item_atm.lua:280
msgid "BALANCE"
msgstr "SALDO"
#: item_atm.lua:337 item_atm.lua:495 item_atm.lua:660
msgid "BALANCES"
msgstr "SALDOS"
#: item_atm.lua:464 item_minercash.lua:237
msgid "BANK CHECK"
msgstr "CHEQUE BANCÁRIO"
#: item_atm.lua:612
msgid "BANK DEPOSIT"
msgstr "DEPÓSITO BANCÁRIO"
#: item_atm.lua:681
msgid "BENEFICIARY NAME"
msgstr "NOME DO BENEFICIÁRIO"
#: item_minercash.lua:203
msgid "BLACK MINERMONEY"
msgstr "NOTA PRETA"
#: item_minercash.lua:38
msgid "BLUE MINERMONEY"
msgstr "NOTA AZUL"
#: item_minercash.lua:8
msgid "Basic craftable minercash with gold and steel."
msgstr "Minercash básico criado apenas com ouro e aço."
#: item_atm.lua:209
msgid "Beneficiary"
msgstr "Beneficiário"
#: api_payday.lua:67
msgid "CITY HALL"
msgstr "PREFEITURA"
#: item_atm.lua:293 item_minercash.lua:275
msgid "CREDIT CARD"
msgstr "CARTÃO DE CRÉDITO"
#: item_atm.lua:2
msgid "Can access evolving ATM functions."
msgstr "Pode acessar funções ATM em desenvolvimento."
#: item_exchange_table.lua:15 item_exchange_table.lua:17
#: item_exchange_table.lua:23 item_exchange_table.lua:25
msgid "Cancel"
msgstr "Cancelar"
#: item_exchange_table.lua:16 item_exchange_table.lua:24
msgid "Confirm"
msgstr "Confirmar"
#: item_dispensing_machine.lua:66
msgid "Ctrl + Right Click Mouse → Customer Interface"
msgstr "Ctrl + Clique Direito do Mouse → Interface do Cliente"
#: item_dispensing_machine.lua:24
msgid "Current customer inventory"
msgstr "Inventário atual do cliente"
#: item_dispensing_machine.lua:16
msgid "Customer Offer"
msgstr "Cliente Oferece"
#: item_dispensing_machine.lua:19
msgid "Customer Receive"
msgstr "Cliente Recebe"
#: item_atm.lua:288
msgid "DEPOSITS"
msgstr "DEPÓSITOS"
#: item_atm.lua:517 item_atm.lua:706
msgid "DETAILS"
msgstr "DETALHES"
#: api.lua:409 api.lua:451 item_dispensing_machine.lua:13
#: item_dispensing_machine.lua:204 item_dispensing_machine.lua:224
#: item_dispensing_machine.lua:296
msgid "DISPENSING MACHINE"
msgstr "MÁQUINA DE DISPENSADORA"
#: item_dispensing_machine.lua:131
msgid ""
"DISPENSING MACHINE\n"
"* Sells your items, even if you are not online."
msgstr ""
"MÁQUINA DE DISPENSADORA\n"
"* Vende seus itens, mesmo se você não estiver online."
#: item_atm.lua:704
#, fuzzy
msgid "DO TRANSFER"
msgstr "TRANSFERIR"
#: item_atm.lua:991 item_atm.lua:1070
msgid "Deposit and Withdraw your minercash into your bank account."
msgstr "Deposita e Saca seu dinheiro em sua conta bancária."
#: item_dispensing_machine.lua:297
msgid "Dispending done!"
msgstr "Dispensa Concluida!"
#: item_dispensing_machine.lua:154 item_dispensing_machine.lua:235
#: item_dispensing_machine.lua:240
#, lua-format
msgid "Dispensing Machine of '%s'."
msgstr "Maquina Dispensadora de '%s'."
#: item_atm.lua:206
msgid "Document Type"
msgstr "Tipo de Documento"
#: api.lua:421
msgid "Due to an unknown error, it was not possible to send an email through the dispensing machine!"
msgstr "Devido a um erro desconhecido, não foi possível enviar um email através da Máquina Dispensadora!"
#: item_exchange_table.lua:6
msgid ""
"EXCHANGE TABLE\n"
"(Player to Player)"
msgstr ""
"MESA DE ESCAMBO\n"
"(Jogador para Jogador)"
#: item_exchange_table.lua:97 item_exchange_table.lua:103
#: item_exchange_table.lua:113
msgid ""
"EXCHANGE TABLE\n"
"* It makes safe exchanges from player to player without the need to put your items on the ground."
msgstr ""
"MESA DE ESCAMBO\n"
"* Faz trocas seguras jogador a jogador sem a necessidade de colocar seu itens no chão."
#: item_atm.lua:299 item_atm.lua:326 item_atm.lua:362 item_atm.lua:450
#: item_atm.lua:490 item_atm.lua:607 item_atm.lua:655
msgid "EXIT"
msgstr "SAIR"
#: item_minercash.lua:39 item_minercash.lua:72 item_minercash.lua:105
#: item_minercash.lua:138 item_minercash.lua:171 item_minercash.lua:204
#, lua-format
msgid "Equals %02d minercash."
msgstr "Equivale a %02d minercash."
#: item_minercash.lua:238
msgid "Equivalent to as much minercash as your creator wants.."
msgstr "Equivalente a tanto minercash quanto seu criador quiser."
#: item_atm.lua:335
msgid "FINANCIAL TRANSACTIONS"
msgstr "TRANSAÇÕES FINANCEIRAS"
#: item_minercash.lua:71
msgid "GREEN MINERMONEY"
msgstr "NOTA VERDE"
#: item_atm.lua:294
msgid "LOANS"
msgstr "EMPRÉSTIMOS"
#: item_atm.lua:460
msgid "MINERCASH"
msgstr "MINERCASH"
#: item_minercash.lua:7
msgid "MINERCOIN"
msgstr "MINERMOEDA"
#: item_dispensing_machine.lua:58
msgid "Make an announcement about what this machine will do"
msgstr "Faça um anúncio sobre o que esta máquina dispensará"
#: item_atm.lua:331
msgid "NAME OF BANKING ACCOUNT HOLDER"
msgstr "NOME DO CORRENTISTA BANCÁRIO"
#: item_atm.lua:376
msgid "N°"
msgstr "N°"
#: item_minercash.lua:368
msgid "OBSOLETE MONEY"
msgstr "DINHEIRO OBSOLETO"
#: item_minercash.lua:137
msgid "ORANGE MINERMONEY"
msgstr "NOTA LARANJA"
#: item_exchange_table.lua:14 item_exchange_table.lua:22
msgid "Offer"
msgstr "Oferecer"
#: api_payday.lua:2
msgid "Only players with this privilege will receive a daily payment."
msgstr "Somente jogadores com esse privilégio receberão um pagamento diário."
#: item_exchange_table.lua:12 item_exchange_table.lua:20
msgid "Open"
msgstr "Abrir"
#: item_atm.lua:50
#, lua-format
msgid "Opening '%s' with data bank!"
msgstr "Abrindo '%s' com dados do banco!"
#: item_atm.lua:990 item_atm.lua:1069
msgid "PUBLIC ATM"
msgstr "CAIXA ELETRÔNICO PÚBLICO"
#: item_atm.lua:311 item_atm.lua:423 item_atm.lua:479 item_atm.lua:595
#: item_atm.lua:644
#, lua-format
msgid "Player '%s' is not an account holder of this bank."
msgstr "O jogador '%s' não é titular de conta deste banco."
#: item_atm.lua:699
#, fuzzy
msgid "REASON OF TRANSFER"
msgstr "MOTIVO DA TRANSFERÊNCIA"
#: item_minercash.lua:170
msgid "RED MINERMONEY"
msgstr "NOTA VERMELHA"
#: item_atm.lua:202
#, lua-format
msgid "Reason: %s"
msgstr "Rasão: %s"
#: item_dispensing_machine.lua:47
msgid "Received (Your Profit)"
msgstr "Recebido (Seu Lucro)"
#: item_atm.lua:207
msgid "Responsible Player"
msgstr "Jogador Responsável"
#: item_atm.lua:455
msgid "SELECT BANK WITHDRAWAL METHOD"
msgstr "SELECIONE O MÉTODO DE SAQUE BANCÁRIO"
#: item_atm.lua:295
msgid "SETTINGS"
msgstr "CONFIGURAÇÕES"
#: item_atm.lua:281 item_atm.lua:371
msgid "STATEMENT"
msgstr "EXTRATO"
#: item_dispensing_machine.lua:63
msgid "Save The Announcement"
msgstr "Salvar o anúncio"
#: item_atm.lua:29
#, lua-format
msgid "Saving data bank in the file '%s'!"
msgstr "Salvando dados bancários no arquivo '%s'!"
#: item_atm.lua:367
msgid "Select a bank statement to view transaction details!"
msgstr "Selecione uma Transação do Extrato Bancário para ver os detalhes!"
#: item_dispensing_machine.lua:64
msgid "Seller current inventory"
msgstr "Inventario atual do vendedor"
#: item_dispensing_machine.lua:49
msgid "Stock to Offer"
msgstr "Estoque a Oferetar"
#: item_atm.lua:404
msgid "TOTAL"
msgstr "TOTAL"
#: item_atm.lua:427
msgid "TRANSACTION DETAILS"
msgstr "DETALHES DA TRANSAÇÃO"
#: item_atm.lua:199 item_atm.lua:206
#, fuzzy
msgid "TRANSFER PROOF"
msgstr "COMPROVANTE DE TRANSFERÊNCIA"
#: item_atm.lua:290
msgid "TRANSFERS"
msgstr "TRANSFERÊNCIAS"
#: api.lua:373 api.lua:429 api.lua:435 api.lua:460
#, lua-format
msgid "The '%s' parameter must be of the non-empty string type!"
msgstr "O parâmetro '%s' deve ser do tipo de STRING não vazia!"
#: api.lua:357 api.lua:379 api.lua:394 api.lua:441
#, lua-format
msgid "The '%s' parameter must be of the position type (x,y,z)!"
msgstr "O parâmetro '%s' deve ser do tipo de POSITION (x,y,z)!"
#: item_atm.lua:921
#, lua-format
msgid "The '%s' say to '%s': '%s'"
msgstr "Correntista '%s' disse para '%s': '%s'"
#: item_atm.lua:917
#, lua-format
msgid "The '%s' say: '%s'"
msgstr "Correntista '%s' disse: '%s'"
#: item_atm.lua:1114
#, lua-format
msgid "The ATM will only run %02d seconds after it is installed!"
msgstr "O Caixa Eletrônico só vai funcionar %02d segundos depois de instalado!"
#: item_dispensing_machine.lua:205
msgid "The Dispensing Machine can not be removed before being emptied!"
msgstr "A Máquina Dispensadora não pode ser retirada antes de ser esvaziada!"
#: item_dispensing_machine.lua:306
#, lua-format
msgid "The Dispensing Machine with offer '%s' cannot deliver more items to '%s' because stock of '%s' is empty!"
msgstr "A Máquina Dispensadora com oferta '%s' não é possível entregar mais itens para '%s' porque o estoque de '%s' acabou!"
#: item_dispensing_machine.lua:313
#, lua-format
msgid "The Dispensing Machine with offer '%s' is out of space to receive customer item '%s'."
msgstr "A Maquina Dispensadora com oferta '%s' está sem espaço suficiente para receber o item do cliente '%s'."
#: item_dispensing_machine.lua:29
msgid "The Machine Need"
msgstr "Máquina Precisa"
#: item_dispensing_machine.lua:32
msgid "The Machine Offer"
msgstr "Máquina Oferece"
#: item_atm.lua:937
#, lua-format
msgid "The Transfer Proof was left on the floor because '%s' inventory has no free space."
msgstr "A prova de transferência foi deixada no chão porque o inventário '%s' não tem espaço livre."
#: item_atm.lua:949
#, lua-format
msgid "The bank account holder '%s' does not have enough balance to make this requested transfer."
msgstr "O titular da conta bancária '%s' não tem saldo suficiente para fazer esta transferência solicitada."
#: item_atm.lua:963
#, fuzzy, lua-format
msgid "The beneficiary '%s' does not have a current account with this bank."
msgstr "O jogador '%s' não é titular de conta deste banco."
#: api_payday.lua:61
#, lua-format
msgid "The city hall deposited the %2d° salary in your bank account!"
msgstr "A prefeitura depositou o %2d° salário em sua conta bancária!"
#: item_dispensing_machine.lua:324
msgid "The dispending can not be done. Make sure you offer what the machine asks for!"
msgstr "A dispensa não pode ser feita. Verifique se você ofereceu o que a Maquina Dispensadora pede!"
#: item_atm.lua:31 item_atm.lua:47
#, lua-format
msgid "The file '%s' is not in table format!"
msgstr "O arquivo '%s' não esta no formato de tabela!"
#: item_atm.lua:866
#, lua-format
msgid "The maximum amount you can withdraw is: %02d minercash."
msgstr "O valor máximo que você pode sacar é: %02d minercash."
#: item_atm.lua:976
#, fuzzy, lua-format
msgid "There is no account holder '%s' in this bank."
msgstr "O jogador '%s' não é titular de conta deste banco."
#: item_atm.lua:212
#, fuzzy
msgid "Transfer Reason"
msgstr "Motivo da Transferência"
#: item_atm.lua:670 item_atm.lua:898
msgid "Transfer for undeclared reason!"
msgstr "Transferência por rasão não declarada!"
#: item_atm.lua:930
msgid "Transfer successful!"
msgstr "Sucesso de transferência!"
#: item_atm.lua:376 item_atm.lua:510 item_atm.lua:690
msgid "VALUE"
msgstr "VALOR"
#: item_atm.lua:211
msgid "Value"
msgstr "Valor"
#: item_atm.lua:376
msgid "WHEN"
msgstr "QUANDO"
#: item_atm.lua:515
msgid "WITHDRAWAL"
msgstr "SAQUE"
#: item_atm.lua:289
msgid "WITHDRAWALS"
msgstr "SAQUES"
#: item_atm.lua:210
msgid "When"
msgstr "Quando"
#: item_atm.lua:465
msgid "Withdrawals in bank check."
msgstr "Saque em Cheque Bancário."
#: item_atm.lua:461
msgid "Withdrawals in minercash."
msgstr "Saque em minercash."
#: item_dispensing_machine.lua:319
msgid "Without enough space in Dispensing Machine to receive the seller's item. (Please, empty the receiving box!)"
msgstr "Sem espaço suficiente na Maquina Dispensadora para receber o item do vendedor. (Por favor, esvazie a caixa de recebimento!)"
#: item_atm.lua:673
msgid "Write the 'beneficiary player name' and the 'value in minercash' that want to transfer!"
msgstr "Escreva o 'nome do jogador beneficiário' e o 'valor em minercash' que deseja transferir!"
#: item_atm.lua:502
msgid "Write the value that want to withdrawal!"
msgstr "Digite o valor que deseja sacar!"
#: item_minercash.lua:104
msgid "YELLOW MINERMONEY"
msgstr "NOTA AMARELA"
#: item_atm.lua:617
msgid "YOUR BALANCE"
msgstr "SEU SALDO"
#: item_minercash.lua:369
msgid "You can make money from it."
msgstr "Você pode ganhar algum dinheiro com isso."
#: item_dispensing_machine.lua:225
msgid "You can not change your own machine!"
msgstr "Você não pode trocar na sua própria maquina!"
#: item_atm.lua:1082
msgid "You can not install this 'ATM' too far from a 'Dispensing Machine'!"
msgstr "Você não pode instalar este 'Caixa Eletrônico' muito longe de uma 'Máquina Dispensadora'!"
#: item_atm.lua:569
#, lua-format
msgid "You deposited %02d x '%s'!"
msgstr "Você depositou %02d x '%s'!"
#: item_atm.lua:856
msgid "You don't have space in your inventory to withdraw so much minercash."
msgstr "Você não tem espaço em seu inventário para retirar tanto minercash."
#: item_atm.lua:309 item_atm.lua:477 item_atm.lua:592 item_atm.lua:642
#, lua-format
msgid "You have %02d minercash."
msgstr "Você tem %02d minercash."
#: item_atm.lua:845
#, lua-format
msgid "You have withdrawn %02d minercash from your bank account."
msgstr "Você sacou %02d minercash de sua conta bancária."
#: item_dispensing_machine.lua:51
msgid "You need"
msgstr "Você Precisa"
#: item_dispensing_machine.lua:53
msgid "You offer"
msgstr "Você Oferece"
#: item_atm.lua:631
msgid "Your Inventory"
msgstr "Seu inventário"
#: item_exchange_table.lua:9
msgid "Your inventory"
msgstr "Seu inventário"
#: item_atm.lua:1133
msgid "atm"
msgstr "caixaeletronico"
#: item_minercash.lua:362
msgid "creditcard"
msgstr "cartaodecredito"
#: item_dispensing_machine.lua:346
msgid "dispensingmachine"
msgstr "dispensadora"
#: item_exchange_table.lua:175
msgid "exchangetable"
msgstr "mesadetroca"
#: item_minercash.lua:30
msgid "minercoin"
msgstr "minermoeda"

View file

@ -1,89 +0,0 @@
#Transdutor: Lunovox <lunovox@openmailbox.org>
#------- api.lua ---------------------------------------------------------------------------
Permission to open locked chests of other players=Permissão de abertura de baús trancados de outros jogadores
The file '%s' is not in table format!=O arquivo '%s' não esta no formato de tabela!
Opening '%s'!=Abrindo '%s'!
Player '%s' has placed %02d '%s' in his safe!=O jogador '%s' colocou %02d '%s' em seu cofre!
Player '% s' has removed %02d '% s' in his safe!=O jogador '%s' retirou %02d '%s' em seu cofre!
#------- item_miner_cahs.lua ---------------------------------------------------------------------------
MINERCOIN\n* Basic craftable money with gold and steel.=MINERMOEDA\n* Dinheiro básico criado com ouro e aço.
MINERMONEY\n* equals 09 Minercoins.=MINERCÉDULA\n* Equivale a 09 Minermoedas.
PIGGY BANK\n* equals 09 Minermoneys.=COFRE PORQUINHO\n* Equivale a 09 Minercédulas.
CREDIT CARD\n* equals 09 Piggy Banks.=CARTÃO DE CRÉDITO\n* Equivale a 09 Cofre-Porquinhos.
#------- item_dispensing_machine.lua ---------------------------------------------------------------------------
DISPENSING MACHINE=MÁQUINA DE DISPENSADORA
Customer Offer=Cliente Oferece
Customer Receive=Cliente Recebe
ACCEPT=ACEITAR
Dispending done!=Dispensa Concluida!
Current customer inventory=Inventário atual do cliente
The Machine Need=A Maquina Precisa
The Machine Offer=A Maquina Oferece
Items Received (Your Profit)=Itens Recebido (Seu Lucro)
Stock to Offer=Estoque a Oferetar
You need=Você Precisa
You offer=Você Oferece
Make an announcement about what this machine will do=Faça um anúncio sobre o que esta máquina dispensará
Seller current inventory=Inventario atual do vendedor
Ctrl + Right Click Mouse → Customer Interface=Ctrl + Clique Direito do Mouse → Interface do Cliente
DISPENSING MACHINE\n* Sells your items, even if you are not online.=MÁQUINA DE DISPENSADORA\n* Vende seus itens, mesmo se você não estiver online.
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 ---------------------------------------------------------------------------
EXCHANGE TABLE\n(Player to Player)=MESA DE ESCAMBO\n(Jogador para Jogador)
EXCHANGE TABLE\n* It makes safe exchanges from player to player without the need to put your items on the ground.=MESA DE ESCAMBO\n* Faz trocas seguras jogador a jogador sem a necessidade de colocar seu itens no chão.
'%s' offer='%s' oferece
Your inventory=Seu inventario
Open=Abrir
Offer=Oferecer
Cancel=Cancelar
Confirm=Confirmar
#------- item_strongbox.lua ---------------------------------------------------------------------------
STRONGBOX=COFRE
STRONGBOX\n* Save your money in this safe and withdraw your money at any shop that has an ATM.=COFRE\n* Guarde seu dinheiro neste cofre e retire seu dinheiro em qualquer loja que possua um Caixa Eletrônico.
STRONGBOX (Property of '%s')\n* Save your money in this safe and withdraw your money at any shop that has an ATM.=COFRE (Propriedade de '%s')\n* Guarde seu dinheiro neste cofre e retire seu dinheiro em qualquer loja que possua um Caixa Eletrônico.
The safe is going to work %02d seconds after it is installed!=O cofre só vai funcionar %02d segundos depois de instalado!
You do not have access to the safe belonging to '%s'!=Você não tem acesso ao cofre pertencente a '%s'!
STRONGBOX owned by '%s':=COFRE FORTE de '%s':
#------- item_atm.lua ---------------------------------------------------------------------------
ATM=CAIXA ELETRÔNICO
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.=CAIXA ELETRÔNICO\n* Guarde o seu dinheiro neste Caixa Eletrônico, e retire seu dinheiro em seu Cofre Pessoal ou qualquer outro Caixa Eletrônico nas lojas espalhadas pelo mapa.
You can not install this 'ATM' too far from a 'Dispensing Machine'!=Você não pode instalar este 'Caixa Eletrônico' muito longe de uma 'Máquina Dispensadora'!
The ATM will only run %02d seconds after it is installed!=O Caixa Eletrônico só vai funcionar %02d segundos depois de instalado!
PUBLIC ATM - Account of '%s':=CAIXA ELETRÔNICO - Conta de '%s':
#------- payday.lua ---------------------------------------------------------------------------
CITY HALL=PREFEITURA
Only players with this privilege will receive a daily payment.=Somente jogadores com esse privilégio receberão um pagamento diário.
Your Strongbox is full! %2d items weren't added in your bank account.=O seu cofre está cheio! %2d itens não foram adicionados à sua conta bancária.
The city hall deposited the %2d° salary in your bank account!=A prefeitura depositou o %2d° salário em sua conta bancária!
#------- commands.lua ---------------------------------------------------------------------------
checkstrongbox=checacofre
Lets you check the contents of another players strongbox.=Permite verificar o conteúdo do cofre de outro jogador.
The strongbox of %s was not created yet!=O Cofre de %s não foi criado ainda!
You do not have permission to run this command without the privileges 'checkstrongbox'!=Você não tem permissão para executar este comando sem o privilégio 'checkstrongbox'!
#------- on_final.lua ---------------------------------------------------------------------------
Saving strongbox from all players in the file '%s'!=Salvando cofre de todos os jogadores no arquivo '%s'!
# ------- alias ---------------------------------------------------------------------------
minercoin=minermoeda
minermoney=minercedula
piggybank=cofreporquinho
creditcard=cartaodecredito
dispensingmachine=dispensadora
exchangetable=mesadetroca
strongbox=caixaforte
atm=caixaeletronico

574
locale/pt_BR.po Normal file
View file

@ -0,0 +1,574 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-08 02:40-0300\n"
"PO-Revision-Date: 2022-05-18 11:16-0300\n"
"Last-Translator: Lunovox Heavenfinder <lunovox@disroot.org>\n"
"Language-Team: \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.6\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: item_exchange_table.lua:13 item_exchange_table.lua:21
#, lua-format
msgid "'%s' offer"
msgstr "'%s' oferece"
#: api.lua:415
#, lua-format
msgid "A letter was sent by the dispensing machine '%s' to '%s' advising about '%s'!"
msgstr "Uma carta foi enviada pela Máquina Dispensadora '%s' para '%s' informando sobre '%s'!"
#: item_dispensing_machine.lua:22
msgid "ACCEPT"
msgstr "ACEITAR"
#: item_atm.lua:333
msgid "ACCOUNT CREATED"
msgstr "CONTA CRIADA"
#: item_atm.lua:929 item_atm.lua:935 item_atm.lua:1081 item_atm.lua:1112
msgid "ATM"
msgstr "CAIXA ELETRÔNICO"
#: item_atm.lua:624
msgid "ATM entrance"
msgstr "Entrada do Caixa Eletrônico"
#: item_atm.lua:208
msgid "Account Holder"
msgstr "Correntista"
#: item_atm.lua:956
#, lua-format
msgid "Account holder '%s' cannot be a beneficiary of itself."
msgstr "O titular da conta '%s' não pode ser beneficiário de si mesmo."
#: item_minercash.lua:276
msgid "Allows you to access the bank account of the credit card owner anywhere in the world."
msgstr "Permite acessar a conta bancária do titular do cartão de crédito em qualquer lugar do mundo."
#: item_atm.lua:325 item_atm.lua:361 item_atm.lua:449 item_atm.lua:489
#: item_atm.lua:606 item_atm.lua:654
msgid "BACK"
msgstr "VOLTAR"
#: item_atm.lua:280
msgid "BALANCE"
msgstr "SALDO"
#: item_atm.lua:337 item_atm.lua:495 item_atm.lua:660
msgid "BALANCES"
msgstr "SALDOS"
#: item_atm.lua:464 item_minercash.lua:237
msgid "BANK CHECK"
msgstr "CHEQUE BANCÁRIO"
#: item_atm.lua:612
msgid "BANK DEPOSIT"
msgstr "DEPÓSITO BANCÁRIO"
#: item_atm.lua:681
msgid "BENEFICIARY NAME"
msgstr "NOME DO BENEFICIÁRIO"
#: item_minercash.lua:203
msgid "BLACK MINERMONEY"
msgstr "NOTA PRETA"
#: item_minercash.lua:38
msgid "BLUE MINERMONEY"
msgstr "NOTA AZUL"
#: item_minercash.lua:8
msgid "Basic craftable minercash with gold and steel."
msgstr "Minercash básico criado apenas com ouro e aço."
#: item_atm.lua:209
msgid "Beneficiary"
msgstr "Beneficiário"
#: api_payday.lua:67
msgid "CITY HALL"
msgstr "PREFEITURA"
#: item_atm.lua:293 item_minercash.lua:275
msgid "CREDIT CARD"
msgstr "CARTÃO DE CRÉDITO"
#: item_atm.lua:2
msgid "Can access evolving ATM functions."
msgstr "Pode acessar funções ATM em desenvolvimento."
#: item_exchange_table.lua:15 item_exchange_table.lua:17
#: item_exchange_table.lua:23 item_exchange_table.lua:25
msgid "Cancel"
msgstr "Cancelar"
#: item_exchange_table.lua:16 item_exchange_table.lua:24
msgid "Confirm"
msgstr "Confirmar"
#: item_dispensing_machine.lua:66
msgid "Ctrl + Right Click Mouse → Customer Interface"
msgstr "Ctrl + Clique Direito do Mouse → Interface do Cliente"
#: item_dispensing_machine.lua:24
msgid "Current customer inventory"
msgstr "Inventário atual do cliente"
#: item_dispensing_machine.lua:16
msgid "Customer Offer"
msgstr "Cliente Oferece"
#: item_dispensing_machine.lua:19
msgid "Customer Receive"
msgstr "Cliente Recebe"
#: item_atm.lua:288
msgid "DEPOSITS"
msgstr "DEPÓSITOS"
#: item_atm.lua:517 item_atm.lua:706
msgid "DETAILS"
msgstr "DETALHES"
#: api.lua:409 api.lua:451 item_dispensing_machine.lua:13
#: item_dispensing_machine.lua:204 item_dispensing_machine.lua:224
#: item_dispensing_machine.lua:296
msgid "DISPENSING MACHINE"
msgstr "MÁQUINA DE DISPENSADORA"
#: item_dispensing_machine.lua:131
msgid ""
"DISPENSING MACHINE\n"
"* Sells your items, even if you are not online."
msgstr ""
"MÁQUINA DE DISPENSADORA\n"
"* Vende seus itens, mesmo se você não estiver online."
#: item_atm.lua:704
#, fuzzy
msgid "DO TRANSFER"
msgstr "TRANSFERIR"
#: item_atm.lua:991 item_atm.lua:1070
msgid "Deposit and Withdraw your minercash into your bank account."
msgstr "Deposita e Saca seu dinheiro em sua conta bancária."
#: item_dispensing_machine.lua:297
msgid "Dispending done!"
msgstr "Dispensa Concluida!"
#: item_dispensing_machine.lua:154 item_dispensing_machine.lua:235
#: item_dispensing_machine.lua:240
#, lua-format
msgid "Dispensing Machine of '%s'."
msgstr "Maquina Dispensadora de '%s'."
#: item_atm.lua:206
msgid "Document Type"
msgstr "Tipo de Documento"
#: api.lua:421
msgid "Due to an unknown error, it was not possible to send an email through the dispensing machine!"
msgstr "Devido a um erro desconhecido, não foi possível enviar um email através da Máquina Dispensadora!"
#: item_exchange_table.lua:6
msgid ""
"EXCHANGE TABLE\n"
"(Player to Player)"
msgstr ""
"MESA DE ESCAMBO\n"
"(Jogador para Jogador)"
#: item_exchange_table.lua:97 item_exchange_table.lua:103
#: item_exchange_table.lua:113
msgid ""
"EXCHANGE TABLE\n"
"* It makes safe exchanges from player to player without the need to put your items on the ground."
msgstr ""
"MESA DE ESCAMBO\n"
"* Faz trocas seguras jogador a jogador sem a necessidade de colocar seu itens no chão."
#: item_atm.lua:299 item_atm.lua:326 item_atm.lua:362 item_atm.lua:450
#: item_atm.lua:490 item_atm.lua:607 item_atm.lua:655
msgid "EXIT"
msgstr "SAIR"
#: item_minercash.lua:39 item_minercash.lua:72 item_minercash.lua:105
#: item_minercash.lua:138 item_minercash.lua:171 item_minercash.lua:204
#, lua-format
msgid "Equals %02d minercash."
msgstr "Equivale a %02d minercash."
#: item_minercash.lua:238
msgid "Equivalent to as much minercash as your creator wants.."
msgstr "Equivalente a tanto minercash quanto seu criador quiser."
#: item_atm.lua:335
msgid "FINANCIAL TRANSACTIONS"
msgstr "TRANSAÇÕES FINANCEIRAS"
#: item_minercash.lua:71
msgid "GREEN MINERMONEY"
msgstr "NOTA VERDE"
#: item_atm.lua:294
msgid "LOANS"
msgstr "EMPRÉSTIMOS"
#: item_atm.lua:460
msgid "MINERCASH"
msgstr "MINERCASH"
#: item_minercash.lua:7
msgid "MINERCOIN"
msgstr "MINERMOEDA"
#: item_dispensing_machine.lua:58
msgid "Make an announcement about what this machine will do"
msgstr "Faça um anúncio sobre o que esta máquina dispensará"
#: item_atm.lua:331
msgid "NAME OF BANKING ACCOUNT HOLDER"
msgstr "NOME DO CORRENTISTA BANCÁRIO"
#: item_atm.lua:376
msgid "N°"
msgstr "N°"
#: item_minercash.lua:368
msgid "OBSOLETE MONEY"
msgstr "DINHEIRO OBSOLETO"
#: item_minercash.lua:137
msgid "ORANGE MINERMONEY"
msgstr "NOTA LARANJA"
#: item_exchange_table.lua:14 item_exchange_table.lua:22
msgid "Offer"
msgstr "Oferecer"
#: api_payday.lua:2
msgid "Only players with this privilege will receive a daily payment."
msgstr "Somente jogadores com esse privilégio receberão um pagamento diário."
#: item_exchange_table.lua:12 item_exchange_table.lua:20
msgid "Open"
msgstr "Abrir"
#: item_atm.lua:50
#, lua-format
msgid "Opening '%s' with data bank!"
msgstr "Abrindo '%s' com dados do banco!"
#: item_atm.lua:990 item_atm.lua:1069
msgid "PUBLIC ATM"
msgstr "CAIXA ELETRÔNICO PÚBLICO"
#: item_atm.lua:311 item_atm.lua:423 item_atm.lua:479 item_atm.lua:595
#: item_atm.lua:644
#, lua-format
msgid "Player '%s' is not an account holder of this bank."
msgstr "O jogador '%s' não é titular de conta deste banco."
#: item_atm.lua:699
#, fuzzy
msgid "REASON OF TRANSFER"
msgstr "MOTIVO DA TRANSFERÊNCIA"
#: item_minercash.lua:170
msgid "RED MINERMONEY"
msgstr "NOTA VERMELHA"
#: item_atm.lua:202
#, lua-format
msgid "Reason: %s"
msgstr "Rasão: %s"
#: item_dispensing_machine.lua:47
msgid "Received (Your Profit)"
msgstr "Recebido (Seu Lucro)"
#: item_atm.lua:207
msgid "Responsible Player"
msgstr "Jogador Responsável"
#: item_atm.lua:455
msgid "SELECT BANK WITHDRAWAL METHOD"
msgstr "SELECIONE O MÉTODO DE SAQUE BANCÁRIO"
#: item_atm.lua:295
msgid "SETTINGS"
msgstr "CONFIGURAÇÕES"
#: item_atm.lua:281 item_atm.lua:371
msgid "STATEMENT"
msgstr "EXTRATO"
#: item_dispensing_machine.lua:63
msgid "Save The Announcement"
msgstr "Salvar o anúncio"
#: item_atm.lua:29
#, lua-format
msgid "Saving data bank in the file '%s'!"
msgstr "Salvando dados bancários no arquivo '%s'!"
#: item_atm.lua:367
msgid "Select a bank statement to view transaction details!"
msgstr "Selecione uma Transação do Extrato Bancário para ver os detalhes!"
#: item_dispensing_machine.lua:64
msgid "Seller current inventory"
msgstr "Inventario atual do vendedor"
#: item_dispensing_machine.lua:49
msgid "Stock to Offer"
msgstr "Estoque a Oferetar"
#: item_atm.lua:404
msgid "TOTAL"
msgstr "TOTAL"
#: item_atm.lua:427
msgid "TRANSACTION DETAILS"
msgstr "DETALHES DA TRANSAÇÃO"
#: item_atm.lua:199 item_atm.lua:206
#, fuzzy
msgid "TRANSFER PROOF"
msgstr "COMPROVANTE DE TRANSFERÊNCIA"
#: item_atm.lua:290
msgid "TRANSFERS"
msgstr "TRANSFERÊNCIAS"
#: api.lua:373 api.lua:429 api.lua:435 api.lua:460
#, lua-format
msgid "The '%s' parameter must be of the non-empty string type!"
msgstr "O parâmetro '%s' deve ser do tipo de STRING não vazia!"
#: api.lua:357 api.lua:379 api.lua:394 api.lua:441
#, lua-format
msgid "The '%s' parameter must be of the position type (x,y,z)!"
msgstr "O parâmetro '%s' deve ser do tipo de POSITION (x,y,z)!"
#: item_atm.lua:921
#, lua-format
msgid "The '%s' say to '%s': '%s'"
msgstr "Correntista '%s' disse para '%s': '%s'"
#: item_atm.lua:917
#, lua-format
msgid "The '%s' say: '%s'"
msgstr "Correntista '%s' disse: '%s'"
#: item_atm.lua:1114
#, lua-format
msgid "The ATM will only run %02d seconds after it is installed!"
msgstr "O Caixa Eletrônico só vai funcionar %02d segundos depois de instalado!"
#: item_dispensing_machine.lua:205
msgid "The Dispensing Machine can not be removed before being emptied!"
msgstr "A Máquina Dispensadora não pode ser retirada antes de ser esvaziada!"
#: item_dispensing_machine.lua:306
#, lua-format
msgid "The Dispensing Machine with offer '%s' cannot deliver more items to '%s' because stock of '%s' is empty!"
msgstr "A Máquina Dispensadora com oferta '%s' não é possível entregar mais itens para '%s' porque o estoque de '%s' acabou!"
#: item_dispensing_machine.lua:313
#, lua-format
msgid "The Dispensing Machine with offer '%s' is out of space to receive customer item '%s'."
msgstr "A Maquina Dispensadora com oferta '%s' está sem espaço suficiente para receber o item do cliente '%s'."
#: item_dispensing_machine.lua:29
msgid "The Machine Need"
msgstr "Máquina Precisa"
#: item_dispensing_machine.lua:32
msgid "The Machine Offer"
msgstr "Máquina Oferece"
#: item_atm.lua:937
#, lua-format
msgid "The Transfer Proof was left on the floor because '%s' inventory has no free space."
msgstr "A prova de transferência foi deixada no chão porque o inventário '%s' não tem espaço livre."
#: item_atm.lua:949
#, lua-format
msgid "The bank account holder '%s' does not have enough balance to make this requested transfer."
msgstr "O titular da conta bancária '%s' não tem saldo suficiente para fazer esta transferência solicitada."
#: item_atm.lua:963
#, fuzzy, lua-format
msgid "The beneficiary '%s' does not have a current account with this bank."
msgstr "O jogador '%s' não é titular de conta deste banco."
#: api_payday.lua:61
#, lua-format
msgid "The city hall deposited the %2d° salary in your bank account!"
msgstr "A prefeitura depositou o %2d° salário em sua conta bancária!"
#: item_dispensing_machine.lua:324
msgid "The dispending can not be done. Make sure you offer what the machine asks for!"
msgstr "A dispensa não pode ser feita. Verifique se você ofereceu o que a Maquina Dispensadora pede!"
#: item_atm.lua:31 item_atm.lua:47
#, lua-format
msgid "The file '%s' is not in table format!"
msgstr "O arquivo '%s' não esta no formato de tabela!"
#: item_atm.lua:866
#, lua-format
msgid "The maximum amount you can withdraw is: %02d minercash."
msgstr "O valor máximo que você pode sacar é: %02d minercash."
#: item_atm.lua:976
#, fuzzy, lua-format
msgid "There is no account holder '%s' in this bank."
msgstr "O jogador '%s' não é titular de conta deste banco."
#: item_atm.lua:212
#, fuzzy
msgid "Transfer Reason"
msgstr "Motivo da Transferência"
#: item_atm.lua:670 item_atm.lua:898
msgid "Transfer for undeclared reason!"
msgstr "Transferência por rasão não declarada!"
#: item_atm.lua:930
msgid "Transfer successful!"
msgstr "Sucesso de transferência!"
#: item_atm.lua:376 item_atm.lua:510 item_atm.lua:690
msgid "VALUE"
msgstr "VALOR"
#: item_atm.lua:211
msgid "Value"
msgstr "Valor"
#: item_atm.lua:376
msgid "WHEN"
msgstr "QUANDO"
#: item_atm.lua:515
msgid "WITHDRAWAL"
msgstr "SAQUE"
#: item_atm.lua:289
msgid "WITHDRAWALS"
msgstr "SAQUES"
#: item_atm.lua:210
msgid "When"
msgstr "Quando"
#: item_atm.lua:465
msgid "Withdrawals in bank check."
msgstr "Saque em Cheque Bancário."
#: item_atm.lua:461
msgid "Withdrawals in minercash."
msgstr "Saque em minercash."
#: item_dispensing_machine.lua:319
msgid "Without enough space in Dispensing Machine to receive the seller's item. (Please, empty the receiving box!)"
msgstr "Sem espaço suficiente na Maquina Dispensadora para receber o item do vendedor. (Por favor, esvazie a caixa de recebimento!)"
#: item_atm.lua:673
msgid "Write the 'beneficiary player name' and the 'value in minercash' that want to transfer!"
msgstr "Escreva o 'nome do jogador beneficiário' e o 'valor em minercash' que deseja transferir!"
#: item_atm.lua:502
msgid "Write the value that want to withdrawal!"
msgstr "Digite o valor que deseja sacar!"
#: item_minercash.lua:104
msgid "YELLOW MINERMONEY"
msgstr "NOTA AMARELA"
#: item_atm.lua:617
msgid "YOUR BALANCE"
msgstr "SEU SALDO"
#: item_minercash.lua:369
msgid "You can make money from it."
msgstr "Você pode ganhar algum dinheiro com isso."
#: item_dispensing_machine.lua:225
msgid "You can not change your own machine!"
msgstr "Você não pode trocar na sua própria maquina!"
#: item_atm.lua:1082
msgid "You can not install this 'ATM' too far from a 'Dispensing Machine'!"
msgstr "Você não pode instalar este 'Caixa Eletrônico' muito longe de uma 'Máquina Dispensadora'!"
#: item_atm.lua:569
#, lua-format
msgid "You deposited %02d x '%s'!"
msgstr "Você depositou %02d x '%s'!"
#: item_atm.lua:856
msgid "You don't have space in your inventory to withdraw so much minercash."
msgstr "Você não tem espaço em seu inventário para retirar tanto minercash."
#: item_atm.lua:309 item_atm.lua:477 item_atm.lua:592 item_atm.lua:642
#, lua-format
msgid "You have %02d minercash."
msgstr "Você tem %02d minercash."
#: item_atm.lua:845
#, lua-format
msgid "You have withdrawn %02d minercash from your bank account."
msgstr "Você sacou %02d minercash de sua conta bancária."
#: item_dispensing_machine.lua:51
msgid "You need"
msgstr "Você Precisa"
#: item_dispensing_machine.lua:53
msgid "You offer"
msgstr "Você Oferece"
#: item_atm.lua:631
msgid "Your Inventory"
msgstr "Seu inventário"
#: item_exchange_table.lua:9
msgid "Your inventory"
msgstr "Seu inventário"
#: item_atm.lua:1133
msgid "atm"
msgstr "caixaeletronico"
#: item_minercash.lua:362
msgid "creditcard"
msgstr "cartaodecredito"
#: item_dispensing_machine.lua:346
msgid "dispensingmachine"
msgstr "dispensadora"
#: item_exchange_table.lua:175
msgid "exchangetable"
msgstr "mesadetroca"
#: item_minercash.lua:30
msgid "minercoin"
msgstr "minermoeda"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-11 18:09-0300\n"
"POT-Creation-Date: 2022-06-08 02:40-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,145 +17,417 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: api.lua:4
msgid "Permission to open locked chests of other players"
#: api.lua:357 api.lua:379 api.lua:394 api.lua:441
#, lua-format
msgid "The '%s' parameter must be of the position type (x,y,z)!"
msgstr ""
#: api.lua:31 api.lua:41
#: api.lua:373 api.lua:429 api.lua:435 api.lua:460
#, lua-format
msgid "The '%s' parameter must be of the non-empty string type!"
msgstr ""
#: api.lua:409 api.lua:451 item_dispensing_machine.lua:13
#: item_dispensing_machine.lua:204 item_dispensing_machine.lua:224
#: item_dispensing_machine.lua:296
msgid "DISPENSING MACHINE"
msgstr ""
#: api.lua:415
#, lua-format
msgid ""
"A letter was sent by the dispensing machine '%s' to '%s' advising about '%s'!"
msgstr ""
#: api.lua:421
msgid ""
"Due to an unknown error, it was not possible to send an email through the "
"dispensing machine!"
msgstr ""
#: api_payday.lua:2
msgid "Only players with this privilege will receive a daily payment."
msgstr ""
#: api_payday.lua:61
#, lua-format
msgid "The city hall deposited the %2d° salary in your bank account!"
msgstr ""
#: api_payday.lua:67
msgid "CITY HALL"
msgstr ""
#: item_atm.lua:2
msgid "Can access evolving ATM functions."
msgstr ""
#: item_atm.lua:29
#, lua-format
msgid "Saving data bank in the file '%s'!"
msgstr ""
#: item_atm.lua:31 item_atm.lua:47
#, lua-format
msgid "The file '%s' is not in table format!"
msgstr ""
#: api.lua:44
#: item_atm.lua:50
#, lua-format
msgid "Opening '%s'!"
msgid "Opening '%s' with data bank!"
msgstr ""
#: api.lua:132
#: item_atm.lua:199 item_atm.lua:206
msgid "TRANSFER PROOF"
msgstr ""
#: item_atm.lua:202
#, lua-format
msgid "Player '%s' has placed %02d '%s' in his safe!"
msgid "Reason: %s"
msgstr ""
#: api.lua:136
#: item_atm.lua:206
msgid "Document Type"
msgstr ""
#: item_atm.lua:207
msgid "Responsible Player"
msgstr ""
#: item_atm.lua:208
msgid "Account Holder"
msgstr ""
#: item_atm.lua:209
msgid "Beneficiary"
msgstr ""
#: item_atm.lua:210
msgid "When"
msgstr ""
#: item_atm.lua:211
msgid "Value"
msgstr ""
#: item_atm.lua:212
msgid "Transfer Reason"
msgstr ""
#: item_atm.lua:280
msgid "BALANCE"
msgstr ""
#: item_atm.lua:281 item_atm.lua:371
msgid "STATEMENT"
msgstr ""
#: item_atm.lua:288
msgid "DEPOSITS"
msgstr ""
#: item_atm.lua:289
msgid "WITHDRAWALS"
msgstr ""
#: item_atm.lua:290
msgid "TRANSFERS"
msgstr ""
#: item_atm.lua:293 item_minercash.lua:275
msgid "CREDIT CARD"
msgstr ""
#: item_atm.lua:294
msgid "LOANS"
msgstr ""
#: item_atm.lua:295
msgid "SETTINGS"
msgstr ""
#: item_atm.lua:299 item_atm.lua:326 item_atm.lua:362 item_atm.lua:450
#: item_atm.lua:490 item_atm.lua:607 item_atm.lua:655
msgid "EXIT"
msgstr ""
#: item_atm.lua:309 item_atm.lua:477 item_atm.lua:592 item_atm.lua:642
#, lua-format
msgid "Player '%s' has removed %02d '%s' in his safe!"
msgid "You have %02d minercash."
msgstr ""
#: commands.lua:2 commands.lua:9 commands.lua:27
msgid "Lets you check the contents of another players strongbox."
msgstr ""
#: commands.lua:24
#: item_atm.lua:311 item_atm.lua:423 item_atm.lua:479 item_atm.lua:595
#: item_atm.lua:644
#, lua-format
msgid "The strongbox of %s was not created yet!"
msgid "Player '%s' is not an account holder of this bank."
msgstr ""
#: commands.lua:27 commands.lua:37
msgid "checkstrongbox"
#: item_atm.lua:325 item_atm.lua:361 item_atm.lua:449 item_atm.lua:489
#: item_atm.lua:606 item_atm.lua:654
msgid "BACK"
msgstr ""
#: commands.lua:30
#: item_atm.lua:331
msgid "NAME OF BANKING ACCOUNT HOLDER"
msgstr ""
#: item_atm.lua:333
msgid "ACCOUNT CREATED"
msgstr ""
#: item_atm.lua:335
msgid "FINANCIAL TRANSACTIONS"
msgstr ""
#: item_atm.lua:337 item_atm.lua:495 item_atm.lua:660
msgid "BALANCES"
msgstr ""
#: item_atm.lua:367
msgid "Select a bank statement to view transaction details!"
msgstr ""
#: item_atm.lua:376
msgid "N°"
msgstr ""
#: item_atm.lua:376
msgid "WHEN"
msgstr ""
#: item_atm.lua:376 item_atm.lua:510 item_atm.lua:690
msgid "VALUE"
msgstr ""
#: item_atm.lua:404
msgid "TOTAL"
msgstr ""
#: item_atm.lua:427
msgid "TRANSACTION DETAILS"
msgstr ""
#: item_atm.lua:455
msgid "SELECT BANK WITHDRAWAL METHOD"
msgstr ""
#: item_atm.lua:460
msgid "MINERCASH"
msgstr ""
#: item_atm.lua:461
msgid "Withdrawals in minercash."
msgstr ""
#: item_atm.lua:464 item_minercash.lua:237
msgid "BANK CHECK"
msgstr ""
#: item_atm.lua:465
msgid "Withdrawals in bank check."
msgstr ""
#: item_atm.lua:502
msgid "Write the value that want to withdrawal!"
msgstr ""
#: item_atm.lua:515
msgid "WITHDRAWAL"
msgstr ""
#: item_atm.lua:517 item_atm.lua:706
msgid "DETAILS"
msgstr ""
#: item_atm.lua:569
#, lua-format
msgid "You deposited %02d x '%s'!"
msgstr ""
#: item_atm.lua:612
msgid "BANK DEPOSIT"
msgstr ""
#: item_atm.lua:617
msgid "YOUR BALANCE"
msgstr ""
#: item_atm.lua:624
msgid "ATM entrance"
msgstr ""
#: item_atm.lua:631
msgid "Your Inventory"
msgstr ""
#: item_atm.lua:670 item_atm.lua:898
msgid "Transfer for undeclared reason!"
msgstr ""
#: item_atm.lua:673
msgid ""
"You do not have permission to run this command without the privileges "
"'checkstrongbox'!"
"Write the 'beneficiary player name' and the 'value in minercash' that want "
"to transfer!"
msgstr ""
#: item_atm.lua:2 item_atm.lua:63 item_atm.lua:85
msgid ""
"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."
#: item_atm.lua:681
msgid "BENEFICIARY NAME"
msgstr ""
#: item_atm.lua:73 item_atm.lua:100
#: item_atm.lua:699
msgid "REASON OF TRANSFER"
msgstr ""
#: item_atm.lua:704
msgid "DO TRANSFER"
msgstr ""
#: item_atm.lua:845
#, lua-format
msgid "You have withdrawn %02d minercash from your bank account."
msgstr ""
#: item_atm.lua:856
msgid "You don't have space in your inventory to withdraw so much minercash."
msgstr ""
#: item_atm.lua:866
#, lua-format
msgid "The maximum amount you can withdraw is: %02d minercash."
msgstr ""
#: item_atm.lua:917
#, lua-format
msgid "The '%s' say: '%s'"
msgstr ""
#: item_atm.lua:921
#, lua-format
msgid "The '%s' say to '%s': '%s'"
msgstr ""
#: item_atm.lua:929 item_atm.lua:935 item_atm.lua:1081 item_atm.lua:1112
msgid "ATM"
msgstr ""
#: item_atm.lua:74
#: item_atm.lua:930
msgid "Transfer successful!"
msgstr ""
#: item_atm.lua:937
#, lua-format
msgid ""
"The Transfer Proof was left on the floor because '%s' inventory has no free "
"space."
msgstr ""
#: item_atm.lua:949
#, lua-format
msgid ""
"The bank account holder '%s' does not have enough balance to make this "
"requested transfer."
msgstr ""
#: item_atm.lua:956
#, lua-format
msgid "Account holder '%s' cannot be a beneficiary of itself."
msgstr ""
#: item_atm.lua:963
#, lua-format
msgid "The beneficiary '%s' does not have a current account with this bank."
msgstr ""
#: item_atm.lua:976
#, lua-format
msgid "There is no account holder '%s' in this bank."
msgstr ""
#: item_atm.lua:990 item_atm.lua:1069
msgid "PUBLIC ATM"
msgstr ""
#: item_atm.lua:991 item_atm.lua:1070
msgid "Deposit and Withdraw your minercash into your bank account."
msgstr ""
#: item_atm.lua:1082
msgid "You can not install this 'ATM' too far from a 'Dispensing Machine'!"
msgstr ""
#: item_atm.lua:95
#, lua-format
msgid "PUBLIC ATM - Account of '%s':"
msgstr ""
#: item_atm.lua:101
#: item_atm.lua:1114
#, lua-format
msgid "The ATM will only run %02d seconds after it is installed!"
msgstr ""
#: item_atm.lua:117
#: item_atm.lua:1133
msgid "atm"
msgstr ""
#: item_dispensing_machine.lua:16 item_dispensing_machine.lua:204
#: item_dispensing_machine.lua:222 item_dispensing_machine.lua:294
#: item_dispensing_machine.lua:301 item_dispensing_machine.lua:306
#: item_dispensing_machine.lua:311 item_dispensing_machine.lua:316
msgid "DISPENSING MACHINE"
msgstr ""
#: item_dispensing_machine.lua:19
#: item_dispensing_machine.lua:16
msgid "Customer Offer"
msgstr ""
#: item_dispensing_machine.lua:22
#: item_dispensing_machine.lua:19
msgid "Customer Receive"
msgstr ""
#: item_dispensing_machine.lua:25
#: item_dispensing_machine.lua:22
msgid "ACCEPT"
msgstr ""
#: item_dispensing_machine.lua:27
#: item_dispensing_machine.lua:24
msgid "Current customer inventory"
msgstr ""
#: item_dispensing_machine.lua:32
#: item_dispensing_machine.lua:29
msgid "The Machine Need"
msgstr ""
#: item_dispensing_machine.lua:35
#: item_dispensing_machine.lua:32
msgid "The Machine Offer"
msgstr ""
#: item_dispensing_machine.lua:50
msgid "Items Received (Your Profit)"
#: item_dispensing_machine.lua:47
msgid "Received (Your Profit)"
msgstr ""
#: item_dispensing_machine.lua:52
#: item_dispensing_machine.lua:49
msgid "Stock to Offer"
msgstr ""
#: item_dispensing_machine.lua:54
#: item_dispensing_machine.lua:51
msgid "You need"
msgstr ""
#: item_dispensing_machine.lua:56
#: item_dispensing_machine.lua:53
msgid "You offer"
msgstr ""
#: item_dispensing_machine.lua:61
#: item_dispensing_machine.lua:58
msgid "Make an announcement about what this machine will do"
msgstr ""
#: item_dispensing_machine.lua:65
#: item_dispensing_machine.lua:63
msgid "Save The Announcement"
msgstr ""
#: item_dispensing_machine.lua:64
msgid "Seller current inventory"
msgstr ""
#: item_dispensing_machine.lua:67
#: item_dispensing_machine.lua:66
msgid "Ctrl + Right Click Mouse → Customer Interface"
msgstr ""
#: item_dispensing_machine.lua:132
#: item_dispensing_machine.lua:131
msgid ""
"DISPENSING MACHINE\n"
"* Sells your items, even if you are not online."
msgstr ""
#: item_dispensing_machine.lua:155 item_dispensing_machine.lua:233
#: item_dispensing_machine.lua:238
#: item_dispensing_machine.lua:154 item_dispensing_machine.lua:235
#: item_dispensing_machine.lua:240
#, lua-format
msgid "Dispensing Machine of '%s'."
msgstr ""
@ -164,39 +436,41 @@ msgstr ""
msgid "The Dispensing Machine can not be removed before being emptied!"
msgstr ""
#: item_dispensing_machine.lua:223
#: item_dispensing_machine.lua:225
msgid "You can not change your own machine!"
msgstr ""
#: item_dispensing_machine.lua:295
#: item_dispensing_machine.lua:297
msgid "Dispending done!"
msgstr ""
#: item_dispensing_machine.lua:302
#, lua-format
msgid "The stock of '%s' is gone. Contact him!"
msgstr ""
#: item_dispensing_machine.lua:307
#: item_dispensing_machine.lua:306
#, lua-format
msgid ""
"Without enough space in Dispensing Machine to receive the customer item. "
"(Please, contact the seller '%s'!)"
"The Dispensing Machine with offer '%s' cannot deliver more items to '%s' "
"because stock of '%s' is empty!"
msgstr ""
#: item_dispensing_machine.lua:312
#: item_dispensing_machine.lua:313
#, lua-format
msgid ""
"The Dispensing Machine with offer '%s' is out of space to receive customer "
"item '%s'."
msgstr ""
#: item_dispensing_machine.lua:319
msgid ""
"Without enough space in Dispensing Machine to receive the seller's item. "
"(Please, empty the receiving box!)"
msgstr ""
#: item_dispensing_machine.lua:317
#: item_dispensing_machine.lua:324
msgid ""
"The dispending can not be done. Make sure you offer what the machine asks "
"for!"
msgstr ""
#: item_dispensing_machine.lua:339
#: item_dispensing_machine.lua:346
msgid "dispensingmachine"
msgstr ""
@ -244,103 +518,66 @@ msgstr ""
msgid "exchangetable"
msgstr ""
#: item_miner_cash.lua:6
msgid ""
"MINERCOIN\n"
"* Basic craftable money with gold and steel."
#: item_minercash.lua:7
msgid "MINERCOIN"
msgstr ""
#: item_miner_cash.lua:28
#: item_minercash.lua:8
msgid "Basic craftable minercash with gold and steel."
msgstr ""
#: item_minercash.lua:30
msgid "minercoin"
msgstr ""
#: item_miner_cash.lua:35
#: item_minercash.lua:38
msgid "BLUE MINERMONEY"
msgstr ""
#: item_minercash.lua:39 item_minercash.lua:72 item_minercash.lua:105
#: item_minercash.lua:138 item_minercash.lua:171 item_minercash.lua:204
#, lua-format
msgid "Equals %02d minercash."
msgstr ""
#: item_minercash.lua:71
msgid "GREEN MINERMONEY"
msgstr ""
#: item_minercash.lua:104
msgid "YELLOW MINERMONEY"
msgstr ""
#: item_minercash.lua:137
msgid "ORANGE MINERMONEY"
msgstr ""
#: item_minercash.lua:170
msgid "RED MINERMONEY"
msgstr ""
#: item_minercash.lua:203
msgid "BLACK MINERMONEY"
msgstr ""
#: item_minercash.lua:238
msgid "Equivalent to as much minercash as your creator wants.."
msgstr ""
#: item_minercash.lua:276
msgid ""
"MINERMONEY\n"
"* equals 09 Minercoins."
"Allows you to access the bank account of the credit card owner anywhere in "
"the world."
msgstr ""
#: item_miner_cash.lua:59
msgid "minermoney"
msgstr ""
#: item_miner_cash.lua:67
msgid ""
"PIGGY BANK\n"
"* equals 09 Minermoneys."
msgstr ""
#: item_miner_cash.lua:91
msgid "piggybank"
msgstr ""
#: item_miner_cash.lua:98
msgid ""
"CREDIT CARD\n"
"* equals 09 Piggy Banks."
msgstr ""
#: item_miner_cash.lua:122
#: item_minercash.lua:362
msgid "creditcard"
msgstr ""
#: item_strongbox.lua:2
msgid ""
"STRONGBOX\n"
"* Save your money in this safe and withdraw your money at any shop that has "
"an ATM."
#: item_minercash.lua:368
msgid "OBSOLETE MONEY"
msgstr ""
#: item_strongbox.lua:24 item_strongbox.lua:40
#, lua-format
msgid ""
"STRONGBOX (Property of '%s')\n"
"* Save your money in this safe and withdraw your money at any shop that has "
"an ATM."
msgstr ""
#: item_strongbox.lua:51
#, lua-format
msgid "STRONGBOX owned by '%s':"
msgstr ""
#: item_strongbox.lua:56 item_strongbox.lua:62
msgid "STRONGBOX"
msgstr ""
#: item_strongbox.lua:57
#, lua-format
msgid "The safe is going to work %02d seconds after it is installed!"
msgstr ""
#: item_strongbox.lua:63
#, lua-format
msgid "You do not have access to the safe belonging to '%s'!"
msgstr ""
#: item_strongbox.lua:75 on_final.lua:9
#, lua-format
msgid "Saving strongbox from all players in the file '%s'!"
msgstr ""
#: item_strongbox.lua:90
msgid "strongbox"
msgstr ""
#: payday.lua:2
msgid "Only players with this privilege received a daily payment."
msgstr ""
#: payday.lua:34 payday.lua:41
msgid "CITY HALL"
msgstr ""
#: payday.lua:35
#, lua-format
msgid "Your Strongbox is full! %2d items weren't added in your back account."
msgstr ""
#: payday.lua:42
#, lua-format
msgid "The city hall deposited your %2d° salary in your bank account!"
#: item_minercash.lua:369
msgid "You can make money from it."
msgstr ""

8
minetest.conf Normal file
View file

@ -0,0 +1,8 @@
# MINERTRADE SETTINGS
minertrade.debug = false
minertrade.save_compressed = true
minertrade.bank.max_statements = 30
minertrade.salary.enabled = true
minertrade.salary.value = 1
minertrade.salary.intervalcheck = 60

92
mod.cdb.json Normal file
View file

@ -0,0 +1,92 @@
{
"name": "minertrade",
"title": "Minertrade",
"type": "MOD",
"version": "v2.3.1",
"dev_state":"ALPHA",
"min_minetest_version": "5.7",
"max_minetest_version": null,
/*
"author": [
"Lunovox Heavenfinder: [email](mailto:lunovox@disroot.org), [social web](http:qoto.org/@lunovox), [webchat](https://cloud.disroot.org/call/9aa2t7ib), [xmpp](xmpp:lunovox@disroot.org?join), [Mumble](mumble:mumble.disroot.org), [more contacts](https:libreplanet.org/wiki/User:Lunovox)",
],
/**/
"authors": [
{
"name": "Lunovox Heavenfinder",
"email": "lunovox@disroot.org",
"social web": "http:qoto.org/@lunovox",
"webchat": "https://cloud.disroot.org/call/9aa2t7ib",
"xmpp": "xmpp:lunovox@disroot.org?join",
"mumble": "mumble:mumble.disroot.org",
"homepage": "https://libreplanet.org/wiki/User:Lunovox",
"more contacts": "https://libreplanet.org/wiki/User:Lunovox",
},
],
"tags": [
"Commerce / Economy",
"Multiplayer-focused",
"Crafting",
"Beta",
],
"keywords": [
"lunovox",
"trade",
"Commerce",
"Economy",
"protection",
"Multiplayer",
],
"languages": [
"en",
"pt",
"pt_BR",
],
"supported_games": [
"minetest_game",
],
"dependencies":
{
"default": "https://content.minetest.net/packages/Minetest/minetest_game/",
"dye": "https://content.minetest.net/packages/Minetest/minetest_game/",
},
"optional_dependencies":
{
"intllib": "https://content.minetest.net/packages/kaeza/intllib/",
"correio": "https://gitlab.com/lunovox/correio",
"eurn": "https://gitlab.com/lunovox/e-urn",
"computing": "https://gitlab.com/lunovox/computing",
},
"license": {
"is_foss":true,
"name":"GNU AGPL-3.0 or later",
"url": "https://gitlab.com/lunovox/minertrade/-/raw/master/LICENSE_CODE",
},
"media_license": {
"is_foss":false,
"name":"CC BY-SA 4.0"
"url":"https://gitlab.com/lunovox/minertrade/-/blob/master/LICENSE_MEDIA",
},
"screenshots": [
"https://gitlab.com/lunovox/minertrade/-/raw/master/screenshot.png",
],
"website": null,
"forums": null,
"video_url": null,
"donate_url": "https://liberapay.com/Lunovox/donate",
"translation_url": "https://gitlab.com/lunovox/minertrade/-/blob/master/locale/README.md",
"repo": "https://gitlab.com/lunovox/minertrade.git",
"ignore": [
".git",
"*.~",
"*.old",
"*.bkp",
"*.backup",
"*.mo",
"*.diff",
"*.patch",
],
"issue_tracker": "https://gitlab.com/lunovox/minertrade/-/issues",
"short_description":"It adds various types of money, exchange table, Dispensing Machines, ATMs in stores.",
"long_description": null,
}

View file

@ -1,10 +1,20 @@
# suggestion over this file: http://dev.minetest.net/Modding_Intro
name = minertrade
description = It adds various types of money, exchange table, Dispensing Machines, Strongbox in homes interconnected with ATMs in stores.
release = 5.0.0
author = Lunovox Heavenfinder
title = Minertrade
description = It adds various types of money, exchange table, Dispensing Machines, ATMs in stores.
version = 2.3.1
dev_state = BETA
license = GNU AGPL-3.0
media_license = CC BY-SA 4.0
supported_games = minetest_game
depends = default,dye
optional_depends = intllib,tradelands,areas
optional_depends = intllib,correio,eurn,computing
min_minetest_version = 5.7
max_minetest_version =
author = Lunovox Heavenfinder: [email](mailto:lunovox@disroot.org), [social web](http:qoto.org/@lunovox), [webchat](https://cloud.disroot.org/call/9aa2t7ib), [xmpp](xmpp:lunovox@disroot.org?join), [Mumble](mumble:mumble.disroot.org), [more contacts](https:libreplanet.org/wiki/User:Lunovox)
created = 2017-03-13 00:00
update = 2024-11-25 07:42
donate_url = https://liberapay.com/Lunovox/donate
translation_url = https://gitlab.com/lunovox/minertrade/-/blob/master/locale/README.md
repository = https://gitlab.com/lunovox/minertrade

View file

@ -1,10 +0,0 @@
modMinerTrade.doLoad()
minetest.register_on_leaveplayer(function(player)
modMinerTrade.doSave()
end)
minetest.register_on_shutdown(function()
modMinerTrade.doSave()
minetest.log('action',"[STRONGBOX] "..modMinerTrade.translate("Saving strongbox from all players in the file '%s'!"):format(modMinerTrade.urlTabela))
end)

View file

@ -1,77 +0,0 @@
minetest.register_privilege("salary", {
description=modMinerTrade.translate("Only players with this privilege will receive a daily payment."),
give_to_singleplayer=false,
})
modMinerTrade.payday = {
salary = (minetest.setting_get("minertrade.payday.salary") or "minertrade:minercoin 1"),
interval = (tonumber(minetest.setting_get("minertrade.payday.interval")) or 60)
}
minetest.after(3.5, function()
modMinerTrade.payday.time = 0
minetest.register_globalstep(function(dtime)
modMinerTrade.payday.time = modMinerTrade.payday.time + dtime
if modMinerTrade.payday.time >= modMinerTrade.payday.interval then
modMinerTrade.payday.time = 0
local dc = minetest.get_day_count()
local players = minetest.get_connected_players()
if #players >= 1 then
for _, player in ipairs(players) do
local lp = tonumber(player:get_meta():get_int("last_pay")) or 0
if lp ~= dc then
local playername = player:get_player_name()
if minetest.get_player_privs(playername).salary then
local nameInvList = "safe"
local inv = modMinerTrade.getDetachedInventory(playername)
--minetest.chat_send_player(playername, "vazio = "..dump(inv:is_empty(nameInvList)))
local stack = ItemStack(modMinerTrade.payday.salary)
local leftover = inv:add_item(nameInvList, stack)
modMinerTrade.setSafeInventory(playername, inv:get_list(nameInvList))
if leftover:get_count() > 0 then
minetest.chat_send_player(
playername,
core.colorize("#00ff00", "["..modMinerTrade.translate("CITY HALL").."]: ")
..modMinerTrade.translate("Your Strongbox is full! %2d items weren't added in your bank account."):format(leftover:get_count())
)
minetest.sound_play("sfx_alert", {object=player, max_hear_distance=5.0,})
else
minetest.chat_send_player(
playername,
core.colorize("#00ff00", "["..modMinerTrade.translate("CITY HALL").."]: ")
..modMinerTrade.translate("The city hall deposited the %2d° salary in your bank account!"):format(dc)
)
minetest.sound_play("sfx_cash_register", {object=player, max_hear_distance=5.0,})
end
end
player:get_meta():set_int("last_pay",dc)
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.payday.time = modMinerTrade.payday.time + dtime
if modMinerTrade.payday.time >= modMinerTrade.payday.interval then
end
end)
end)
--]]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 605 KiB

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 KiB

After

Width:  |  Height:  |  Size: 200 KiB

BIN
screenshot4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

BIN
screenshot5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

BIN
screenshot6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

BIN
screenshot7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

BIN
screenshot8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

BIN
screenshot9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

View file

@ -2,11 +2,37 @@
# Only players with "salary" privilege received a daily payment.
# MINERTRADE:
# Prize given per virtual day to the online player.
# Default: 'minertrade:minercoin 1'
minertrade.payday.salary (Daily Salary) string minertrade:minercoin 1
# Allows you to print the debug information of this mod on the screen.
# Default: false
minertrade.debug (Show Minertrade Debug) bool false
# MINERTRADE:
# Whether the database will be BASE64 compressed.
# If enabled will save database bank in file '.db64',
# else in file '.tbl' without compression.
# Default: true
minertrade.save_compressed (Database Compressed) bool true
# MINERTRADE:
# Maximum record number of bank statements.
# Default: 30 | Min: 1 | Max: 300
minertrade.bank.max_statements (Maximum Record Statements) int 30 1 300
# MINERTRADE:
# If server will reward the player daily..
# Default: false
minertrade.salary.enabled (Daily Salary Enabled) bool true
# MINERTRADE:
# Value of the prize minercash that each player will
# receive at the end of the virtual day.
# Default: 1 | Min: 1
minertrade.salary.value (Daily Salary Value) int 1 1
# MINERTRADE:
# Time interval in seconds to check for rewardable players.
# Deafault: 60 | Min: 1
minertrade.payday.interval (Interval Check Salary) int 60 1
# WARNING: Decreasing this value too much can cause server lag.
# Default: 60 | Min: 1 | Max: 86400
minertrade.salary.intervalcheck (Interval Check Salary) int 60 1 86400

BIN
textures/bgf_scroll.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
textures/bgf_scroll.xcf Normal file

Binary file not shown.

BIN
textures/gui_arrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

BIN
textures/obj_bank_check.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View file

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

View file

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

BIN
textures/sbl_disket.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 B