0.0.1
This commit is contained in:
674
resources/[esx_addons]/esx_property/LICENSE
Normal file
674
resources/[esx_addons]/esx_property/LICENSE
Normal file
@@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
ESX Property - Properties Made Right!
|
||||
Copyright (C) 2025 ESX-Framework
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
esx-legacy Copyright (C) 2015-2025 Jérémie N'gadi
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
274
resources/[esx_addons]/esx_property/client/cctv.lua
Normal file
274
resources/[esx_addons]/esx_property/client/cctv.lua
Normal file
@@ -0,0 +1,274 @@
|
||||
--[[
|
||||
ESX Property - Properties Made Right!
|
||||
Copyright (C) 2025 ESX-Framework
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
]]
|
||||
function CCTV(PropertyID)
|
||||
DoScreenFadeOut(500)
|
||||
Wait(500)
|
||||
local Property = Properties[PropertyID]
|
||||
local CamTakePic = true
|
||||
if Property.cctv.enabled then
|
||||
ESX.TriggerServerCallback("esx_property:CCTV", function(CanCCTV)
|
||||
if CanCCTV then
|
||||
InCCTV = true
|
||||
local NightVision = false
|
||||
local function InstructionButtonMessage(text)
|
||||
BeginTextCommandScaleformString("STRING")
|
||||
AddTextComponentScaleform(text)
|
||||
EndTextCommandScaleformString()
|
||||
end
|
||||
|
||||
local function CreateInstuctionScaleform(scaleform)
|
||||
local scaleform = RequestScaleformMovie(scaleform)
|
||||
while not HasScaleformMovieLoaded(scaleform) do
|
||||
Wait(0)
|
||||
end
|
||||
PushScaleformMovieFunction(scaleform, "CLEAR_ALL")
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_CLEAR_SPACE")
|
||||
PushScaleformMovieFunctionParameterInt(200)
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
if Config.CCTV.PictureWebook ~= "" then
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(1)
|
||||
ScaleformMovieMethodAddParamPlayerNameString(GetControlInstructionalButton(1, Config.CCTV.Controls.Screenshot, true))
|
||||
InstructionButtonMessage(TranslateCap("take_picture"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
end
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(2)
|
||||
ScaleformMovieMethodAddParamPlayerNameString(GetControlInstructionalButton(1, Config.CCTV.Controls.Right, true))
|
||||
ScaleformMovieMethodAddParamPlayerNameString(GetControlInstructionalButton(1, Config.CCTV.Controls.Left, true))
|
||||
InstructionButtonMessage(TranslateCap("rot_left_right"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(3)
|
||||
ScaleformMovieMethodAddParamPlayerNameString(GetControlInstructionalButton(1, Config.CCTV.Controls.Down, true))
|
||||
ScaleformMovieMethodAddParamPlayerNameString(GetControlInstructionalButton(1, Config.CCTV.Controls.Up, true))
|
||||
InstructionButtonMessage(TranslateCap("rot_up_down"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(4)
|
||||
ScaleformMovieMethodAddParamPlayerNameString(GetControlInstructionalButton(1, Config.CCTV.Controls.ZoomOut, true))
|
||||
ScaleformMovieMethodAddParamPlayerNameString(GetControlInstructionalButton(1, Config.CCTV.Controls.ZoomIn, true))
|
||||
InstructionButtonMessage(TranslateCap("zoom"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(5)
|
||||
ScaleformMovieMethodAddParamPlayerNameString(GetControlInstructionalButton(1, Config.CCTV.Controls.NightVision, true))
|
||||
InstructionButtonMessage(TranslateCap("night_vision"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(0)
|
||||
ScaleformMovieMethodAddParamPlayerNameString(GetControlInstructionalButton(1, Config.CCTV.Controls.Exit, true))
|
||||
InstructionButtonMessage(TranslateCap("exit"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "DRAW_INSTRUCTIONAL_BUTTONS")
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_BACKGROUND_COLOUR")
|
||||
PushScaleformMovieFunctionParameterInt(0)
|
||||
PushScaleformMovieFunctionParameterInt(0)
|
||||
PushScaleformMovieFunctionParameterInt(0)
|
||||
PushScaleformMovieFunctionParameterInt(80)
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
return scaleform
|
||||
end
|
||||
ESX.CloseContext()
|
||||
local cctvcam = nil
|
||||
ClearFocus()
|
||||
local playerPed = PlayerPedId()
|
||||
cctvcam = CreateCamWithParams("DEFAULT_SCRIPTED_CAMERA",
|
||||
vector3(Property.Entrance.x, Property.Entrance.y, Property.Entrance.z + Config.CCTV.HeightAboveDoor), 0, 0, 0, Config.CCTV.FOV)
|
||||
SetCamRot(cctvcam, Property.cctv.rot.x, Property.cctv.rot.y, Property.cctv.rot.z, 2)
|
||||
SetCamActive(cctvcam, true)
|
||||
SetTimecycleModifier("scanline_cam_cheap")
|
||||
TriggerServerEvent("p_instance:s:leave")
|
||||
DisableAllControlActions(0)
|
||||
FreezeEntityPosition(playerPed, true)
|
||||
SetEntityCollision(playerPed, false, true)
|
||||
local ShowButtons = true
|
||||
SetEntityVisible(playerPed, false)
|
||||
SetTimecycleModifierStrength(2.0)
|
||||
SetFocusArea(Property.Entrance.x, Property.Entrance.y, Property.Entrance.z, 0.0, 0.0, 0.0)
|
||||
PointCamAtCoord(cctvcam, vector3(Property.Entrance.x, Property.Entrance.y, Property.Entrance.z + Config.CCTV.HeightAboveDoor))
|
||||
RenderScriptCams(true, false, 1, true, false)
|
||||
Wait(1000)
|
||||
DoScreenFadeIn(500)
|
||||
RequestAmbientAudioBank("Phone_Soundset_Franklin", 0, 0)
|
||||
RequestAmbientAudioBank("HintCamSounds", 0, 0)
|
||||
while IsCamActive(cctvcam) do
|
||||
Wait(5)
|
||||
DisableAllControlActions(0)
|
||||
EnableControlAction(0, 245, true)
|
||||
EnableControlAction(0, 246, true)
|
||||
EnableControlAction(0, 249, true)
|
||||
HideHudComponentThisFrame(7)
|
||||
HideHudComponentThisFrame(8)
|
||||
HideHudComponentThisFrame(9)
|
||||
HideHudComponentThisFrame(6)
|
||||
HideHudComponentThisFrame(19)
|
||||
HideHudAndRadarThisFrame()
|
||||
|
||||
if ShowButtons then
|
||||
local instructions = CreateInstuctionScaleform("instructional_buttons")
|
||||
DrawScaleformMovieFullscreen(instructions, 255, 255, 255, 255, 0)
|
||||
end
|
||||
-- ROTATE LEFT
|
||||
local getCameraRot = GetCamRot(cctvcam, 2)
|
||||
|
||||
if IsDisabledControlPressed(0, Config.CCTV.Controls.Left) and getCameraRot.z < Property.cctv.maxleft then
|
||||
PlaySoundFrontend(-1, " FocusIn", "HintCamSounds", false)
|
||||
SetCamRot(cctvcam, getCameraRot.x, 0.0, getCameraRot.z + Config.CCTV.RotateSpeed, 2)
|
||||
end
|
||||
-- ROTATE RIGHT
|
||||
if IsDisabledControlPressed(0, Config.CCTV.Controls.Right) and getCameraRot.z > Property.cctv.maxright then
|
||||
PlaySoundFrontend(-1, " FocusIn", "HintCamSounds", false)
|
||||
SetCamRot(cctvcam, getCameraRot.x, 0.0, getCameraRot.z - Config.CCTV.RotateSpeed, 2)
|
||||
end
|
||||
|
||||
-- ROTATE UP
|
||||
if IsDisabledControlPressed(0, Config.CCTV.Controls.Up) and getCameraRot.x < Config.CCTV.MaxUpRotation then
|
||||
PlaySoundFrontend(-1, " FocusIn", "HintCamSounds", false)
|
||||
SetCamRot(cctvcam, getCameraRot.x + Config.CCTV.RotateSpeed, 0.0, getCameraRot.z, 2)
|
||||
end
|
||||
|
||||
if IsDisabledControlPressed(0, Config.CCTV.Controls.Down) and getCameraRot.x > Config.CCTV.MaxDownRotation then
|
||||
PlaySoundFrontend(-1, " FocusIn", "HintCamSounds", false)
|
||||
SetCamRot(cctvcam, getCameraRot.x - Config.CCTV.RotateSpeed, 0.0, getCameraRot.z, 2)
|
||||
end
|
||||
|
||||
if IsDisabledControlPressed(0, Config.CCTV.Controls.ZoomIn) and GetCamFov(cctvcam) > Config.CCTV.MaxZoom then
|
||||
SetCamFov(cctvcam, GetCamFov(cctvcam) - 1.0)
|
||||
end
|
||||
|
||||
if IsDisabledControlPressed(0, Config.CCTV.Controls.ZoomOut) and GetCamFov(cctvcam) < Config.CCTV.MinZoom then
|
||||
SetCamFov(cctvcam, GetCamFov(cctvcam) + 1.0)
|
||||
end
|
||||
|
||||
if IsDisabledControlPressed(0, Config.CCTV.Controls.Down) and getCameraRot.x > Config.CCTV.MaxDownRotation then
|
||||
PlaySoundFrontend(-1, " FocusIn", "HintCamSounds", false)
|
||||
SetCamRot(cctvcam, getCameraRot.x - Config.CCTV.RotateSpeed, 0.0, getCameraRot.z, 2)
|
||||
end
|
||||
|
||||
SetTextFont(4)
|
||||
SetTextScale(0.8, 0.8)
|
||||
SetTextColour(255, 255, 255, 255)
|
||||
SetTextDropshadow(0.1, 3, 27, 27, 255)
|
||||
BeginTextCommandDisplayText('STRING')
|
||||
AddTextComponentSubstringPlayerName(Property.setName ~= "" and Property.setName or Property.Name)
|
||||
EndTextCommandDisplayText(0.01, 0.01)
|
||||
|
||||
SetTextFont(4)
|
||||
SetTextScale(0.7, 0.7)
|
||||
SetTextColour(255, 255, 255, 255)
|
||||
SetTextDropshadow(0.1, 3, 27, 27, 255)
|
||||
BeginTextCommandDisplayText('STRING')
|
||||
local year --[[ integer ]] , month --[[ integer ]] , day --[[ integer ]] , hour --[[ integer ]] , minute --[[ integer ]] , second --[[ integer ]] =
|
||||
GetPosixTime()
|
||||
AddTextComponentSubstringPlayerName("" .. day .. "/" .. month .. "/" .. year .. " " .. hour .. ":" .. minute .. ":" .. second)
|
||||
EndTextCommandDisplayText(0.01, 0.055)
|
||||
|
||||
SetTextFont(4)
|
||||
SetTextScale(0.6, 0.6)
|
||||
SetTextColour(255, 255, 255, 255)
|
||||
SetTextDropshadow(0.1, 3, 27, 27, 255)
|
||||
BeginTextCommandDisplayText('STRING')
|
||||
local Zoom = ((Config.CCTV.FOV - GetCamFov(cctvcam)) / GetCamFov(cctvcam)) * 100
|
||||
AddTextComponentSubstringPlayerName(TranslateCap("zoom_level", math.floor(Zoom)))
|
||||
EndTextCommandDisplayText(0.01, 0.09)
|
||||
|
||||
SetTextFont(4)
|
||||
SetTextScale(0.6, 0.6)
|
||||
SetTextColour(255, 255, 255, 255)
|
||||
SetTextDropshadow(0.1, 3, 27, 27, 255)
|
||||
BeginTextCommandDisplayText('STRING')
|
||||
AddTextComponentSubstringPlayerName(NightVision and "Night Vision: Active" or "CCTV System: Active")
|
||||
EndTextCommandDisplayText(0.01, 0.12)
|
||||
|
||||
if IsDisabledControlPressed(0, Config.CCTV.Controls.Down) and getCameraRot.x > Config.CCTV.MaxDownRotation then
|
||||
PlaySoundFrontend(-1, " FocusIn", "HintCamSounds", false)
|
||||
SetCamRot(cctvcam, getCameraRot.x - Config.CCTV.RotateSpeed, 0.0, getCameraRot.z, 2)
|
||||
end
|
||||
|
||||
if IsDisabledControlJustPressed(0, 38) then
|
||||
NightVision = not NightVision
|
||||
SetNightvision(NightVision)
|
||||
SetTimecycleModifier("scanline_cam")
|
||||
end
|
||||
|
||||
if Config.CCTV.PictureWebook ~= "" and IsDisabledControlJustPressed(0, 201) then
|
||||
if CamTakePic then
|
||||
ShowButtons = false
|
||||
Wait(1)
|
||||
PlaySoundFrontend(-1, "Camera_Shoot", "Phone_Soundset_Franklin", 1)
|
||||
ESX.TriggerServerCallback("esx_property:GetWebhook", function(hook)
|
||||
if hook then
|
||||
exports['screenshot-basic']:requestScreenshotUpload(hook, "files[]", function(data)
|
||||
local image = json.decode(data)
|
||||
ESX.ShowNotification(TranslateCap("picture_taken"), "success")
|
||||
SendNUIMessage({link = image.attachments[1].proxy_url})
|
||||
ESX.ShowNotification(TranslateCap("clipboard"), "success")
|
||||
ShowButtons = true
|
||||
CamTakePic = false
|
||||
SetTimeout(5000, function()
|
||||
CamTakePic = true
|
||||
end)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap("please_wait"), "error")
|
||||
end
|
||||
end
|
||||
|
||||
if IsDisabledControlPressed(1, Config.CCTV.Controls.Exit) then
|
||||
DoScreenFadeOut(1000)
|
||||
ESX.TriggerServerCallback("esx_property:ExitCCTV", function(CanExit)
|
||||
if CanExit then
|
||||
InCCTV = false
|
||||
Wait(1000)
|
||||
ClearFocus()
|
||||
ClearTimecycleModifier()
|
||||
ClearExtraTimecycleModifier()
|
||||
RenderScriptCams(false, false, 0, true, false)
|
||||
DestroyCam(cctvcam, false)
|
||||
SetFocusEntity(playerPed)
|
||||
SetNightvision(false)
|
||||
SetSeethrough(false)
|
||||
SetEntityCollision(playerPed, true, true)
|
||||
FreezeEntityPosition(playerPed, false)
|
||||
SetEntityVisible(playerPed, true)
|
||||
Wait(1500)
|
||||
DoScreenFadeIn(1000)
|
||||
end
|
||||
end, PropertyID)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end, PropertyID)
|
||||
end
|
||||
end
|
||||
407
resources/[esx_addons]/esx_property/client/furniture.lua
Normal file
407
resources/[esx_addons]/esx_property/client/furniture.lua
Normal file
@@ -0,0 +1,407 @@
|
||||
--[[
|
||||
ESX Property - Properties Made Right!
|
||||
Copyright (C) 2025 ESX-Framework
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
]]
|
||||
if Config.Furniture.Enabled then
|
||||
SpawnedFurniture = {}
|
||||
RegisterNetEvent("esx_property:syncFurniture", function(PropertyId, Furniture)
|
||||
if Properties[PropertyId] and Furniture then
|
||||
Properties[PropertyId].furniture = Furniture
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("esx_property:placeFurniture", function(Id, furniture, findex)
|
||||
if Properties[Id] and InProperty and CurrentId == Id then
|
||||
ESX.Game.SpawnLocalObject(furniture.Name, vector3(furniture.Pos.x, furniture.Pos.y, furniture.Pos.z - 0.1), function(object)
|
||||
SetEntityCoordsNoOffset(object, furniture.Pos.x, furniture.Pos.y, furniture.Pos.z)
|
||||
SetEntityHeading(object, furniture.Heading)
|
||||
SetEntityAsMissionEntity(object, true, true)
|
||||
FreezeEntityPosition(object, true)
|
||||
SpawnedFurniture[findex] = {obj = object, data = furniture}
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("esx_property:removeFurniture", function(Id, furniture)
|
||||
if Properties[Id] and InProperty and CurrentId == Id then
|
||||
if SpawnedFurniture[furniture] then
|
||||
DeleteEntity(SpawnedFurniture[furniture].obj)
|
||||
SpawnedFurniture[furniture] = nil
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("esx_property:editFurniture", function(Id, furniture, Pos, Heading)
|
||||
if Properties[Id] and InProperty and CurrentId == Id then
|
||||
|
||||
if SpawnedFurniture[furniture] then
|
||||
local obj = SpawnedFurniture[furniture].obj
|
||||
SetEntityCoordsNoOffset(obj, Pos.x, Pos.y, Pos.z)
|
||||
SetEntityHeading(obj, Heading)
|
||||
SpawnedFurniture[furniture].data.Pos = Pos
|
||||
SpawnedFurniture[furniture].data.Heading = Heading
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
------------------------ Furniture Start -------------------------------
|
||||
local inFurniture = false
|
||||
local CurrentlyEditing = nil
|
||||
|
||||
function TempFurniturePlacement(PropertyId, PropName, PropIndex, PropCatagory, PropPrice, Existing, Pos, Heading)
|
||||
ESX.CloseContext()
|
||||
if CurrentlyEditing then
|
||||
DeleteEntity(CurrentlyEditing)
|
||||
CurrentlyEditing = nil
|
||||
end
|
||||
local function InstructionButtonMessage(text)
|
||||
BeginTextCommandScaleformString("STRING")
|
||||
AddTextComponentScaleform(text)
|
||||
EndTextCommandScaleformString()
|
||||
end
|
||||
|
||||
local function CreateInstuctionScaleform(scaleform)
|
||||
local scaleform = RequestScaleformMovie(scaleform)
|
||||
while not HasScaleformMovieLoaded(scaleform) do
|
||||
Wait(0)
|
||||
end
|
||||
PushScaleformMovieFunction(scaleform, "CLEAR_ALL")
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_CLEAR_SPACE")
|
||||
PushScaleformMovieFunctionParameterInt(200)
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(1)
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.MinusX, true))
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.PlusX, true))
|
||||
InstructionButtonMessage(TranslateCap("rot_left_right"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(3)
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.MinusY, true))
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.PlusY, true))
|
||||
InstructionButtonMessage(TranslateCap("rot_up_down"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(5)
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.Up, true))
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.Down, true))
|
||||
InstructionButtonMessage(TranslateCap("height"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(7)
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.RotateLeft, true))
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.RotateRight, true))
|
||||
InstructionButtonMessage(TranslateCap("rotate"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(9)
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.Confirm, true))
|
||||
InstructionButtonMessage(TranslateCap("place"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT")
|
||||
PushScaleformMovieFunctionParameterInt(0)
|
||||
N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.Exit, true))
|
||||
InstructionButtonMessage(TranslateCap("delete_furni"))
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "DRAW_INSTRUCTIONAL_BUTTONS")
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
PushScaleformMovieFunction(scaleform, "SET_BACKGROUND_COLOUR")
|
||||
PushScaleformMovieFunctionParameterInt(0)
|
||||
PushScaleformMovieFunctionParameterInt(0)
|
||||
PushScaleformMovieFunctionParameterInt(0)
|
||||
PushScaleformMovieFunctionParameterInt(80)
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
return scaleform
|
||||
end
|
||||
function GetCameraDirection()
|
||||
local rotation = GetGameplayCamRot() * (math.pi / 180)
|
||||
|
||||
return vector3(-math.sin(rotation.z), math.cos(rotation.z), math.sin(rotation.x))
|
||||
end
|
||||
local Position = GetEntityCoords(ESX.PlayerData.ped)
|
||||
local PropSpawn = Position - vector3(0.5, 0.5, 1.0)
|
||||
ESX.Game.SpawnLocalObject(PropName, PropSpawn, function(CurrentlyEditing)
|
||||
CurrentlyEditing = CurrentlyEditing
|
||||
NetworkSetObjectForceStaticBlend(CurrentlyEditing, true)
|
||||
SetEntityAsMissionEntity(CurrentlyEditing, true, true)
|
||||
SetEntityCollision(CurrentlyEditing, false, true)
|
||||
if Existing then
|
||||
SetEntityCoordsNoOffset(CurrentlyEditing, vector3(Pos.x, Pos.y, Pos.z))
|
||||
SetEntityHeading(CurrentlyEditing, Heading)
|
||||
else
|
||||
PlaceObjectOnGroundProperly(CurrentlyEditing)
|
||||
end
|
||||
FreezeEntityPosition(CurrentlyEditing, true)
|
||||
while true do
|
||||
HudForceWeaponWheel(false)
|
||||
HideHudComponentThisFrame(19)
|
||||
HideHudComponentThisFrame(20)
|
||||
local CurrentPos = GetEntityCoords(CurrentlyEditing)
|
||||
local CurrentHeading = GetEntityHeading(CurrentlyEditing)
|
||||
local Rotation = GetEntityRotation(CurrentlyEditing, 2)
|
||||
SetEntityDrawOutline(CurrentlyEditing, true)
|
||||
SetEntityDrawOutlineColor(55, 140, 191, 200)
|
||||
SetEntityDrawOutlineShader(1)
|
||||
local instructions = CreateInstuctionScaleform("instructional_buttons")
|
||||
DrawScaleformMovieFullscreen(instructions, 255, 255, 255, 255, 0)
|
||||
Wait(0)
|
||||
if IsControlJustPressed(0, 202) then
|
||||
DeleteObject(CurrentlyEditing)
|
||||
end
|
||||
|
||||
if IsControlPressed(0, Config.Furniture.Controls.MinusY) then
|
||||
local direction = GetCameraDirection()
|
||||
CurrentPos = CurrentPos - vector3(direction.x * Config.Furniture.MovementSpeed, direction.y * Config.Furniture.MovementSpeed, 0)
|
||||
SetEntityCoordsNoOffset(CurrentlyEditing, CurrentPos.x, CurrentPos.y, CurrentPos.z)
|
||||
end
|
||||
|
||||
if IsControlPressed(0, Config.Furniture.Controls.PlusY) then
|
||||
local direction = GetCameraDirection()
|
||||
CurrentPos = CurrentPos + vector3(direction.x * Config.Furniture.MovementSpeed, direction.y * Config.Furniture.MovementSpeed, 0)
|
||||
SetEntityCoordsNoOffset(CurrentlyEditing, CurrentPos)
|
||||
end
|
||||
|
||||
if IsControlPressed(0, Config.Furniture.Controls.Up) then
|
||||
SetEntityCoordsNoOffset(CurrentlyEditing, CurrentPos.x, CurrentPos.y, CurrentPos.z + Config.Furniture.MovementZspeed)
|
||||
end
|
||||
|
||||
if IsControlPressed(0, Config.Furniture.Controls.Down) then
|
||||
SetEntityCoordsNoOffset(CurrentlyEditing, CurrentPos.x, CurrentPos.y, CurrentPos.z - Config.Furniture.MovementZspeed)
|
||||
end
|
||||
if IsControlPressed(0, Config.Furniture.Controls.RotateLeft) then
|
||||
CurrentHeading = CurrentHeading + Config.Furniture.RotationSpeed
|
||||
SetEntityRotation(CurrentlyEditing, 0, 0, CurrentHeading, 1, true)
|
||||
-- SetEntityRotation(CurrentlyEditing, Rotation.x, Rotation.y, Rotation.z + Config.Furniture.RotationSpeed, 2, false)
|
||||
-- SetEntityHeading(CurrentlyEditing, CurrentHeading + Config.Furniture.RotationSpeed)
|
||||
end
|
||||
|
||||
if IsControlPressed(0, Config.Furniture.Controls.RotateRight) then
|
||||
CurrentHeading = CurrentHeading - Config.Furniture.RotationSpeed
|
||||
SetEntityRotation(CurrentlyEditing, 0, 0, CurrentHeading, 1, true)
|
||||
-- SetEntityRotation(CurrentlyEditing, Rotation.x, Rotation.y, Rotation.z - Config.Furniture.RotationSpeed, 2, false)
|
||||
-- SetEntityHeading(CurrentlyEditing, CurrentHeading - Config.Furniture.RotationSpeed)
|
||||
end
|
||||
|
||||
if IsControlPressed(0, Config.Furniture.Controls.PlusX) then
|
||||
local direction = GetCameraDirection()
|
||||
CurrentPos = CurrentPos + vector3(-direction.y * Config.Furniture.MovementSpeed, direction.x * Config.Furniture.MovementSpeed, 0)
|
||||
SetEntityCoordsNoOffset(CurrentlyEditing, CurrentPos)
|
||||
end
|
||||
|
||||
if IsControlPressed(0, Config.Furniture.Controls.MinusX) then
|
||||
local direction = GetCameraDirection()
|
||||
CurrentPos = CurrentPos - vector3(-direction.y * Config.Furniture.MovementSpeed, direction.x * Config.Furniture.MovementSpeed, 0)
|
||||
SetEntityCoordsNoOffset(CurrentlyEditing, CurrentPos)
|
||||
end
|
||||
|
||||
if IsControlJustPressed(0, Config.Furniture.Controls.Confirm) then
|
||||
if not Existing then
|
||||
ESX.OpenContext("right",
|
||||
{{unslectable = true, title = TranslateCap("confirm_buy",Config.FurnitureCatagories[PropCatagory][PropIndex].title),
|
||||
description = TranslateCap("price",Config.FurnitureCatagories[PropCatagory][PropIndex].price), icon = "fas fa-shopping-cart"},
|
||||
{title = TranslateCap("yes"), value = "buy", icon = "fas fa-check"}, {title = TranslateCap("no"), icon = "fas fa-minus"}}, function(menu, element)
|
||||
if element.value and element.value == "buy" then
|
||||
ESX.TriggerServerCallback("esx_property:buyFurniture", function(response)
|
||||
if response then
|
||||
DeleteEntity(CurrentlyEditing)
|
||||
ESX.ShowNotification(TranslateCap("bought_furni", Config.FurnitureCatagories[PropCatagory][PropIndex].title), "success")
|
||||
ESX.CloseContext()
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap("cannot_buy"), "error")
|
||||
end
|
||||
end, CurrentId, PropName, PropIndex, PropCatagory, vector3(CurrentPos.x, CurrentPos.y, CurrentPos.z), CurrentHeading)
|
||||
end
|
||||
end)
|
||||
else
|
||||
ESX.TriggerServerCallback("esx_property:editFurniture", function(response)
|
||||
if response then
|
||||
DeleteEntity(CurrentlyEditing)
|
||||
ESX.ShowNotification(TranslateCap("edited_furni"), "success")
|
||||
ESX.CloseContext()
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap("cannot_edit"), "error")
|
||||
end
|
||||
end, CurrentId, PropIndex, vector3(CurrentPos.x, CurrentPos.y, CurrentPos.z), CurrentHeading)
|
||||
end
|
||||
end
|
||||
|
||||
if DoesEntityExist(CurrentlyEditing) then
|
||||
inFurniture = true
|
||||
else
|
||||
inFurniture = false
|
||||
for _, Control in pairs(Config.Furniture.Controls) do
|
||||
EnableControlAction(0, Control, true)
|
||||
end
|
||||
break
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function FurnitureItems(house, Store, StoreIndex, Catagory)
|
||||
local Items = {{unselectable = true, title = TranslateCap("store_title", Catagory), icon = "fas fa-store"},
|
||||
{title = TranslateCap("back"), value = "go-back", icon = "fas fa-arrow-left"}}
|
||||
|
||||
for k, v in pairs(Config.FurnitureCatagories[Catagory]) do
|
||||
table.insert(Items, {title = v.title, value = v.name, index = k, description = _U("price", v.price), icon = "fas fa-shopping-cart"})
|
||||
end
|
||||
|
||||
ESX.OpenContext("right", Items, function(data, element)
|
||||
if element.value == "go-back" then
|
||||
FurnitureCatagories(house, Store, StoreIndex)
|
||||
else
|
||||
TempFurniturePlacement(house, element.value, element.index, Catagory)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function FurnitureCatagories(house, Store, StoreIndex)
|
||||
local Catagories = {{unselectable = true, title = TranslateCap("store_title", Store), icon = "fas fa-store"},
|
||||
{title = TranslateCap("back"), value = "go-back", icon = "fas fa-arrow-left"}}
|
||||
|
||||
for k, v in pairs(Config.FurnitureStores[StoreIndex].Catagories) do
|
||||
table.insert(Catagories, {title = v})
|
||||
end
|
||||
|
||||
ESX.OpenContext("right", Catagories, function(data, element)
|
||||
if element.value == "go-back" then
|
||||
FurnitureStores(house)
|
||||
else
|
||||
FurnitureItems(house, Store, StoreIndex, element.title)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function FurnitureEdit(propertyId, furniture)
|
||||
local furni = SpawnedFurniture[furniture]
|
||||
local Funiture = Config.FurnitureCatagories[furni.data.Catagory][furni.data.Index]
|
||||
local Catagories = {{unselectable = true, title = TranslateCap("edit_title",Funiture.title), icon = "fas fa-store"},
|
||||
{title = TranslateCap("back"), value = "go-back", icon = "fas fa-arrow-left"},
|
||||
{title = TranslateCap("move_title"), value = "rotate", icon = "fas fa-sync-alt"}, {title = TranslateCap("delete_furni"), value = "delete", icon = "fas fa-trash-alt"}}
|
||||
|
||||
ESX.OpenContext("right", Catagories, function(data, element)
|
||||
if element.value == "go-back" then
|
||||
FurnitureEditSelect(propertyId)
|
||||
end
|
||||
if element.value == "delete" then
|
||||
ESX.TriggerServerCallback("esx_property:deleteFurniture", function(response)
|
||||
if response then
|
||||
ESX.ShowNotification(TranslateCap("delete_confirm", Funiture.title), "success")
|
||||
FurnitureEditSelect(propertyId)
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap("delete_error", Funiture.title), "error")
|
||||
end
|
||||
end, propertyId, furniture)
|
||||
end
|
||||
if element.value == "rotate" then
|
||||
ESX.CloseContext()
|
||||
TempFurniturePlacement(propertyId, furni.data.Name, furniture, furni.data.Catagory, furni.data.Index, true, furni.data.Pos, furni.data.Heading)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function FurnitureEditSelect(propertyId)
|
||||
local Furni = {{unselectable = true, title = TranslateCap("owned_furni"), icon = "far fa-edit"},
|
||||
{title = TranslateCap("back"), value = "go-back", icon = "fas fa-arrow-left"}}
|
||||
|
||||
for k, v in pairs(SpawnedFurniture) do
|
||||
local Funiture = Config.FurnitureCatagories[v.data.Catagory][v.data.Index]
|
||||
table.insert(Furni, {title = Funiture.title, value = k})
|
||||
end
|
||||
|
||||
ESX.OpenContext("right", Furni, function(data, element)
|
||||
if element.value == "go-back" then
|
||||
FurnitureMenu(propertyId)
|
||||
else
|
||||
FurnitureEdit(propertyId, element.value)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function FurnitureStores(house)
|
||||
local Options = {{unselectable = true, title = TranslateCap("menu_stores"), icon = "fas fa-store"},
|
||||
{title = TranslateCap("back"), value = "go-back", icon = "fas fa-arrow-left"}}
|
||||
|
||||
for k, v in pairs(Config.FurnitureStores) do
|
||||
table.insert(Options, {title = v.title, Store = k})
|
||||
end
|
||||
|
||||
ESX.OpenContext("right", Options, function(data, element)
|
||||
if element.Store then
|
||||
FurnitureCatagories(house, element.title, element.Store)
|
||||
elseif element.value == "go-back" then
|
||||
FurnitureMenu(house)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function FurnitureMenu(PropertyId)
|
||||
local Options = {{unselectable = true, title = TranslateCap("furni_management"), icon = "fas fa-lamp"},
|
||||
{title = TranslateCap("menu_stores"), description = TranslateCap("menu_stores_desc"), icon = "fas fa-dollar-sign", value = "store"}}
|
||||
|
||||
if #SpawnedFurniture > 0 then
|
||||
Options[#Options + 1] = {title = TranslateCap("menu_reset"), description = TranslateCap("menu_reset_desc"), icon = "fas fa-trash", value = "reset"}
|
||||
Options[#Options + 1] = {title = TranslateCap("menu_edit"), description = TranslateCap("menu_edit_desc"), icon = "fas fa-archive", value = "edit"}
|
||||
|
||||
end
|
||||
ESX.OpenContext("right", Options, function(data, element)
|
||||
if element.value then
|
||||
if element.value == "store" then
|
||||
FurnitureStores(PropertyId)
|
||||
elseif element.value == "edit" then
|
||||
FurnitureEditSelect(PropertyId)
|
||||
elseif element.value == "reset" then
|
||||
ESX.TriggerServerCallback("esx_property:RemoveAllfurniture", function(Removed)
|
||||
if Removed then
|
||||
ESX.ShowNotification(TranslateCap("furni_reset_success"), "success")
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap("furni_reset_error"), "error")
|
||||
end
|
||||
end, PropertyId)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
ESX.RegisterInput(TranslateCap("furni_command"), TranslateCap("furni_command_desc"), "keyboard", "M", function()
|
||||
if InProperty then
|
||||
ESX.TriggerServerCallback('esx_property:CanOpenFurniture', function(Access)
|
||||
if Access then
|
||||
if not inFurniture then
|
||||
FurnitureMenu(CurrentId)
|
||||
else
|
||||
FurnitureStores(CurrentId)
|
||||
end
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap("furni_command_permission"), 5000, "error")
|
||||
end
|
||||
end, CurrentId)
|
||||
else
|
||||
return
|
||||
end
|
||||
end)
|
||||
end
|
||||
25
resources/[esx_addons]/esx_property/client/html/copy.html
Normal file
25
resources/[esx_addons]/esx_property/client/html/copy.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<!-- Cred: https://github.com/TerbSEC/FiveM-CoordsSaver/tree/master/html -->
|
||||
<html>
|
||||
<head>
|
||||
<script src="nui://game/ui/jquery.js" type="text/javascript"></script>
|
||||
</head>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
window.addEventListener("message", function(event) {
|
||||
var node = document.createElement("textarea");
|
||||
var selection = document.getSelection();
|
||||
|
||||
node.textContent = event.data.link;
|
||||
document.body.appendChild(node);
|
||||
|
||||
selection.removeAllRanges();
|
||||
node.select();
|
||||
document.execCommand("copy");
|
||||
|
||||
selection.removeAllRanges();
|
||||
document.body.removeChild(node);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</html>
|
||||
1519
resources/[esx_addons]/esx_property/client/main.lua
Normal file
1519
resources/[esx_addons]/esx_property/client/main.lua
Normal file
File diff suppressed because it is too large
Load Diff
665
resources/[esx_addons]/esx_property/config.lua
Normal file
665
resources/[esx_addons]/esx_property/config.lua
Normal file
@@ -0,0 +1,665 @@
|
||||
Config = {}
|
||||
|
||||
-------- Note: Can Cause quite abit of clutter ---------------
|
||||
Config.ForSaleBlips = false -- Add Blips to For Sale Properties
|
||||
Config.OwnedBlips = true -- Add blips for Owned Properties
|
||||
---------------------------------------------------------------
|
||||
|
||||
--------------------- General Settings ---------------------------------
|
||||
Config.Locale = GetConvar('esx:locale', 'en')
|
||||
Config.Shells = false -- Enable/Disable Shell Interiors Default: false
|
||||
Config.SaveInterval = 5 -- Interval in Minutes to Save Properties
|
||||
Config.CanAlwaysExit = true -- Disabling this allows players to be locked in
|
||||
Config.OwnerCanAlwaysEnter = true -- Disabling this means the owner can't enter the property unless door is unlocked
|
||||
Config.MaxNameLength = 20 -- Max Name Length for Owned Properties Default: 20
|
||||
Config.CanCustomiseInventoryAndWardrobePositions = true -- Allow users to customise inventory and wardrobe positions Default: true
|
||||
Config.WipeCustomNameOnSell = true -- Wipe custom name on sell Default: true
|
||||
Config.WipeFurnitureOnSell = true -- Wipe custom name on sell Default: true
|
||||
|
||||
|
||||
--------------------- Zone Suggested Prices ---------------------------------
|
||||
Config.ZonePriceOptions = {
|
||||
Enabled = true, -- Enable/Disable Zone Prices Modifiers Default: true
|
||||
Default = 250000, -- Default Price of a property Default: 250000
|
||||
}
|
||||
|
||||
-- The Amount to Multiply the Default Price by (if the above is enabled):
|
||||
Config.ZonePrices = {
|
||||
[0] = 10, -- Posh
|
||||
[1] = 7, -- Nice
|
||||
[2] = 5, -- Above Average
|
||||
[3] = 3, -- Bellow Average
|
||||
[4] = 2, -- Crap
|
||||
[5] = 1, -- Scum
|
||||
}
|
||||
|
||||
--------------------- Raid Settings ---------------------------------
|
||||
Config.Raiding = {
|
||||
Enabled = true, -- Enable/Disable Raiding Default: true
|
||||
CanAdminsRaid = true, -- Can Admins Raid Houses Default: true
|
||||
ItemRequired = { -- Item Required to Raid -- Remove To Disable
|
||||
RemoveItem = true, -- Remove Item from Inventory Default: true
|
||||
name = "bread", -- Item Name Default: "bread"
|
||||
label = "Bread", -- Item label Default: "Bread"
|
||||
ItemCount = 1, -- Item Count Default: 1
|
||||
},
|
||||
Animation = {
|
||||
type = "Scenario",
|
||||
Scenario = "WORLD_HUMAN_HAMMERING",
|
||||
},
|
||||
}
|
||||
|
||||
--------------------- Garage Settings ---------------------------------
|
||||
Config.Garage = {
|
||||
Enabled = true, -- Enable/Disable Garage Default: true
|
||||
OwnedVehiclesOnly = true, -- Only allow owned vehicles to be stored Default: true
|
||||
MySQLquery = "UPDATE `owned_vehicles` SET `stored` = ? WHERE `plate` = ?" -- MySQL Query to store vehicles `?` = True/false, Vehicle Plate
|
||||
}
|
||||
|
||||
--------------------- Log Settings ---------------------------------
|
||||
if IsDuplicityVersion() then
|
||||
Config.Logs = {
|
||||
Webhook = "",
|
||||
LogLevel = 1
|
||||
|
||||
----------- Log Levels ------------
|
||||
-- 0 = No Logs
|
||||
-- 1 = Logs Major Actions
|
||||
-- 2 = Logs Major + Minor Actions
|
||||
-- 3 = Logs All Actions
|
||||
-------------------------------------
|
||||
}
|
||||
end
|
||||
--------------------- Furniture Settings ---------------------------------
|
||||
Config.Furniture = {
|
||||
Enabled = true,
|
||||
RotationSpeed = 0.4, -- Object Rotation Speed
|
||||
MovementSpeed = 0.01, -- Object Movement Speed
|
||||
MovementZspeed = 0.05, -- Object Z Movement Speed
|
||||
WipeFurnitureOnSell = true, -- Wipe Furniture On Sell Default: true
|
||||
Controls = {
|
||||
PlusX = 174, -- lEFT Arrow
|
||||
MinusX = 175, -- RIGHT Arrow
|
||||
RotateRight = 19, -- Alt,
|
||||
RotateLeft = 21, -- Shift,
|
||||
Up = 96, -- UP Arrow
|
||||
Down = 97, -- DOWN Arrow
|
||||
Confirm = 201, -- ENTER
|
||||
Exit = 194, -- BACKSPACE
|
||||
PlusY = 172, -- SHIFT
|
||||
MinusY = 173, -- SHIFT
|
||||
}
|
||||
}
|
||||
|
||||
--------------------- CCTV Settings ---------------------------------
|
||||
Config.CCTV = {
|
||||
Enabled = true,
|
||||
PictureWebook = IsDuplicityVersion() and "" or "DO NOT CHANGE THIS STRING", -- Set a discord webhook here to enable taking pictures of the CCTV (link is copied to user`s clipboard)
|
||||
HeightAboveDoor = 2.5, -- Height above the door to place the cctv camera
|
||||
FOV = 80.0, -- Camera Field of View
|
||||
MaxLeftRotation = 80,
|
||||
MaxZoom = 30,
|
||||
MinZoom = 100,
|
||||
MaxRightRotation = -50,
|
||||
MaxUpRotation = 10,
|
||||
MaxDownRotation = -45,
|
||||
RotateSpeed = 0.3, -- Camera Rotation Speed
|
||||
Controls = {
|
||||
Left = 34, -- lEFT Arrow
|
||||
Right = 35, -- RIGHT Arrow
|
||||
Screenshot = 201, -- ENTER
|
||||
NightVision = 38, -- E
|
||||
ZoomIn = 96, -- UP Arrow
|
||||
ZoomOut = 97, -- DOWN Arrow
|
||||
Up = 32, -- UP Arrow
|
||||
Down = 33, -- DOWN Arrow
|
||||
Exit = 194, -- BACKSPACE
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-------- Groups allowed to use Admin Functions -------------------
|
||||
Config.AllowedGroups = {
|
||||
-- Note: Superadmin is not a group In ESX
|
||||
"admin"
|
||||
}
|
||||
|
||||
------------------Interacting With Wardrobe Markers ------------------------------
|
||||
Config.WardrobeInteraction = function(PropertyId, Interaction)
|
||||
ESX.TriggerServerCallback('esx_property:getPlayerDressing', function(dressing)
|
||||
local elements = {{unselectable = true, icon = "fas fa-tshirt", title = "Wardrobe"}}
|
||||
|
||||
for i=1, #dressing, 1 do
|
||||
elements[#elements + 1] = {
|
||||
title = dressing[i],
|
||||
value = i
|
||||
}
|
||||
end
|
||||
|
||||
ESX.OpenContext("left", elements, function(menu, element)
|
||||
TriggerEvent('skinchanger:getSkin', function(skin)
|
||||
ESX.TriggerServerCallback('esx_property:getPlayerOutfit', function(clothes)
|
||||
TriggerEvent('skinchanger:loadClothes', skin, clothes)
|
||||
TriggerEvent('esx_skin:setLastSkin', skin)
|
||||
|
||||
TriggerEvent('skinchanger:getSkin', function(skin)
|
||||
TriggerServerEvent('esx_skin:save', skin)
|
||||
end)
|
||||
end, element.value)
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
--------------------- Real Estate Settings ----------
|
||||
Config.PlayerManagement = {
|
||||
Enabled = false, -- Enable/Disable Player Management Default: true
|
||||
job = "realestateagent", -- Job Required to Manage Players Default: "realestateagent"
|
||||
joblabel = "Estate Agent", -- Job Label Default: "Estate Agent"
|
||||
society = "society_realestateagent", -- Society Required to Manage Players Default: "society_realestateagent"
|
||||
SalePercentage = 0.25, -- Sale Percentage Default: 0.25 -- Note: This is a percentage of the price of the house
|
||||
jobRanks = {
|
||||
{
|
||||
grade = 0,
|
||||
name = "trainee",
|
||||
label = "Trainee",
|
||||
salary = 15,
|
||||
},
|
||||
{
|
||||
grade = 1,
|
||||
name = "agent",
|
||||
label = "Experienced Agent",
|
||||
salary = 30,
|
||||
},
|
||||
{
|
||||
grade = 2,
|
||||
name = "boss",
|
||||
label = "Chief Agent",
|
||||
salary = 45,
|
||||
},
|
||||
},
|
||||
Permissions = { -- Minimum Grade Required for Action
|
||||
CreateProperty = 0, -- Create Property
|
||||
DeleteProperty = 2, -- Delete Property
|
||||
ViewProperties = 0, -- View All Properties
|
||||
SellProperty = 0, -- Sell Property to players
|
||||
ToggleCCTV = 1, -- Change CCTV settings
|
||||
ToggleLock = 0, -- Change Lock Settings
|
||||
ToggleGarage = 1, -- Change Garage Settings
|
||||
SetPropertyName =1, -- Change Property Name
|
||||
RemovePropertyName = 1, -- Remove Property Name
|
||||
SetPropertyPrice = 0, -- Change Property Price
|
||||
ChangeInterior = 1, -- Change Interior
|
||||
ResetFurniture = 0, -- Reset Furniture
|
||||
EvictOwner = 0, -- Evict Owners
|
||||
ChangeEntrance = 0, -- Change Entrance
|
||||
EditInteriorPositions = 1, -- Edit Interior Positions
|
||||
ManagePropertiesFromQuickActions = 1, -- Manage Properties From Quick Actions (F6)
|
||||
},
|
||||
Locations = {
|
||||
Entrance = vector3( -199.151, -575.000, 39.489 ), -- Entrance Location Default: vector3( -199.151, -575.000, 39.489 )
|
||||
Exit = vector3( -141.226, -614.166, 167.820 ), -- Exit Location (Interior Location) Default: vector3( -141.226, -614.166, 167.820 )
|
||||
Properties = vector3(-138.9228, -634.1255, 167.8504), -- Property Management Menu Default: vector3(-138.9228, -634.1255, 167.8504)
|
||||
}
|
||||
}
|
||||
|
||||
----------------------Long Lists----------------------------------------
|
||||
Config.FurnitureStores = {
|
||||
{
|
||||
title = "Ikea",
|
||||
Catagories = {"Decorations", "Tables", "Sofas", "Bedroom"}
|
||||
},
|
||||
{
|
||||
title = "Electronics Store",
|
||||
Catagories = {"Electronics","Kitchen"}
|
||||
},
|
||||
}
|
||||
|
||||
Config.Interiors = {
|
||||
IPL = {
|
||||
{
|
||||
label = "Modern Apartment",
|
||||
value = "apa_v_mp_h_01_a",
|
||||
positions = {
|
||||
Wardrobe = vec3(-797.72, 328.03, 220.42),
|
||||
Storage = vec3(-795.67, 326.67, 217.037), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(-786.8663, 315.7642, 217.6385)
|
||||
},
|
||||
{
|
||||
label = "Mody Apartment",
|
||||
value = "apa_v_mp_h_02_a",
|
||||
positions = {
|
||||
Wardrobe = vec3(-797.591187, 327.995605, 220.424194),
|
||||
Storage = vec3(-795.441772, 326.307678, 217.037354), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(-787.0749, 315.8198, 217.6386)
|
||||
},
|
||||
{
|
||||
label = "Vibrant Apartment",
|
||||
value = "apa_v_mp_h_03_a",
|
||||
positions = {
|
||||
Wardrobe = vec3(-798.131897, 328.417572, 220.424194),
|
||||
Storage = vec3(-796.786804, 327.164825, 217.037354),-- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(-786.6245, 315.6175, 217.6385)
|
||||
},
|
||||
{
|
||||
label = "Regal Apartment",
|
||||
value = " apa_v_mp_h_07_c",
|
||||
positions = {
|
||||
Wardrobe = vector3(-797.6594, 328.4619, 190.5122),
|
||||
Storage = vector3(-796.0188, 326.7346, 187.3131), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(-787.0574, 315.6567, 187.9135)
|
||||
},
|
||||
{
|
||||
label = "Tinsel Towers",
|
||||
value = "tinsel_towers",
|
||||
positions = {
|
||||
Wardrobe = vector3(-594.5938, 55.6803, 96.9996),
|
||||
Storage = vector3(-622.8556, 54.7504, 97.5995), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(-603.7109, 59.0251, 98.2002)
|
||||
},
|
||||
{
|
||||
label = "Dell Perro Heights",
|
||||
value = "dell_perro_heights",
|
||||
positions = {
|
||||
Wardrobe = vector3(-1467.2574, -536.9599, 50.7325),
|
||||
Storage = vector3(-1457.0121, -531.0082, 56.9373), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(-1449.7212, -526.1263, 56.9290)
|
||||
},
|
||||
{
|
||||
label = "Mid-Tier Apartment",
|
||||
value = "mid-end",
|
||||
positions = {
|
||||
Wardrobe = vector3(350.7425, -994.2987, -99.1472),
|
||||
Storage = vector3(343.8686, -1001.1404, -99.1962), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(346.5085, -1012.7023, -99.1962)
|
||||
},
|
||||
{
|
||||
label = "Low-End Apartment",
|
||||
value = "low-end",
|
||||
positions = {
|
||||
Wardrobe = vector3(259.9943, -1003.4595, -99.0086),
|
||||
Storage = vector3(265.9162, -999.3954, -99.0086), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(266.0285, -1007.4129, -101.0086)
|
||||
},
|
||||
{
|
||||
label = "High-End House 1",
|
||||
value = "wild_oats",
|
||||
positions = {
|
||||
Wardrobe = vector3(-167.4227, 487.7173, 133.0),
|
||||
Storage = vector3(-174.4463, 492.5583, 130.0436), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(-174.3548, 497.7895, 137.6538)
|
||||
},
|
||||
{
|
||||
label = "Clubhouse",
|
||||
value = "bkr_biker_interior_placement_interior_0_biker_dlc_int_01_milo",
|
||||
positions = {
|
||||
Wardrobe = vector3(1116.9374, -3162.8467, -36.8705),
|
||||
Storage = vector3(1112.0820, -3151.4019, -37.5186), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "ipl",
|
||||
pos = vector3(1121.1871, -3152.6177, -37.0628)
|
||||
},
|
||||
},
|
||||
Shells = {
|
||||
{
|
||||
label = "Michael House",
|
||||
value = "shell_michael",
|
||||
positions = {
|
||||
Wardrobe = vector3(-12.71,8.36,-5.8), -- Wardrobe Location
|
||||
Storage = vector3(-177.77,-2.05,-1.44), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "shell",
|
||||
pos = vector3(9.290245, -5.563965, 5.053642)
|
||||
},
|
||||
{
|
||||
label = "Standard Motel",
|
||||
value = "standardmotel_shell",
|
||||
positions = {
|
||||
Wardrobe = vector3(-1.435, -4.74, -1.0),
|
||||
Storage = vector3(2.45, -4.37, -1.0), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "shell",
|
||||
pos = vector3(0.054924, 2.459473, 1.546776)
|
||||
},
|
||||
{
|
||||
label = "Mid-Tier apartment",
|
||||
value = "furnitured_midapart",
|
||||
positions = {
|
||||
Wardrobe = vector3(-4.5, -18.99, -1.2),
|
||||
Storage = vector3(-5.1, -13.68, -1.2), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "shell",
|
||||
pos = vector3(-1.434044, 9.802368, 1.511887)
|
||||
},
|
||||
{
|
||||
label = "Trever`s Trailer",
|
||||
value = "shell_trevor",
|
||||
positions = {
|
||||
Wardrobe = vector3(-0.58, -4.85, -1.0),
|
||||
Storage = vector3(3.02, -1.467, -1.0), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "shell",
|
||||
pos = vector3(-0.156189, 3.585266, 1.398056)
|
||||
},
|
||||
{
|
||||
label = "Trailer",
|
||||
value = "shell_trailer",
|
||||
positions = {
|
||||
Wardrobe = vector3(3.8, -2.92, -1.0),
|
||||
Storage = vector3(-5.69, -0.57, -1.12), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "shell",
|
||||
pos = vector3(1.282555, 1.713379, 1.469521)
|
||||
},
|
||||
{
|
||||
label = "Low-End Apartment",
|
||||
value = "shell_v16low",
|
||||
positions = {
|
||||
Wardrobe = vector3(7.31, -6.71, -3.0),
|
||||
Storage = vector3(0.61, -8.30, -3.0), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "shell",
|
||||
pos = vector3(-4.798767, 6.197479, 2.644226)
|
||||
},
|
||||
{
|
||||
label = "Store",
|
||||
value = "shell_store1",
|
||||
positions = {
|
||||
Storage = vector3(0.03, -8.4, -1.1), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "shell",
|
||||
pos = vector3(2.666809, 4.603638, 1.609573)
|
||||
},
|
||||
{
|
||||
label = "Ranch",
|
||||
value = "shell_ranch",
|
||||
positions = {
|
||||
Wardrobe = vector3(-2.78, -10.76, -1.0),
|
||||
Storage = vector3(3.1, 8.04, -1.0), -- Only Works with Ox Inventory
|
||||
},
|
||||
type = "shell",
|
||||
pos = vector3(0.873413, -5.749237, 2.416748)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Config.FurnitureCatagories =
|
||||
{Decorations = {{name = "apa_mp_h_acc_bottle_01", title = "Bottle", price = 700},
|
||||
{name = "apa_mp_h_acc_candles_01", title = "Candles", price = 700},
|
||||
{name = "p_int_jewel_mirror", title = "Mirror", price = 700},
|
||||
{name = "apa_mp_h_acc_dec_plate_01", title = "Decorative Plate", price = 700},
|
||||
{name = "apa_mp_h_acc_vase_01", title = "Vase", price = 700},
|
||||
{name = "v_res_desktidy", title = "Desk Supplies", price = 700},
|
||||
{name = "ex_prop_ashtray_luxe_02", title = "Ashtray", price = 700},
|
||||
{name = "v_res_mp_ashtrayb", title = "Ashtray 2", price = 300},
|
||||
{name = "prop_bong_01", title = "Bong", price = 700},
|
||||
{name = "prop_mr_rasberryclean", title = "Mr Rasberry Clean", price = 700},
|
||||
{name = "prop_acc_guitar_01", title = "Guitar", price = 1000},
|
||||
{name = "p_planning_board_04", title = "Planning Board", price = 500},
|
||||
{name = "prop_hotel_clock_01", title = "Hotel Clock", price = 500},
|
||||
{name = "p_cs_pamphlet_01_s", title = "Pamphlet", price = 700},
|
||||
{name = "prop_big_clock_01", title = "Big Clock", price = 500},
|
||||
{name = "prop_egg_clock_01", title = "Egg Clock", price = 500},
|
||||
{name = "prop_ld_greenscreen_01", title = "Green Screen", price = 100},
|
||||
{name = "prop_dart_bd_cab_01", title = "Dart", price = 500},
|
||||
{name = "prop_dart_bd_01", title = "Dart 2", price = 500},
|
||||
{name = "prop_exercisebike", title = "Exercise Bike", price = 500},
|
||||
{name = "p_laz_j02_s", title = "Laz", price = 500},
|
||||
{name = "v_res_cherubvase", title = "White Vase", price = 500},
|
||||
{name = "v_res_d_paddedwall", title = "Padded Wall", price = 500},
|
||||
{name = "prop_dummy_01", title = "Dummy", price = 100},
|
||||
{name = "prop_el_guitar_01", title = "E Guitar 1", price = 100},
|
||||
{name = "prop_el_guitar_02", title = "E Guitar 2", price = 100},
|
||||
{name = "prop_el_guitar_03", title = "E Guitar 2", price = 100},
|
||||
{name = "v_res_mbowlornate", title = "Ornate Bowl", price = 300},
|
||||
{name = "v_res_mbronzvase", title = "Bronze Vase", price = 300},
|
||||
{name = "prop_ceramic_jug_01", title = "Ceramic Jug", price = 100},
|
||||
{name = "v_res_m_candle", title = "Candle Large 1", price = 300},
|
||||
{name = "v_res_m_candlelrg", title = "Candle Large 2", price = 300},
|
||||
{name = "apa_mp_h_acc_candles_06", title = "Candles 1", price = 50},
|
||||
{name = "apa_mp_h_acc_candles_05", title = "Candles 2", price = 50},
|
||||
{name = "apa_mp_h_acc_candles_04", title = "Candles 3", price = 50},
|
||||
{name = "apa_mp_h_acc_rugwools_01", title = "Rug 1", price = 300},
|
||||
{name = "apa_mp_h_acc_rugwoolm_01", title = "Rug 2", price = 300},
|
||||
{name = "apa_mp_h_acc_rugwooll_04", title = "Rug 3", price = 300},
|
||||
{name = "apa_mp_h_acc_rugwooll_03", title = "Rug 4", price = 300},
|
||||
{name = "apa_mp_h_acc_rugwoolm_04", title = "Rug 5", price = 300},
|
||||
{name = "apa_mp_h_acc_rugwools_03", title = "Rug 6", price = 300},
|
||||
{name = "v_res_fh_pouf", title = "Pouf", price = 300},
|
||||
{name = "v_res_fh_sculptmod", title = "Sculpture", price = 300},
|
||||
{name = "prop_v_5_bclock", title = "Vintage Clock", price = 300},
|
||||
{name = "prop_v_15_cars_clock", title = "American Flag Clock", price = 300},
|
||||
{name = "prop_sm_19_clock", title = "Modern Clock", price = 300},
|
||||
{name = "prop_sports_clock_01", title = "Sports Clock", price = 300},
|
||||
{name = "prop_mem_candle_01", title = "Candle 1", price = 300},
|
||||
{name = "prop_game_clock_01", title = "Crown Clock", price = 300},
|
||||
{name = "prop_game_clock_02", title = "Kronos Clock", price = 300},
|
||||
{name = "prop_id2_20_clock", title = "Modern Clock 2", price = 300},
|
||||
{name = "ex_office_citymodel_01", title = "CIty name", price = 300},
|
||||
{name = "apa_mp_h_acc_dec_head_01", title = "Mask", price = 300},
|
||||
{name = "ex_mp_h_acc_vase_06", title = "Vase 1", price = 300},
|
||||
{name = "ex_mp_h_acc_vase_02", title = "Red Vase", price = 300},
|
||||
{name = "hei_prop_hei_bust_01", title = "Bust", price = 300},
|
||||
{name = "prop_arcade_01", title = "Arcade Machine", price = 300},
|
||||
{price = 6500, name = 'prop_beer_neon_01', title = 'Neon Sign 1'},
|
||||
{price = 6500, name = 'prop_beer_neon_02', title = 'Neon Sign 2'},
|
||||
{price = 6500, name = 'prop_beer_neon_03', title = 'Neon Sign 3'},
|
||||
{price = 6500, name = 'prop_beer_neon_04', title = 'Neon Sign 3'},
|
||||
{price = 6500, name = 'prop_patriotneon', title = 'Neon Sign Patriot'},
|
||||
{price = 6500, name = 'prop_barrachneon', title = 'Neon Sign Pussy Beer'}},
|
||||
Electronics = {{price = 0, title = 'Lamp', name = 'prop_cd_lamp'},
|
||||
{price = 1800, title = 'Shredder', name = 'v_ret_gc_shred'},
|
||||
{price = 800, title = 'Antique telephone', name = 'apa_mp_h_acc_phone_01'},
|
||||
{price = 14700, title = 'TV wall white-gray with electronics', name = 'apa_mp_h_str_avunitl_04'},
|
||||
{price = 6700, title = 'TV wooden wall with television', name = 'apa_mp_h_str_avunitl_01_b'},
|
||||
{price = 14300, title = 'Television with yellow speakers', name = 'apa_mp_h_str_avunitm_01'},
|
||||
{price = 12000, title = 'TV with white speakers', name = 'apa_mp_h_str_avunitm_03'},
|
||||
{price = 12900, title = 'Television with accessories', name = 'apa_mp_h_str_avunits_01'},
|
||||
{price = 6900, title = 'TV on a metal table', name = 'apa_mp_h_str_avunits_01'},
|
||||
{price = 5500, title = 'Notebook', name = 'bkr_prop_clubhouse_laptop_01a'},
|
||||
{price = 4400, title = 'Notebook', name = 'bkr_prop_clubhouse_laptop_01b'},
|
||||
{price = 12400, title = 'Money counter', name = 'bkr_prop_money_counter'},
|
||||
{price = 700, title = 'Large upright fan', name = 'bkr_prop_weed_fan_floor_01a'},
|
||||
{price = 2400, title = 'Tvsmash', name = 'des_tvsmash_start'},
|
||||
{price = 2700, title = 'Wall TV', name = 'ex_prop_ex_tv_flat_01'},
|
||||
{price = 3500, title = 'Desktop monitor with keyboard', name = 'ex_prop_monitor_01_ex'},
|
||||
{price = 4700, title = 'Desktop monitor with keyboard', name = 'ex_prop_trailer_monitor_01'},
|
||||
{price = 200, title = 'TV driver', name = 'ex_prop_tv_settop_remote'},
|
||||
{price = 2200, title = 'TV box', name = 'ex_prop_tv_settop_box'},
|
||||
{price = 1000, title = 'Table fan', name = 'gr_prop_bunker_deskfan_01a'},
|
||||
{price = 8400, title = 'Television with speakers and all equipment', name = 'hei_heist_str_avunitl_03'},
|
||||
{price = 1700, title = 'telephone landline', name = 'hei_prop_hei_bank_phone_01'},
|
||||
{price = 3800, title = 'Alarm', name = 'hei_prop_hei_bio_panel'},
|
||||
{price = 2100, title = 'Keyboard', name = 'hei_prop_hei_cs_keyboard'},
|
||||
{price = 8900, title = 'Project board', name = 'hei_prop_hei_muster_01'},
|
||||
{price = 1800, title = 'WIFI', name = 'hei_prop_server_piece_01'},
|
||||
{price = 3300, title = 'White notebook', name = 'p_laptop_02_s'},
|
||||
{price = 10500, title = 'Safe', name = 'p_v_43_safe_s'},
|
||||
{price = 7900, title = 'Table Hockey', name = 'prop_airhockey_01'},
|
||||
{price = 2400, title = 'Portable Radio', name = 'prop_boombox_01'},
|
||||
{price = 2500, title = 'DVD player', name = 'prop_cctv_cont_03'},
|
||||
{price = 3300, title = 'CD player', name = 'prop_cctv_cont_04'},
|
||||
{price = 900, title = 'PC Mouse', name = 'prop_cs_mouse_01'},
|
||||
{price = 900, title = 'Wall clock', name = 'prop_game_clock_01'},
|
||||
{price = 600, title = 'Wall clock black', name = 'prop_game_clock_02'},
|
||||
{price = 3400, title = 'HiFi system', name = 'prop_hifi_01'},
|
||||
{price = 1500, title = 'square clock', name = 'prop_hotel_clock_01'},
|
||||
{price = 1500, title = 'Clock', name = 'prop_id2_20_clock'},
|
||||
{price = 3400, title = 'Nikon Handheld Camera', name = 'prop_ing_camera_01'},
|
||||
{price = 1700, title = 'White keyboard', name = 'prop_keyboard_01a'},
|
||||
{price = 1600, title = 'Router', name = 'prop_ld_armour'},
|
||||
{price = 1700, title = 'Old monitor', name = 'prop_ld_monitor_01'},
|
||||
{price = 2300, title = 'Small old monitor', name = 'prop_monitor_01b'},
|
||||
{price = 400, title = 'RETRO monitor', name = 'prop_monitor_03b'},
|
||||
{price = 5900, title = 'Monitor', name = 'prop_monitor_w_large'},
|
||||
{price = 4800, title = 'Repráček', name = 'prop_mp3_dock'},
|
||||
{price = 4000, title = 'White PC', name = 'prop_pc_01a'},
|
||||
{price = 4800, title = 'Black PC', name = 'prop_pc_02a'},
|
||||
{price = 2500, title = 'Mobile', name = 'prop_phone_ing'},
|
||||
{price = 2100, title = 'Mobile', name = 'prop_phone_ing_02'},
|
||||
{price = 2000, title = 'Mobile', name = 'prop_phone_ing_02_lod'},
|
||||
{price = 2300, title = 'Mobile', name = 'prop_phone_ing_03'},
|
||||
{price = 1000, title = 'RETRO radio', name = 'prop_radio_01'},
|
||||
{price = 1100, title = 'Small speaker', name = 'prop_speaker_05'},
|
||||
{price = 1000, title = 'Speaker', name = 'prop_speaker_06'},
|
||||
{price = 1900, title = 'Speaker', name = 'prop_speaker_08'},
|
||||
{price = 2000, title = 'Old TV', name = 'prop_trev_tv_01'},
|
||||
{price = 500, title = 'Old TV', name = 'prop_tv_03'},
|
||||
{price = 300, title = 'Old TV', name = 'prop_tv_01'},
|
||||
{price = 400, title = 'RETRO TV', name = 'prop_tv_04'},
|
||||
{price = 1700, title = 'Old TV', name = 'prop_tv_06'},
|
||||
{price = 6500, title = 'Plasma big screen', name = 'prop_tv_flat_01'},
|
||||
{price = 12500, title = 'Plasma thin TV', name = 'prop_tv_flat_01_screen'},
|
||||
{price = 1600, title = 'Plasma small television', name = 'prop_tv_flat_02'},
|
||||
{price = 2100, title = 'Plasma small television', name = 'prop_tv_flat_02b'},
|
||||
{price = 900, title = 'Small TV with stand', name = 'prop_tv_flat_03'},
|
||||
{price = 300, title = 'Small TV on the wall', name = 'prop_tv_flat_03b'},
|
||||
{price = 9200, title = 'Television Michael 50cm', name = 'prop_tv_flat_michael'},
|
||||
{price = 1000, title = 'Little US Clock', name = 'prop_v_15_cars_clock'},
|
||||
{price = 4000, title = 'Professional camera', name = 'prop_v_cam_01'},
|
||||
{price = 4700, title = 'VET player RETRO', name = 'prop_vcr_01'},
|
||||
{price = 9900, title = 'Mixing desk', name = 'v_club_vu_deckcase'},
|
||||
{price = 1500, title = 'RETRO Laptop', name = 'v_ind_ss_laptop'},
|
||||
{price = 2500, title = 'CD seda', name = 'v_res_cdstorage'},
|
||||
{price = 3300, title = 'Ipod', name = 'v_res_ipoddock'},
|
||||
{price = 2800, title = 'Silver Monitor', name = 'v_res_monitorwidelarge'},
|
||||
{price = 2400, title = 'Mouse and as a gift pad', name = 'v_res_mousemat'},
|
||||
{price = 100, title = 'PC Headphones', name = 'v_res_pcheadset'},
|
||||
{price = 1200, title = 'PC speaker', name = 'v_res_pcspeaker'},
|
||||
{price = 5000, title = 'VHS white RETRO player', name = 'v_res_vhsplayer'},
|
||||
{price = 2200, title = 'Vacuum Cleaner', name = 'v_res_vacuum'},
|
||||
{price = 100, title = 'Stapler', name = 'v_ret_gc_staple'},
|
||||
{price = 1900, title = 'Hardisk', name = 'xm_prop_x17_harddisk_01a'},
|
||||
{price = 5300, title = 'Computer', name = 'xm_prop_x17_res_pctower'},
|
||||
{price = 12900, title = 'Plasma TV', name = 'xm_prop_x17_tv_flat_01'},
|
||||
{price = 6600, title = 'Plasma TV', name = 'xm_prop_x17_tv_flat_02'},
|
||||
{price = 14000, title = 'Jukebox', name = 'bkr_prop_clubhouse_jukebox_01b'},
|
||||
{price = 1700, title = 'USB', name = 'hei_prop_hst_usb_drive'},
|
||||
{price = 700, title = 'Flashlight', name = 'p_cs_police_torch_s'},
|
||||
{price = 1000, title = 'Microphone', name = 'p_ing_microphonel_01'},
|
||||
{price = 1600, title = 'Radio', name = 'prop_tapeplayer_01'},
|
||||
{price = 4500, title = 'Multifunction Laser Printer', name = 'prop_printer_01'},
|
||||
{price = 11200, title = 'Multifunction Laser Printer', name = 'prop_printer_02'},
|
||||
{price = 20300, title = 'Jukebox 2', name = 'prop_50s_jukebox'},
|
||||
{price = 21200, title = 'Arcade games', name = 'prop_arcade_01'},
|
||||
{price = 19400, title = 'Safe', name = 'prop_ld_int_safe_01'},
|
||||
{price = 3800, title = 'Astronomical Clock', name = 'prop_v_5_bclock'},
|
||||
{price = 22200, title = 'Table with three monitors', name = 'xm_prop_base_staff_desk_01'},
|
||||
{price = 17900, title = 'Table with three monitors', name = 'xm_prop_base_staff_desk_02'},
|
||||
{price = 1500, title = 'Napkin machine', name = 'prop_handdry_01'},
|
||||
{price = 2700, title = 'Washing Machine', name = 'prop_washer_02'},
|
||||
{price = 600, title = 'Washing machine with its years', name = 'prop_washer_03'},
|
||||
{price = 700, title = 'RETRO washing machine', name = 'v_ret_fh_dryer'}},
|
||||
Tables = {{price = 5600, title = 'Glass table', name = 'apa_mp_h_din_table_04'},
|
||||
{price = 5000, title = 'Glass table', name = 'apa_mp_h_din_table_11'},
|
||||
{price = 5300, title = 'Glass table', name = 'apa_mp_h_tab_sidelrg_07'},
|
||||
{price = 1200, title = 'Black Round Table', name = 'apa_mp_h_tab_sidelrg_04'},
|
||||
{price = 1600, title = 'Glass table', name = 'apa_mp_h_tab_sidelrg_01'},
|
||||
{price = 5700, title = 'Decorative glass table', name = 'apa_mp_h_tab_sidelrg_02'},
|
||||
{price = 2600, title = 'Black coffee table', name = 'apa_mp_h_yacht_coffee_table_01'},
|
||||
{price = 4200, title = 'Square table', name = 'apa_mp_h_yacht_side_table_01'},
|
||||
{price = 3400, title = 'Small table', name = 'gr_dlc_gr_yacht_props_table_01'},
|
||||
{price = 4700, title = 'Long table', name = 'gr_dlc_gr_yacht_props_table_02'},
|
||||
{price = 1000, title = 'Particleboard table', name = 'prop_rub_table_01'},
|
||||
{price = 700, title = 'Particleboard dining table', name = 'prop_rub_table_02'},
|
||||
{price = 700, title = 'TV table', name = 'prop_tv_cabinet_03'},
|
||||
{price = 300, title = 'TV table', name = 'prop_tv_cabinet_04'},
|
||||
{price = 800, title = 'TV table', name = 'prop_tv_cabinet_05'},
|
||||
{price = 5300, title = 'Black modern table', name = 'v_ilev_liconftable_sml'},
|
||||
{price = 4100, title = 'Bar', name = 'xm_prop_lab_desk_01'}},
|
||||
Sofas = {{price = 11500, title = 'Couch with pillows', name = 'prop_couch_01'},
|
||||
{price = 6500, title = 'Padded bench', name = 'prop_wait_bench_01'},
|
||||
{price = 4400, title = 'White leather sofa', name = 'xm_lab_sofa_01'}},
|
||||
Kitchen = {{price = 800, title = 'Kitchen scale', name = 'bkr_prop_coke_scale_01'},
|
||||
{price = 1000, title = 'Home coffee maker', name = 'prop_coffee_mac_02'},
|
||||
{price = 5200, title = 'Automatic juice mixer', name = 'prop_juice_dispenser'},
|
||||
{price = 200, title = 'White wall phone', name = 'prop_office_phone_tnt'},
|
||||
{price = 2300, title = 'Fruit Blender', name = 'p_kitch_juicer_s'},
|
||||
{price = 1500, title = 'Kettle', name = 'prop_kettle_01'},
|
||||
{price = 2600, title = 'Crushing machine', name = 'prop_slush_dispenser'},
|
||||
{price = 700, title = 'Coffee pot', name = 'xm_prop_x17_coffee_jug'},
|
||||
{price = 3700, title = 'Mini bar fridge', name = 'prop_bar_fridge_03'},
|
||||
{price = 800, title = 'Plastic red cup', name = 'apa_prop_cs_plastic_cup_01'},
|
||||
{price = 1000, title = 'Trash', name = 'prop_bin_10a'},
|
||||
{price = 400, title = 'Universal Cleaner', name = 'prop_blox_spray'},
|
||||
{price = 200, title = 'Green bucket', name = 'prop_buck_spade_05'},
|
||||
{price = 400, title = 'Blue bucket', name = 'prop_buck_spade_06'},
|
||||
{price = 200, title = 'Red bucket', name = 'prop_buck_spade_07'},
|
||||
{price = 700, title = 'Cups', name = 'prop_food_cups2'},
|
||||
{price = 400, title = 'White Cup', name = 'prop_mug_02'},
|
||||
{price = 800, title = 'Bowl with donut lid', name = 'v_res_cakedome'},
|
||||
{price = 1000, title = 'Loose tea container', name = 'v_res_fa_pottea'},
|
||||
{price = 300, title = 'Deep Plate', name = 'v_res_mbowl'},
|
||||
{price = 500, title = 'Paper napkins', name = 'v_ret_ta_paproll'},
|
||||
{price = 400, title = 'Glasses', name = 'p_w_grass_gls_s'},
|
||||
{price = 300, title = 'Glasses', name = 'prop_cocktail'},
|
||||
{price = 600, title = 'Knife', name = 'prop_cs_bowie_knife'}},
|
||||
Bedroom = {{price = 3300, title = 'Single bed', name = 'v_res_msonbed'},
|
||||
{price = 100, title = 'Double bed', name = 'p_lestersbed_s'},
|
||||
{price = 600, title = 'Double bed', name = 'p_v_res_tt_bed_s'},
|
||||
{price = 400, title = 'Double modern bed', name = 'apa_mp_h_bed_double_08'},
|
||||
{price = 1100, title = 'Double modern bed', name = 'apa_mp_h_bed_wide_05'},
|
||||
{price = 2200, title = 'Double modern bed', name = 'apa_mp_h_yacht_bed_02'},
|
||||
{price = 700, title = 'Single sofa bed', name = 'ex_prop_exec_bed_01'},
|
||||
{price = 3100, title = 'Double modern bed', name = 'hei_heist_bed_double_08'},
|
||||
{price = 4400, title = 'Chest of drawers', name = 'apa_mp_h_bed_chestdrawer_02'},
|
||||
{price = 400, title = 'RETRO wardrobe', name = 'apa_mp_h_str_shelffloorm_02'},
|
||||
{price = 100, title = 'RETRO chest of drawers low', name = 'apa_mp_h_str_sideboardl_11'},
|
||||
{price = 2500, title = 'Gray-white low cabinet', name = 'apa_mp_h_str_sideboardl_13'},
|
||||
{price = 700, title = 'Wooden chest of drawers', name = 'apa_mp_h_str_sideboardl_14'},
|
||||
{price = 500, title = 'Wood brindle feather duster', name = 'apa_mp_h_str_sideboardm_02'},
|
||||
{price = 900, title = 'Iron open cabinet', name = 'p_cs_locker_01'},
|
||||
{price = 300, title = 'Iron used closed cabinet', name = 'p_cs_locker_01_s'}}}
|
||||
|
||||
|
||||
|
||||
-------------------DONT TOUCH -------------------------
|
||||
Config.OxInventory = ESX.GetConfig().OxInventory --
|
||||
--
|
||||
function GetInteriorValues(Interior) --
|
||||
for _,type in pairs(Config.Interiors) do --
|
||||
for _, interior in pairs(type) do --
|
||||
if interior.value == Interior then --
|
||||
return interior --
|
||||
end --
|
||||
end --
|
||||
end --
|
||||
end --
|
||||
--------------------------------------------------------
|
||||
|
||||
|
||||
--[[
|
||||
ESX Property - Properties Made Right!
|
||||
Copyright (C) 2025 ESX-Framework
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
]]
|
||||
47
resources/[esx_addons]/esx_property/fxmanifest.lua
Normal file
47
resources/[esx_addons]/esx_property/fxmanifest.lua
Normal file
@@ -0,0 +1,47 @@
|
||||
--[[
|
||||
ESX Property - Properties Made Right!
|
||||
Copyright (C) 2025 ESX-Framework
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
]]
|
||||
fx_version 'adamant'
|
||||
|
||||
game 'gta5'
|
||||
lua54 'yes'
|
||||
|
||||
author 'ESX-Framework'
|
||||
description 'Allows players to buy/sell houses, aswell as furnish them'
|
||||
version '2.0'
|
||||
legacyversion '1.13.4'
|
||||
|
||||
shared_scripts { '@es_extended/imports.lua', '@es_extended/locale.lua', 'locales/*.lua' }
|
||||
file "client/html/copy.html"
|
||||
ui_page "client/html/copy.html"
|
||||
|
||||
server_scripts {
|
||||
'@oxmysql/lib/MySQL.lua',
|
||||
'config.lua',
|
||||
'server/*.lua'
|
||||
}
|
||||
|
||||
client_scripts {
|
||||
'config.lua',
|
||||
'client/cctv.lua',
|
||||
'client/main.lua',
|
||||
'client/furniture.lua'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
'es_extended'
|
||||
}
|
||||
218
resources/[esx_addons]/esx_property/locales/en.lua
Normal file
218
resources/[esx_addons]/esx_property/locales/en.lua
Normal file
@@ -0,0 +1,218 @@
|
||||
Locales['en'] = {
|
||||
--- CCTV Strings ------
|
||||
|
||||
["take_picture"] = "Take Picture",
|
||||
["rot_left_right"] = "Left/Right",
|
||||
["rot_up_down"] = "Up/Down",
|
||||
["zoom"] = "Zoom In/Out",
|
||||
["zoom_level"] = "Zoom Level: %s %%",
|
||||
["night_vision"] = "Toggle Night Vision",
|
||||
["clipboard"] = "Link Copied To ~b~Cipboard",
|
||||
["picture_taken"] = "Picture Taken!",
|
||||
["please_wait"] = "Please Wait Before taking another ~b~Picture",
|
||||
["exit"] = "Exit",
|
||||
|
||||
--- Furniture Strings ------
|
||||
|
||||
["height"] = "Height",
|
||||
["rotate"] = "Rotation",
|
||||
["place"] = "Place Furniture",
|
||||
["delete_furni"] = "Delete",
|
||||
["confirm_buy"] = "Do You Want To Buy %s ?",
|
||||
["price"] = "Price: $%s",
|
||||
["yes"] = "Yes",
|
||||
["no"] = "No",
|
||||
["action"] = "You %s ~b~%s~s~ !",
|
||||
["bought_furni"] = "You Have ~g~Bought~s~ A ~b~%s~s~ !",
|
||||
["edited_furni"] = "You Have Edited ~b~%s~s~ !",
|
||||
["cannot_buy"] = "You ~r~Cannot~s~ Buy This!",
|
||||
["cannot_edit"] = "You ~r~Cannot~s~ Edit This!",
|
||||
["store_title"] = "Store - %s",
|
||||
["back"] = "Return",
|
||||
["edit_title"] = "Editing - %s",
|
||||
["move_title"] = "Move",
|
||||
["deleted_confirm"] = "Deleting ~b~%s~s~!",
|
||||
["deleted_error"] = "Cannot Delete ~b~%s~s~!",
|
||||
["owned_furni"] = "Owned Furniture",
|
||||
["menu_stores"] = "Furniture Stores",
|
||||
["menu_stores_desc"] = "Buy Furniture",
|
||||
["menu_reset"] = "Reset",
|
||||
["menu_reset_desc"] = "Clears All Furniture",
|
||||
["menu_edit"] = "Edit",
|
||||
["menu_edit_desc"] = "Move and/or Delete furniture items",
|
||||
["furni_command"] = "furniture",
|
||||
["furni_command_desc"] = "(ESX Property) Open Furniture Menu",
|
||||
["furni_command_permission"] = "You ~r~Cannot~s~ Access This Menu!",
|
||||
["furni_reset_success"] = "Furniture Reset!",
|
||||
["furni_cannot_afford"] = "You Cannot Afford Todo this!",
|
||||
["furni_reset_error"] = "You ~r~Cannot~s~ Reset This Property!",
|
||||
["furni_management"] = "Manage Furniture",
|
||||
|
||||
--------- Key Strings ---------------
|
||||
|
||||
["you_granted"] = 'You Have Been Granted Keys To ~b~%s~s~.',
|
||||
["already_has"] = "This Player Already Has Keys!",
|
||||
["do_not_own"] = 'You do ~r~not~s~ own this property.',
|
||||
["key_revoked"] = 'Your Key Access To ~b~%s~s~. Has Been ~r~Revoked~s~',
|
||||
["no_keys"] = "This Player Does Not Have Keys!",
|
||||
["nearby"] = "Nearby Players",
|
||||
["gave_key"] = "Giving Keys to %s!",
|
||||
["key_cannot_give"] = "You Cannot Give This Player A ~r~Key",
|
||||
["remove_title"] = "Remove Keys From Player",
|
||||
["key_revoke_success"] = "Revoking Keys From ~b~%s~s~.",
|
||||
["key_revoke_error"] = "You Cannot ~b~Remove~s~ A ~r~Key~s~ From this Person",
|
||||
["key_management"] = "Key Management",
|
||||
["key_management_desc"] = "Control Property Access.",
|
||||
["give_keys"] = "Give Keys",
|
||||
["remove_keys"] = "Remove Keys",
|
||||
|
||||
|
||||
--------- Real Estate Strings ---------------
|
||||
["office_blip"] = "%s Office",
|
||||
["actions"] = "Real Estate Actions",
|
||||
["property_create"] = "Create Property",
|
||||
["property_manage"] = "Manage Properties",
|
||||
["realestate_command"] = "realestatequickmenu",
|
||||
["realestate_command_desc"] = "(ESX Property) Open Real Estate Quick Actions",
|
||||
["enter_office"] = "~b~Entering~s~ Office.",
|
||||
["enter_office_error"] = "You ~r~Cannot~s~ Enter The Office!",
|
||||
["exit_office"] = "~b~Exiting~s~ Office.",
|
||||
["exit_office_error"] = "You ~r~Cannot~s~ Exit The Office!",
|
||||
["realestate_textui"] = "Press ~b~[E]~s~ to Access ~b~%s",
|
||||
|
||||
------------Command Strings-----------------------
|
||||
["refresh_name"] = "property:refresh",
|
||||
["refresh_desc"] = "Refresh to Server Start State",
|
||||
["save_name"] = "property:save",
|
||||
["save_desc"] = "Force Save Properties",
|
||||
["create_name"] = "property:create",
|
||||
["create_desc"] = "Create A New Property",
|
||||
["admin_name"] = "property:admin",
|
||||
["admin_desc"] = "Manage/view all properties",
|
||||
|
||||
|
||||
---------- Property Actions Menu -------------------------
|
||||
|
||||
["knocking"] = "Someone Is ~b~Knocking~s~ On The Door.",
|
||||
["name_edit"] = "Edit Property Name",
|
||||
["name"] = "Name",
|
||||
["confirm"] = "Confirm",
|
||||
["name_edit_success"] = "You Have Set The Property Name To ~b~%s~s~.",
|
||||
["name_edit_error"] = "You Cannot Set The Property Name To ~r~%s~s~.",
|
||||
["door_locked"] = "Door: Locked",
|
||||
["door_unlocked"] = "Door: Unlocked",
|
||||
["name_manage"] = "Manage Name",
|
||||
["name_manage_desc"] = "Set The Name of the Property.",
|
||||
["sell_title"] = "Sell",
|
||||
["sell_desc"] = "Sell This Property For $%s",
|
||||
["raid_title"] = "Raid",
|
||||
["raid_desc"] = "Force Entry Into Property.",
|
||||
["cctv_title"] = "CCTV",
|
||||
["cctv_desc"] = "Check the CCTV Camera.",
|
||||
["inventory_title"] = "Inventory",
|
||||
["inventory_desc"] = "Change Position of Property Storage.",
|
||||
["wardrobe_title"] = "Wardrobe",
|
||||
["wardrobe_desc"] = "Change Position of Property Wardrobe.",
|
||||
["furniture_title"] = "Furniture",
|
||||
["furniture_desc"] = "Change Position of Property Furniture.",
|
||||
["enter_title"] = "Enter",
|
||||
["knock_title"] = "Knock On Door",
|
||||
["buy_title"] = "Buy",
|
||||
["buy_desc"] = "Buy This Property For $%s",
|
||||
["sellplayer_title"] = "Sell To Player",
|
||||
["sellplayer_desc"] = "Sell This Property For $%s",
|
||||
["view_title"] = "Preview Interior",
|
||||
["exit_title"] = "Exit",
|
||||
["property_editing_error"] = "You Are Currently Editing The Property.",
|
||||
["unlock_error"] = "You Cannot ~b~Unlock~s~ This Property",
|
||||
["lock_error"] = "You Cannot ~b~Lock~s~ This Property",
|
||||
["prep_raid"] = "~b~Preparing~s~ Raid!",
|
||||
["raiding"] = "Raiding...",
|
||||
["cancel_raiding"] = "~r~Cancelled~s~ Raid!",
|
||||
["cannot_raid"] = "You Cannot ~b~Raid~s~ This Property.",
|
||||
["storage_pos_textui"] = "Press ~b~[G]~s~ To Set Storage Position",
|
||||
["storage_pos_success"] = "~b~Storage~s~ Position Set.",
|
||||
["storage_pos_error"] = "~r~Cannot~s~ Set ~b~Storage~s~ Position.",
|
||||
["wardrobe_pos_textui"] = "Press ~b~[G]~s~ To Set Wardrobe Position",
|
||||
["wardrobe_pos_success"] = "~b~Wardrobe~s~ Position Set.",
|
||||
["wardrobe_pos_error"] = "~r~Cannot~s~ Set ~b~Wardrobe~s~ Position.",
|
||||
["please_finish"] = "Please Finish Setting ~b~%s~s~ Position",
|
||||
["cannot_afford"] = "You Cannot Purchase This Property!",
|
||||
["select_player"] = "Select Player",
|
||||
["cannot_sell"] = "Cannot Sell To This Player!",
|
||||
["knock_on_door"] = "Knocking On Door...",
|
||||
["nobody_home"] = "It Seems Nobody is home...",
|
||||
|
||||
---------- General Strings ----------------
|
||||
|
||||
["enabled"] = "Enabled",
|
||||
["disabled"] = "Disabled",
|
||||
["exiting"] = "Exiting property...",
|
||||
["entering"] = "Entering property...",
|
||||
["shell_disabled"] ="This Interior Uses Shells, which are disabled!",
|
||||
["access_textui"] = "Press ~b~[E]~s~ to Access ~b~%s",
|
||||
["raid_notify_error"] = "You need ~b~ %sx %s~s~ to be able to raid!",
|
||||
["raid_notify_success"] = "Your Property is Currently Being ~b~Raided!",
|
||||
|
||||
--------------- Garage Strings --------------
|
||||
|
||||
["store_success"] = "Vehicle ~b~Stored!",
|
||||
["store_error"] = "You Cannot Store This Vehicle!",
|
||||
["property_garage"] = "Property Garage",
|
||||
["retriving_notify"] = "Retrieving ~b~%s~s~ ...",
|
||||
["cannot_access"] = "You Cannot Access This Garage!",
|
||||
["store_textui"] = "Press ~b~[E]~s~ to Store ~b~%s",
|
||||
["garage_not_enabled"] = 'Garage Not Enabled On This Property.',
|
||||
["cannot_access_property"] = 'You ~r~Cannot~s~ Access this property.',
|
||||
|
||||
|
||||
----------------- Creation Menu Strings ----------------
|
||||
|
||||
["menu_title"] = "Property Creation",
|
||||
["element_title1"] = "Street Number",
|
||||
["element_description1"] = "Set the Property Street Number.",
|
||||
["element_title2"] = "Price",
|
||||
["element_description2"] = "Set the Price of the Property.",
|
||||
["element_title3"] = "Interior",
|
||||
["element_description3"] = "Select An Interior For The Property",
|
||||
["element_title4"] = "Garage",
|
||||
["element_description4"] = "(Optional) Manage Garage Settings",
|
||||
["element_title5"] = "CCTV",
|
||||
["element_description5"] = "(Optional) Manage CCTV Settings",
|
||||
["element_title6"] = "Entrance",
|
||||
["element_description6"] = "Set The Property`s Entrance Location.",
|
||||
["element_create_title"] = "Create Property",
|
||||
["element_create_desc_1"] = "Please Fill Out all Required Inputs!",
|
||||
["entrance_set_title"] = "Entrance Set.",
|
||||
["entrance_set_description"] = "Entrance: %s, %s, %s",
|
||||
["interior_set_title"] = "Interior Selected.",
|
||||
["interior_set_description"] = "Selected: %s",
|
||||
["ipl_title"] = "IPL Interiors",
|
||||
["types_title"] = "Interior Types",
|
||||
["ipl_description"] = "Native GTA Interiors, Made by R*",
|
||||
["shell_title"] = "Custom Interiors",
|
||||
["shell_description"] = "Custom Interiors, Made by You",
|
||||
["cctv_settings"] = "CCTV Settings",
|
||||
["garage_settings"] = "Garage Settings",
|
||||
["toggle_title"] = "Toggle Usage",
|
||||
["toggle_description"] = "Current Status: %s",
|
||||
["cctv_set_title"] = "Set CCTV Angle",
|
||||
["cctv_set_description"] = "Sets the Camera angle to your Cameras Direction",
|
||||
["back_description"] = "return to property creation.",
|
||||
["garage_set_title"] = "Set Garage Position",
|
||||
["garage_set_description"] = "Set the position of the Property Garage.",
|
||||
["garage_textui"] = "Press ~b~[E]~s~ to Set Position",
|
||||
["cctv_textui_1"] = "Press ~b~[E]~s~ to Set Angle",
|
||||
["cctv_textui_2"] = "Press ~b~[E]~s~ to Set Max Right Roation",
|
||||
["cctv_textui_3"] = "Press ~b~[E]~s~ to Set Max Left Roation",
|
||||
["create_success"] = "Property created!",
|
||||
["missing_data"] = "Please Fill Out all Required Inputs!",
|
||||
|
||||
-- Saving Translations
|
||||
["server_restart"] = "Server Restarting",
|
||||
["server_shutdown"] = "Server Shutdown",
|
||||
["manual_save"] = "Manual Save (Requested By %s)",
|
||||
["resource_stop"] = "Resource Stopping",
|
||||
["force_save"] = "Force Save (Requested By %s)",
|
||||
["interval_saving"] = "Interval Saving"
|
||||
}
|
||||
217
resources/[esx_addons]/esx_property/locales/es.lua
Normal file
217
resources/[esx_addons]/esx_property/locales/es.lua
Normal file
@@ -0,0 +1,217 @@
|
||||
Locales['es'] = {
|
||||
--- CCTV Strings ------
|
||||
|
||||
["take_picture"] = "Tomar foto",
|
||||
["rot_left_right"] = "Izquierda/Derecha",
|
||||
["rot_up_down"] = "Arriba/Abajo",
|
||||
["zoom"] = "Zoom +/-",
|
||||
["zoom_level"] = "Nivel de Zoom: %s %%",
|
||||
["night_vision"] = "Alternar Visión Nocturna",
|
||||
["clipboard"] = "Enlace copiado al ~b~Portapapeles",
|
||||
["picture_taken"] = "¡Foto tomada!",
|
||||
["please_wait"] = "Espere antes de tomar otra ~b~Foto",
|
||||
["exit"] = "Salir",
|
||||
|
||||
--- Furniture Strings ------
|
||||
|
||||
["height"] = "Altura",
|
||||
["rotate"] = "Rotación",
|
||||
["place"] = "Colocar mueble",
|
||||
["delete_furni"] = "Borrar",
|
||||
["confirm_buy"] = "¿Quieres comprar %s?",
|
||||
["price"] = "Precio: $%s",
|
||||
["yes"] = "Si",
|
||||
["no"] = "No",
|
||||
["action"] = "¡ Tu %s ~b~%s~s~ !",
|
||||
["bought_furni"] = "¡ Has ~g~comprado~s~ un ~b~%s~s~ !",
|
||||
["edited_furni"] = "¡ Has editado ~b~%s~s~ !",
|
||||
["cannot_buy"] = "¡~r~No puedes~s~ comprar esto!",
|
||||
["cannot_edit"] = "¡Usted ~r~no puede~s~ editar esto!",
|
||||
["store_title"] = "Tienda - %s",
|
||||
["back"] = "Volver",
|
||||
["edit_title"] = "Edición - %s",
|
||||
["move_title"] = "Mover",
|
||||
["delete_confirm"] = "¡Borrado ~b~%s~s~!",
|
||||
["delete_error"] = "No se puede borrar ~b~%s~s~!",
|
||||
["owned_furni"] = "Mobiliario propio",
|
||||
["menu_stores"] = "Tiendas de muebles",
|
||||
["menu_stores_desc"] = "Comprar mueble",
|
||||
["menu_reset"] = "Reiniciar",
|
||||
["menu_reset_desc"] = "Limpia todos los muebles",
|
||||
["menu_edit"] = "Editar",
|
||||
["menu_edit_desc"] = "Mover y/o Eliminar muebles",
|
||||
["furni_command"] = "muebles",
|
||||
["furni_command_desc"] = "Abrir menú de muebles",
|
||||
["furni_command_permission"] = "~r~No~s~ puede acceder a este menú.",
|
||||
["furni_reset_success"] = "¡Todos los muebles reiniciados!",
|
||||
["furni_cannot_afford"] = "¡Usted no puede permitirse el lujo de hacer esto!",
|
||||
["furni_reset_error"] = "~r~No puede~s~ ¡Restablecer esta propiedad!",
|
||||
["furni_management"] = "Administrar muebles",
|
||||
|
||||
--------- Key Strings ---------------
|
||||
|
||||
["you_granted"] = 'Se le han otorgado llaves a ~b~%s~s~.',
|
||||
["already_has"] = "¡Este jugador ya tiene llaves!",
|
||||
["do_not_own"] = 'Usted ~r~no~s~ es dueño de esta propiedad.',
|
||||
["key_revoked"] = 'Su llave de acceso a ~b~%s~s~. ha sido ~r~revocada~s~',
|
||||
["no_keys"] = "¡Este jugador no tiene llaves!",
|
||||
["nearby"] = "Jugadores cercanos",
|
||||
["gave_key"] = "Entrega de llaves a %s!",
|
||||
["key_cannot_give"] = "No puedes darle a este jugador una ~r~Llave",
|
||||
["remove_title"] = "Eliminar llaves del jugador",
|
||||
["key_revoke_success"] = "Revocación de llaves de ~b~%s~s~.",
|
||||
["key_revoke_error"] = "No puede ~b~quitar~s~ las ~r~llave~s~ a esta persona",
|
||||
["key_management"] = "Gestión de llaves",
|
||||
["key_management_desc"] = "Controlar el acceso a la propiedad.",
|
||||
["give_keys"] = "Dar llaves",
|
||||
["remove_keys"] = "Quitar llaves",
|
||||
|
||||
--------- Real Estate Strings ---------------
|
||||
|
||||
["office_blip"] = "Oficina de %s",
|
||||
["actions"] = "Acciones Inmobiliarias",
|
||||
["property_create"] = "Crear propiedad",
|
||||
["property_manage"] = "Administrar propiedades",
|
||||
["realestate_command"] = "realestatequickmenu",
|
||||
["realestate_command_desc"] = "(ESX Property) Abrir acciones rápidas inmobiliarias",
|
||||
["enter_office"] = "~b~Entrando~a~la oficina.",
|
||||
["enter_office_error"] = "¡Usted ~r~no puede~s~ entrar en la oficina!",
|
||||
["exit_office"] = "~b~Saliendo~s~ de la oficina.",
|
||||
["exit_office_error"] = "¡Usted ~r~no puede~s~ salir de la oficina!",
|
||||
["realestate_textui"] = "Presione ~b~[E]~s~ para acceder ~b~%s",
|
||||
|
||||
------------Command Strings-------------------------------
|
||||
|
||||
["refresh_name"] = "property:refresh",
|
||||
["refresh_desc"] = "Actualizar al estado de inicio del servidor",
|
||||
["save_name"] = "property:save",
|
||||
["save_desc"] = "Forzar guardar propiedades",
|
||||
["create_name"] = "property:create",
|
||||
["create_desc"] = "Crear una nueva propiedad",
|
||||
["admin_name"] = "property:admin",
|
||||
["admin_desc"] = "Administrar/ver todas las propiedades",
|
||||
|
||||
---------- Property Actions Menu -------------------------
|
||||
|
||||
["knocking"] = "Alguien Está ~b~Llamando~s~ A La Puerta.",
|
||||
["name_edit"] = "Editar nombre de propiedad",
|
||||
["name"] = "Nombre",
|
||||
["confirm"] = "Confirmar",
|
||||
["name_edit_success"] = "Ha establecido el nombre de la propiedad a ~b~%s~s~.",
|
||||
["name_edit_error"] = "No puede establecer el nombre de la propiedad a ~r~%s~s~.",
|
||||
["door_locked"] = "Puerta: cerrada",
|
||||
["door_unlocked"] = "Puerta: abierta",
|
||||
["name_manage"] = "Administrar nombre",
|
||||
["name_manage_desc"] = "Establezca el nombre de la propiedad.",
|
||||
["sell_title"] = "Vender",
|
||||
["sell_desc"] = "Vender esta propiedad por $%s",
|
||||
["raid_title"] = "Redada",
|
||||
["raid_desc"] = "Forzar la entrada a la propiedad.",
|
||||
["cctv_title"] = "CCTV",
|
||||
["cctv_desc"] = "Compruebe el circuito cerrado de televisión.",
|
||||
["inventory_title"] = "Inventario",
|
||||
["inventory_desc"] = "Cambiar la posición del inventario de propiedad.",
|
||||
["wardrobe_title"] = "Armario",
|
||||
["wardrobe_desc"] = "Cambiar la posición del armario de la propiedad.",
|
||||
["furniture_title"] = "Muebles",
|
||||
["furniture_desc"] = "Cambiar Posición de Mobiliario de Propiedad.",
|
||||
["enter_title"] = "Entrar",
|
||||
["knock_title"] = "Tocar la puerta",
|
||||
["buy_title"] = "Comprar",
|
||||
["buy_desc"] = "Compre esta propiedad por $%s",
|
||||
["sellplayer_title"] = "Vender al jugador",
|
||||
["sellplayer_desc"] = "Vender esta propiedad por $%s",
|
||||
["view_title"] = "Vista previa del interior",
|
||||
["exit_title"] = "Salir",
|
||||
["property_editing_error"] = "Actualmente está editando la propiedad.",
|
||||
["unlock_error"] = "No puede ~b~desbloquear~s~ esta propiedad",
|
||||
["lock_error"] = "No puede ~bloquear~a~ esta propiedad",
|
||||
["prep_raid"] = "¡~b~Preparando~s~ Redada!",
|
||||
["raiding"] = "Asaltando...",
|
||||
["cancel_raiding"] = "¡Redada ~r~Cancelada~s~!",
|
||||
["cannot_raid"] = "No puedes ~b~Asaltar~s~ esta propiedad.",
|
||||
["storage_pos_textui"] = "Presione ~b~[G]~s~ para establecer la posición del inventario",
|
||||
["storage_pos_success"] = "Posición del ~b~Inventario~s~ establecida.",
|
||||
["storage_pos_error"] = "~r~No se puede~s~ establecer la posición de ~b~inventario~s~.",
|
||||
["wardrobe_pos_textui"] = "Presione ~b~[G]~s~ para establecer la posición del Armario",
|
||||
["wardrobe_pos_success"] = "Posición del ~b~Armario~s~ establecida.",
|
||||
["wardrobe_pos_error"] = "~r~No se puede~s~ establecer la posición de ~b~armario~s~.",
|
||||
["please_finish"] = "Finalice la configuración de posición de ~b~%s~s~",
|
||||
["cannot_afford"] = "¡Usted no puede comprar esta propiedad!",
|
||||
["select_player"] = "Seleccionar jugador",
|
||||
["cannot_sell"] = "¡No se puede vender a este jugador!",
|
||||
["knock_on_door"] = "Llamando a la puerta...",
|
||||
["nobody_home"] = "Parece que nadie está en casa...",
|
||||
|
||||
---------- General Strings ----------------
|
||||
|
||||
["enabled"] = "Activado",
|
||||
["disabled"] = "Desactivado",
|
||||
["exiting"] = "Saliendo de la propiedad...",
|
||||
["entering"] = "Entrando a la propiedad...",
|
||||
["shell_disabled"] = "¡Este interior usa shells, que están deshabilitados!",
|
||||
["access_textui"] = "Pulsa ~b~[E]~s~ para acceder ~b~%s",
|
||||
["raid_notify_error"] = "Necesitas ~b~ %sx %s~s~ para poder asaltar!",
|
||||
["raid_notify_success"] = "¡Su propiedad está siendo actualmente ~b~Asaltada!",
|
||||
|
||||
--------------- Garage Strings --------------
|
||||
|
||||
["store_success"] = "Vehículo ~b~¡Almacenado!",
|
||||
["store_error"] = "¡No puede almacenar este vehículo!",
|
||||
["property_garage"] = "Garaje de propiedad",
|
||||
["retriving_notify"] = "Sacando ~b~%s~s~ ...",
|
||||
["cannot_access"] = "¡No puede acceder a este garaje!",
|
||||
["store_textui"] = "Pulsa ~b~[E]~s~ para almacenar ~b~%s",
|
||||
["garage_not_enabled"] = 'Garaje No Habilitado En Esta Propiedad.',
|
||||
["cannot_access_property"] = '~r~No puede~s~ Acceder a esta propiedad.',
|
||||
|
||||
----------------- Creation Menu Strings ----------------
|
||||
|
||||
["menu_title"] = "Creación de propiedad",
|
||||
["element_title1"] = "Número de calle",
|
||||
["element_description1"] = "Establezca el número de calle de la propiedad.",
|
||||
["element_title2"] = "Precio",
|
||||
["element_description2"] = "Fijar el Precio de la Propiedad.",
|
||||
["element_title3"] = "Interior",
|
||||
["element_description3"] = "Seleccione un interior para la propiedad",
|
||||
["element_title4"] = "Garaje",
|
||||
["element_description4"] = "(Opcional) Administrar la configuración del garaje",
|
||||
["element_title5"] = "CCTV",
|
||||
["element_description5"] = "(Opcional) Administrar la configuración de CCTV",
|
||||
["element_title6"] = "Entrada",
|
||||
["element_description6"] = "Establezca la ubicación de entrada de la propiedad.",
|
||||
["element_create_title"] = "Crear propiedad",
|
||||
["element_create_desc_1"] = "¡Complete todas las entradas requeridas!",
|
||||
["entrance_set_title"] = "Entrada establecida.",
|
||||
["entrance_set_description"] = "Entrada: %s, %s, %s",
|
||||
["interior_set_title"] = "Interior seleccionado.",
|
||||
["interior_set_description"] = "Selected: %s",
|
||||
["ipl_title"] = "Interiores IPL",
|
||||
["types_title"] = "Tipos de interiores",
|
||||
["ipl_description"] = "Interiores nativos de GTA, Hecho por R*",
|
||||
["shell_title"] = "Interiores personalizados",
|
||||
["shell_description"] = "Interiores personalizados, hechos por Ti",
|
||||
["cctv_settings"] = "Ajustes CCTV",
|
||||
["garage_settings"] = "Configuración del garaje",
|
||||
["toggle_title"] = "Alternar uso",
|
||||
["toggle_description"] = "Estado actual: %s",
|
||||
["cctv_set_title"] = "Establecer angulo de CCTV",
|
||||
["cctv_set_description"] = "Establece el angulo de las cámaras para tus direcciones de Cámaras",
|
||||
["back_description"] = "Volver a la creación de propiedad.",
|
||||
["garage_set_title"] = "Establecer posición de garaje",
|
||||
["garage_set_description"] = "Establece la posición del garaje de la propiedad.",
|
||||
["garage_textui"] = "Presione ~b~[E]~s~ para establecer la posición",
|
||||
["cctv_textui_1"] = "Presione ~b~[E]~s~ para establecer el ángulo",
|
||||
["cctv_textui_2"] = "Presione ~b~[E]~s~ para establecer la rotación máxima a la derecha",
|
||||
["cctv_textui_3"] = "Presione ~b~[E]~s~ para establecer la rotación máxima a la izquierda",
|
||||
["create_success"] = "¡Propiedad creada!",
|
||||
["missing_data"] = "¡Complete todas las entradas requeridas!",
|
||||
|
||||
-- Saving Translations
|
||||
["server_restart"] = "Reinicio del servidor",
|
||||
["server_shutdown"] = "Apagado del servidor",
|
||||
["manual_save"] = "Guardado manual (solicitado por %s)",
|
||||
["resource_stop"] = "Detención de recurso",
|
||||
["force_save"] = "Forzar guardado (solicitado por %s)",
|
||||
["interval_saving"] = "Intervalo de Guardado"
|
||||
}
|
||||
218
resources/[esx_addons]/esx_property/locales/fi.lua
Normal file
218
resources/[esx_addons]/esx_property/locales/fi.lua
Normal file
@@ -0,0 +1,218 @@
|
||||
Locales['fi'] = {
|
||||
--- CCTV Strings ------
|
||||
|
||||
["take_picture"] = "Ota kuva",
|
||||
["rot_left_right"] = "Vasen/Oikea",
|
||||
["rot_up_down"] = "Ylös/Alas",
|
||||
["zoom"] = "Tarkenna sisään/ulos",
|
||||
["zoom_level"] = "tarkennustaso: %s %%",
|
||||
["night_vision"] = "Yönäkö",
|
||||
["clipboard"] = "Linkki kopioitu ~b~leikepöydälle",
|
||||
["picture_taken"] = "Otit kuvan!",
|
||||
["please_wait"] = "Odota hetki ennen kuin otat uuden ~b~kuvan",
|
||||
["exit"] = "Poistu",
|
||||
|
||||
--- Furniture Strings ------
|
||||
|
||||
["height"] = "Korkeus",
|
||||
["rotate"] = "Kulma",
|
||||
["place"] = "Aseta kaluste",
|
||||
["delete_furni"] = "Poista",
|
||||
["confirm_buy"] = "Oletko varma että haluat ostaa %s ?",
|
||||
["price"] = "Hinta: €%s",
|
||||
["yes"] = "Kyllä",
|
||||
["no"] = "Ei",
|
||||
["action"] = "Sinä %s ~b~%s~s~ !",
|
||||
["bought_furni"] = "Sinä ~g~ostit~s~ ~b~%s~s~ !",
|
||||
["edited_furni"] = "Muokkasit ~b~%s~s~ !",
|
||||
["cannot_buy"] = "Et ~r~voi~s~ ostaa tätä!",
|
||||
["cannot_edit"] = "Et ~r~voi~s~ muokata tätä!",
|
||||
["store_title"] = "Kauppa - %s",
|
||||
["back"] = "Poistu",
|
||||
["edit_title"] = "Muokataan - %s",
|
||||
["move_title"] = "Liikuta",
|
||||
["deleted_confirm"] = "Poistetaan ~b~%s~s~!",
|
||||
["deleted_error"] = "Et voi poistaa ~b~%s~s~!",
|
||||
["owned_furni"] = "Omistetut kalusteet",
|
||||
["menu_stores"] = "Kalustekauppa",
|
||||
["menu_stores_desc"] = "Osta kalusteita",
|
||||
["menu_reset"] = "Resetoi",
|
||||
["menu_reset_desc"] = "Resetoi kaikki kalusteet",
|
||||
["menu_edit"] = "Muokkaa",
|
||||
["menu_edit_desc"] = "Muokkaa ja/tai poista kalusteita",
|
||||
["furni_command"] = "kaluste",
|
||||
["furni_command_desc"] = "Avaa kalustemenu",
|
||||
["furni_command_permission"] = "Et ~r~voi~s~ avata tätä menua!",
|
||||
["furni_reset_success"] = "Kalusteet resetoitu!",
|
||||
["furni_cannot_afford"] = "Sinulla ei ole varaa tähän!",
|
||||
["furni_reset_error"] = "Et ~r~voi~s~ resetoida tätä asuntoa!",
|
||||
["furni_management"] = "Hallinoi kalusteita",
|
||||
|
||||
--------- Key Strings ---------------
|
||||
|
||||
["you_granted"] = 'Sinulle annettiin avaimet ~b~%s~s~.',
|
||||
["already_has"] = "Tällä pelaajalla on jo avaimet!",
|
||||
["do_not_own"] = 'Et ~r~omista~s~ tätä asuntoa.',
|
||||
["key_revoked"] = 'Lukot asuntoon ~b~%s~s~ ~r~vaihdettiin~s~',
|
||||
["no_keys"] = "Tällä pelaajalla ei ole avaimia!",
|
||||
["nearby"] = "Lähellä olevat pelaajat",
|
||||
["gave_key"] = "Annetaan avaimia pelaajalle %s!",
|
||||
["key_cannot_give"] = "Et voi antaa tälle pelaajalle ~r~avainta",
|
||||
["remove_title"] = "Poista avaimet pelaajalta",
|
||||
["key_revoke_success"] = "Poistetaan avaimet pelaajalta ~b~%s~s~.",
|
||||
["key_revoke_error"] = "Et voi ~b~poistaa~s~ ~r~avaimia~s~ tältä pelaajalta",
|
||||
["key_management"] = "Avainten hallinta",
|
||||
["key_management_desc"] = "Hallinnoi avainten haltijoita.",
|
||||
["give_keys"] = "Anna avaimet",
|
||||
["remove_keys"] = "Poista avaimet",
|
||||
|
||||
|
||||
--------- Real Estate Strings ---------------
|
||||
["office_blip"] = "%s Välitystoimisto",
|
||||
["actions"] = "Välittäjän toiminnot",
|
||||
["property_create"] = "Luo asunto",
|
||||
["property_manage"] = "Hallinnoi asuntoja",
|
||||
["realestate_command"] = "välittäjänmenu",
|
||||
["realestate_command_desc"] = "Avaa asunnonvälittäjän menu",
|
||||
["enter_office"] = "~b~Mennään~s~ toimistoon.",
|
||||
["enter_office_error"] = "Et ~r~voi~s~ mennä tähän toimistoon!",
|
||||
["exit_office"] = "~b~Poistutaan~s~ toimistosta.",
|
||||
["exit_office_error"] = "Et ~r~voi~s~ poistua tästä toimistosta!",
|
||||
["realestate_textui"] = "Paina ~b~[E]~s~ avataksesi ~b~%s",
|
||||
|
||||
------------Command Strings-----------------------
|
||||
["refresh_name"] = "property:refresh",
|
||||
["refresh_desc"] = "Refresh to Server Start State",
|
||||
["save_name"] = "property:save",
|
||||
["save_desc"] = "Force Save Properties",
|
||||
["create_name"] = "property:create",
|
||||
["create_desc"] = "Create A New Property",
|
||||
["admin_name"] = "property:admin",
|
||||
["admin_desc"] = "Manage/view all properties",
|
||||
|
||||
|
||||
---------- Property Actions Menu -------------------------
|
||||
|
||||
["knocking"] = "Joku taitaa ~b~koputtaa~s~ ovella.",
|
||||
["name_edit"] = "Muokkaa asunnon nimeä",
|
||||
["name"] = "Nimi",
|
||||
["confirm"] = "Valitse",
|
||||
["name_edit_success"] = "Vaihdoit asunnon nimeksi ~b~%s~s~.",
|
||||
["name_edit_error"] = "Et voi asettaa asunnon nimeksi ~r~%s~s~.",
|
||||
["door_locked"] = "Ovi: lukossa",
|
||||
["door_unlocked"] = "Ovi: auki",
|
||||
["name_manage"] = "Muokkaa nimeä",
|
||||
["name_manage_desc"] = "Aseta asunnon nimi.",
|
||||
["sell_title"] = "Myy",
|
||||
["sell_desc"] = "Myy asunto hintaan $%s",
|
||||
["raid_title"] = "Ratsaa",
|
||||
["raid_desc"] = "Ratsaa asunto.",
|
||||
["cctv_title"] = "Turvakamera",
|
||||
["cctv_desc"] = "Tarkista turvakamera.",
|
||||
["inventory_title"] = "Varasto",
|
||||
["inventory_desc"] = "Vaihda varaston sijaintia.",
|
||||
["wardrobe_title"] = "Vaatekaappi",
|
||||
["wardrobe_desc"] = "Vaihda vaatekaapin sijaintia.",
|
||||
["furniture_title"] = "Kaluste",
|
||||
["furniture_desc"] = "Vaihda kalusteen sijaintia.",
|
||||
["enter_title"] = "Mene sisään",
|
||||
["knock_title"] = "Koputa",
|
||||
["buy_title"] = "Osta",
|
||||
["buy_desc"] = "Osta tämä asunto hintaan $%s",
|
||||
["sellplayer_title"] = "Myy pelaajalle",
|
||||
["sellplayer_desc"] = "Myy tämä asunto hintaan $%s",
|
||||
["view_title"] = "Tutustu sisätiloihin",
|
||||
["exit_title"] = "Poistu",
|
||||
["property_editing_error"] = "Muokkaat tällä hetkellä asuntoa.",
|
||||
["unlock_error"] = "Et voi ~b~avata~s~ asunnon ovea",
|
||||
["lock_error"] = "Et voi ~b~lukita~s~ asunnon ovea",
|
||||
["prep_raid"] = "~b~Valmistaudutaan~s~ ratsiaan!",
|
||||
["raiding"] = "Ratsataan...",
|
||||
["cancel_raiding"] = "~r~Peruutit~s~ ratsian!",
|
||||
["cannot_raid"] = "Et voi ~b~ratsata~s~ tätä asuntoa.",
|
||||
["storage_pos_textui"] = "Paina ~b~[G]~s~ asettaaksesi varaston sijainti",
|
||||
["storage_pos_success"] = "~b~Varaston~s~ sijainti asetettu.",
|
||||
["storage_pos_error"] = "~r~Et voi~s~ asettaa ~b~varaston~s~ sijaintia.",
|
||||
["wardrobe_pos_textui"] = "Paina ~b~[G]~s~ asettaaksesi vaatekaapin sijainnin",
|
||||
["wardrobe_pos_success"] = "~b~Vaatekaapin~s~ sijainti asetettu.",
|
||||
["wardrobe_pos_error"] = "~r~Et voi~s~ asettaa ~b~vaatekaapin~s~ sijaintia.",
|
||||
["please_finish"] = "Ole kiltti ja aseta ~b~%s~s~ sijainti",
|
||||
["cannot_afford"] = "Et voi ostaa tätä asuntoa!",
|
||||
["select_player"] = "Valitse pelaaja",
|
||||
["cannot_sell"] = "Et voi myydä tälle pelaajalle asuntoa",
|
||||
["knock_on_door"] = "Koputat oveen...",
|
||||
["nobody_home"] = "Ei taida ketään olla kotona...",
|
||||
|
||||
---------- General Strings ----------------
|
||||
|
||||
["enabled"] = "Päällä",
|
||||
["disabled"] = "Pois päältä",
|
||||
["exiting"] = "Poistutaan asunnosta...",
|
||||
["entering"] = "Astutaan sisään asuntoon...",
|
||||
["shell_disabled"] ="Asunto käyttää sisätilaa mikä on poistettu käytöstä!",
|
||||
["access_textui"] = "Paina ~b~[E]~s~ avataksesi ~b~%s",
|
||||
["raid_notify_error"] = "Tarvitset ~b~ %sx %s~s~ jotta voit ratsata kämpän!",
|
||||
["raid_notify_success"] = "Asuntoasi ~b~ratsataan!",
|
||||
|
||||
--------------- Garage Strings --------------
|
||||
|
||||
["store_success"] = "Ajoneuvo ~b~talletettu!",
|
||||
["store_error"] = "Et voi tallettaa tätä ajoneuvoa!",
|
||||
["property_garage"] = "Asunnon talli",
|
||||
["retriving_notify"] = "Otat ~b~%s~s~ ...",
|
||||
["cannot_access"] = "Et voi käyttää tätä tallia!",
|
||||
["store_textui"] = "Paina ~b~[E]~s~ talleettaksesi ~b~%s",
|
||||
["garage_not_enabled"] = 'Tässä asunnossa ei ole tallia.',
|
||||
["cannot_access_property"] = '~r~Et voi~s~ käyttää tätä asuntoa.',
|
||||
|
||||
|
||||
----------------- Creation Menu Strings ----------------
|
||||
|
||||
["menu_title"] = "Asunnon luonti",
|
||||
["element_title1"] = "Kadun numero",
|
||||
["element_description1"] = "Aseta asunnon kadun numero.",
|
||||
["element_title2"] = "Hinta",
|
||||
["element_description2"] = "Aseta asunnon hinta.",
|
||||
["element_title3"] = "Sisätila",
|
||||
["element_description3"] = "Valitse asunnolle sisätila",
|
||||
["element_title4"] = "Talli",
|
||||
["element_description4"] = "(ei pakollinen) Hallinnoi tallin asetuksia",
|
||||
["element_title5"] = "Turvakamerat",
|
||||
["element_description5"] = "(ei pakollinen) Hallinoi turvakameroita",
|
||||
["element_title6"] = "Sisäänmeno ovi",
|
||||
["element_description6"] = "Aseta asunnon sisäänmeno ovi.",
|
||||
["element_create_title"] = "Luo asunto",
|
||||
["element_create_desc_1"] = "Ole kiltti ja täytä puuttuvat kentät!",
|
||||
["entrance_set_title"] = "Asetit sisäänmeno oven.",
|
||||
["entrance_set_description"] = "Ovi: %s, %s, %s",
|
||||
["interior_set_title"] = "Sisätila valittu.",
|
||||
["interior_set_description"] = "Valittu: %s",
|
||||
["ipl_title"] = "IPL sisätilat",
|
||||
["types_title"] = "sisätilojen tyyliy",
|
||||
["ipl_description"] = "GTA;n omat sisätilat, tehnyt R*",
|
||||
["shell_title"] = "Kustomoidut sisätilat",
|
||||
["shell_description"] = "Kustoimoidut sisätilat, tehnyt sinä",
|
||||
["cctv_settings"] = "Tuvakamera asetukset",
|
||||
["garage_settings"] = "Talli asetukset",
|
||||
["toggle_title"] = "Onko asunnossa?",
|
||||
["toggle_description"] = "Nykyinen tila: %s",
|
||||
["cctv_set_title"] = "Aseta turvakameran asento",
|
||||
["cctv_set_description"] = "Asettaa turvakameran sinun kameran asentoon ja kulmaan",
|
||||
["back_description"] = "Poistu asunnon luomiseen.",
|
||||
["garage_set_title"] = "Aseta tallin sijainti",
|
||||
["garage_set_description"] = "Aseta tallin sijainti.",
|
||||
["garage_textui"] = "Paina ~b~[E]~s~ asettaaksesi sijainti",
|
||||
["cctv_textui_1"] = "Paina ~b~[E]~s~ asettaaksesi kulma-aste",
|
||||
["cctv_textui_2"] = "Paina ~b~[E]~s~ asettaaksesi maksimaalinen kääntö oikealle",
|
||||
["cctv_textui_3"] = "Paina ~b~[E]~s~ asettaaksesi maksimaalinen kääntö vasemmalle",
|
||||
["create_success"] = "Asunto luotu!",
|
||||
["missing_data"] = "Ole kiltti ja täytä puuttuvat kentät!",
|
||||
|
||||
-- Saving Translations
|
||||
["server_restart"] = "Server Restarting",
|
||||
["server_shutdown"] = "Server Shutdown",
|
||||
["manual_save"] = "Manual Save (Requested By %s)",
|
||||
["resource_stop"] = "Resource Stopping",
|
||||
["force_save"] = "Force Save (Requested By %s)",
|
||||
["interval_saving"] = "Interval Saving"
|
||||
}
|
||||
218
resources/[esx_addons]/esx_property/locales/fr.lua
Normal file
218
resources/[esx_addons]/esx_property/locales/fr.lua
Normal file
@@ -0,0 +1,218 @@
|
||||
Locales["fr"] = {
|
||||
--- CCTV Strings ------
|
||||
|
||||
["take_picture"] = "Prendre une photo",
|
||||
["rot_left_right"] = "Gauche/Droite",
|
||||
["rot_up_down"] = "Haut/Bas",
|
||||
["zoom"] = "Zoom avant/ arrière",
|
||||
["zoom_level"] = "Niveau de zoom : %s %%",
|
||||
["night_vision"] = "Basculer la vision nocturne",
|
||||
["clipboard"] = "Lien copié vers ~b~Cipboard",
|
||||
["picture_taken"] = "Photo prise !",
|
||||
["please_wait"] = "Veuillez patienter avant de prendre une autre ~b~photo",
|
||||
["exit"] = "Quitter",
|
||||
|
||||
-- - Cordes de meubles ------
|
||||
|
||||
["hauteur"] = "Hauteur",
|
||||
["tourner"] = "Rotation",
|
||||
["place"] = "Placer les meubles",
|
||||
["delete_furni"] = "Supprimer",
|
||||
["confirm_buy"] = "Voulez-vous acheter %s ?",
|
||||
["prix"] = "Prix : $%s",
|
||||
["yes"] = "Oui",
|
||||
["no"] = "Non",
|
||||
["action"] = "Vous %s ~b~%s~s~ !",
|
||||
["buyer_furni"] = "Vous avez ~g~acheté~s~ A ~b~%s~s~ !",
|
||||
["edited_furni"] = "Vous avez modifié ~b~%s~s~ !",
|
||||
["cant_buy"] = "Vous ~r~ne pouvez pas~s~ acheter ceci !",
|
||||
["cant_edit"] = "Vous ~r~ne pouvez pas~s~ modifier ceci !",
|
||||
["store_title"] = "Magasin - %s",
|
||||
["retour"] = "Retour",
|
||||
["edit_title"] = "Modification - %s",
|
||||
["move_title"] = "Déplacer",
|
||||
["delete_confirm"] = "Suppression de ~b~%s~s~ !",
|
||||
["delete_error"] = "Impossible de supprimer ~b~%s~s~ !",
|
||||
["Own_furni"] = "Meubles possédés",
|
||||
["menu_stores"] = "Magasins de meubles",
|
||||
["menu_stores_desc"] = "Acheter des meubles",
|
||||
["menu_reset"] = "Réinitialiser",
|
||||
["menu_reset_desc"] = "Efface tous les meubles",
|
||||
["menu_edit"] = "Modifier",
|
||||
["menu_edit_desc"] = "Déplacer et/ou supprimer des meubles",
|
||||
["furni_command"] = "meubles",
|
||||
["furni_command_desc"] = "(Propriété ESX) Ouvrir le menu des meubles",
|
||||
["furni_command_permission"] = "Vous ~r~ne pouvez pas~s~ accéder à ce menu !",
|
||||
["furni_reset_success"] = "Réinitialiser les meubles !",
|
||||
["furni_cannot_afford"] = "Vous ne pouvez pas vous permettre de faire ça !",
|
||||
["furni_reset_error"] = "Vous ~r~ne pouvez pas~s~ réinitialiser cette propriété !",
|
||||
["furni_management"] = "Gérer les meubles",
|
||||
|
||||
-- ------- Chaînes de clés ---------------
|
||||
|
||||
["you_granted"] = "Vous avez reçu les clés de ~b~%s~s~.",
|
||||
["exists_has"] = "Ce joueur a déjà des clés !",
|
||||
["do_not_own"] = "Vous ne possédez ~r~pas~s~ cette propriété.",
|
||||
["key_revoked"] = "Votre clé d accès à ~b~%s~s~. A été ~r~révoqué~s~",
|
||||
["no_keys"] = "Ce joueur n a pas de clés !",
|
||||
["à proximité"] = "Joueurs à proximité",
|
||||
["gave_key"] = "Donner les clés à %s !",
|
||||
["key_cannot_give"] = "Vous ne pouvez pas donner une ~r~clé à ce joueur",
|
||||
["remove_title"] = "Supprimer les clés du lecteur",
|
||||
["key_revoke_success"] = "Révocation des clés de ~b~%s~s~.",
|
||||
["key_revoke_error"] = "Vous ne pouvez pas ~b~supprimer~s~ une ~r~clé~s~ de cette personne",
|
||||
["key_management"] = "Gestion des clés",
|
||||
["key_management_desc"] = "Contrôler l accès à la propriété.",
|
||||
["give_keys"] = "Donner des clés",
|
||||
["remove_keys"] = "Supprimer les clés",
|
||||
|
||||
|
||||
-- ------- Chaînes immobilières ---------------
|
||||
["office_blip"] = "%s Bureau",
|
||||
["actions"] = "Actions immobilières",
|
||||
["property_create"] = "Créer une propriété",
|
||||
["property_manage"] = "Gérer les propriétés",
|
||||
["realestate_command"] = "realestatequickmenu",
|
||||
["realestate_command_desc"] = "(Propriété ESX) Ouvrir les actions rapides de l immobilier",
|
||||
["enter_office"] = "~b~Entrée~s~ Bureau.",
|
||||
["enter_office_error"] = "Vous ~r~ne pouvez pas~s~ entrer dans le bureau !",
|
||||
["exit_office"] = "~b~Sortie~s~ du bureau.",
|
||||
["exit_office_error"] = "Vous ~r~ne pouvez pas~s~ quitter le bureau !",
|
||||
["realestate_textui"] = "Appuyez sur ~b~[E]~s~ pour accéder à ~b~%s",
|
||||
|
||||
-- ----------Chaînes de commande-----------------------
|
||||
["refresh_name"] = "propriété:rafraîchir",
|
||||
["refresh_desc"] = "Actualiser à l'état de démarrage du serveur",
|
||||
["save_name"] = "propriété:sauvegarder",
|
||||
["save_desc"] = "Forcer l'enregistrement des propriétés",
|
||||
["nom_création"] = "propriété:créer",
|
||||
["create_desc"] = "Créer une nouvelle propriété",
|
||||
["nom_admin"] = "propriété:admin",
|
||||
["admin_desc"] = "Gérer/afficher toutes les propriétés",
|
||||
|
||||
|
||||
-- -------- Menu Actions propriété -------------------------
|
||||
|
||||
["knocking"] = "Quelqu'un ~b~frappe~s~ à la porte.",
|
||||
["name_edit"] = "Modifier le nom de la propriété",
|
||||
["nom"] = "Nom",
|
||||
["confirmer"] = "Confirmer",
|
||||
["name_edit_success"] = "Vous avez défini le nom de la propriété sur ~b~%s~s~.",
|
||||
["name_edit_error"] = "Vous ne pouvez pas définir le nom de la propriété sur ~r~%s~s~.",
|
||||
["door_locked"] = "Porte : Verrouillée",
|
||||
["door_unlocked"] = "Porte : Déverrouillée",
|
||||
["name_manage"] = "Gérer le nom",
|
||||
["name_manage_desc"] = "Définir le nom de la propriété.",
|
||||
["sell_title"] = "Vendre",
|
||||
["sell_desc"] = "Vendre cette propriété pour $%s",
|
||||
["raid_title"] = "Raid",
|
||||
["raid_desc"] = "Forcer l entrée dans la propriété.",
|
||||
["titre_cctv"] = "CCTV",
|
||||
["cctv_desc"] = "Vérifiez la caméra CCTV.",
|
||||
["Inventory_title"] = "Inventaire",
|
||||
["Inventory_desc"] = "Modifier la position du stockage des propriétés.",
|
||||
["garde -robe_title"] = "Garde-robe",
|
||||
["armoire_desc"] = "Modifier la position de l'armoire de propriété.",
|
||||
["meuble_titre"] = "Meuble",
|
||||
["furniture_desc"] = "Modifier la position des meubles de la propriété.",
|
||||
["enter_title"] = "Entrez",
|
||||
["knock_title"] = "Frappez à la porte",
|
||||
["buy_title"] = "Acheter",
|
||||
["buy_desc"] = "Acheter cette propriété pour $%s",
|
||||
["sellplayer_title"] = "Vendre au joueur",
|
||||
["sellplayer_desc"] = "Vendre cette propriété pour $%s",
|
||||
["view_title"] = "Aperçu de l'intérieur",
|
||||
["exit_title"] = "Quitter",
|
||||
["property_editing_error"] = "Vous modifiez actuellement la propriété.",
|
||||
["unlock_error"] = "Vous ne pouvez pas ~b~déverrouiller~s~ cette propriété",
|
||||
["lock_error"] = "Vous ne pouvez pas ~b~verrouiller~s~ cette propriété",
|
||||
["prep_raid"] = "~b~Préparation~s~ Raid !",
|
||||
["raiding"] = "Raidage...",
|
||||
["cancel_raiding"] = "~r~Annulé~s~ Raid !",
|
||||
["cant_raid"] = "Vous ne pouvez pas ~b~Raid~s~ cette propriété.",
|
||||
["storage_pos_textui"] = "Appuyez sur ~b~[G]~s~ pour définir la position de stockage",
|
||||
["storage_pos_success"] = "~b~Stockage~s~ Position définie.",
|
||||
["storage_pos_error"] = "~r~Impossible~s~ de définir la position de ~b~stockage~s~.",
|
||||
["armoire_pos_textui"] = "Appuyez sur ~b~[G]~s~ pour définir la position de la garde-robe",
|
||||
["armoire_pos_success"] = "~b~Armoire~s~ Définir la position.",
|
||||
["armoire_pos_error"] = "~r~Impossible~s~ de définir la position de ~b~armoire~s~.",
|
||||
["please_finish"] = "Veuillez finir de définir la position ~b~%s~s~",
|
||||
["cant_afford"] = "Vous ne pouvez pas acheter cette propriété !",
|
||||
["select_player"] = "Sélectionner un joueur",
|
||||
["cant_sell"] = "Impossible de vendre à ce joueur !",
|
||||
["knock_on_door"] = "Frapper à la porte...",
|
||||
["nobody_home"] = "Il semble que personne n'est à la maison...",
|
||||
|
||||
-- -------- Chaînes générales ----------------
|
||||
|
||||
["enabled"] = "Activé",
|
||||
["disabled"] = "Désactivé",
|
||||
["exiting"] = "Sortie de la propriété...",
|
||||
["entering"] = "Saisie de la propriété...",
|
||||
["shell_disabled"] ="Cet intérieur utilise des coques, qui sont désactivées !",
|
||||
["access_textui"] = "Appuyez sur ~b~[E]~s~ pour accéder à ~b~%s",
|
||||
["raid_notify_error"] = "Vous avez besoin de ~b~ %sx %s~s~ pour pouvoir effectuer un raid !",
|
||||
["raid_notify_success"] = "Votre propriété fait actuellement l'objet d'un ~b~raid !",
|
||||
|
||||
-------------- Cordes de garage --------------
|
||||
|
||||
["store_success"] = "Véhicule ~b~stocké !",
|
||||
["store_error"] = "Vous ne pouvez pas stocker ce véhicule !",
|
||||
["property_garage"] = "Propriété Garage",
|
||||
["retriving_notify"] = "Récupération de ~b~%s~s~ ...",
|
||||
["cant_access"] = "Vous ne pouvez pas accéder à ce garage !",
|
||||
["store_textui"] = "Appuyez sur ~b~[E]~s~ pour stocker ~b~%s",
|
||||
["garage_not_enabled"] = "Garage non activé sur cette propriété.",
|
||||
["cannot_access_property"] = "Vous ~r~ne pouvez pas~s~ accéder à cette propriété.",
|
||||
|
||||
|
||||
-- --------------- Chaînes de menu de création ----------------
|
||||
|
||||
["menu_title"] = "Création de propriété",
|
||||
["element_title1"] = "Numéro de rue",
|
||||
["element_description1"] = "Définissez le numéro de rue de la propriété.",
|
||||
["element_title2"] = "Prix",
|
||||
["element_description2"] = "Définir le prix de la propriété.",
|
||||
["element_title3"] = "Intérieur",
|
||||
["element_description3"] = "Sélectionnez un intérieur pour la propriété",
|
||||
["element_title4"] = "Garage",
|
||||
["element_description4"] = "(Facultatif) Gérer les paramètres du garage",
|
||||
["element_title5"] = "CCTV",
|
||||
["element_description5"] = "(Facultatif) Gérer les paramètres CCTV",
|
||||
["element_title6"] = "Entrée",
|
||||
["element_description6"] = "Définir l'emplacement de l'entrée de la propriété.",
|
||||
["element_create_title"] = "Créer une propriété",
|
||||
["element_create_desc_1"] = "Veuillez remplir toutes les entrées requises !",
|
||||
["entry_set_title"] = "Ensemble d'entrée.",
|
||||
["entry_set_description"] = "Entrée : %s, %s, %s",
|
||||
["interior_set_title"] = "Intérieur sélectionné.",
|
||||
["interior_set_description"] = "Sélectionné : %s",
|
||||
["ipl_title"] = "Intérieurs IPL",
|
||||
["types_title"] = "Types intérieurs",
|
||||
["ipl_description"] = "Intérieurs GTA natifs, fabriqués par R*",
|
||||
["shell_title"] = "Intérieurs personnalisés",
|
||||
["shell_description"] = "Intérieurs personnalisés, faits par vous",
|
||||
["cctv_settings"] = "Paramètres CCTV",
|
||||
["garage_settings"] = "Paramètres du garage",
|
||||
["toggle_title"] = "Basculer l'utilisation",
|
||||
["toggle_description"] = "État actuel : %s",
|
||||
["cctv_set_title"] = "Définir l'angle CCTV",
|
||||
["cctv_set_description"] = "Définit l'angle de la caméra à la direction de vos caméras",
|
||||
["back_description"] = "retour à la création de la propriété.",
|
||||
["garage_set_title"] = "Définir la position du garage",
|
||||
["garage_set_description"] = "Définir la position du garage de la propriété.",
|
||||
["garage_textui"] = "Appuyez sur ~b~[E]~s~ pour définir la position",
|
||||
["cctv_textui_1"] = "Appuyez sur ~b~[E]~s~ pour régler l'angle",
|
||||
["cctv_textui_2"] = "Appuyez sur ~b~[E]~s~ pour définir la rotation maximale à droite",
|
||||
["cctv_textui_3"] = "Appuyez sur ~b~[E]~s~ pour définir la rotation maximale à gauche",
|
||||
["create_success"] = "Propriété créée !",
|
||||
["missing_data"] = "Veuillez remplir toutes les entrées requises !",
|
||||
|
||||
-- Enregistrement des traductions
|
||||
["server_restart"] = "Redémarrage du serveur",
|
||||
["server_shutdown"] = "Arrêt du serveur",
|
||||
["manual_save"] = "Enregistrement manuel (demandé par %s)",
|
||||
["resource_stop"] = "Arrêt de la ressource",
|
||||
["force_save"] = "Forcer l'enregistrement (demandé par %s)",
|
||||
["interval_saving"] = "Enregistrement d'intervalle"
|
||||
}
|
||||
218
resources/[esx_addons]/esx_property/locales/hu.lua
Normal file
218
resources/[esx_addons]/esx_property/locales/hu.lua
Normal file
@@ -0,0 +1,218 @@
|
||||
Locales['hu'] = {
|
||||
--- CCTV Strings ------
|
||||
|
||||
["take_picture"] = "Take Picture",
|
||||
["rot_left_right"] = "Jobbra/Balra",
|
||||
["rot_up_down"] = "Fel/Le",
|
||||
["zoom"] = "Zoom Be/Ki",
|
||||
["zoom_level"] = "Zoom Szint: %s %%",
|
||||
["night_vision"] = "Éjjellátó",
|
||||
["clipboard"] = "Link másolva a ~b~Vágólapra",
|
||||
["picture_taken"] = "Fotó elkészítve!",
|
||||
["please_wait"] = "Kérlek várj mielőtt készítesz még egy ~b~Képet",
|
||||
["exit"] = "Kilépés",
|
||||
|
||||
--- Furniture Strings ------
|
||||
|
||||
["height"] = "Magasság",
|
||||
["rotate"] = "Forgatás",
|
||||
["place"] = "Bútor Elhelyezése",
|
||||
["delete_furni"] = "Törlés",
|
||||
["confirm_buy"] = "Biztos meg szeretnéd venni %s ?",
|
||||
["price"] = "Ár: $%s",
|
||||
["yes"] = "Igen",
|
||||
["no"] = "Nem",
|
||||
["action"] = "Te %s ~b~%s~s~ !",
|
||||
["bought_furni"] = "~g~Megvetted~s~ ezt: ~b~%s~s~ !",
|
||||
["edited_furni"] = "Módosítottad ezt: ~b~%s~s~ !",
|
||||
["cannot_buy"] = "~r~Nem tudod~s~ ezt megvenni!",
|
||||
["cannot_edit"] = "~r~Nem tudod~s~ ezt szerkeszteni!",
|
||||
["store_title"] = "Bolt - %s",
|
||||
["back"] = "Vissza",
|
||||
["edit_title"] = "Szerkesztés - %s",
|
||||
["move_title"] = "Mozgatás",
|
||||
["deleted_confirm"] = "Törlés ~b~%s~s~!",
|
||||
["deleted_error"] = "Nem törölhető: ~b~%s~s~!",
|
||||
["owned_furni"] = "Saját Bútorok",
|
||||
["menu_stores"] = "Bútorbolt",
|
||||
["menu_stores_desc"] = "Bútor Vásárlása",
|
||||
["menu_reset"] = "Visszaállítás",
|
||||
["menu_reset_desc"] = "Minden bútor törlése",
|
||||
["menu_edit"] = "Szerkesztés",
|
||||
["menu_edit_desc"] = "Mozgass és/vagy Törölj Bútorokat",
|
||||
["furni_command"] = "furniture", --not translated
|
||||
["furni_command_desc"] = "(ESX Property) Bútormenü megnyitása",
|
||||
["furni_command_permission"] = "~r~Nincs hozzáférésed~s~ ehez a menühöz!",
|
||||
["furni_reset_success"] = "Bútor visszaállítva!",
|
||||
["furni_cannot_afford"] = "Ezt nem engedheti meg magának!",
|
||||
["furni_reset_error"] = "~r~Nem tudod~s~ visszaállítani ezt az elemet!",
|
||||
["furni_management"] = "Bútor kezelése",
|
||||
|
||||
--------- Key Strings ---------------
|
||||
|
||||
["you_granted"] = 'Kulcsot kaptál ehez: ~b~%s~s~.',
|
||||
["already_has"] = "Ennek a játékosnak van már kulcsa!",
|
||||
["do_not_own"] = '~r~Nem a tiéd~s~ ez az ingatlan.',
|
||||
["key_revoked"] = 'A kulcsod ehez: ~b~%s~s~, ~r~Vissza lett vonva~s~',
|
||||
["no_keys"] = "Ennek a játékosnak nincs kulcsa!",
|
||||
["nearby"] = "Közeli Játékosok",
|
||||
["gave_key"] = "Kulcs adás neki: %s!",
|
||||
["key_cannot_give"] = "Ennek a játékosnak nem adhatsz ~r~Kulcsot",
|
||||
["remove_title"] = "Kulcs visszavonása",
|
||||
["key_revoke_success"] = "Kulcsok visszavonva tőle: ~b~%s~s~.",
|
||||
["key_revoke_error"] = "Nem tudod ~b~visszavonni~s~ a ~r~Kulcsot~s~ ettől az embertől",
|
||||
["key_management"] = "Kulcs Kezelés",
|
||||
["key_management_desc"] = "Ingatlan hozzáférés szabályozása.",
|
||||
["give_keys"] = "Kulcs adás",
|
||||
["remove_keys"] = "Kulcs visszavonás",
|
||||
|
||||
|
||||
--------- Real Estate Strings ---------------
|
||||
["office_blip"] = "%s Iroda",
|
||||
["actions"] = "Ingatlanügyletek",
|
||||
["property_create"] = "Ingatlan létrehozás",
|
||||
["property_manage"] = "Ingatlanok kezelése",
|
||||
["realestate_command"] = "realestatequickmenu",
|
||||
["realestate_command_desc"] = "(ESX Property) Ingatlanügyletek kezelése",
|
||||
["enter_office"] = "~b~Belépés~s~ az Irodába.",
|
||||
["enter_office_error"] = "~r~Nem tudsz~s~ belépni az irodába!",
|
||||
["exit_office"] = "~b~EKilépés~s~ az Irodából.",
|
||||
["exit_office_error"] = "~r~Nem tudsz~s~ kilépni az Irodából!",
|
||||
["realestate_textui"] = "Nyomj ~b~[E]~s~ hogy elérd: ~b~%s",
|
||||
|
||||
------------Command Strings-----------------------
|
||||
["refresh_name"] = "property:refresh",
|
||||
["refresh_desc"] = "Frissítsen a Szerver indítási állapotára",
|
||||
["save_name"] = "property:save",
|
||||
["save_desc"] = "Ingatlanok kényszerített mentése",
|
||||
["create_name"] = "property:create",
|
||||
["create_desc"] = "Új ingatlan létrehozása",
|
||||
["admin_name"] = "property:admin",
|
||||
["admin_desc"] = "Ingatlanok kezelése/megnézése",
|
||||
|
||||
|
||||
---------- Property Actions Menu -------------------------
|
||||
|
||||
["knocking"] = "Valaki ~b~Kopog~s~ az ajtón.",
|
||||
["name_edit"] = "Ingatlan nevének szerkesztése",
|
||||
["name"] = "Név",
|
||||
["confirm"] = "Megerősítés",
|
||||
["name_edit_success"] = "Beállítottad az ingatlan nevét erre: ~b~%s~s~.",
|
||||
["name_edit_error"] = "Nem tudod beállítani az ingatlan nevét erre: ~r~%s~s~.",
|
||||
["door_locked"] = "Ajtó: Zárva",
|
||||
["door_unlocked"] = "Ajtó: Nyitva",
|
||||
["name_manage"] = "Név kezelése",
|
||||
["name_manage_desc"] = "Ingatlan nevének módosítása.",
|
||||
["sell_title"] = "Eladás",
|
||||
["sell_desc"] = "Adja el ezt az ingatlant ennyiért: $%s",
|
||||
["raid_title"] = "Behatolás",
|
||||
["raid_desc"] = "Behatolás az ingatlanba.",
|
||||
["cctv_title"] = "CCTV",
|
||||
["cctv_desc"] = "Ellenőrizze a CCTV kamerát.",
|
||||
["inventory_title"] = "Tároló",
|
||||
["inventory_desc"] = "A tároló pozíciójának megváltoztatása.",
|
||||
["wardrobe_title"] = "Ruhásszekrény",
|
||||
["wardrobe_desc"] = "A ruhásszekrény pozíciójának megváltoztatása.",
|
||||
["furniture_title"] = "Bútor",
|
||||
["furniture_desc"] = "A bútor pozíciójának megváltoztatása.",
|
||||
["enter_title"] = "Belépés",
|
||||
["knock_title"] = "Kopogás",
|
||||
["buy_title"] = "Vásárlás",
|
||||
["buy_desc"] = "Ingatlan megvétele ennyiért: $%s",
|
||||
["sellplayer_title"] = "Eladás játékosnak",
|
||||
["sellplayer_desc"] = "Ingatlan eladása ennyiért: $%s",
|
||||
["view_title"] = "Beltér megnézése",
|
||||
["exit_title"] = "Kilépés",
|
||||
["property_editing_error"] = "Ön jelenleg szerkeszti az ingatlant.",
|
||||
["unlock_error"] = "Nem tudod ~b~Kinyitni~s~ ezt az ingatlant",
|
||||
["lock_error"] = "Nem tudod ~b~Bezárni~s~ ezt az ingatlant",
|
||||
["prep_raid"] = "~b~Felkészülés~s~ a behatolásra!",
|
||||
["raiding"] = "Behatolás...",
|
||||
["cancel_raiding"] = "Behatolás ~r~Visszavonása~s~!",
|
||||
["cannot_raid"] = "Nem tudsz ~b~Behatolni~s~ ebbe az ingatlanba.",
|
||||
["storage_pos_textui"] = "~b~[G]~s~ - Tároló pozítciójának módosítása",
|
||||
["storage_pos_success"] = "~b~Tároló~s~ pozítciója beállítva.",
|
||||
["storage_pos_error"] = "~r~Nem tudod~s~ állítani a ~b~Tároló~s~ pozítcióját.",
|
||||
["wardrobe_pos_textui"] = "~b~[G]~s~ - Ruhásszekrény pozítciójának módosítása",
|
||||
["wardrobe_pos_success"] = "~b~Ruhásszekrény~s~ pozítciója beállítva.",
|
||||
["wardrobe_pos_error"] = "~r~Nem tudod~s~ állítani a ~b~Ruhásszekrény~s~ pozítcióját.",
|
||||
["please_finish"] = "Kérjük, fejezze be a beállítást ~b~%s~s~ pozítció",
|
||||
["cannot_afford"] = "Nem tudod megvenni ezt az ingatlant!",
|
||||
["select_player"] = "Játékos kiválasztása",
|
||||
["cannot_sell"] = "Nem tudod eladni ennek a játékosnak!",
|
||||
["knock_on_door"] = "Kopogás...",
|
||||
["nobody_home"] = "Úgy tűnik senki nincs otthon...",
|
||||
|
||||
---------- General Strings ----------------
|
||||
|
||||
["enabled"] = "Engedélyezve",
|
||||
["disabled"] = "Letiltva",
|
||||
["exiting"] = "Kilépés az ingatlanból...",
|
||||
["entering"] = "Belépés az ingatlanba...",
|
||||
["shell_disabled"] ="This Interior Uses Shells, which are disabled!",
|
||||
["access_textui"] = "Nyomj ~b~[E]~s~ hogy elérd: ~b~%s",
|
||||
["raid_notify_error"] = "Kell ~b~ %sx %s~s~ hogy be tudj hatolni!",
|
||||
["raid_notify_success"] = "Az ingatlanodba ~b~Behatolnak!",
|
||||
|
||||
--------------- Garage Strings --------------
|
||||
|
||||
["store_success"] = "Jármű ~b~Tárolva!",
|
||||
["store_error"] = "Nem tudod tárolni ezt a járművet!",
|
||||
["property_garage"] = "Garázs",
|
||||
["retriving_notify"] = "Visszakérés ~b~%s~s~ ...",
|
||||
["cannot_access"] = "Nem férhet hozzá ehhez a garázshoz!",
|
||||
["store_textui"] = "Nyomj ~b~[E]~s~ hogy eltárold: ~b~%s",
|
||||
["garage_not_enabled"] = 'A garázs nincs engedélyezve ezen az ingatlanon.',
|
||||
["cannot_access_property"] = '~r~Nem tudsz~s~ hozzáférni ehez az ingatlanhoz.',
|
||||
|
||||
|
||||
----------------- Creation Menu Strings ----------------
|
||||
|
||||
["menu_title"] = "Ingatlan létrehozása",
|
||||
["element_title1"] = "Utcaszám",
|
||||
["element_description1"] = "Állítsa be az ingatlan utcaszámát.",
|
||||
["element_title2"] = "Ár",
|
||||
["element_description2"] = "Állítsa be az ingatlan árát.",
|
||||
["element_title3"] = "Belső tér",
|
||||
["element_description3"] = "Válasszon belső teret az ingatlanhoz",
|
||||
["element_title4"] = "Garázs",
|
||||
["element_description4"] = "(Opcionális) Garázsbeállítások kezelése",
|
||||
["element_title5"] = "CCTV",
|
||||
["element_description5"] = "(Opcionális) CCTV beállítások kezelése",
|
||||
["element_title6"] = "Bejárat",
|
||||
["element_description6"] = "Állítsa be az ingatlan bejáratának helyét.",
|
||||
["element_create_title"] = "Ingatlan létrehozása",
|
||||
["element_create_desc_1"] = "Kérjük, töltse ki az összes szükséges adatot!",
|
||||
["entrance_set_title"] = "Bejárat beállítva.",
|
||||
["entrance_set_description"] = "Bejárat: %s, %s, %s",
|
||||
["interior_set_title"] = "Belső tér kiválasztva.",
|
||||
["interior_set_description"] = "Választott: %s",
|
||||
["ipl_title"] = "IPL belső terek",
|
||||
["types_title"] = "Belső tér típusok",
|
||||
["ipl_description"] = "Natív GTA Belső terek, készítette: R*",
|
||||
["shell_title"] = "Egyedi belső terek",
|
||||
["shell_description"] = "Álltalad készített belső terek",
|
||||
["cctv_settings"] = "CCTV Beállítások",
|
||||
["garage_settings"] = "Garázs Beállítások",
|
||||
["toggle_title"] = "Használat állítása",
|
||||
["toggle_description"] = "Jelenlegi státusz: %s",
|
||||
["cctv_set_title"] = "CCTV szög",
|
||||
["cctv_set_description"] = "Beállítja a kamera szögét a kamerák irányához",
|
||||
["back_description"] = "vissza az ingatlan készítéshez.",
|
||||
["garage_set_title"] = "Garázs pozítciója",
|
||||
["garage_set_description"] = "Állítsa be a garázs pozícióját.",
|
||||
["garage_textui"] = "Nyomj ~b~[E]~s~ hogy beállítsd a pozítciót",
|
||||
["cctv_textui_1"] = "Nyomj ~b~[E]~s~ hogy beállítsd a szöget",
|
||||
["cctv_textui_2"] = "Nyomj ~b~[E]~s~ hogy beállítsd a max jobb forgást",
|
||||
["cctv_textui_3"] = "Nyomj ~b~[E]~s~ hogy beállítsd a max bal forgást",
|
||||
["create_success"] = "Ingatlan elkészítve!",
|
||||
["missing_data"] = "Kérjük, töltse ki az összes szükséges adatot!",
|
||||
|
||||
-- Saving Translations
|
||||
["server_restart"] = "Szerver újraindítása",
|
||||
["server_shutdown"] = "Szerver leállítása",
|
||||
["manual_save"] = "Manuális mentés (%s álltal)",
|
||||
["resource_stop"] = "Erőforrás leállítása",
|
||||
["force_save"] = "Kényszerített mentés (%s álltal)",
|
||||
["interval_saving"] = "Intervallummentés"
|
||||
}
|
||||
218
resources/[esx_addons]/esx_property/locales/it.lua
Normal file
218
resources/[esx_addons]/esx_property/locales/it.lua
Normal file
@@ -0,0 +1,218 @@
|
||||
Locales['it'] = {
|
||||
--- CCTV Strings ------
|
||||
|
||||
["take_picture"] = "Scatta foto",
|
||||
["rot_left_right"] = "Sinistra/Destra",
|
||||
["rot_up_down"] = "Su/Giù",
|
||||
["zoom"] = "Zoom avanti/indietro",
|
||||
["zoom_level"] = "Livello zoom: %s %%",
|
||||
["night_vision"] = "Attiva/disattiva visione notturna",
|
||||
["clipboard"] = "Link copiato negli ~b~Appunti",
|
||||
["picture_taken"] = "Immagine scattata!",
|
||||
["please_wait"] = "Attendere prima di scattare un\'altra ~b~immagine",
|
||||
["exit"] = "Esci",
|
||||
|
||||
--- Furniture Strings ------
|
||||
|
||||
["height"] = "altezza",
|
||||
["rotate"] = "Rotazione",
|
||||
["place"] = "Posiziona mobili",
|
||||
["delete_furni"] = "Elimina",
|
||||
["confirm_buy"] = "Vuoi acquistare %s ?",
|
||||
["price"] = "Prezzo: $%s",
|
||||
["yes"] = "Sì",
|
||||
["no"] = "No",
|
||||
["action"] = "Tu %s ~b~%s~s~ !",
|
||||
["bought_furni"] = "Hai ~g~Comprato~s~ A ~b~%s~s~ !",
|
||||
["edited_furni"] = "Hai modificato ~b~%s~s~ !",
|
||||
["cannot_buy"] = "~r~Non puoi~s~ comprare questo!",
|
||||
["cannot_edit"] = "~r~Non puoi~s~ modificare questo!",
|
||||
["store_title"] = "Negozio - %s",
|
||||
["back"] = "Ritorno",
|
||||
["edit_title"] = "Modifica - %s",
|
||||
["move_title"] = "Sposta",
|
||||
["deleted_confirm"] = "Eliminazione di ~b~%s~s~!",
|
||||
["deleted_error"] = "Impossibile eliminare ~b~%s~s~!",
|
||||
["owned_furni"] = "Mobili di proprietà",
|
||||
["menu_stores"] = "Negozi di mobili",
|
||||
["menu_stores_desc"] = "Acquista mobili",
|
||||
["menu_reset"] = "Ripristina",
|
||||
["menu_reset_desc"] = "Cancella tutti i mobili",
|
||||
["menu_edit"] = "Modifica",
|
||||
["menu_edit_desc"] = "Sposta e/o elimina elementi di arredo",
|
||||
["furni_command"] = "mobili",
|
||||
["furni_command_desc"] = "(Proprietà ESX) Apri menu Arredamento",
|
||||
["furni_command_permission"] = "~r~Impossibile~s~ accedere a questo menu!",
|
||||
["furni_reset_success"] = "Reimposta mobili!",
|
||||
["furni_cannot_afford"] = "Non puoi permetterti di farlo!",
|
||||
["furni_reset_error"] = "~r~Impossibile~s~ reimpostare questa proprietà!",
|
||||
["furni_management"] = "Gestisci mobili",
|
||||
|
||||
--------- Key Strings ---------------
|
||||
|
||||
["you_granted"] = 'Ti sono state concesse le chiavi per ~b~%s~s~.',
|
||||
["already_has"] = "Questo giocatore ha già le chiavi!",
|
||||
["do_not_own"] = '~r~non~s~ possiedi questa proprietà.',
|
||||
["key_revoked"] = 'La tua chiave di accesso a ~b~%s~s~. È stato ~r~Revocato~s~',
|
||||
["no_keys"] = "Questo giocatore non ha le chiavi!",
|
||||
["nearby"] = "Giocatori nelle vicinanze",
|
||||
["gave_key"] = "Consegna chiavi a %s!",
|
||||
["key_cannot_give"] = "Non puoi dare a questo giocatore una ~r~chiave",
|
||||
["remove_title"] = "Rimuovi chiavi dal lettore",
|
||||
["key_revoke_success"] = "Revoca chiavi da ~b~%s~s~.",
|
||||
["key_revoke_error"] = "Non puoi ~b~rimuovere~s~ una ~r~chiave~s~ da questa persona",
|
||||
["key_management"] = "Gestione chiavi",
|
||||
["key_management_desc"] = "Controllo accesso proprietà.",
|
||||
["give_keys"] = "Dai le chiavi",
|
||||
["remove_keys"] = "Rimuovi chiavi",
|
||||
|
||||
|
||||
--------- Real Estate Strings ---------------
|
||||
["office_blip"] = "%s Ufficio",
|
||||
["actions"] = "Azioni immobiliari",
|
||||
["property_create"] = "Crea proprietà",
|
||||
["property_manage"] = "Gestisci proprietà",
|
||||
["realestate_command"] = "realestatequickmenu",
|
||||
["realestate_command_desc"] = "(Proprietà ESX) Apri Azioni rapide immobiliari",
|
||||
["enter_office"] = "~b~Entrando in~s~ Ufficio.",
|
||||
["enter_office_error"] = "~r~Non puoi~s~ entrare in ufficio!",
|
||||
["exit_office"] = "~b~Esco~s~ dall\'ufficio.",
|
||||
["exit_office_error"] = "~r~Non puoi~s~ uscire dall\'ufficio!",
|
||||
["realestate_textui"] = "Premi ~b~[E]~s~ per accedere a ~b~%s",
|
||||
|
||||
------------Command Strings-----------------------
|
||||
["refresh_name"] = "proprietà:refresh",
|
||||
["refresh_desc"] = "Aggiorna allo stato di avvio del server",
|
||||
["save_name"] = "proprietà:salva",
|
||||
["save_desc"] = "Forza il salvataggio delle proprietà",
|
||||
["create_name"] = "proprietà:crea",
|
||||
["create_desc"] = "Crea una nuova proprietà",
|
||||
["admin_name"] = "proprietà:amministratore",
|
||||
["admin_desc"] = "Gestisci/visualizza tutte le proprietà",
|
||||
|
||||
|
||||
---------- Property Actions Menu -------------------------
|
||||
|
||||
["knocking"] = "Qualcuno sta ~b~bussando~s~ alla porta.",
|
||||
["name_edit"] = "Modifica nome proprietà",
|
||||
["name"] = "Nome",
|
||||
["confirm"] = "Conferma",
|
||||
["name_edit_success"] = "Hai impostato il nome della proprietà su ~b~%s~s~.",
|
||||
["name_edit_error"] = "Non puoi impostare il nome della proprietà su ~r~%s~s~.",
|
||||
["door_locked"] = "Porta: chiusa",
|
||||
["door_unlocked"] = "Porta: Sbloccata",
|
||||
["name_manage"] = "Gestisci nome",
|
||||
["name_manage_desc"] = "Imposta il nome della proprietà.",
|
||||
["sell_title"] = "Vendi",
|
||||
["sell_desc"] = "Vendi questa proprietà per $%s",
|
||||
["raid_title"] = "Assalto",
|
||||
["raid_desc"] = "Forza l\'accesso alla proprietà.",
|
||||
["cctv_title"] = "TVCC",
|
||||
["cctv_desc"] = "Controlla la telecamera CCTV.",
|
||||
["inventory_title"] = "Inventario",
|
||||
["inventory_desc"] = "Cambia posizione di archiviazione proprietà.",
|
||||
["wardrobe_title"] = "Armadio",
|
||||
["wardrobe_desc"] = "Cambia posizione del guardaroba della proprietà.",
|
||||
["furniture_title"] = "Mobili",
|
||||
["furniture_desc"] = "Cambia posizione dell\'arredamento della proprietà.",
|
||||
["enter_title"] = "Invio",
|
||||
["knock_title"] = "Bussa alla porta",
|
||||
["buy_title"] = "Acquista",
|
||||
["buy_desc"] = "Compra questa proprietà per $%s",
|
||||
["sellplayer_title"] = "Vendi al giocatore",
|
||||
["sellplayer_desc"] = "Vendi questa proprietà per $%s",
|
||||
["view_title"] = "Anteprima interni",
|
||||
["exit_title"] = "Esci",
|
||||
["property_editing_error"] = "Stai attualmente modificando la proprietà.",
|
||||
["unlock_error"] = "Non puoi ~b~sbloccare~s~ questa proprietà",
|
||||
["lock_error"] = "Non puoi ~b~Bloccare~s~ questa proprietà",
|
||||
["prep_raid"] = "~b~Preparazione~s~ Raid!",
|
||||
["raiding"] = "Raiding...",
|
||||
["cancel_raiding"] = "~r~Raid~s~ annullato!",
|
||||
["cannot_raid"] = "Non puoi ~b~razziare~s~ questa proprietà.",
|
||||
["storage_pos_textui"] = "Premi ~b~[G]~s~ per impostare la posizione di archiviazione",
|
||||
["storage_pos_success"] = "~b~Storage~s~ Posizione impostata.",
|
||||
["storage_pos_error"] = "~r~Impossibile~s~ impostare la posizione ~b~Memoria~s~.",
|
||||
["wardrobe_pos_textui"] = "Premi ~b~[G]~s~ per impostare la posizione dell\'armadio",
|
||||
["wardrobe_pos_success"] = "~b~Wardrobe~s~ Posizione impostata.",
|
||||
["wardrobe_pos_error"] = "~r~Impossibile~s~ impostare la ~b~posizione dell\'armadio~s~.",
|
||||
["please_finish"] = "Completa l\'impostazione della ~b~%s~s~ posizione",
|
||||
["cannot_afford"] = "Non puoi acquistare questa proprietà!",
|
||||
["select_player"] = "Seleziona giocatore",
|
||||
["cannot_sell"] = "Impossibile vendere a questo giocatore!",
|
||||
["knock_on_door"] = "Bussano alla porta...",
|
||||
["nobody_home"] = "Sembra che non ci sia nessuno in casa...",
|
||||
|
||||
---------- General Strings ----------------
|
||||
|
||||
["enabled"] = "Abilitato",
|
||||
["disabled"] = "Disabilitato",
|
||||
["exiting"] = "Esci dalla proprietà...",
|
||||
["entering"] = "Inserimento proprietà...",
|
||||
["shell_disabled"] ="Questo interno utilizza uno shell, che è disabilitato!",
|
||||
["access_textui"] = "Premi ~b~[E]~s~ per accedere a ~b~%s",
|
||||
["raid_notify_error"] = "Hai bisogno di ~b~ %sx %s~s~ per poter invadere la casa!",
|
||||
["raid_notify_success"] = "La tua proprietà sta venendo ~b~invasa!",
|
||||
|
||||
--------------- Garage Strings --------------
|
||||
|
||||
["store_success"] = "Veicolo ~b~Memorizzato!",
|
||||
["store_error"] = "Non puoi memorizzare questo veicolo!",
|
||||
["property_garage"] = "Garage di proprietà",
|
||||
["retriving_notify"] = "Recupero ~b~%s~s~ ...",
|
||||
["cannot_access"] = "Non puoi accedere a questo garage!",
|
||||
["store_textui"] = "Premi ~b~[E]~s~ per memorizzare ~b~%s",
|
||||
["garage_not_enabled"] = 'Garage non abilitato su questa proprietà.',
|
||||
["cannot_access_property"] = '~r~Impossibile~s~ accedere a questa proprietà.',
|
||||
|
||||
|
||||
----------------- Creation Menu Strings ----------------
|
||||
|
||||
["menu_title"] = "Creazione proprietà",
|
||||
["element_title1"] = "Numero civico",
|
||||
["element_description1"] = "Imposta il numero civico della proprietà.",
|
||||
["element_title2"] = "Prezzo",
|
||||
["element_description2"] = "Imposta il prezzo della proprietà.",
|
||||
["element_title3"] = "Interno",
|
||||
["element_description3"] = "Seleziona un interno per la proprietà",
|
||||
["element_title4"] = "Rimessa",
|
||||
["element_description4"] = "(Facoltativo) Gestisci impostazioni Garage",
|
||||
["element_title5"] = "CCTV",
|
||||
["element_description5"] = "(Facoltativo) Gestisci impostazioni TVCC",
|
||||
["element_title6"] = "Ingresso",
|
||||
["element_description6"] = "Imposta la posizione dell\'ingresso della proprietà.",
|
||||
["element_create_title"] = "Crea proprietà",
|
||||
["element_create_desc_1"] = "Si prega di compilare tutti gli input obbligatori!",
|
||||
["entrance_set_title"] = "Ingresso impostato.",
|
||||
["entrance_set_description"] = "Ingresso: %s, %s, %s",
|
||||
["interior_set_title"] = "Interno selezionato.",
|
||||
["interior_set_description"] = "Selezionato: %s",
|
||||
["ipl_title"] = "Interni IPL",
|
||||
["types_title"] = "Tipi interni",
|
||||
["ipl_description"] = "Interni nativi di GTA, realizzati da R*",
|
||||
["shell_title"] = "Interni personalizzati",
|
||||
["shell_description"] = "Interni personalizzati, realizzati da te",
|
||||
["cctv_settings"] = "Impostazioni CCTV",
|
||||
["garage_settings"] = "Impostazioni garage",
|
||||
["toggle_title"] = "Attiva/disattiva utilizzo",
|
||||
["toggle_description"] = "Stato attuale: %s",
|
||||
["cctv_set_title"] = "Imposta angolo TVCC",
|
||||
["cctv_set_description"] = "Imposta l\'angolazione della telecamera sulla direzione della telecamera",
|
||||
["back_description"] = "ritorna alla creazione della proprietà.",
|
||||
["garage_set_title"] = "Imposta posizione garage",
|
||||
["garage_set_description"] = "Imposta la posizione del garage della proprietà.",
|
||||
["garage_textui"] = "Premi ~b~[E]~s~ per impostare la posizione",
|
||||
["cctv_textui_1"] = "Premi ~b~[E]~s~ per impostare l\'angolo",
|
||||
["cctv_textui_2"] = "Premi ~b~[E]~s~ per impostare la massima rotazione a destra",
|
||||
["cctv_textui_3"] = "Premi ~b~[E]~s~ per impostare la rotazione sinistra massima",
|
||||
["create_success"] = "Proprietà creata!",
|
||||
["missing_data"] = "Si prega di compilare tutti gli input obbligatori!",
|
||||
|
||||
-- Saving Translations
|
||||
["server_restart"] = "Riavvio del server",
|
||||
["server_shutdown"] = "Arresto del server",
|
||||
["manual_save"] = "Salvataggio manuale (richiesto da %s)",
|
||||
["resource_stop"] = "Arresto risorsa",
|
||||
["force_save"] = "Forza salvataggio (richiesto da %s)",
|
||||
["interval_saving"] = "Salvataggio a intervalli"
|
||||
}
|
||||
218
resources/[esx_addons]/esx_property/locales/nl.lua
Normal file
218
resources/[esx_addons]/esx_property/locales/nl.lua
Normal file
@@ -0,0 +1,218 @@
|
||||
Locales['nl'] = {
|
||||
--- CCTV Strings ------
|
||||
|
||||
["take_picture"] = "Neem foto",
|
||||
["rot_left_right"] = "Links/Rechts",
|
||||
["rot_up_down"] = "Omhoog/Omblaag",
|
||||
["zoom"] = "Zoom In/Uit",
|
||||
["zoom_level"] = "Zoom Level: %s %",
|
||||
["night_vision"] = "Nachtcamera aan / uit zetten",
|
||||
["clipboard"] = "Link gekopierd naar ~b~klembord",
|
||||
["picture_taken"] = "Foto genomen!",
|
||||
["please_wait"] = "Wacht even voordat je een nieuwe ~b~Foto neemt",
|
||||
["exit"] = "Sluit",
|
||||
|
||||
--- Furniture Strings ------
|
||||
|
||||
["height"] = "Hoogte",
|
||||
["rotate"] = "Rotatie",
|
||||
["place"] = "Plaats Meubel",
|
||||
["delete_furni"] = "Verwijder",
|
||||
["confirm_buy"] = "Wil je %s kopen?",
|
||||
["price"] = "Prijs: €&s",
|
||||
["yes"] = "Ja",
|
||||
["no"] = "Nee",
|
||||
["action"] = "Jij %s ~b~%s~s~ !",
|
||||
["bought_furni"] = "Je hebt een ~b~%s~s~ gekocht!",
|
||||
["edited_furni"] = "Je hebt ~b~%s~s~ aangepast!",
|
||||
["cannot_buy"] = "Je kan ~r~dit~s~ niet kopen!",
|
||||
["cannot_edit"] = "Je ~r~kan dit niet~s~ aanpassen!",
|
||||
["store_title"] = "Winkel - %s",
|
||||
["back"] = "Ga terug",
|
||||
["edit_title"] = "Aanpassen - %s",
|
||||
["move_title"] = "Verplaats",
|
||||
["deleted_confirm"] = "Verwijderen van ~b~%s~s~!",
|
||||
["deleted_error"] = "Kan ~b~%s~s~ niet verwijderen!",
|
||||
["owned_furni"] = "Mijn meubels",
|
||||
["menu_stores"] = "Meubel winkels",
|
||||
["menu_stores_desc"] = "Koop meubels",
|
||||
["menu_reset"] = "Reset",
|
||||
["menu_reset_desc"] = "Verwijder alle meubels",
|
||||
["menu_edit"] = "Aanpassen",
|
||||
["menu_edit_desc"] = "Verplaats en/of verwijder meubels",
|
||||
["furni_command"] = "meubel",
|
||||
["furni_command_desc"] = "(ESX Property) Open meubel menu",
|
||||
["furni_command_permission"] = "Je kan ~r~ dit menu ~s~ niet betreden!",
|
||||
["furni_reset_success"] = "Meubel Reset!",
|
||||
["furni_cannot_afford"] = "Je kan dit niet betalen!",
|
||||
["furni_reset_error"] = "Je kent ~r~ dit eigendom ~s~ niet resetten !",
|
||||
["furni_management"] = "Beheer meubels",
|
||||
|
||||
--------- Key Strings ---------------
|
||||
|
||||
["you_granted"] = 'Je hebt de sleutels van ~b~%s~s~ gekregen.',
|
||||
["already_has"] = "Deze speler heeft al sleutels!",
|
||||
["do_not_own"] = 'Dit is ~r~niet~s~ jouw eigendom.',
|
||||
["key_revoked"] = 'Je sleutel van ~b~%s~s~. is ~r~afgenomen~s~',
|
||||
["no_keys"] = "Deze speler heeft geen sleutels!",
|
||||
["nearby"] = "Spelers Dichtbij",
|
||||
["gave_key"] = "Je hebt een sleutel gegeven aan %s!",
|
||||
["key_cannot_give"] = "Je kan deze speler geen ~r~sleutel~s~ geven.",
|
||||
["remove_title"] = "Neem sleutels van speler",
|
||||
["key_revoke_success"] = "Sleutels afgenomen van~b~%s~s~.",
|
||||
["key_revoke_error"] = "Je kan de ~r~sleutels~s~ van deze speler ~b~niet afnemen~s~",
|
||||
["key_management"] = "Sleutel Management",
|
||||
["key_management_desc"] = "Beheer uitgegeven sleutels.",
|
||||
["give_keys"] = "Geef sleutels",
|
||||
["remove_keys"] = "Verwijder sleutels",
|
||||
|
||||
|
||||
--------- Real Estate Strings ---------------
|
||||
["office_blip"] = "%s Kantoor",
|
||||
["actions"] = "Vastgoed acties",
|
||||
["property_create"] = "Creeër kantoor",
|
||||
["property_manage"] = "Beheer kantoor",
|
||||
["realestate_command"] = "vastgoedsnelmenu",
|
||||
["realestate_command_desc"] = "(ESX Property) Open Vastgoed snelle acties",
|
||||
["enter_office"] = "Betreedt ~b~ het kantoor ~s~.",
|
||||
["enter_office_error"] = "Je kan dit kantoor ~r~niet~s~ betreden!",
|
||||
["exit_office"] = "~b~Verlaat~s~ het kantoor.",
|
||||
["exit_office_error"] = "Je kan dit kantoor ~r~niet~s~ verlaten!",
|
||||
["realestate_textui"] = "Klik op ~b~[E]~s~ om naar binnen te gaan bij ~b~%s",
|
||||
|
||||
------------Command Strings-----------------------
|
||||
["refresh_name"] = "property:refresh",
|
||||
["refresh_desc"] = "Ververs alle eigendommen.",
|
||||
["save_name"] = "property:save",
|
||||
["save_desc"] = "Bewaar alle eigendommen",
|
||||
["create_name"] = "property:create",
|
||||
["create_desc"] = "Maak een nieuw eigendom aan",
|
||||
["admin_name"] = "property:admin",
|
||||
["admin_desc"] = "Beheer/bekijk alle eigendommen",
|
||||
|
||||
|
||||
---------- Property Actions Menu -------------------------
|
||||
|
||||
["knocking"] = "Iemand ~b~klopt~s~ op de deur.",
|
||||
["name_edit"] = "Verander eigendom naam",
|
||||
["name"] = "Naam",
|
||||
["confirm"] = "Bevestig",
|
||||
["name_edit_success"] = "Je hebt de naam van dit eigendom veranderd naar ~b~%s~s~.",
|
||||
["name_edit_error"] = "Je kan dit eigendom niet deze naam geven ~r~%s~s~.",
|
||||
["door_locked"] = "Deur: Vergrendeld",
|
||||
["door_unlocked"] = "Deur: Ontgrendeld",
|
||||
["name_manage"] = "Beheer naam",
|
||||
["name_manage_desc"] = "Verander de naam van het gebouw.",
|
||||
["sell_title"] = "Verkoop",
|
||||
["sell_desc"] = "Verkoop dit gebouw voor €%s",
|
||||
["raid_title"] = "Binnenvallen",
|
||||
["raid_desc"] = "Forceer jezelf naar binnen.",
|
||||
["cctv_title"] = "Camera systeem",
|
||||
["cctv_desc"] = "Check het camera systeem.",
|
||||
["inventory_title"] = "Inventaris",
|
||||
["inventory_desc"] = "Verander positie van de inventaris.",
|
||||
["wardrobe_title"] = "Kledingkast",
|
||||
["wardrobe_desc"] = "Verander de positie van de kledingkast.",
|
||||
["furniture_title"] = "Meubels",
|
||||
["furniture_desc"] = "Verander de positie van een meubel",
|
||||
["enter_title"] = "Ga naar binnen",
|
||||
["knock_title"] = "Klop op de deur",
|
||||
["buy_title"] = "Koop",
|
||||
["buy_desc"] = "Koop dit gebouw voor €%s",
|
||||
["sellplayer_title"] = "Verkoop aan speler",
|
||||
["sellplayer_desc"] = "Verkoop dit gebouw voor €%s",
|
||||
["view_title"] = "Bekijk Interieur",
|
||||
["exit_title"] = "Verlaat",
|
||||
["property_editing_error"] = "Je bent momenteel dit gebouw aan het aanpassen.",
|
||||
["unlock_error"] = "Je kan dit gebouw niet ~b~ontgrendelen",
|
||||
["lock_error"] = "Je kan dit gebouw niet ~b~vergrendelen",
|
||||
["prep_raid"] = "Deur forceren ~b~voorbereiden~s~!",
|
||||
["raiding"] = "Deur forceren...",
|
||||
["cancel_raiding"] = "Deur forceren ~r~geannuleerd~s~!",
|
||||
["cannot_raid"] = "Je kunt dit eigendom niet ~r~ binnenvallen ~s~.",
|
||||
["storage_pos_textui"] = "Klik op ~b~[G]~s~ om de inventaris te plaatsen",
|
||||
["storage_pos_success"] = "~b~Inventaris~s~ positie veranderd.",
|
||||
["storage_pos_error"] = "De positie van de ~b~inventaris kan niet~s~ worden verplaatst.",
|
||||
["wardrobe_pos_textui"] = "Klik op ~b~[G]~s~ om de kledingkast te plaatsen",
|
||||
["wardrobe_pos_success"] = "~b~Kledingkast~s~ positie veranderd.",
|
||||
["wardrobe_pos_error"] = "De ~b~kledingkast~s~ positie ~r~kan niet~s~ veranderd worden.",
|
||||
["please_finish"] = "Maak het plaatsen van ~b~%s~s~ eerst af.",
|
||||
["cannot_afford"] = "Je kan dit gebouw niet kopen!",
|
||||
["select_player"] = "Selecteer speler",
|
||||
["cannot_sell"] = "Kan niet aan deze speler verkopen!",
|
||||
["knock_on_door"] = "Op deur kloppen...",
|
||||
["nobody_home"] = "Het lijkt erop dat er niemand thuis is...",
|
||||
|
||||
---------- General Strings ----------------
|
||||
|
||||
["enabled"] = "Aan",
|
||||
["disabled"] = "Uit",
|
||||
["exiting"] = "Verlaat gebouw...",
|
||||
["entering"] = "Gebouw binnen gaan...",
|
||||
["shell_disabled"] ="Dit Interieur gebruikt Shells, en die staan uit!",
|
||||
["access_textui"] = "Klik op ~b~[E]~s~ om ~b~%s~s~ te betreden",
|
||||
["raid_notify_error"] = "Je hebt ~b~ %sx %s~s~ nodig om de deur te forceren!",
|
||||
["raid_notify_success"] = "Iemand is je eigendom aan het binnenvallen!",
|
||||
|
||||
--------------- Garage Strings --------------
|
||||
|
||||
["store_success"] = "Voertuig ~b~Opgeslagen!",
|
||||
["store_error"] = "Je kan dit voertuig niet opslaan!",
|
||||
["property_garage"] = "Gebouw garage",
|
||||
["retriving_notify"] = "~b~%s~s~ ophalen ...",
|
||||
["cannot_access"] = "Je kan deze garage niet gebruiken!",
|
||||
["store_textui"] = "Klik op ~b~[E]~s~ om ~b~%s~s~ op te slaan.",
|
||||
["garage_not_enabled"] = 'De garage is niet actief op dit eigendom.',
|
||||
["cannot_access_property"] = 'Je kan ~r~ dit eigendom ~s~ niet betreden.',
|
||||
|
||||
|
||||
----------------- Creation Menu Strings ----------------
|
||||
|
||||
["menu_title"] = "Eigendom creatie",
|
||||
["element_title1"] = "Straat nummer",
|
||||
["element_description1"] = "Kies het straat nummer van dit eigendom.",
|
||||
["element_title2"] = "Prijs",
|
||||
["element_description2"] = "Kies de prijs van dit eigendom.",
|
||||
["element_title3"] = "Interieur",
|
||||
["element_description3"] = "Kies een interieur voor dit eigendom.",
|
||||
["element_title4"] = "Garage",
|
||||
["element_description4"] = "(Optional) Beheer Garage instellingen",
|
||||
["element_title5"] = "Camera systeem",
|
||||
["element_description5"] = "(Optional) Beheer Camera systeem instellingen",
|
||||
["element_title6"] = "Ingang",
|
||||
["element_description6"] = "Kies de locatie voor de ingang van dit eigendom.",
|
||||
["element_create_title"] = "Creeër gebouw",
|
||||
["element_create_desc_1"] = "Vul alle velden in!",
|
||||
["entrance_set_title"] = "Ingang gekozen.",
|
||||
["entrance_set_description"] = "Ingang: %s, %s, %s",
|
||||
["interior_set_title"] = "Interieur geselecteerd.",
|
||||
["interior_set_description"] = "Geselecteerd: %s",
|
||||
["ipl_title"] = "IPL Interieuren",
|
||||
["types_title"] = "Interieur Types",
|
||||
["ipl_description"] = "Orginele GTA Interiors, Gemaakt door R*",
|
||||
["shell_title"] = "Custom Interieuren",
|
||||
["shell_description"] = "Custom Interieuren, gemaakt door jou",
|
||||
["cctv_settings"] = "Camera systeem instellingen",
|
||||
["garage_settings"] = "Garage instellingen",
|
||||
["toggle_title"] = "Schakel gebruik aan/uit",
|
||||
["toggle_description"] = "Momentele status: %s",
|
||||
["cctv_set_title"] = "Kies hoek",
|
||||
["cctv_set_description"] = "Past de camera hoek aan naar waar jou camera naar richt.",
|
||||
["back_description"] = "ga terug naar gebouw creatie.",
|
||||
["garage_set_title"] = "Garage positie",
|
||||
["garage_set_description"] = "Kies de positie van de garage.",
|
||||
["garage_textui"] = "Klik op ~b~[E]~s~ om de locatie te kiezen",
|
||||
["cctv_textui_1"] = "Klik op ~b~[E]~s~ om de hoek te kiezen",
|
||||
["cctv_textui_2"] = "Klik op ~b~[E]~s~ om maximale rechtse draai te kiezen",
|
||||
["cctv_textui_3"] = "Klik op ~b~[E]~s~ om maximale linkse draai te kiezen",
|
||||
["create_success"] = "Gebouw gemaakt!",
|
||||
["missing_data"] = "Vul alle velden in!",
|
||||
|
||||
-- Saving Translations
|
||||
["server_restart"] = "Server word opnieuw opgestart",
|
||||
["server_shutdown"] = "Server gaat uit",
|
||||
["manual_save"] = "Handmatig opgeslagen (Aangevraagd door %s)",
|
||||
["resource_stop"] = "Resource Stopping",
|
||||
["force_save"] = "Opslaan geforceerd (Aangevraagd door %s)",
|
||||
["interval_saving"] = "Tussentijds opslaan"
|
||||
}
|
||||
221
resources/[esx_addons]/esx_property/locales/sr.lua
Normal file
221
resources/[esx_addons]/esx_property/locales/sr.lua
Normal file
@@ -0,0 +1,221 @@
|
||||
Locales['sr'] = {
|
||||
--- CCTV Strings ------
|
||||
|
||||
["take_picture"] = "Uslikaj",
|
||||
["rot_left_right"] = "Levo/Desno",
|
||||
["rot_up_down"] = "Gore/Dole",
|
||||
["zoom"] = "Zoom",
|
||||
["zoom_level"] = "Zoom Level: %s %%",
|
||||
["night_vision"] = "Uključi Night Vision",
|
||||
["clipboard"] = "Link kopiran na ~b~Cipboard",
|
||||
["picture_taken"] = "Uslikano!",
|
||||
["please_wait"] = "Morate sačekati pre ponovnog ~b~slikanja",
|
||||
["exit"] = "Izađi",
|
||||
|
||||
--- Furniture Strings ------
|
||||
|
||||
["height"] = "Visina",
|
||||
["rotate"] = "Rotacija",
|
||||
["place"] = "Postavi nameštaj",
|
||||
["delete_furni"] = "Obriši",
|
||||
["confirm_buy"] = "Da li želite kupiti %s ?",
|
||||
["price"] = "Cena: $%s",
|
||||
["yes"] = "Da",
|
||||
["no"] = "Ne",
|
||||
["action"] = "Vi %s ~b~%s~s~ !",
|
||||
["bought_furni"] = "Vi ste ~g~kupili~s~ ~b~%s~s~ !",
|
||||
["edited_furni"] = "Vi ste izmenili ~b~%s~s~ !",
|
||||
["cannot_buy"] = "Vi ~r~ne možete~s~ kupiti ovo!",
|
||||
["cannot_edit"] = "Vi ~r~ne možete~s~ izmeniti ovo!",
|
||||
["store_title"] = "Prodavnica - %s",
|
||||
["back"] = "Nazad",
|
||||
["edit_title"] = "Izmenjivanje - %s",
|
||||
["move_title"] = "Pomeri",
|
||||
["deleted_confirm"] = "Brisanje ~b~%s~s~!",
|
||||
["deleted_error"] = "Ne možete obrisati ~b~%s~s~!",
|
||||
["owned_furni"] = "Kupljen nameštaj",
|
||||
["menu_stores"] = "Prodavnica nameštaja",
|
||||
["menu_stores_desc"] = "Kupi nameštaj",
|
||||
["menu_reset"] = "Resetuj",
|
||||
["menu_reset_desc"] = "Obriši sav nameštaj",
|
||||
["menu_edit"] = "Izmeni",
|
||||
["menu_edit_desc"] = "Pomeri i/ili obriši namestaj",
|
||||
["furni_command"] = "namestaj",
|
||||
["furni_command_desc"] = "(ESX Imovina) Otvori meni nameštaja",
|
||||
["furni_command_permission"] = "Vi ~r~ne možete~s~ pristupiti tom meniju!",
|
||||
["furni_reset_success"] = "Nameštaj resetovan!",
|
||||
["furni_cannot_afford"] = "Ne možete da priuštite to!",
|
||||
["furni_reset_error"] = "Vi ~r~ne možete~s~ resetovati ovu imovinu!",
|
||||
["furni_management"] = "Upravljanje nameštajem",
|
||||
|
||||
--------- Key Strings ---------------
|
||||
|
||||
["you_granted"] = 'Dobili ste ključeve za ~b~%s~s~.',
|
||||
["already_has"] = "Taj igrač već poseduje ključeve!",
|
||||
["do_not_own"] = 'Vi ~r~ne posedujete~s~ ovu imovinu.',
|
||||
["key_revoked"] = 'Vaš ključ od ~b~%s~s~. Je ~r~uklonjen~s~',
|
||||
["no_keys"] = "Ovaj igrač nema ključeve!",
|
||||
["nearby"] = "Ljudi u blizini",
|
||||
["gave_key"] = "Davanje ključeva %s!",
|
||||
["key_cannot_give"] = "Ne možete dati ~r~ključ~s~ ovom igraču",
|
||||
["remove_title"] = "Oduzmite ključeve igraču",
|
||||
["key_revoke_success"] = "Oduzimanje ključeva ~b~%s~s~.",
|
||||
["key_revoke_error"] = "Vi ne možete ~b~ukloniti~s~ ~r~ključ~s~ ovoj osobi",
|
||||
["key_management"] = "Upravljanje ključevima",
|
||||
["key_management_desc"] = "Kontrolišite pristup imovini.",
|
||||
["give_keys"] = "Daj ključ",
|
||||
["remove_keys"] = "Oduzmi ključ",
|
||||
|
||||
|
||||
--------- Real Estate Strings ---------------
|
||||
|
||||
["office_blip"] = "%s Kancelarija",
|
||||
["actions"] = "Akcije imovine",
|
||||
["property_create"] = "Napravite imovinu",
|
||||
["property_manage"] = "Upravljajte imovinom",
|
||||
["realestate_command"] = "realestatequickmenu",
|
||||
["realestate_command_desc"] = "(ESX Imovina) Otvorite brze akcije za imovinu",
|
||||
["enter_office"] = "~b~Ulaženje~s~ u kancelariju.",
|
||||
["enter_office_error"] = "Vi ~r~ne možete~s~ ući u kancelariju!",
|
||||
["exit_office"] = "~b~Izlaženje~s~ iz kancelarije.",
|
||||
["exit_office_error"] = "Vi ~r~ne možete~s~ izaći iz kancelarije!",
|
||||
["realestate_textui"] = "Pritisni ~b~[E]~s~ da pristupiš ~b~%s",
|
||||
|
||||
------------Command Strings-----------------------
|
||||
|
||||
["refresh_name"] = "property:refresh",
|
||||
["refresh_desc"] = "Osvežite na početno stanje",
|
||||
["save_name"] = "property:save",
|
||||
["save_desc"] = "Forsirajte čuvanje imovina",
|
||||
["create_name"] = "property:create",
|
||||
["create_desc"] = "Napravite novu imovinu",
|
||||
["admin_name"] = "property:admin",
|
||||
["admin_desc"] = "Upravljajte/pregledajte sve imovine",
|
||||
|
||||
|
||||
---------- Property Actions Menu -------------------------
|
||||
|
||||
["knocking"] = "Neko ~b~kuca~s~ na vrata.",
|
||||
["name_edit"] = "Izmenite ime imovine",
|
||||
["name"] = "Ime",
|
||||
["confirm"] = "Potvrdi",
|
||||
["name_edit_success"] = "Promenili ste ime imovine u ~b~%s~s~.",
|
||||
["name_edit_error"] = "Ne možete promeniti ime imovine u ~r~%s~s~.",
|
||||
["door_locked"] = "Vrata: Zaključana",
|
||||
["door_unlocked"] = "Vrata: Otključana",
|
||||
["name_manage"] = "Upravljajte imenom",
|
||||
["name_manage_desc"] = "Postavite ime imovine.",
|
||||
["sell_title"] = "Prodaj",
|
||||
["sell_desc"] = "Prodajte imovinu za $%s",
|
||||
["raid_title"] = "Provali",
|
||||
["raid_desc"] = "Nasilno provalite u imovinu.",
|
||||
["cctv_title"] = "CCTV",
|
||||
["cctv_desc"] = "Proverite CCTV kamere.",
|
||||
["inventory_title"] = "Inventar",
|
||||
["inventory_desc"] = "Promenite poziciju od skladišta imovine.",
|
||||
["wardrobe_title"] = "Svlačionica",
|
||||
["wardrobe_desc"] = "Promenite poziciju od svlačionice imovine.",
|
||||
["furniture_title"] = "Nameštaj",
|
||||
["furniture_desc"] = "Promenite poziciju od nameštaja imovine.",
|
||||
["enter_title"] = "Ulazak",
|
||||
["knock_title"] = "Pokucajte na vrata",
|
||||
["buy_title"] = "Kupi",
|
||||
["buy_desc"] = "Kupite ovu imovinu za $%s",
|
||||
["sellplayer_title"] = "Prodaja igraču",
|
||||
["sellplayer_desc"] = "Prodajte ovu imovinu za $%s",
|
||||
["view_title"] = "Pregledajte enterijer",
|
||||
["exit_title"] = "Izlazak",
|
||||
["property_editing_error"] = "Trenutno uređujete imovinu.",
|
||||
["unlock_error"] = "Vi ne možete ~b~otključati~s~ ovu imovinu",
|
||||
["lock_error"] = "Vi ne možete ~b~zaključati~s~ ovu imovinu",
|
||||
["prep_raid"] = "~b~Pripremanje~s~ provale!",
|
||||
["raiding"] = "Provaljivanje...",
|
||||
["cancel_raiding"] = "~r~Provala~s~ prekinuta!",
|
||||
["cannot_raid"] = "Vi ne možete ~b~provaliti~s~ u ovu imovinu.",
|
||||
["storage_pos_textui"] = "Pritisni ~b~[G]~s~ da postaviš poziciju skladišta",
|
||||
["storage_pos_success"] = "Pozicija ~b~skladišta~s~ postavljena.",
|
||||
["storage_pos_error"] = "~r~Ne možete~s~ postaviti poziciju ~b~skladista~s~.",
|
||||
["wardrobe_pos_textui"] = "Pritisni ~b~[G]~s~ da postavis poziciju svlacionice",
|
||||
["wardrobe_pos_success"] = "Pozicija ~b~svlacionice~s~ postavljena.",
|
||||
["wardrobe_pos_error"] = "~r~Ne možete~s~ postaviti poziciju ~b~svlačionice~s~.",
|
||||
["please_finish"] = "Molimo završite podešavanje ~b~%s~s~",
|
||||
["cannot_afford"] = "Ne možete kupiti ovu imovinu!",
|
||||
["select_player"] = "Izaberite igrača",
|
||||
["cannot_sell"] = "Ne možete prodati ovom igraču!",
|
||||
["knock_on_door"] = "Kucanje...",
|
||||
["nobody_home"] = "Izgleda da nikoga nema kući...",
|
||||
|
||||
---------- General Strings ----------------
|
||||
|
||||
["enabled"] = "Uključeno",
|
||||
["disabled"] = "Isključeno",
|
||||
["exiting"] = "Napuštanje imovine...",
|
||||
["entering"] = "Ulaženje u imovinu...",
|
||||
["shell_disabled"] ="Ovaj enterijer koristi shell-ove, koji su isključeni!",
|
||||
["access_textui"] = "Pritisni ~b~[E]~s~ da pristupiš ~b~%s",
|
||||
["raid_notify_error"] = "Treba vam ~b~ %sx %s~s~ da bi provalili!",
|
||||
["raid_notify_success"] = "Neko je upravo ~b~provalio~s~ u Vašu imovinu!",
|
||||
|
||||
--------------- Garage Strings --------------
|
||||
|
||||
["store_success"] = "Vozilo ~b~parkirano!",
|
||||
["store_error"] = "Ne možete parkirati to vozilo!",
|
||||
["property_garage"] = "Garaža imovine",
|
||||
["retriving_notify"] = "Preuzimanje ~b~%s~s~ ...",
|
||||
["cannot_access"] = "Ne možete pristupiti ovoj garaži!",
|
||||
["store_textui"] = "Pritisni ~b~[E]~s~ da parkiraš ~b~%s",
|
||||
["garage_not_enabled"] = 'Ova imovina ne poseduje garažu.',
|
||||
["cannot_access_property"] = 'Vi ~r~ne možete~s~ pristupiti ovoj imovini.',
|
||||
|
||||
|
||||
----------------- Creation Menu Strings ----------------
|
||||
|
||||
["menu_title"] = "Pravljenje imovine",
|
||||
["element_title1"] = "Broj ulice",
|
||||
["element_description1"] = "Postavite broj ulice imovine.",
|
||||
["element_title2"] = "Cena",
|
||||
["element_description2"] = "Postavite cenu imovine.",
|
||||
["element_title3"] = "Enterijer",
|
||||
["element_description3"] = "Izaberite enterijer za imovinu",
|
||||
["element_title4"] = "Garaža",
|
||||
["element_description4"] = "(Opcionalno) Upravljajte garažom",
|
||||
["element_title5"] = "CCTV",
|
||||
["element_description5"] = "(Opcionalno) Upravljajte CCTV",
|
||||
["element_title6"] = "Ulaz",
|
||||
["element_description6"] = "Postavite lokaciju ulaska.",
|
||||
["element_create_title"] = "Napravite imovinu",
|
||||
["element_create_desc_1"] = "Morate popuniti sva polja!",
|
||||
["entrance_set_title"] = "Ulaz postavljen.",
|
||||
["entrance_set_description"] = "Ulaz: %s, %s, %s",
|
||||
["interior_set_title"] = "Enterijer izabran.",
|
||||
["interior_set_description"] = "Enterijer: %s",
|
||||
["ipl_title"] = "IPL Enterijeri",
|
||||
["types_title"] = "Tipovi enterijera",
|
||||
["ipl_description"] = "Prirodni GTA Enterijeri, Napravljeni od R*",
|
||||
["shell_title"] = "Custom Enterijeri",
|
||||
["shell_description"] = "Custom Enterijeri, Vaši Enterijeri",
|
||||
["cctv_settings"] = "CCTV Postavke",
|
||||
["garage_settings"] = "Postavke garaže",
|
||||
["toggle_title"] = "Omogućite opciju",
|
||||
["toggle_description"] = "Trenutni status: %s",
|
||||
["cctv_set_title"] = "Postavite CCTV ugao",
|
||||
["cctv_set_description"] = "Postavlja ugao kamere na smer iste",
|
||||
["back_description"] = "nazad na pravljenje imovine.",
|
||||
["garage_set_title"] = "Postavite poziciju garaže",
|
||||
["garage_set_description"] = "Postavite poziciju garaže od imovine.",
|
||||
["garage_textui"] = "Pritisni ~b~[E]~s~ da postaviš poziciju",
|
||||
["cctv_textui_1"] = "Pritisni ~b~[E]~s~ da postaviš ugao",
|
||||
["cctv_textui_2"] = "Pritisni ~b~[E]~s~ da postaviš max. rotaciju u desno",
|
||||
["cctv_textui_3"] = "Pritisni ~b~[E]~s~ da postaviš max. rotaciju u levo",
|
||||
["create_success"] = "Imovina napravljena!",
|
||||
["missing_data"] = "Morate popuniti sva polja!",
|
||||
|
||||
-- Saving Translations
|
||||
|
||||
["server_restart"] = "Restartovanje servera",
|
||||
["server_shutdown"] = "Gašenje servera",
|
||||
["manual_save"] = "Manuelno čuvanje (Pokrenuto od %s)",
|
||||
["resource_stop"] = "Stopiranje resursa",
|
||||
["force_save"] = "Forsirano čuvanje (Pokrenuto od %s)",
|
||||
["interval_saving"] = "Interval čuvanja"
|
||||
}
|
||||
1
resources/[esx_addons]/esx_property/properties.json
Normal file
1
resources/[esx_addons]/esx_property/properties.json
Normal file
File diff suppressed because one or more lines are too long
94
resources/[esx_addons]/esx_property/readme.md
Normal file
94
resources/[esx_addons]/esx_property/readme.md
Normal file
@@ -0,0 +1,94 @@
|
||||
<h1 align='center'>[ESX] Property</a></h1><p align='center'><b><a href='https://discord.esx-framework.org/'>Discord</a> - <a href='https://documentation.esx-framework.org/legacy/installation'>Documentation</a></b></h5>
|
||||
|
||||
## Features
|
||||
|
||||
* 95 Premade Properties
|
||||
* Dynamic Json Storage
|
||||
* Key Management System
|
||||
* Garage System
|
||||
* Furniture System
|
||||
* Can configure everything in the config
|
||||
* Editing system
|
||||
* Easy to use controls
|
||||
* Furniture Stores
|
||||
* Keymapped quick access menu
|
||||
* Shell / IPL support
|
||||
* Police Raiding
|
||||
* In-Game property Creator
|
||||
* Routing Buckets for instancing
|
||||
* Wardrobe functionality
|
||||
* OX Inventory Support
|
||||
* CCTV Camera System
|
||||
* Night Vision
|
||||
* Cool HUD overlay
|
||||
* ability to zoom in/out
|
||||
* Discord webhook support (copies link to clipboard aswell)
|
||||
* Admin Menu
|
||||
* **EVERY** part of the property can be changed!
|
||||
* Real estate Job Can also access
|
||||
* Real Estate Job
|
||||
* Built in Discord Logs
|
||||
* Highly Configurable
|
||||
|
||||
## Dependencies
|
||||
|
||||
* es_extended
|
||||
* esx_society *for Player Management* *
|
||||
* [OX-inventory](https://github.com/overextended/ox_inventory) *For Property Stashes* *
|
||||
* ESX Context
|
||||
* ESX Notify
|
||||
* ESX Progressbar *for Raiding* *
|
||||
* ESX Datastore *for wardrobe* *
|
||||
* ESX Clotheshop *for wardrobe* *
|
||||
* [k4mb1 Starter Shells](https://www.k4mb1maps.com/package/5015840) *only for shell use* *
|
||||
* [bob74_ipl](https://github.com/Bob74/bob74_ipl) *only for IPL use* *
|
||||
|
||||
> `*` = Optional
|
||||
|
||||
## Create A Property
|
||||
|
||||
* [Menu Preview](https://prnt.sc/Xczb5Fs9xW-t)
|
||||
* Use the command `property:create` while an admin
|
||||
* Set Street Number
|
||||
* Set Price of Property
|
||||
* Select an Interior
|
||||
> Note: To Use the Default Shells, you **NEED** [this Shell Pack](https://www.k4mb1maps.com/package/5015840)
|
||||
|
||||
> [Catagory Selection](https://prnt.sc/3RGaIEVTL6zw)
|
||||
|
||||
> [Interior Selection](https://prnt.sc/za9aOSsuqkce)
|
||||
* Set The Entrance Position
|
||||
> Note: Uses Player`s Current Coordinates
|
||||
|
||||
## Getting Shell Offset
|
||||
|
||||
* To get the spawn Offset of the shell, use [Loaf`s Offset Finder](https://github.com/loaf-scripts/loaf_offsetfinder)
|
||||
|
||||
* To Get the Wardrobe or Storage offset, go inside the Property, goto where u want them to be and then use the `getoffset` command and it will print the offset in F8
|
||||
|
||||
## Admin Menu
|
||||
|
||||
* As an Admin, use the command, `property:admin`
|
||||
* From There, you can select A property
|
||||
* You Can then either `Manage`, `Teleport To Entrance` or `Delete`
|
||||
* Allows you to edit all options and evict users
|
||||
* [Menu Preview](https://prnt.sc/Jpxox2ZcKn9G)
|
||||
* [Menu Preview 2](https://prnt.sc/IbP-ynHgYSMA)
|
||||
|
||||
# Copyright
|
||||
|
||||
ESX Property - Properties Made Right!
|
||||
Copyright (C) 202-2025 ESX
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
1207
resources/[esx_addons]/esx_property/server/main.lua
Normal file
1207
resources/[esx_addons]/esx_property/server/main.lua
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user