mirror of
https://github.com/ravmustang/ExileMod_64-bit_Server_Base.git
synced 2024-08-30 17:22:14 +00:00
first upload
This commit is contained in:
parent
26915a7f9b
commit
c6f7ac9921
7
ExileServers/ExileAltis/@ExileServer/LICENSE.txt
Normal file
7
ExileServers/ExileAltis/@ExileServer/LICENSE.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Exile Mod
|
||||
www.exilemod.com
|
||||
© 2015 Exile Mod Team
|
||||
|
||||
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
|
@ -0,0 +1 @@
|
||||
exile_server_config
|
File diff suppressed because it is too large
Load Diff
BIN
ExileServers/ExileAltis/@extDB3/addons/extdb3.pbo
Normal file
BIN
ExileServers/ExileAltis/@extDB3/addons/extdb3.pbo
Normal file
Binary file not shown.
@ -0,0 +1,9 @@
|
||||
FLOSS Exception
|
||||
Free and Open Source Software ("FOSS") License Exception
|
||||
You can repackage extDB3.dll / extDB3.so (shared libary) along with your project, if your project is licensed under one of the following licenses.
|
||||
An OSI approved licenses https://opensource.org/licenses/alphabetical
|
||||
Arma Public License https://www.bistudio.com/community/licenses/arma-public-license
|
||||
Arma Public License Share Alike https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
|
||||
Important: You will also need to include the extDB3-License-FLOSS-Exception.txt.
|
||||
This is to prevent confusion if someone grabs extDB3 from your project to use.
|
402
ExileServers/ExileAltis/@extDB3/extDB3-License.txt
Normal file
402
ExileServers/ExileAltis/@extDB3/extDB3-License.txt
Normal file
@ -0,0 +1,402 @@
|
||||
Attribution-NonCommercial-NoDerivatives 4.0 International
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
||||
does not provide legal services or legal advice. Distribution of
|
||||
Creative Commons public licenses does not create a lawyer-client or
|
||||
other relationship. Creative Commons makes its licenses and related
|
||||
information available on an "as-is" basis. Creative Commons gives no
|
||||
warranties regarding its licenses, any material licensed under their
|
||||
terms and conditions, or any related information. Creative Commons
|
||||
disclaims all liability for damages resulting from their use to the
|
||||
fullest extent possible.
|
||||
|
||||
Using Creative Commons Public Licenses
|
||||
|
||||
Creative Commons public licenses provide a standard set of terms and
|
||||
conditions that creators and other rights holders may use to share
|
||||
original works of authorship and other material subject to copyright
|
||||
and certain other rights specified in the public license below. The
|
||||
following considerations are for informational purposes only, are not
|
||||
exhaustive, and do not form part of our licenses.
|
||||
|
||||
Considerations for licensors: Our public licenses are
|
||||
intended for use by those authorized to give the public
|
||||
permission to use material in ways otherwise restricted by
|
||||
copyright and certain other rights. Our licenses are
|
||||
irrevocable. Licensors should read and understand the terms
|
||||
and conditions of the license they choose before applying it.
|
||||
Licensors should also secure all rights necessary before
|
||||
applying our licenses so that the public can reuse the
|
||||
material as expected. Licensors should clearly mark any
|
||||
material not subject to the license. This includes other CC-
|
||||
licensed material, or material used under an exception or
|
||||
limitation to copyright. More considerations for licensors:
|
||||
wiki.creativecommons.org/Considerations_for_licensors
|
||||
|
||||
Considerations for the public: By using one of our public
|
||||
licenses, a licensor grants the public permission to use the
|
||||
licensed material under specified terms and conditions. If
|
||||
the licensor's permission is not necessary for any reason--for
|
||||
example, because of any applicable exception or limitation to
|
||||
copyright--then that use is not regulated by the license. Our
|
||||
licenses grant only permissions under copyright and certain
|
||||
other rights that a licensor has authority to grant. Use of
|
||||
the licensed material may still be restricted for other
|
||||
reasons, including because others have copyright or other
|
||||
rights in the material. A licensor may make special requests,
|
||||
such as asking that all changes be marked or described.
|
||||
Although not required by our licenses, you are encouraged to
|
||||
respect those requests where reasonable. More_considerations
|
||||
for the public:
|
||||
wiki.creativecommons.org/Considerations_for_licensees
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0
|
||||
International Public License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree
|
||||
to be bound by the terms and conditions of this Creative Commons
|
||||
Attribution-NonCommercial-NoDerivatives 4.0 International Public
|
||||
License ("Public License"). To the extent this Public License may be
|
||||
interpreted as a contract, You are granted the Licensed Rights in
|
||||
consideration of Your acceptance of these terms and conditions, and the
|
||||
Licensor grants You such rights in consideration of benefits the
|
||||
Licensor receives from making the Licensed Material available under
|
||||
these terms and conditions.
|
||||
|
||||
|
||||
Section 1 -- Definitions.
|
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar
|
||||
Rights that is derived from or based upon the Licensed Material
|
||||
and in which the Licensed Material is translated, altered,
|
||||
arranged, transformed, or otherwise modified in a manner requiring
|
||||
permission under the Copyright and Similar Rights held by the
|
||||
Licensor. For purposes of this Public License, where the Licensed
|
||||
Material is a musical work, performance, or sound recording,
|
||||
Adapted Material is always produced where the Licensed Material is
|
||||
synched in timed relation with a moving image.
|
||||
|
||||
b. Copyright and Similar Rights means copyright and/or similar rights
|
||||
closely related to copyright including, without limitation,
|
||||
performance, broadcast, sound recording, and Sui Generis Database
|
||||
Rights, without regard to how the rights are labeled or
|
||||
categorized. For purposes of this Public License, the rights
|
||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
||||
Rights.
|
||||
|
||||
c. Effective Technological Measures means those measures that, in the
|
||||
absence of proper authority, may not be circumvented under laws
|
||||
fulfilling obligations under Article 11 of the WIPO Copyright
|
||||
Treaty adopted on December 20, 1996, and/or similar international
|
||||
agreements.
|
||||
|
||||
d. Exceptions and Limitations means fair use, fair dealing, and/or
|
||||
any other exception or limitation to Copyright and Similar Rights
|
||||
that applies to Your use of the Licensed Material.
|
||||
|
||||
e. Licensed Material means the artistic or literary work, database,
|
||||
or other material to which the Licensor applied this Public
|
||||
License.
|
||||
|
||||
f. Licensed Rights means the rights granted to You subject to the
|
||||
terms and conditions of this Public License, which are limited to
|
||||
all Copyright and Similar Rights that apply to Your use of the
|
||||
Licensed Material and that the Licensor has authority to license.
|
||||
|
||||
g. Licensor means the individual(s) or entity(ies) granting rights
|
||||
under this Public License.
|
||||
|
||||
h. NonCommercial means not primarily intended for or directed towards
|
||||
commercial advantage or monetary compensation. For purposes of
|
||||
this Public License, the exchange of the Licensed Material for
|
||||
other material subject to Copyright and Similar Rights by digital
|
||||
file-sharing or similar means is NonCommercial provided there is
|
||||
no payment of monetary compensation in connection with the
|
||||
exchange.
|
||||
|
||||
i. Share means to provide material to the public by any means or
|
||||
process that requires permission under the Licensed Rights, such
|
||||
as reproduction, public display, public performance, distribution,
|
||||
dissemination, communication, or importation, and to make material
|
||||
available to the public including in ways that members of the
|
||||
public may access the material from a place and at a time
|
||||
individually chosen by them.
|
||||
|
||||
j. Sui Generis Database Rights means rights other than copyright
|
||||
resulting from Directive 96/9/EC of the European Parliament and of
|
||||
the Council of 11 March 1996 on the legal protection of databases,
|
||||
as amended and/or succeeded, as well as other essentially
|
||||
equivalent rights anywhere in the world.
|
||||
|
||||
k. You means the individual or entity exercising the Licensed Rights
|
||||
under this Public License. Your has a corresponding meaning.
|
||||
|
||||
|
||||
Section 2 -- Scope.
|
||||
|
||||
a. License grant.
|
||||
|
||||
1. Subject to the terms and conditions of this Public License,
|
||||
the Licensor hereby grants You a worldwide, royalty-free,
|
||||
non-sublicensable, non-exclusive, irrevocable license to
|
||||
exercise the Licensed Rights in the Licensed Material to:
|
||||
|
||||
a. reproduce and Share the Licensed Material, in whole or
|
||||
in part, for NonCommercial purposes only; and
|
||||
|
||||
b. produce and reproduce, but not Share, Adapted Material
|
||||
for NonCommercial purposes only.
|
||||
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where
|
||||
Exceptions and Limitations apply to Your use, this Public
|
||||
License does not apply, and You do not need to comply with
|
||||
its terms and conditions.
|
||||
|
||||
3. Term. The term of this Public License is specified in Section
|
||||
6(a).
|
||||
|
||||
4. Media and formats; technical modifications allowed. The
|
||||
Licensor authorizes You to exercise the Licensed Rights in
|
||||
all media and formats whether now known or hereafter created,
|
||||
and to make technical modifications necessary to do so. The
|
||||
Licensor waives and/or agrees not to assert any right or
|
||||
authority to forbid You from making technical modifications
|
||||
necessary to exercise the Licensed Rights, including
|
||||
technical modifications necessary to circumvent Effective
|
||||
Technological Measures. For purposes of this Public License,
|
||||
simply making modifications authorized by this Section 2(a)
|
||||
(4) never produces Adapted Material.
|
||||
|
||||
5. Downstream recipients.
|
||||
|
||||
a. Offer from the Licensor -- Licensed Material. Every
|
||||
recipient of the Licensed Material automatically
|
||||
receives an offer from the Licensor to exercise the
|
||||
Licensed Rights under the terms and conditions of this
|
||||
Public License.
|
||||
|
||||
b. No downstream restrictions. You may not offer or impose
|
||||
any additional or different terms or conditions on, or
|
||||
apply any Effective Technological Measures to, the
|
||||
Licensed Material if doing so restricts exercise of the
|
||||
Licensed Rights by any recipient of the Licensed
|
||||
Material.
|
||||
|
||||
6. No endorsement. Nothing in this Public License constitutes or
|
||||
may be construed as permission to assert or imply that You
|
||||
are, or that Your use of the Licensed Material is, connected
|
||||
with, or sponsored, endorsed, or granted official status by,
|
||||
the Licensor or others designated to receive attribution as
|
||||
provided in Section 3(a)(1)(A)(i).
|
||||
|
||||
b. Other rights.
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not
|
||||
licensed under this Public License, nor are publicity,
|
||||
privacy, and/or other similar personality rights; however, to
|
||||
the extent possible, the Licensor waives and/or agrees not to
|
||||
assert any such rights held by the Licensor to the limited
|
||||
extent necessary to allow You to exercise the Licensed
|
||||
Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this
|
||||
Public License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to
|
||||
collect royalties from You for the exercise of the Licensed
|
||||
Rights, whether directly or through a collecting society
|
||||
under any voluntary or waivable statutory or compulsory
|
||||
licensing scheme. In all other cases the Licensor expressly
|
||||
reserves any right to collect such royalties, including when
|
||||
the Licensed Material is used other than for NonCommercial
|
||||
purposes.
|
||||
|
||||
|
||||
Section 3 -- License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the
|
||||
following conditions.
|
||||
|
||||
a. Attribution.
|
||||
|
||||
1. If You Share the Licensed Material, You must:
|
||||
|
||||
a. retain the following if it is supplied by the Licensor
|
||||
with the Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed
|
||||
Material and any others designated to receive
|
||||
attribution, in any reasonable manner requested by
|
||||
the Licensor (including by pseudonym if
|
||||
designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of
|
||||
warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the
|
||||
extent reasonably practicable;
|
||||
|
||||
b. indicate if You modified the Licensed Material and
|
||||
retain an indication of any previous modifications; and
|
||||
|
||||
c. indicate the Licensed Material is licensed under this
|
||||
Public License, and include the text of, or the URI or
|
||||
hyperlink to, this Public License.
|
||||
|
||||
For the avoidance of doubt, You do not have permission under
|
||||
this Public License to Share Adapted Material.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any
|
||||
reasonable manner based on the medium, means, and context in
|
||||
which You Share the Licensed Material. For example, it may be
|
||||
reasonable to satisfy the conditions by providing a URI or
|
||||
hyperlink to a resource that includes the required
|
||||
information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the
|
||||
information required by Section 3(a)(1)(A) to the extent
|
||||
reasonably practicable.
|
||||
|
||||
|
||||
Section 4 -- Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that
|
||||
apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
||||
to extract, reuse, reproduce, and Share all or a substantial
|
||||
portion of the contents of the database for NonCommercial purposes
|
||||
only and provided You do not Share Adapted Material;
|
||||
|
||||
b. if You include all or a substantial portion of the database
|
||||
contents in a database in which You have Sui Generis Database
|
||||
Rights, then the database in which You have Sui Generis Database
|
||||
Rights (but not its individual contents) is Adapted Material; and
|
||||
|
||||
c. You must comply with the conditions in Section 3(a) if You Share
|
||||
all or a substantial portion of the contents of the database.
|
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not
|
||||
replace Your obligations under this Public License where the Licensed
|
||||
Rights include other Copyright and Similar Rights.
|
||||
|
||||
|
||||
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
||||
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
||||
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
||||
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
||||
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
||||
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
||||
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
||||
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
||||
|
||||
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
||||
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
||||
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
||||
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
||||
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
||||
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
||||
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided
|
||||
above shall be interpreted in a manner that, to the extent
|
||||
possible, most closely approximates an absolute disclaimer and
|
||||
waiver of all liability.
|
||||
|
||||
|
||||
Section 6 -- Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and
|
||||
Similar Rights licensed here. However, if You fail to comply with
|
||||
this Public License, then Your rights under this Public License
|
||||
terminate automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under
|
||||
Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided
|
||||
it is cured within 30 days of Your discovery of the
|
||||
violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any
|
||||
right the Licensor may have to seek remedies for Your violations
|
||||
of this Public License.
|
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the
|
||||
Licensed Material under separate terms or conditions or stop
|
||||
distributing the Licensed Material at any time; however, doing so
|
||||
will not terminate this Public License.
|
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
||||
License.
|
||||
|
||||
|
||||
Section 7 -- Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different
|
||||
terms or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the
|
||||
Licensed Material not stated herein are separate from and
|
||||
independent of the terms and conditions of this Public License.
|
||||
|
||||
|
||||
Section 8 -- Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and
|
||||
shall not be interpreted to, reduce, limit, restrict, or impose
|
||||
conditions on any use of the Licensed Material that could lawfully
|
||||
be made without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is
|
||||
deemed unenforceable, it shall be automatically reformed to the
|
||||
minimum extent necessary to make it enforceable. If the provision
|
||||
cannot be reformed, it shall be severed from this Public License
|
||||
without affecting the enforceability of the remaining terms and
|
||||
conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no
|
||||
failure to comply consented to unless expressly agreed to by the
|
||||
Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted
|
||||
as a limitation upon, or waiver of, any privileges and immunities
|
||||
that apply to the Licensor or You, including from the legal
|
||||
processes of any jurisdiction or authority.
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons is not a party to its public
|
||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||
its public licenses to material it publishes and in those instances
|
||||
will be considered the “Licensor.” The text of the Creative Commons
|
||||
public licenses is dedicated to the public domain under the CC0 Public
|
||||
Domain Dedication. Except for the limited purpose of indicating that
|
||||
material is shared under a Creative Commons public license or as
|
||||
otherwise permitted by the Creative Commons policies published at
|
||||
creativecommons.org/policies, Creative Commons does not authorize the
|
||||
use of the trademark "Creative Commons" or any other trademark or logo
|
||||
of Creative Commons without its prior written consent including,
|
||||
without limitation, in connection with any unauthorized modifications
|
||||
to any of its public licenses or any other arrangements,
|
||||
understandings, or agreements concerning use of licensed material. For
|
||||
the avoidance of doubt, this paragraph does not form part of the
|
||||
public licenses.
|
||||
|
||||
Creative Commons may be contacted at creativecommons.org.
|
7
ExileServers/ExileAltis/@extDB3/extDB3-Readme.txt
Normal file
7
ExileServers/ExileAltis/@extDB3/extDB3-Readme.txt
Normal file
@ -0,0 +1,7 @@
|
||||
extDB3 Description
|
||||
extDB3 is an Arma3 Addon for connecting to Databases (currently only MariaDB/MySQL).
|
||||
The main purpose for extDB3 is for persistent missions in Arma.
|
||||
Note it will require some knowledge about SQF & SQL to use.
|
||||
extDB3 is also designed to be flexible & secure at the same time.
|
||||
|
||||
More Info available @ wiki https://bitbucket.org/torndeco/extdb3/wiki/Home
|
BIN
ExileServers/ExileAltis/@extDB3/extDB3.dll
Normal file
BIN
ExileServers/ExileAltis/@extDB3/extDB3.dll
Normal file
Binary file not shown.
BIN
ExileServers/ExileAltis/@extDB3/extDB3_x64.dll
Normal file
BIN
ExileServers/ExileAltis/@extDB3/extDB3_x64.dll
Normal file
Binary file not shown.
33
ExileServers/ExileAltis/@extDB3/extdb3-conf.ini
Normal file
33
ExileServers/ExileAltis/@extDB3/extdb3-conf.ini
Normal file
@ -0,0 +1,33 @@
|
||||
[Main]
|
||||
Version = 1
|
||||
|
||||
Randomize Config File = false
|
||||
;; Randomizes Config File after loading.
|
||||
;; Recommend to turn on, if you have enabled filepatching on arma.
|
||||
|
||||
Allow Reset = false
|
||||
;; Allows 9:RESET, usefull for development work
|
||||
|
||||
Thread = 0;
|
||||
;; Option to force number of worker threads for extDB3.
|
||||
;; Auto = 0, Min = 2, Max = 6
|
||||
|
||||
[Log]
|
||||
Flush = true;
|
||||
;; Flush logfile after each update.
|
||||
;; Option really only usefull if running DEBUG BUILD
|
||||
|
||||
|
||||
[Database]
|
||||
IP = 127.0.0.1
|
||||
Port = 3306
|
||||
Username = changeme
|
||||
Password = changeme
|
||||
Database = changeme
|
||||
|
||||
[exile]
|
||||
Database = exile
|
||||
Username = mysqlUserName
|
||||
Password = mysqlPassword
|
||||
IP = 127.0.0.1
|
||||
Port = 3306
|
23
ExileServers/ExileAltis/@extDB3/logs/2017/4/21/9-50-36.log
Normal file
23
ExileServers/ExileAltis/@extDB3/logs/2017/4/21/9-50-36.log
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
extDB3: https://bitbucket.org/torndeco/extdb3/wiki/Home
|
||||
extDB3: Version: 1.028
|
||||
extDB3: Windows Version
|
||||
Message: All development for extDB3 is done on a Linux Dedicated Server
|
||||
Message: If you would like to Donate to extDB3 Development
|
||||
Message: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2SUEFTGABTAM2
|
||||
Message: Also leave a message if there is any particular feature you would like to see added.
|
||||
Message: Thanks for all the people that have donated.
|
||||
Message: Torndeco: 18/05/15
|
||||
|
||||
|
||||
extDB3: Found extdb3-conf.ini
|
||||
extDB3: Detected 8 Cores, Setting up 6 Worker Threads
|
||||
extDB3: ...
|
||||
extDB3: ...
|
||||
extDB3: ...
|
||||
extDB3: ...
|
||||
extDB3: ...
|
||||
extDB3: ...
|
||||
|
||||
|
||||
[09:50:36:782352 -05:00] [Thread 2300] extDB3: Locked
|
@ -0,0 +1 @@
|
||||
[09:52:44:371275 -05:00] [Thread 7216] MusTanG commited suicide!
|
680
ExileServers/ExileAltis/@extDB3/sql_custom/exile.ini
Normal file
680
ExileServers/ExileAltis/@extDB3/sql_custom/exile.ini
Normal file
@ -0,0 +1,680 @@
|
||||
[Default]
|
||||
|
||||
Version = 1
|
||||
|
||||
Strip Chars = "\/\|;{}<>\'"
|
||||
|
||||
Strip Chars Mode = 0
|
||||
|
||||
Input SQF Parser = false
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Account related queries
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[isKnownAccount]
|
||||
SQL1_1 = SELECT CASE WHEN EXISTS(SELECT uid FROM account WHERE uid = ?) THEN 'true' ELSE 'false' END
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1
|
||||
|
||||
[createAccount]
|
||||
SQL1_1 = INSERT INTO account SET uid = ?, name = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[startAccountSession]
|
||||
SQL1_1 = UPDATE account SET name = ?, last_connect_at = NOW(), total_connections = total_connections + 1 WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 2,1
|
||||
|
||||
[endAccountSession]
|
||||
SQL1_1 = UPDATE account SET last_disconnect_at = NOW() WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[getAccountStats]
|
||||
SQL1_1 = SELECT score, kills, deaths, clan_id, locker FROM account WHERE uid = ?
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1,2,3,4,5
|
||||
|
||||
[addAccountKill]
|
||||
SQL1_1 = UPDATE account SET kills = kills + 1 WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[addAccountDeath]
|
||||
SQL1_1 = UPDATE account SET deaths = deaths + 1 WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[getAccountScore]
|
||||
SQL1_1 = SELECT score FROM account WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1
|
||||
|
||||
[setAccountScore]
|
||||
SQL1_1 = UPDATE account SET score = ? WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[modifyAccountScore]
|
||||
SQL1_1 = UPDATE account SET score = score + ? WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[updateLocker]
|
||||
SQL1_1 = UPDATE account SET locker = ? WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[getLocker]
|
||||
SQL1_1 = SELECT locker FROM account WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Player related queries
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[hasAlivePlayer]
|
||||
SQL1_1 = SELECT CASE WHEN EXISTS(SELECT account_uid FROM player WHERE account_uid = ? AND damage < 1) THEN 'true' ELSE 'false' END
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1
|
||||
|
||||
[createPlayer]
|
||||
SQL1_1 = DELETE FROM player WHERE account_uid = ?
|
||||
SQL2_1 = INSERT INTO player SET account_uid = ?, name = ?
|
||||
SQL1_INPUTS = 1
|
||||
SQL2_INPUTS = 1,2
|
||||
|
||||
Return InsertID = true
|
||||
|
||||
[insertPlayerHistory]
|
||||
SQL1_1 = INSERT INTO player_history SET account_uid = ?, name = ?, position_x = ?, position_y = ?, position_z = ?
|
||||
|
||||
SQL1_INPUTS = 1,2,3,4,5
|
||||
|
||||
[deletePlayer]
|
||||
SQL1_1 = DELETE FROM player WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[loadPlayer]
|
||||
SQL1_1 = SELECT p.id,
|
||||
SQL1_2 = p.name,
|
||||
SQL1_3 = p.account_uid,
|
||||
SQL1_4 = p.damage,
|
||||
SQL1_5 = p.hunger,
|
||||
SQL1_6 = p.thirst,
|
||||
SQL1_7 = p.alcohol,
|
||||
SQL1_8 = p.oxygen_remaining,
|
||||
SQL1_9 = p.bleeding_remaining,
|
||||
SQL1_10 = p.hitpoints,
|
||||
SQL1_11 = p.direction,
|
||||
SQL1_12 = p.position_x,
|
||||
SQL1_13 = p.position_y,
|
||||
SQL1_14 = p.position_z,
|
||||
SQL1_15 = p.assigned_items,
|
||||
SQL1_16 = p.backpack,
|
||||
SQL1_17 = p.backpack_items,
|
||||
SQL1_18 = p.backpack_magazines,
|
||||
SQL1_19 = p.backpack_weapons,
|
||||
SQL1_20 = p.current_weapon,
|
||||
SQL1_21 = p.goggles,
|
||||
SQL1_22 = p.handgun_items,
|
||||
SQL1_23 = p.handgun_weapon,
|
||||
SQL1_24 = p.headgear,
|
||||
SQL1_25 = p.binocular,
|
||||
SQL1_26 = p.loaded_magazines,
|
||||
SQL1_27 = p.primary_weapon,
|
||||
SQL1_28 = p.primary_weapon_items,
|
||||
SQL1_29 = p.secondary_weapon,
|
||||
SQL1_30 = p.secondary_weapon_items,
|
||||
SQL1_31 = p.uniform,
|
||||
SQL1_32 = p.uniform_items,
|
||||
SQL1_33 = p.uniform_magazines,
|
||||
SQL1_34 = p.uniform_weapons,
|
||||
SQL1_35 = p.vest,
|
||||
SQL1_36 = p.vest_items,
|
||||
SQL1_37 = p.vest_magazines,
|
||||
SQL1_38 = p.vest_weapons,
|
||||
SQL1_39 = p.money,
|
||||
SQL1_40 = a.score,
|
||||
SQL1_41 = a.kills,
|
||||
SQL1_42 = a.deaths,
|
||||
SQL1_43 = c.id,
|
||||
SQL1_44 = c.name,
|
||||
SQL1_45 = p.temperature,
|
||||
SQL1_46 = p.wetness,
|
||||
SQL1_47 = a.locker
|
||||
SQL1_48 = FROM player p
|
||||
SQL1_49 = INNER JOIN account a
|
||||
SQL1_50 = ON a.uid = p.account_uid
|
||||
SQL1_51 = LEFT JOIN clan c
|
||||
SQL1_52 = ON c.id = a.clan_id
|
||||
SQL1_53 = WHERE p.account_uid = ?
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1,2-STRING,3-STRING,4,5,6,7,8,9,10,11,12,13,14,15,16-STRING,17,18,19,20-STRING,21-STRING,22,23-STRING,24-STRING,25-STRING,26,27-STRING,28,29-STRING,30,31-STRING,32,33,34,35-STRING,36,37,38,39,40,41,42,43,44-STRING,45,46,47
|
||||
|
||||
[updatePlayer]
|
||||
SQL1_1 = UPDATE player SET
|
||||
SQL1_2 = name = ?,
|
||||
SQL1_3 = damage = ?,
|
||||
SQL1_4 = hunger = ?,
|
||||
SQL1_5 = thirst = ?,
|
||||
SQL1_6 = alcohol = ?,
|
||||
SQL1_7 = oxygen_remaining = ?,
|
||||
SQL1_8 = bleeding_remaining = ?,
|
||||
SQL1_9 = hitpoints = ?,
|
||||
SQL1_10 = direction = ?,
|
||||
SQL1_11 = position_x = ?,
|
||||
SQL1_12 = position_y = ?,
|
||||
SQL1_13 = position_z = ?,
|
||||
SQL1_14 = assigned_items = ?,
|
||||
SQL1_15 = backpack = ?,
|
||||
SQL1_16 = backpack_items = ?,
|
||||
SQL1_17 = backpack_magazines = ?,
|
||||
SQL1_18 = backpack_weapons = ?,
|
||||
SQL1_19 = current_weapon = ?,
|
||||
SQL1_20 = goggles = ?,
|
||||
SQL1_21 = handgun_items = ?,
|
||||
SQL1_22 = handgun_weapon = ?,
|
||||
SQL1_23 = headgear = ?,
|
||||
SQL1_24 = binocular = ?,
|
||||
SQL1_25 = loaded_magazines = ?,
|
||||
SQL1_26 = primary_weapon = ?,
|
||||
SQL1_27 = primary_weapon_items = ?,
|
||||
SQL1_28 = secondary_weapon = ?,
|
||||
SQL1_29 = secondary_weapon_items = ?,
|
||||
SQL1_30 = uniform = ?,
|
||||
SQL1_31 = uniform_items = ?,
|
||||
SQL1_32 = uniform_magazines = ?,
|
||||
SQL1_33 = uniform_weapons = ?,
|
||||
SQL1_34 = vest = ?,
|
||||
SQL1_35 = vest_items = ?,
|
||||
SQL1_36 = vest_magazines = ?,
|
||||
SQL1_37 = vest_weapons = ?,
|
||||
SQL1_38 = temperature = ?,
|
||||
SQL1_39 = wetness = ?
|
||||
SQL1_40 = WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Vehicle related queries
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
[insertVehicle]
|
||||
SQL1_1 = INSERT INTO vehicle SET
|
||||
SQL1_2 = class = ?,
|
||||
SQL1_3 = account_uid = ?,
|
||||
SQL1_4 = is_locked = ?,
|
||||
SQL1_5 = position_x = ?,
|
||||
SQL1_6 = position_y = ?,
|
||||
SQL1_7 = position_z = ?,
|
||||
SQL1_8 = direction_x = ?,
|
||||
SQL1_9 = direction_y = ?,
|
||||
SQL1_10 = direction_z = ?,
|
||||
SQL1_11 = up_x = ?,
|
||||
SQL1_12 = up_y = ?,
|
||||
SQL1_13 = up_z = ?,
|
||||
SQL1_14 = pin_code = ?
|
||||
SQL1_INPUTS = 1,2,3,4,5,6,7,8,9,10,11,12,13
|
||||
Return InsertID = true
|
||||
|
||||
[deleteVehicle]
|
||||
SQL1_1 = DELETE FROM vehicle WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[loadVehicleIdPage]
|
||||
SQL1_1 = SELECT id FROM vehicle WHERE deleted_at IS NULL LIMIT ?,?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
OUTPUT = 1
|
||||
|
||||
[loadVehicle]
|
||||
SQL1_1 = SELECT id,class,spawned_at,account_uid,is_locked,fuel,damage,hitpoints,position_x,position_y,position_z,direction_x,direction_y,direction_z,up_x,up_y,up_z,cargo_items,cargo_magazines,cargo_weapons,pin_code,vehicle_texture,deleted_at,money FROM vehicle WHERE id = ?
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1,2-STRING,3-STRING,4-STRING,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21-STRING,22,23,24
|
||||
|
||||
[loadVehicleContainer]
|
||||
SQL1_1 = SELECT cargo_container FROM vehicle WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1
|
||||
|
||||
[updateVehicle]
|
||||
SQL1_1 = UPDATE vehicle SET
|
||||
SQL1_2 = is_locked = ?,
|
||||
SQL1_3 = fuel = ?,
|
||||
SQL1_4 = damage = ?,
|
||||
SQL1_5 = hitpoints = ?,
|
||||
SQL1_6 = position_x = ?,
|
||||
SQL1_7 = position_y = ?,
|
||||
SQL1_8 = position_z = ?,
|
||||
SQL1_9 = direction_x = ?,
|
||||
SQL1_10 = direction_y = ?,
|
||||
SQL1_11 = direction_z = ?,
|
||||
SQL1_12 = up_x = ?,
|
||||
SQL1_13 = up_y = ?,
|
||||
SQL1_14 = up_z = ?,
|
||||
SQL1_15 = cargo_items = ?,
|
||||
SQL1_16 = cargo_magazines = ?,
|
||||
SQL1_17 = cargo_weapons = ?,
|
||||
SQL1_18 = cargo_container = ?,
|
||||
SQL1_19 = money = ?
|
||||
SQL1_20 = WHERE id = ?
|
||||
SQL1_INPUTS = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
|
||||
|
||||
[updateVehicleSkin]
|
||||
SQL1_1 = UPDATE vehicle SET vehicle_texture = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[vehicleSetPinCode]
|
||||
SQL1_1 = UPDATE vehicle SET pin_code = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Construction related queries
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[insertConstruction]
|
||||
SQL1_1 = INSERT INTO construction SET
|
||||
SQL1_2 = class = ?,
|
||||
SQL1_3 = account_uid = ?,
|
||||
SQL1_4 = position_x = ?,
|
||||
SQL1_5 = position_y = ?,
|
||||
SQL1_6 = position_z = ?,
|
||||
SQL1_7 = direction_x = ?,
|
||||
SQL1_8 = direction_y = ?,
|
||||
SQL1_9 = direction_z = ?,
|
||||
SQL1_10 = up_x = ?,
|
||||
SQL1_11 = up_y = ?,
|
||||
SQL1_12 = up_z = ?,
|
||||
SQL1_13 = territory_id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2,3,4,5,6,7,8,9,10,11,12-NULL
|
||||
Return InsertID = true
|
||||
|
||||
[deleteConstruction]
|
||||
SQL1_1 = DELETE FROM construction WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[loadConstructionIdPage]
|
||||
SQL1_1 = SELECT id FROM construction WHERE deleted_at IS NULL LIMIT ?,?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
OUTPUT = 1
|
||||
|
||||
[loadConstruction]
|
||||
SQL1_1 = SELECT id,class,account_uid,spawned_at,position_x,position_y,position_z,direction_x,direction_y,direction_z,up_x,up_y,up_z,is_locked,pin_code,territory_id,deleted_at,damage FROM construction WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1,2-STRING,3-STRING,4-STRING,5,6,7,8,9,10,11,12,13,14,15-STRING,16,17,18
|
||||
|
||||
[countConstruction]
|
||||
SQL1_1 = SELECT COUNT(*) FROM construction
|
||||
|
||||
OUTPUT = 1
|
||||
|
||||
[constructionSetPinCode]
|
||||
SQL1_1 = UPDATE construction SET pin_code= ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[upgradeObject]
|
||||
SQL1_1 = UPDATE construction SET class=? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[addDoorLock]
|
||||
SQL1_1 = UPDATE construction SET pin_code = ?,is_locked = -1 WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[updateLock]
|
||||
SQL1_1 = UPDATE construction SET is_locked = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[updateConstructionTerritoryIDs]
|
||||
SQL1_1 = UPDATE construction SET territory_id = ? WHERE id IN(?)
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[updateDamage]
|
||||
SQL1_1 = UPDATE construction SET damage = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Containers related queries
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[insertContainer]
|
||||
SQL1_1 = INSERT INTO container SET
|
||||
SQL1_2 = class = ?,
|
||||
SQL1_3 = account_uid = ?,
|
||||
SQL1_4 = position_x = ?,
|
||||
SQL1_5 = position_y = ?,
|
||||
SQL1_6 = position_z = ?,
|
||||
SQL1_7 = direction_x = ?,
|
||||
SQL1_8 = direction_y = ?,
|
||||
SQL1_9 = direction_z = ?,
|
||||
SQL1_10 = up_x = ?,
|
||||
SQL1_11 = up_y = ?,
|
||||
SQL1_12 = up_z = ?,
|
||||
SQL1_13 = cargo_items = ?,
|
||||
SQL1_14 = cargo_magazines = ?,
|
||||
SQL1_15 = cargo_weapons = ?,
|
||||
SQL1_16 = cargo_container = ?,
|
||||
SQL1_17 = money = ?,
|
||||
SQL1_18 = pin_code = ?,
|
||||
SQL1_19 = territory_id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18-NULL
|
||||
Return InsertID = true
|
||||
|
||||
[deleteContainer]
|
||||
SQL1_1 = DELETE FROM container WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[loadContainerIdPage]
|
||||
SQL1_1 = SELECT id FROM container WHERE deleted_at IS NULL LIMIT ?,?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
OUTPUT = 1
|
||||
|
||||
[loadContainer]
|
||||
SQL1_1 = SELECT id,class,account_uid,is_locked,position_x,position_y,position_z,direction_x,direction_y,direction_z,up_x,up_y,up_z,cargo_items,cargo_magazines,cargo_weapons,pin_code,territory_id,abandoned,deleted_at,money FROM container WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1,2-STRING,3-STRING,4,5,6,7,8,9,10,11,12,13,14,15,16,17-STRING,18,19-STRING,20,21
|
||||
|
||||
[loadContainerCargo]
|
||||
SQL1_1 = SELECT cargo_container FROM container WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1
|
||||
|
||||
[updateContainer]
|
||||
SQL1_1 = UPDATE container SET
|
||||
SQL1_2 = is_locked = ?,
|
||||
SQL1_3 = position_x = ?,
|
||||
SQL1_4 = position_y = ?,
|
||||
SQL1_5 = position_z = ?,
|
||||
SQL1_6 = direction_x = ?,
|
||||
SQL1_7 = direction_y = ?,
|
||||
SQL1_8 = direction_z = ?,
|
||||
SQL1_9 = up_x = ?,
|
||||
SQL1_10 = up_y = ?,
|
||||
SQL1_11 = up_z = ?,
|
||||
SQL1_12 = cargo_items = ?,
|
||||
SQL1_13 = cargo_magazines = ?,
|
||||
SQL1_14 = cargo_weapons = ?,
|
||||
SQL1_15 = cargo_container = ?,
|
||||
SQL1_16 = territory_id = ?,
|
||||
SQL1_17 = money = ?
|
||||
SQL1_18 = WHERE id = ?
|
||||
SQL1_INPUTS = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15-NULL,16,17
|
||||
|
||||
[containerSetPinCode]
|
||||
SQL1_1 = UPDATE container SET pin_code= ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[updateContainerTerritoryIDs]
|
||||
SQL1_1 = UPDATE container SET territory_id = ? WHERE id IN(?)
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Clan related queries
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[createClan]
|
||||
SQL1_1 = INSERT INTO clan SET leader_uid = ?, name = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
Return InsertID = true
|
||||
|
||||
[setAccountClanLink]
|
||||
SQL1_1 = UPDATE account SET clan_id = ? WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[unLinkClanLink]
|
||||
SQL1_1 = UPDATE account SET clan_id = NULL WHERE uid = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[updateClanLeader]
|
||||
SQL1_1 = UPDATE clan SET leader_uid = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[deleteClan]
|
||||
SQL1_1 = DELETE FROM clan WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[loadClansIdPage]
|
||||
SQL1_1 = SELECT id FROM clan LIMIT ?,?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
OUTPUT = 1
|
||||
|
||||
[getClanInfo]
|
||||
SQL1_1 = SELECT name,leader_uid FROM clan WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1-STRING,2-STRING
|
||||
|
||||
[getClanMembers]
|
||||
SQL1_1 = SELECT uid,name FROM account WHERE clan_id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1-STRING,2-STRING
|
||||
|
||||
[getClanMarkers]
|
||||
SQL1_1 = SELECT id,markerType,positionArr,color,icon,iconSize,label,labelSize FROM clan_map_marker WHERE clan_id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1,2,3,4,5-STRING,6,7-STRING,8
|
||||
|
||||
[addMarker]
|
||||
SQL1_1 = INSERT INTO clan_map_marker SET clan_id = ?, markerType = 0, positionArr = ?, color = ?, icon = ?, iconSize = ?, label = ?, labelSize = ?
|
||||
|
||||
SQL1_INPUTS = 1,2,3,4,5,6,7
|
||||
Return InsertID = true
|
||||
|
||||
[addPoly]
|
||||
SQL1_1 = INSERT INTO clan_map_marker SET clan_id = ?, markerType = 1, positionArr = ?, color = ?
|
||||
|
||||
SQL1_INPUTS = 1,2,3
|
||||
Return InsertID = true
|
||||
|
||||
[deleteMarker]
|
||||
SQL1_1 = DELETE FROM clan_map_marker WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Territory related queries
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[createTerritory]
|
||||
SQL1_1 = INSERT INTO territory SET owner_uid = ?, name = ?, position_x = ? , position_y = ? , position_z = ?, radius = ? , level = ? , flag_texture = ? , flag_stolen = ? , flag_stolen_by_uid =? , build_rights = ? , moderators = ?
|
||||
|
||||
SQL1_INPUTS = 1,2,3,4,5,6,7,8,9,12-NULL,10,11
|
||||
Return InsertID = true
|
||||
|
||||
[loadTerriotryIdPage]
|
||||
SQL1_1 = SELECT id FROM territory WHERE deleted_at IS NULL LIMIT ?,?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
OUTPUT = 1
|
||||
|
||||
[loadTerritory]
|
||||
SQL1_1 = SELECT id,owner_uid,name,position_x,position_y,position_z,radius, level,flag_texture,flag_stolen,flag_stolen_by_uid,last_paid_at,build_rights,moderators,deleted_at,(SELECT COUNT(*)FROM construction c WHERE c.territory_id = ?) FROM territory WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,1
|
||||
OUTPUT = 1,2-STRING,3-STRING,4,5,6,7,8,9-STRING,10,11-STRING,12,13,14,15,16
|
||||
|
||||
[setTerritoryLevel]
|
||||
SQL1_1 = UPDATE territory SET level = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[setTerritorySize]
|
||||
SQL1_1 = UPDATE territory SET radius = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[updateTerritoryBuildRights]
|
||||
SQL1_1 = UPDATE territory SET build_rights = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[updateTerritoryModerators]
|
||||
SQL1_1 = UPDATE territory SET moderators = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[maintainTerritory]
|
||||
SQL1_1 = UPDATE territory SET last_paid_at = NOW(),xm8_protectionmoney_notified = 0 WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[deleteTerritory]
|
||||
SQL1_1 = DELETE FROM territory WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[flagStolen]
|
||||
SQL1_1 = UPDATE territory SET flag_stolen = 1, flag_stolen_by_uid = ?, flag_stolen_at = NOW() WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[flagRestore]
|
||||
SQL1_1 = UPDATE territory SET flag_stolen = 0, flag_stolen_by_uid = NULL, flag_stolen_at = NULL WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Garbage Collector
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; Marks for deletion containers outside territories that were not accessed within ? days
|
||||
[markDeleteOldContainers]
|
||||
SQL1_1 = UPDATE container SET deleted_at = NOW() WHERE last_updated_at < DATE_SUB(NOW(), INTERVAL ? DAY) AND territory_id IS NULL AND deleted_at IS NULL
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
; Removes containers outside territories that were not accessed within ? days
|
||||
[deleteOldContainers]
|
||||
SQL1_1 = DELETE FROM container WHERE deleted_at < DATE_SUB(NOW(), INTERVAL ? DAY) AND territory_id IS NULL
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
; Marks contructions outside territories deleted after ? days
|
||||
[markDeleteOldConstructions]
|
||||
SQL1_1 = UPDATE construction SET deleted_at = NOW() WHERE last_updated_at < DATE_SUB(NOW(), INTERVAL ? DAY) AND territory_id IS NULL AND deleted_at IS NULL
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
; Removes contructions outside territories after ? days
|
||||
[deleteOldConstructions]
|
||||
SQL1_1 = DELETE FROM construction WHERE deleted_at < DATE_SUB(NOW(), INTERVAL ? DAY) AND territory_id IS NULL
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
; Marks for deletion vehicles that were not used within ? days
|
||||
[markDeleteOldVehicles]
|
||||
SQL1_1 = UPDATE vehicle SET deleted_at = NOW() WHERE last_updated_at < DATE_SUB(NOW(), INTERVAL ? DAY) AND deleted_at IS NULL
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
; Removes vehicles that were not used within ? days
|
||||
[deleteOldVehicles]
|
||||
SQL1_1 = DELETE FROM vehicle WHERE deleted_at < DATE_SUB(NOW(), INTERVAL ? DAY)
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
; Marks territories (and all containers/constructions) that were not paid within ? days as deleted
|
||||
[markDeleteUnpaidTerritories]
|
||||
SQL1_1 = UPDATE territory SET deleted_at = NOW() WHERE last_paid_at < DATE_SUB(NOW(), INTERVAL ? DAY) AND deleted_at IS NULL
|
||||
SQL2_1 = UPDATE construction SET deleted_at = (select deleted_at from territory where territory.id=construction.territory_id and territory.deleted_at IS NOT NULL)
|
||||
SQL3_1 = UPDATE container SET deleted_at = (select deleted_at from territory where territory.id=container.territory_id and territory.deleted_at IS NOT NULL)
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
; Removes territories (and all containers/constructions) that were not paid within ? days
|
||||
[deleteUnpaidTerritories]
|
||||
SQL1_1 = DELETE FROM territory WHERE deleted_at < DATE_SUB(NOW(), INTERVAL ? DAY)
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[addAbandonedSafes]
|
||||
SQL1_1 = UPDATE container SET abandoned = NOW(), pin_code = '0000' WHERE last_updated_at < DATE_SUB(NOW(), INTERVAL ? DAY) AND class = "Exile_Container_Safe" AND territory_id IS NULL
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[deleteBaseFlagStolen]
|
||||
SQL1_1 = DELETE FROM territory WHERE flag_stolen_at < DATE_SUB(NOW(), INTERVAL ? DAY)
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
; Unlock doors and mark safes as abandoned if flag stolen for X days
|
||||
[setAbandonedUnlocked]
|
||||
SQL1_1 = UPDATE container SET abandoned = NOW(), pin_code = '0000' WHERE (SELECT flag_stolen_at FROM territory WHERE territory.id=container.territory_id AND territory.flag_stolen_at < DATE_SUB(NOW(), INTERVAL ? DAY));
|
||||
SQL2_1 = UPDATE construction SET pin_code = '0000' WHERE (SELECT flag_stolen_at FROM territory WHERE territory.id = construction.territory_id AND territory.flag_stolen_at < DATE_SUB(NOW(), INTERVAL ? DAY)) AND pin_code != '000000'
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
SQL2_INPUTS = 1
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Moneh moneh moneh
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[setPlayerMoney]
|
||||
SQL1_1 = UPDATE player SET money = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[getPlayerMoney]
|
||||
SQL1_1 = SELECT money FROM player WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
OUTPUT = 1
|
||||
|
||||
[setContainerMoney]
|
||||
SQL1_1 = UPDATE container SET money = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
[setVehicleMoney]
|
||||
SQL1_1 = UPDATE vehicle SET money = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; XM8
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[getAllNotifTerritory]
|
||||
SQL1_1 = SELECT id FROM territory WHERE last_paid_at < DATE_SUB(NOW(), INTERVAL ? - 1 DAY) and xm8_protectionmoney_notified = 0
|
||||
|
||||
SQL1_INPUTS = 1
|
||||
|
||||
[setTerritoryNotified]
|
||||
SQL1_1 = UPDATE territory SET xm8_protectionmoney_notified = ? WHERE id = ?
|
||||
|
||||
SQL1_INPUTS = 1,2
|
2
ExileServers/ExileAltis/DonkeyPunch/basic.cfg
Normal file
2
ExileServers/ExileAltis/DonkeyPunch/basic.cfg
Normal file
@ -0,0 +1,2 @@
|
||||
language="English";
|
||||
MaxPermanentCraters=200;
|
44
ExileServers/ExileAltis/DonkeyPunch/config.cfg
Normal file
44
ExileServers/ExileAltis/DonkeyPunch/config.cfg
Normal file
@ -0,0 +1,44 @@
|
||||
hostname = "eXile Altis[DEVELOPMENT]";
|
||||
password = "privateinstance";
|
||||
passwordAdmin = "rockP4p3r5ciss0r5";
|
||||
serverCommandPassword = "exesandohs";
|
||||
logFile = "server.log";
|
||||
verifySignatures = 1; // Do NOT use verifySignatures=2! It costs too many FPS
|
||||
BattlEye = 1;
|
||||
requiredBuild = 141205; // 1.68 stable
|
||||
allowedLoadFileExtensions[] = {:};
|
||||
allowedPreprocessFileExtensions[] = {"sqf"};
|
||||
allowedHTMLLoadExtensions[] = {"html"};
|
||||
motdInterval = 5;
|
||||
maxPlayers = 52;
|
||||
allowedVoteCmds[] = {};
|
||||
voteMissionPlayers = 100;
|
||||
voteThreshold = 100;
|
||||
disableVoN = 0;
|
||||
vonCodecQuality = 30;
|
||||
persistent = 1;
|
||||
kickDuplicate = 1;
|
||||
equalModRequired = 0;
|
||||
kickClientsOnSlowNetwork = 0;
|
||||
timeStampFormat = "short";
|
||||
onUserConnected = "";
|
||||
onUserDisconnected = "";
|
||||
doubleIdDetected = "";
|
||||
onUnsignedData = "kick (_this select 0)";
|
||||
onHackedData = "kick (_this select 0)";
|
||||
onDifferentData = "kick (_this select 0)";
|
||||
motd[] = {"Welcome to Arma 3 Exile Mod!", "www.exilemod.com", "Enjoy your stay!" };
|
||||
|
||||
class Missions
|
||||
{
|
||||
class Exile
|
||||
{
|
||||
template = Exile.Altis; // Exile.Namalsk, Exile.Tanoa
|
||||
|
||||
// do NOT use custom difficulties!
|
||||
// Use either ExileRegular or ExileHardcore
|
||||
// or you will break Exile!
|
||||
difficulty = "ExileRegular";
|
||||
};
|
||||
};
|
||||
|
BIN
ExileServers/ExileAltis/battleye/BEC/Bec.exe
Normal file
BIN
ExileServers/ExileAltis/battleye/BEC/Bec.exe
Normal file
Binary file not shown.
BIN
ExileServers/ExileAltis/battleye/BEC/Bec.lib
Normal file
BIN
ExileServers/ExileAltis/battleye/BEC/Bec.lib
Normal file
Binary file not shown.
561
ExileServers/ExileAltis/battleye/BEC/Changelog.txt
Normal file
561
ExileServers/ExileAltis/battleye/BEC/Changelog.txt
Normal file
@ -0,0 +1,561 @@
|
||||
*** V 1.605 ***
|
||||
- Added: Version check on file: Bec.lib. if the exe & lib file has a version mismatch Bec will not startup. its added because people tend to only update the exe file.
|
||||
- Added: command "exit" to the scheduler. when used it will terminate Bec
|
||||
- Added: Display a warning if a scheduler job used loadbans with no files defined and BeCustomBanFiles is in use.
|
||||
|
||||
*** V 1.604 ***
|
||||
- Fixed: seconds in the scheduler using the hh:mm:ss format had a bug after last update!.
|
||||
|
||||
*** V 1.603 ***
|
||||
- Fixed: A bug when the time in the scheduler was set to 24:00:00 instead of 00:00:00
|
||||
- FIxed: A Bug in Commands.xml file. if _name_ or _time_ was not set for the ban commands, no reason was given.
|
||||
|
||||
*** V 1.602 ***
|
||||
- Improved: Auto remove starting and ending spaces from the tags in the xml files.
|
||||
- Fixed: A typo in the code making WhiteListKickMsg not work unless it was spelled wrong.
|
||||
- Added: New setting to [Misc] -> BeCustomBanFiles, define custom banfiles which will do a (loadbans file) if the file(s) gets changed.
|
||||
- Added: Logging to BeLog-DATE.log, into about guid verification on player connect when using Bec Reporter. (Status report)
|
||||
- Changed: SlotLimit chaned a bit again :\
|
||||
|
||||
|
||||
*** V 1.601 ***
|
||||
- Added: If the -f switch is forgotten, Bec will try and look for the file "Config.cfg" in the Config directory and use that one if it exists.
|
||||
- Added: When loading plugins, Bec will display its version if the variable: __version__ is defined in the plugin __init__.py file
|
||||
- Added: fortune as a command for the scheduler. <cmd>fortune</cmd>. will announce a random line from Config\fortune.txt
|
||||
- ReAdded: A timeout of 3 sec is added before Bec.exe closes on startup errors, Ie missing "Config.cfg" etc..
|
||||
- Improved: will automatically generate the __init__.py file in the Plugins directory if missing. (does not apply subdir), but will only do so if the directory exists and no --dpl used.
|
||||
- Fixed: A encoding error that could happen when reading the scheduler file and doing jobs with none ascii. its to prevent spamming up the error.log unnecessary.
|
||||
- Changed: SlotLimit changed to a more static method. number of reserved slots will no longer depend on admins online but the size of your admin file
|
||||
- Misc: Plugins cleanup, and minor changes to them, a little updated docs etc,
|
||||
Plugins are not included in the Bec.zip file any more, but can instead be downloaded separately.
|
||||
|
||||
|
||||
*** V 1.600 ***
|
||||
- Changed: Scheduler system has gone through a massive update and are no longer compatible with previous versions. You need to adapt your scheduler file to the new method.
|
||||
- Changed: The scheduler will now start after Bec has logged in. not when Bec starts like it used to.
|
||||
- Added: New startup parameter: --dpl (disable plugins). when this is used plugins will be disabled. this is a better way to do it than remove the plugins directory
|
||||
- Fixed: Config Misc -> Timeout will now also work when --dsc is used. but when --dsc is used Bec will wait the entire time unlike what it does without --dsc
|
||||
- Included: New plugin Watchdogs. will autoreloade when some Bec|Be files gets changed.
|
||||
|
||||
|
||||
*** V 1.599 ***
|
||||
- Improved: Parsing the Admin file. more error logging etc.
|
||||
- Improved: Parsing the Command file. more error logging etc.
|
||||
- Improved: Parsing the Scheduler file. more error logging etc.
|
||||
|
||||
|
||||
*** V 1.598 ***
|
||||
- Added: New command, <cmd>systime</cmd> for the scheduler file. will announce local server time.
|
||||
- Added: New command, <cmd>uptime</cmd> for the scheduler file. will announce server uptime. note. it will not work when --dsc is used.
|
||||
|
||||
|
||||
*** V 1.597 ***
|
||||
- Changed: Queue size from 64 to 128
|
||||
- Fixed: lines in whitelist file that started with space was ignored. will auto strip leading spaces now.
|
||||
- Fixed: whitelisting was ignored if the file was empty.
|
||||
- Added: new command, (systime) for commands.xml, will show current server time, look in commands example file for more info...
|
||||
|
||||
|
||||
*** V 1.596 ***
|
||||
- Added: MinPlayerName can now be used to force a minimum name length on players.
|
||||
- Changed: Some log messages
|
||||
|
||||
|
||||
*** V 1.595 ***
|
||||
- Fixed: Bec version check did not work correctly.
|
||||
- Added: New Parameter to config file that will allow you to set ban on GameHack, BattlEyeHack, Both or None of them.
|
||||
Please read the README file for more info, you'll find it under MISC section.
|
||||
|
||||
*** V 1.594 ***
|
||||
- Updated: twisted to version 13.2.0
|
||||
- Fixed: wrong admin name could be logged to file when commands was issues
|
||||
- Added: plugin that bans on script restriction.
|
||||
|
||||
*** V 1.593 ***
|
||||
- Fixed: people who dont use the reporter system and uses startup switch --dsc will not get message about reporter account disabled.
|
||||
- Fixed: Startup errors related to IgnoreChatChars
|
||||
|
||||
|
||||
*** V 1.592 ***
|
||||
- Fixed: Warning about "Your reporter account will not be working." msg will only be shown if reporter account is set and bec is unable to collect server type.
|
||||
- Changed: Some changes done on the startup check for server type.
|
||||
- Fixed: IgnoreChatChars did not work on some chars. new method of defining chars. look at example file.
|
||||
|
||||
|
||||
*** V 1.59.1 ***
|
||||
- Fixed. Again Slotlimit issues. Quick fix done.
|
||||
|
||||
*** V 1.59 ***
|
||||
- Fixed: names with spaces was stored wrong on event, connecting
|
||||
- Fixed: Slotlimit was a bit buggy.
|
||||
- Fixed: whitelist file with format ansi and utf-8 (with bom, "byte order mark") missed one line.
|
||||
- Fixed: Some typos, "i bet there still are some".
|
||||
- Fixed: And more misc code cleanup, not worth going into detail.
|
||||
- Added: Extension check on the BEServer file.
|
||||
- Added: --enc switch for startup. "use: chcp ,in cmd to get your active char table" default for bec is 65001. "experimental"
|
||||
- Added: log plugins that starts.
|
||||
- Added: Timeout setting in [misc], back by user request.
|
||||
- Added: Exception block to rss plugin.
|
||||
- Added: Status xml generator plugin.
|
||||
- Added: Connectionlimiter plugin. this works the same way floodcontrol2 did in version 1.48
|
||||
- Removed: LogDir removed from the config. the log directory will instead be same as your config name.
|
||||
- Changed: Some varnames has been changed. will affect plugins.
|
||||
|
||||
# Note due to the varname changes. plugins such as the ts3 needs to be replaced. if your using 1.58 or lower.
|
||||
# You only need to replace -- > (( __init__.py )) < --
|
||||
|
||||
|
||||
*** V 1.58 ***
|
||||
- Added: Simple Rss News Plugin. will show players the 10 latest Rss News titles from ArmaHolic every 1.5 hour.
|
||||
- Added: support for _name_ placeholder in <text> tag on kick commands. check commands.xml for example.
|
||||
- Added: support for _name_ placeholder in <text> tag on ban commands. check commands.xml for example.
|
||||
- Added: support for _name_ placeholder in <text> tag on warn command. check commands.xml for example.
|
||||
- Added: More error logging on sertan things.
|
||||
- Added: --dsc reimpemented. but if you have an reporter account it will be disabled when using --dsc
|
||||
- Fixed: some prints.
|
||||
- Fixed: some encoding issues.
|
||||
- Fixed: loadcommands was broken
|
||||
- Fixed: loadadmin was broken
|
||||
- Removed: custom reason (!r blah) been removed on kick and ban command.
|
||||
|
||||
|
||||
*** V 1.57 ***
|
||||
- Added: Check on Rcon password for none ascii chars.
|
||||
- Added: Check for rconpassword line in BeServer.cfg.
|
||||
- Added: Players who join with a name that match a command name will be kicked off.
|
||||
- Fixed: Minor issue in prosessing players function.
|
||||
|
||||
|
||||
*** V 1.56 ***
|
||||
- Fixed: Banfile nameing case issue.
|
||||
- Fixed: Rconpassword line with spaces.
|
||||
- Fixed: Duplicate message for lobby idlers
|
||||
- Fixed: Ts3 plugin was missing a setting that caused errors + fixed some other small issues.
|
||||
- Added: Check for NoneType on some data, hopefully encodig error will be gone.
|
||||
|
||||
*** V 1.55 ***
|
||||
- Changed: psutil from 0.3.0 to Version 1.0.1.
|
||||
- Fixed: exception handling for new psutil.
|
||||
- Fixed: uptime command.
|
||||
- Added: BE Bans can be listed in plugins by using: instance._Bec_BeBans. You need to request the list with the command 'bans' first
|
||||
- Added: Rcon Admins can be listed in plugins by using: instance._Bec_RconAdmins. You need to request the list with the command 'admins' first.
|
||||
- Fixed: Ts3 plugin had a minor error. replace your "__init__.py".
|
||||
|
||||
*** V 1.54 ***
|
||||
- Added: extra checks on the process check.
|
||||
- Fixed: io_lock's was not released, io_lock's removed, plugin will be none blocking. You only have to replace the Ts3Classes.py file.
|
||||
- Added: permission error logged to the error log.
|
||||
|
||||
*** V 1.53 ***
|
||||
- Added: Permission check on the armaserver process. some people only got wait for host. Bec will now print out if its a permission problem thats causig it.
|
||||
psutil will raise an psutil.error.AccessDenied excption if there is a permission problem.
|
||||
- Improved: Servercheck startup function did in some cases hang on startup.
|
||||
- improved: Plugins can be configured to only start up on N servers. check the Only_X_Server example on how this is done.
|
||||
- Improved: Ts3 plugin had no support for diffrent settings and was limited to one Ts3 server for all Bec's instances. This is Fixed. reconfigure your ts3 plugin.
|
||||
- Removed: ConsoleColor. Chattext and Be messages will not be affected.
|
||||
- Fixed: SlotLimit was broken too.
|
||||
|
||||
*** V 1.52 ***
|
||||
- Fixed: Startup issue with the Servercheck funtion. "hopefully its working for everybody now.".
|
||||
- Added: Simple Gui Plugin example.
|
||||
- Changed: Ts3 Plugin. some minor changes.
|
||||
|
||||
*** V 1.51 ***
|
||||
- Added: Error message to the console if players cant not receive private messages.
|
||||
- Fixed: Config option ServerExeName was ignored.
|
||||
- Fixed: -v was broken.
|
||||
- Fixed: --dsc this parameter will not be implemented again. --dsc can not be supported while there is no change in BE for arma2/arma3
|
||||
Bec needs to know what server its connected too so the reporter function knows where to check guid/report battleye hack.
|
||||
|
||||
*** V 1.50.0 ***
|
||||
- Changed: Ts3 function taken out of main code, rewritten and provided as a plugin instead. it still easy to configure and change to sute your needs.
|
||||
- Removed: Heartbeat function will no longer be supported. there are other better ways to do the same job.
|
||||
- Removed: Timeout config value.
|
||||
- Added: Examples on howto create plugins
|
||||
|
||||
*** V 1.49.9 ***
|
||||
- Added: support for custom message for slotlimit kicks.
|
||||
- Removed: --dsc will no longer work
|
||||
- Added: plugin support.
|
||||
- Removed: floodcontroll
|
||||
- ++ More Major changes.
|
||||
|
||||
*** V 1.49.8 ***
|
||||
- Fixed: Some typos was reported, now fixed.
|
||||
- Added: Ability for players/users to notify ts3 admins. example ("!tsadm hey. someone is hacking on the server."). Check the commands & ts3 example files for changes.
|
||||
- Improved: reconnect function optimized a bit more.
|
||||
- Added: Passing argument to external scripts. this does not apply for the scheduler.
|
||||
Example: !math 1+2 , !save "save this text to my file" myfile.txt
|
||||
This is only limited tested so some bug might occure.
|
||||
|
||||
*** V 1.49.7 ***
|
||||
- Fixed: !ainf listed all admin who had been connected instead of only online admins.
|
||||
- Improved: ts3 messages will now also contain ip address.
|
||||
- Fixed: Using !kid & !bid could sometimes kick, ban wrong players.
|
||||
- Added: loadadmins to the command file. reloade the admin file ingame if it has been changed after bec restarted, See commands.xml for example
|
||||
- Added: loadcommands to the command file. reloade the command file ingame if it has been changed after bec restarted, See commands.xml for example
|
||||
|
||||
*** V 1.49.6 ***
|
||||
- Fixed: some variables was misspelled that caused errors. :\
|
||||
|
||||
*** V 1.49.5 ***
|
||||
- Fixed: some issues with ts3 logging.
|
||||
- Fixed: ts3 thread shutdown was not done correctly.
|
||||
- Fixed: there was a bug in the reporting_failure function.
|
||||
- Changed: Some player data is initialized earlier.
|
||||
- Added: more kick types on ignore for ts3 admins. no need to informe admins about "client not responding" kicks, etc.
|
||||
|
||||
*** V 1.49.4 ***
|
||||
- Added: Custom Whitelist message, See Config_Example.cfg file for more info
|
||||
- Added: Channel colors.
|
||||
- Changed: The Ts3-Queryer has been rewritten. due to this some functions has been taken out. might be reimplemented at some time..
|
||||
See Ts3_Example.xml file for more info..
|
||||
- Fixed: Timeing issuse with high interval schedules. Example : spambot. "schedules set on loop with 1 sec".
|
||||
- Improved: Scheduler time methode-2 "HH:MM" changed to "HH:MM:SS", you will need to edit your xml time value so it includes the SS.
|
||||
See Scheduler_Example.xml file for more info
|
||||
|
||||
*** V 1.49.3 ***
|
||||
- Changed: config setting, Color to ConsoleColor
|
||||
- Changed: Min interval value in ts3 can be set to 30 sec instead of 60.
|
||||
- Added: config setting, ConsoleHeight, set the default height of Bec's console window
|
||||
- Added: config setting, ConsoleWidth, set the default width of Bec's console window
|
||||
- Fixed: Ts3Queryer.. found a problem that caused it to lock up the main threat at times. hopefully no more freez.
|
||||
- Fixed: Bec could sometimes hang on "Requesting login" if too many Rcon client are connected to the BeServer or for other reasons.
|
||||
6 attempts with 10 sec between each login-try will be done. if that fails bec will autoquit.
|
||||
- Optimized: removed unused library’s. reduced overall size with 0.5MB
|
||||
|
||||
*** V 1.49.2 ***
|
||||
- Changed: Channel tag must be set with channel id "Cid", check the example file for more info.
|
||||
- Fixed: Chat restriction was showing wrong warning counting for all channels except global.
|
||||
- Added: Ts3 color & bold style on pm text to admins
|
||||
|
||||
*** V 1.49.1 ***
|
||||
- Added: Channel tag
|
||||
- Added: Name Tag for the queryer.
|
||||
- Added: Interval tag for the ts3 query loops
|
||||
|
||||
*** V 1.49 ***
|
||||
- Fixed: Yet another attempt to fix the heartbeat. No more updated on this as its working for me on several servers and setup's.
|
||||
For thouse with issues. a schedule with a bat/cmd script can be created that merges the ban files every 30 min or so.
|
||||
- Fixed: Whitelist was missing a break on a for loop check.
|
||||
- Fixed: Whitelist did not check guids of players who was alrady connected.. "ie: bec restarted during the mission"
|
||||
- Fixed: BadWords warnings did not count while players was in lobby
|
||||
- Added: switch --dvc to disable check for newer version.
|
||||
- Added: More error message when parsing the Admin,Command,Scheduler and Ts3 xml file(s).
|
||||
- Changed: Minimum value for KickLobbyIdlers reduced from 180 to 90 seconds
|
||||
- Improved: Reporting function.
|
||||
- Added: Simple Ts3 server query for, pms and pokes regarding, lobby idleing, bans, game hacks.
|
||||
Note. this in in wip atm and things may change.
|
||||
|
||||
|
||||
*** V 1.48.2 ***
|
||||
- Added: More error messages on startup failures.
|
||||
- Added: Support for maxping to the scheduler system. Set your server to allow higher ping when your timezone goes to sleep ;)
|
||||
- Fixed: Heartbeat was only working on game hacks. should now work on admin ban's aswell.
|
||||
- Fixed: The command (<name>!upt</name>||<cmd>uptime</cmd>) could cause errors when the --dsc option was provided.
|
||||
|
||||
*** V 1.48.1 ***
|
||||
- Major Hotfix -
|
||||
- Fixed: Commands and other things did not work if bec was (re)started when there was admins/players on the server. it was a major bug
|
||||
- Fixed: a few typos.
|
||||
- Changed: psutil to V 0.3.0 as requested by some wine users. altho no one gave response to if --dsc worked or not
|
||||
|
||||
*** V 1.48 ***
|
||||
- Added: Logging on some errors.
|
||||
- Fixed: Reporting should now also send BattlEye Hacks as well as GameHack to the DB.
|
||||
- Fixed: Heartbeat, should now commit on Admin Ban.
|
||||
- Fixed: WhiteList files may have comments in them now. add a space after the guid: abcdef0123456789 Guid of Nils Pils.
|
||||
- Fixed: Admins who was listed in admins.xml and not in the WhiteList file was kick. Admins no longer need to be whitelisted.
|
||||
It make sense to include the admins as whitelisted.
|
||||
- Changed: No longer need to specify FloodControl1 or FloodControl2. if only FloodControl is specified its assumed "type 1" is in use.
|
||||
To use "type 2" also specify FloodSampleTime and FloodLockTime
|
||||
|
||||
*** V 1.47.1 ***
|
||||
- Hotfix -
|
||||
- Fixed: some print commands was not removed in release 1.47.
|
||||
- Changed: switch --dsc will not disable config values if the ip is set to 127.0.0.1.
|
||||
Due to problems with getting the module psutil 0.6.1 import properly with bec, it will still use 0.2.0. will look deeper into this when get more time.
|
||||
This changed might work for people who tries to run Bec under wine. but can not confirm it.
|
||||
|
||||
*** V 1.47 ***
|
||||
- Added: WhiteList File Support. one guid per line
|
||||
- Added: SlotLimit. can be used to reserve slots
|
||||
- Added: switch --dec to disable external commands for commands.xml and scheduler.xml
|
||||
- Added: switch --dsc to disable process check of the arma server pid, note all config values except the one's in the bec block will work.
|
||||
- Added: Implemented Antispam function.
|
||||
- Added: Support for loadevents to the scheduler system.
|
||||
- Added: New function to the scheduler. delay on startup for jobs. check example's for more info.
|
||||
- Added: Group id 100 as public groupnumber for commands, available commands are: help, pinfo, ainfo and uptime, check commands.xml example.
|
||||
- Fixed: "custom reason" argument "!r" on kick and ban was not working properly.
|
||||
- Fixed: makeroom ("!mr") was able to kick admins.
|
||||
- Improved: Some code with LobbyKick improved.
|
||||
- Improved: Some update with Heartbeat.
|
||||
- Improved: Titlebar contains more info.
|
||||
- Improved: some fixes here and there.
|
||||
- Improved: Lines written to the to Reporting_Failures.log file will be scrambled to prevent a exploit.
|
||||
+ some more small stuff..
|
||||
|
||||
*** V 1.46 ***
|
||||
- Fixed: Some typos.
|
||||
- Added: Support for command #reassign and #mission to scheduler system.
|
||||
- Added: Text "BEC" as part of the kick text on all automated kick functions
|
||||
- Added: New tag to admin file called groupname, check admin example file
|
||||
- Added: Parameter ChatChannelFiles, takes a bool. will create one additional file for each channel, check config example file
|
||||
- Added: Warnings to lobbplayers when about 30 sec remaining. will only work if KickLobbyIdles is in use
|
||||
- Added: New ways to use flood control. there are now two types to select from. check docs for more info
|
||||
- Changed: IngoreChars to IngoreChatChars. edit your configs if you use this.
|
||||
- Improved: some code improved in general for many functions..
|
||||
|
||||
*** V 1.45 ***
|
||||
- Fixed: Schedules file with none ascii chars causes errors.
|
||||
- Fixed: !help will only show commands that are available for the group the admin is in.
|
||||
- Added: Parameter DisallowPlayerNameChars. auto kick players with unwanted chars in their nick. example: [ |^m §0 (0ol ]
|
||||
- Added: Parameter MaxPlayerNameLength. set max length of player names. min value is 3. auto kick player connecting with longer than set.
|
||||
- Added: Run external bat/cmd scripts from the chatline.
|
||||
- Added: Command uptime to command file. show server uptime.
|
||||
- Improved: New format for time in the scheduler file. make sure to read up on it.
|
||||
As usual!.. read the docs for how-it it all works
|
||||
|
||||
*** V 1.44 ***
|
||||
- Improved: All error messages during startup from [misc],[reporter],[heartbeat],[chatrestriction] is logged to the error file
|
||||
- Improved: Scheduler system. it now also include days.
|
||||
- Added: Support for command #restart,#lock and #unlock to scheduler system.
|
||||
- Fixed: Some code in Heartbeat
|
||||
- Fixed: Loadscripts was misspelled in the scheduler system.
|
||||
- Fixed: Guids with (OK) and (?) on end
|
||||
- Removed: Patch checks for bec & bec files. admins need to be responsible for their own security
|
||||
|
||||
*** V 1.43.1 ***
|
||||
- Changed: some changes done to how it check the paths.
|
||||
|
||||
*** V 1.43 ***
|
||||
- Security: Bec will no longer be able to run from inside the server directory due to security reasons
|
||||
- Security: Warn on startup if the admin file is pointed to the server directory/subdir..
|
||||
- Security: Warn on startup if the command file is pointed to the server directory/subdir.
|
||||
- Fixed: Minor bug in flood control..
|
||||
- Fixed: if arguments to !sht (shutdown) was misspelled. "abort & info" the server would instant shutdown.
|
||||
- Added: Scheduler system. define schedules : http://ibattle.org/install-and-configure/setting-up-the-scheduler/
|
||||
|
||||
*** V 1.42 ***
|
||||
- Improved: Exception handling
|
||||
- Improved: Info on Error messages
|
||||
|
||||
*** V 1.41 ***
|
||||
- Fixed: Relogin, will try max 3 attempts before it auto quits, will not re-try if the socket is closed.
|
||||
- Fixed: a sockets was not closing after the its request.
|
||||
- Fixed: Newline was not added lines in error file.
|
||||
- Fixed: Never ending loop in servercheck.
|
||||
- Improved: Reduced numbers of threads.
|
||||
- Improved: Error message on some errors.
|
||||
|
||||
*** V 1.40.2 *** HotFix
|
||||
- Fixed: 1.4x Broke Language filter.
|
||||
|
||||
*** V 1.40.1 *** HotFix
|
||||
- Fixed: Issue with shutdown command. using !sht abort , !sht abort , !sht N did not shutdown the server
|
||||
|
||||
*** V 1.40 ***
|
||||
- Fixed: KickLobbyIdlers. would kick idlers after 180 sec even if not defined in the config.
|
||||
- Fixed: Flood Control was not logged to BElog file when it was activated/deactivated.
|
||||
- Improved: More encoding fixes.
|
||||
- Improved: Shutdown command can now use time !sht 5 will shutdown the server after 5 sec. !sht info to see how long left
|
||||
- Improved: Code in general optimized.
|
||||
|
||||
*** V 1.39 ***
|
||||
- Added: Error logdir.
|
||||
- Added: Future support for say in lobby warnings. "just waiting for new A2/Oa patch to enable this"
|
||||
- Improved: Support for private messages with say. !say name ! text
|
||||
- Improved: code for chatrestriction.
|
||||
- improved: exception handling on unicode errors.
|
||||
|
||||
*** V 1.38 ***
|
||||
- Added: Simple Connect/Flood Control. will lock server based on N numbers of players in lobby,
|
||||
and unlock it when the number gets below N player. "when players join the mission/is fully ingame"
|
||||
so server can possess data of players before it unlocks again
|
||||
- Added: Autokick lobby idlers that’s takes up a slot and not playing. min timeout is 180 sec.
|
||||
- Added: support for Say command in the command file
|
||||
- Fixed: Yet another encoding issue found and hopefully resolved.
|
||||
|
||||
** NOTE **
|
||||
A players is considered to be in the lobby until hes/she is fully ingame.
|
||||
A player sitting in example the briefing screen will be seen as if the player is in the lobby.
|
||||
A players loading will also bee seen as if they are in the lobby.
|
||||
|
||||
*** V 1.37 ***
|
||||
- Fixed: Version checker did print out wrong version on updates.
|
||||
- Fixed: Pinfo was showing players join date wrong.
|
||||
- Fixed: Ainfo was showing disconnected admins as being online.
|
||||
- Removed: Pcapy removed. there will be a standalone app for thous who want to log markers.
|
||||
- Improved: Unnecessary library’s taken out. size reduced in general.
|
||||
- Improved: Program Packed with UPX to reduce size more.
|
||||
|
||||
*** V 1.36 ***
|
||||
- Fixed: Added a error check on playerconnect. in some cases exception keyerror occurs
|
||||
- Fixed: Issue with looking for the BEServer file in some cases
|
||||
- Added: More error checking for admin.xml file. blocks containing error will be ignored unless its a parsing error
|
||||
- Added: More error checking for command.xml file. blocks containing error will be ignored unless its a parsing error
|
||||
|
||||
*** V 1.35 ***
|
||||
- Fixed: Config file should now work with ansii, utf8 Without BOM and utf8 With BOM.
|
||||
- Fixed: Bug in Server startup check.
|
||||
- Added: New Command. makeroom. kick N players who joined last to make room.
|
||||
- Added: New Command. help. !help , !help command shows available commands/ description of a command
|
||||
- Added: New Command. pinfo. will show general info about a player. name, id, jointime and ip.
|
||||
- Added: New Command. ainfo. will show Bec admins that are online.
|
||||
- Improved: Admin files do no longer needs to be in the config directory. Custom path can be set.
|
||||
- Improved: Command files do no longer needs to be in the config directory. Custom path can be set.
|
||||
- Improved: NickFilterFile parameter.
|
||||
- Improved: WordFilterFile parameter.
|
||||
- Changed: Password and BeBanFile is now replaced with BePath instead
|
||||
- Changed: Command.xml file has one extra tag call desc. this it to contains help info about the command.
|
||||
|
||||
*** V 1.34 ***
|
||||
- Fixed: some log strings cleanups.
|
||||
- Fixed: problems with encoding when 2 or more char types was used. example: йфяæøå
|
||||
|
||||
*** V 1.33 ***
|
||||
- Fixed: recursion depth problem in recheck_gban
|
||||
- Fixed: recursion depth problem in check_failedreports
|
||||
- Improved: Minor changes to config handler.
|
||||
|
||||
*** V 1.32 ***
|
||||
- Fixed "mission" commands. some missions with names longer than 48 chars didn’t work.
|
||||
- Removed: "Motd". it was really annoying as it spammed up the console and other rcons connected.
|
||||
|
||||
*** V 1.31 ***
|
||||
- Fixed: Bug in a guid recheck function due to Guid not shown in Lobby.
|
||||
error is now ignored.
|
||||
- Added: Motd
|
||||
- Changed/Improved: Warnings are reset once a player goes back to lobby.
|
||||
|
||||
*** V 1.30 ***
|
||||
- Added: Optional: IgnoreChars parameter to [Misc].will be used along with AsciiChat. Sometimes you want to allow some symbols not listed in the Ascii table. example æøå
|
||||
- Added: more internal logging functions.
|
||||
- Fixed: small bug in unwantednames check.
|
||||
- Fixed: Tmp admins can no longer give a Perm admin warning..
|
||||
- Fixed: Missing timeout on retrys for hack reporting.
|
||||
- Fixed: Admins can not give them self a warning with warn command.
|
||||
- Improved: Config file can be saved in ansii or utf8 format. utf8 with bom is not supported for config file yet.
|
||||
- improved: command "warn" can have a custom text set in the Commands.xml file in the Text tag. take a look in the Commands_Example for a example.
|
||||
- improved: If guid check fails or is not done on a player during connection, it will be checked later
|
||||
- improved: "bad language warning" gives feedback to which word was triggered to the player.
|
||||
- improved: some code in general optimized.
|
||||
|
||||
*** V 1.21 ***
|
||||
- Fixed: Mass warning for no reason should not happened anymore if warning system is enabled
|
||||
- Fixed: Bad language filter reworked, but it will be limited due to the clbuttic problem.
|
||||
- Fixed: The socket that checked guids was not closing properly after it was done with its request.
|
||||
- Improved: Reporting_Failures.log function. file will be deleted upon startup if its empty.
|
||||
|
||||
*** V 1.20 ***
|
||||
- Added: Verify user account upon startup if reporter block is enabled.
|
||||
- Added: Info on the titlebar. useful when running multiple becs.
|
||||
- Added: Announcement of admins that connects. "atm. This is only shown to players who are ingame"
|
||||
- Added: Broadcast info from some commands to global. example maxping, lock ,unlock are shown to players.
|
||||
- Added: Optional: parameter Timeout, define custom timeout on startup in seconds. Default is 30 if not defined
|
||||
- Added: Optional: parameter to allow only ascii on chat / True|False
|
||||
- Added: Optional: parameter for bad language on chat.
|
||||
- Added: Optional: Warnings parameter.
|
||||
- Added: New command warn, warns a player, this will only have effect if the "Warnings parameter" is set higher than 0
|
||||
- Added: Function to add/remove temp admin.
|
||||
- Added: Optional: chat restriction on channels if wanted.
|
||||
- Added: Support for Marker logger, still a bit in wip. position is not logged for markers..
|
||||
** Note to be able to use MapLogger you need to have WinPcap 4.x installed.
|
||||
- Improved: Version Check is a bit improved.
|
||||
- Improved: Config handler. this will have no real effect on the end user. but its done to ease up the dev process incases new config values need to be added.
|
||||
- Removed: SpamProtection. it wasn’t really any useful.
|
||||
- Changed: every block in the config must start with uppercase. [Bec] not [bec] so on. you need to modify old configs.
|
||||
+ some more small stuff..
|
||||
|
||||
*** V 1.10 ***
|
||||
- Added: More internal logging functions.
|
||||
- Added: Reporting Failure file. in case a hack report could not be sent the it's stored in a file, it will automatically re-upload when possible and clean up the file automaticly.
|
||||
- Added: Usage of custom reason on the chatline "" example. !kpl name !r you been a badboy"". the kid and bid base commands does not support this option.
|
||||
- Fixed: Missing newline on GameHack violations bans.
|
||||
- Fixed: Hack Report function would not send reports due to wrong variable name.
|
||||
- Fixed: Hack reports should not try to sent reports if reporting function is disabled.
|
||||
- Fixed: If a ban was added manually it was deleted due to wrong usage of writebans.
|
||||
- Fixed: Tailban bug, small issue tailing ban files.
|
||||
- Fixed: None ascii chars as reason caused errors. If reason is None ascii the default reason is set to: Admins Decision!
|
||||
- Changed: Color on print lines are removed. in favor of custom colors. Color Scheme can be defined in the Misc block by adding: Color = XX
|
||||
|
||||
*** V 1.00 ***
|
||||
- Added: AntiSpam chat function.
|
||||
- Added: NickFilterFile
|
||||
- Changed: some config settings.
|
||||
- Improved: Config handler. only bec block is required. [misc],[reporter] and [heartbeat] are optional.
|
||||
- Fixed: Adjusted Bec to new BE version. 1.27 for usage of new command.
|
||||
- Fixed: Ban bug, hopefully resolved. need more feedback on this tho.
|
||||
- Fixed: ServerExeName had some issues.
|
||||
- Fixed: utf8 issues with BOM.
|
||||
- Some other improvements made to the code.
|
||||
|
||||
*** V 0.99.1 ***
|
||||
- Fixed: Added hidden parameter for the config file incase server exe name is not arma2server or arma2oaserver
|
||||
ServerExeName = YourArmaExeName.exe
|
||||
|
||||
*** V 0.99.0 ***
|
||||
- Fixed: Support for Multi homing ! hopefully the issue is fully resolved now.
|
||||
- Fixed: Some exit messages was missing their sleep before auto-exiting. so you never saw the message before it quit. normal timeout is 4 sec.
|
||||
- Fixed: bidkick command changed to bid and will ban instead of kick. its needs a BE id to be able to ban. use #beclient players to get the list
|
||||
- Fixed: Minor Colorscheme issues.
|
||||
- Fixed: Some code was improved for Heartbeat
|
||||
- Fixed: Cleanup in General in the modules and classes.
|
||||
- Fixed: Compiling script to include some missing info on details of app.
|
||||
- Added: kid command, will kick a player based on the Be Id
|
||||
- Added: OPTION: AsciiOnly .auto kick players who uses None ascii chars in player name. example йфч.
|
||||
this might do jobs for admins on pub servers easier. especially if they don’t know how to type æøå or Cyrillic etc.
|
||||
but negative is might piss of players. when set to false. it uses utf8 ^^
|
||||
Note. players may still write with none ascii chars.
|
||||
- Added: Splash. To disable splash. just rename or remove the splash.bmp file
|
||||
- Added: Simple Icon on the exe
|
||||
- Note bid and kid are base commands to be put in the Commands.xml file in the <cmd> </cmd> Tag
|
||||
those two commands are only useful if the player has some chars you cant type.
|
||||
you will need to use #beclient players to get the Id of the player
|
||||
|
||||
*** V 0.98.1 ***
|
||||
- Added: Reimplemented Ip parameter, removing it broke multihome support.
|
||||
|
||||
*** V 0.98.0 ***
|
||||
- Added: Version Check, Bec will Notify you on startup if there is a newer version out.
|
||||
- Added: Simple Parser check on the config file. only valid format is ANSI
|
||||
- Added: Param check on the config file. in case some parameters are missing it will notify you. this is not the same as the parser check
|
||||
- Changed: Hack reports from older versions are refused. keep bec up-to-date for hack reporting to work.
|
||||
- Fixed: If Bec was running as a service. in example Firedaemon. when the Arma server was shutdown Bec didn't shutdown the reactor in itself.
|
||||
- Fixed: Timec error.
|
||||
- Fixed: File set in BeBanFile parameter should not be defined in [heartbeat]. its ignored if set.
|
||||
- Fixed: Lower ranked admin can no longer exec kick or ban on a higher ranked admin even if they have permission to execute the command.
|
||||
- Fixed: Equal ranked admins can only kick each other.Ban possible, Also. no ban on your self is no longer possible
|
||||
- Removed: Ip as a parameter.. Hard coded ip 127.0.0.1
|
||||
- Removed: StartTime as a parameter. Hard coded 15 seconds.
|
||||
- Some other cleanup
|
||||
|
||||
*** V0.97.1 ***
|
||||
- Fixed to get correct socket of arma server. there was a small bug in getting the correct one.
|
||||
|
||||
*** V 0.97.0 ***
|
||||
- Improved: New better function to check for the arma processes.
|
||||
- Improved: Better Startup procedure. Bec will now first wait for the server exe, then wait for the server to create a socket before trying to login.
|
||||
in older versions of Bec, it tried to logon once it had found the server running. this caused problems since the socket was not always ready.
|
||||
- Removed: deprecated parameter "serverparampath", people have a hard time understanding it anyway.
|
||||
- Fixed: Relogin function was a bit messed up. Note. Bec will only relogin on corrupt data or if the client is no longer authorized
|
||||
- Fixed: Socket did not close when no connection was established or possible to make... it just hang.
|
||||
|
||||
*** V 0.96.0 ***
|
||||
- Added: Console Colors. should work from win 2000 server and up.
|
||||
- Added: Logging of execution on commands, it was only printing it to console before.
|
||||
- Added: Tail of own Be Ban file.
|
||||
- Added: Reload bans on Be Ban file Changes.
|
||||
- Added: local heartbeat function. if a server is running multiple dedi servers, you can make bans work on all the servers.
|
||||
Heartbeat files are set by defining paths to your befiles and only new added bans are added. "its not a mirror"
|
||||
|
||||
*** V 0.95.0 ***
|
||||
- Chat stored into separate file
|
||||
- Be event-file only log Be events now. not clutter with chat anymore
|
||||
- Added: a check on names.
|
||||
- Added: Checking of Guid to a central database
|
||||
- Added: Hack reporting function to central database
|
||||
note. to be able to use the cbdb "central ban database" you need an account.
|
||||
|
||||
*** V 0.94.0 ***
|
||||
official release.
|
33
ExileServers/ExileAltis/battleye/BEC/Config/Admins.xml
Normal file
33
ExileServers/ExileAltis/battleye/BEC/Config/Admins.xml
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
|
||||
<!-- This file is only provided as an example file and might not sute your needs/demands/taste. -->
|
||||
|
||||
<BEAdmins>
|
||||
<!--
|
||||
Define admins.
|
||||
|
||||
name : name of the admin. do not need to be ingame player name.
|
||||
guid : match player guid.
|
||||
group : admin level. value must be a number.
|
||||
groupname : name of the group the admin is in, can be named anything. if groupname is empty. it will not advitised when you connect
|
||||
|
||||
Note: keep <..id= > in order for your admin block. else parsing the file will cause errors. start it at 0 and increment it by 1 for each admin you add.
|
||||
|
||||
http://www.ibattle.org/install-and-configure/define-admins/
|
||||
|
||||
-->
|
||||
|
||||
<admin id="0">
|
||||
<name>=RAV=MusTanG</name>
|
||||
<guid>2259dae0ce26ba074caba7ede760e0fa</guid>
|
||||
<group>0</group>
|
||||
<groupname>Super Admin</groupname>
|
||||
</admin>
|
||||
|
||||
<admin id="1">
|
||||
<name>Daarken</name>
|
||||
<guid>63a202fb7c8d640f35a6c1a35b5169e1</guid>
|
||||
<group>100</group>
|
||||
<groupname>Reserved Slots</groupname>
|
||||
</admin>
|
||||
</BEAdmins>
|
26
ExileServers/ExileAltis/battleye/BEC/Config/BadNames.txt
Normal file
26
ExileServers/ExileAltis/battleye/BEC/Config/BadNames.txt
Normal file
@ -0,0 +1,26 @@
|
||||
arsehole
|
||||
asshole
|
||||
bastard
|
||||
blowjob
|
||||
bollocks
|
||||
boobs
|
||||
bugger
|
||||
clit
|
||||
cock
|
||||
cunt
|
||||
dick
|
||||
dildo
|
||||
fuck
|
||||
gayboy
|
||||
gaylord
|
||||
lardarse
|
||||
lesbo
|
||||
lesbe
|
||||
lezbe
|
||||
masturbate
|
||||
nigga
|
||||
nigger
|
||||
paki
|
||||
slut
|
||||
whore
|
||||
фда
|
48
ExileServers/ExileAltis/battleye/BEC/Config/BadWords.txt
Normal file
48
ExileServers/ExileAltis/battleye/BEC/Config/BadWords.txt
Normal file
@ -0,0 +1,48 @@
|
||||
btk
|
||||
mgt
|
||||
deadz
|
||||
npg
|
||||
iniquity
|
||||
teamc4
|
||||
utcity
|
||||
biergarten
|
||||
s7epoch
|
||||
riotcontrol
|
||||
hightimez
|
||||
mydayz
|
||||
outlaw
|
||||
ecg
|
||||
ourdayz
|
||||
firecock
|
||||
cantina
|
||||
mdb
|
||||
bruuudis
|
||||
amnesia
|
||||
kongari
|
||||
kongaribacon
|
||||
zenithovmen
|
||||
zenith
|
||||
gs96
|
||||
atd
|
||||
legion
|
||||
bigsl
|
||||
umadbro
|
||||
mad
|
||||
s7
|
||||
fagget
|
||||
faggot
|
||||
fuck
|
||||
fuc
|
||||
fucker
|
||||
fuck3r
|
||||
shit
|
||||
cunt
|
||||
asshole
|
||||
nigger
|
||||
niger
|
||||
n1gger
|
||||
n1gg3r
|
||||
go fuck yourself
|
||||
god dam
|
||||
god
|
||||
alla
|
497
ExileServers/ExileAltis/battleye/BEC/Config/Commands.xml
Normal file
497
ExileServers/ExileAltis/battleye/BEC/Config/Commands.xml
Normal file
@ -0,0 +1,497 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
|
||||
<!--
|
||||
|
||||
This file is only provided as an example file and might not sute your needs/demands/taste.
|
||||
Web Doc : http://www.ibattle.org/install-and-configure/define-commands/
|
||||
|
||||
Define In-game Commands
|
||||
name : The name you want to call your command!. DO NOT START YOUR NAME WITH #
|
||||
group : The permission level needed to execute the command!
|
||||
cmd : The Rcon command. Root command. arguments are not passed here!
|
||||
time : leave empty except for ban commands!
|
||||
text : Used as reason for kick/ban commands. but also to set default values for example maxping command!
|
||||
desc : Used to describe the command. will be used in the help system
|
||||
|
||||
###############################################################################################################################
|
||||
|
||||
Note: Keep the id= in order for your "<command id=X>" block. else parsing the file will cause errors. 1st command starts with 0
|
||||
|
||||
Note: Do not start you command with # since its used by the game engine.
|
||||
|
||||
Note: Group number 100 is for public use. be careful.. all players may execute commands set to group 100.
|
||||
|
||||
Note: The text tag may be cut off if its too long. this is due to a limitation with Battleye.
|
||||
|
||||
###############################################################################################################################
|
||||
|
||||
Supported commands in the <cmd> </cmd> tag are:
|
||||
########################
|
||||
# Arma server commands
|
||||
########################
|
||||
|
||||
#Missions
|
||||
#Mission
|
||||
#Reassign
|
||||
#Restart
|
||||
#Shutdown
|
||||
#Lock
|
||||
#Unlock
|
||||
|
||||
########################
|
||||
# Be commands.
|
||||
########################
|
||||
kick
|
||||
ban
|
||||
maxping
|
||||
say
|
||||
|
||||
########################
|
||||
# Bec commands
|
||||
########################
|
||||
kid |___. same as kick and ban but. used beid insetead of names: !kid 0, !bid 3 , Use "#beclient players" to get hold of the Id. DO NOT USE "#USERLIST" thats a diffrent thing.
|
||||
bid |
|
||||
grant
|
||||
degrant
|
||||
warn
|
||||
makeroom
|
||||
help
|
||||
pinfo
|
||||
ainfo
|
||||
uptime
|
||||
external
|
||||
loadadmins
|
||||
loadcommands
|
||||
|
||||
-->
|
||||
|
||||
<BeCommands>
|
||||
|
||||
<!--
|
||||
Shutdown the server.
|
||||
|
||||
!cmdName : Instant shutdown.
|
||||
!cmdName N : set a timer in seconds before shutdown,
|
||||
!cmdName abort : abort current shutdown procedure.
|
||||
!cmdName info : display how long left to shutdown.
|
||||
|
||||
Uses ArmA #shutdown command.
|
||||
-->
|
||||
<command id="0">
|
||||
<name>!sht</name>
|
||||
<group>1</group>
|
||||
<cmd>#shutdown</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: [!sht] or [!sht N] or [!sht info] or [!sht abort] :: INFO -> Shutdowns the dedicated arma server. use: !sht N, to set a timeout in Seconds before shutdown, !sht abort, to abort current shutdown, !sht info, to see how long left.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Open Mission selection meny.
|
||||
|
||||
Note:
|
||||
An in-game ArmA Admin should be loged in before using this.
|
||||
Executing this command without an admin logged in may resulting in getting stuck with a black load screen!.
|
||||
|
||||
Uses ArmA #missions command.
|
||||
-->
|
||||
<command id="1">
|
||||
<name>!mis</name>
|
||||
<group>1</group>
|
||||
<cmd>#missions</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !mis :: INFO -> Show mission. Carefull with this command. an admin should be logged in with the arma interface. #login or gui if this is to be used</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Restart mission.
|
||||
Players keeps the same slot as he/she had before the restart.
|
||||
|
||||
Uses ArmA #restart command.
|
||||
-->
|
||||
<command id="2">
|
||||
<name>!res</name>
|
||||
<group>4</group>
|
||||
<cmd>#restart</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !res :: INFO -> Restart mission with current player slot selection</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
ReAssing Player slots and restart the mission.
|
||||
Players may not get same slots as they had.
|
||||
|
||||
Uses ArmA #reassign command.
|
||||
-->
|
||||
<command id="3">
|
||||
<name>!rea</name>
|
||||
<group>4</group>
|
||||
<cmd>#reassign</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !rea :: INFO -> Restart the mission with new player slot selection</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Lock down the server, No more players will be able to join the server..
|
||||
If your server is password protected. it will also prevent players knowing the password from connecting.
|
||||
|
||||
Uses ArmA #lock command.
|
||||
-->
|
||||
<command id="4">
|
||||
<name>!lck</name>
|
||||
<group>3</group>
|
||||
<cmd>#lock</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !lck :: INFO -> Locks the server. No one will be able to join.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Unlock the server. allow players to be able to connect again.
|
||||
|
||||
Uses ArmA #unlock command.
|
||||
-->
|
||||
<command id="5">
|
||||
<name>!ulck</name>
|
||||
<group>3</group>
|
||||
<cmd>#unlock</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !ulck :: INFO -> Unlocks the Server.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Change to a new mission.
|
||||
You need to know the filename but exclude the pbo extension.
|
||||
Example:
|
||||
!cmdName abc.vr
|
||||
!cmdName TestMission.Stratis
|
||||
!cmdName co40_SomeGame.Altis
|
||||
|
||||
Uses ArmA #mission command.
|
||||
-->
|
||||
<command id="6">
|
||||
<name>!cm</name>
|
||||
<group>4</group>
|
||||
<cmd>#mission</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !cm mission filename :: INFO -> Change Mission. you need to know the filename but exclude the pbo extension.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Change the maxping value.
|
||||
|
||||
Set the ping limit on the server. Players with a ping higher than the limit will be kicked off the server.
|
||||
|
||||
!cmdName : Will set what is defined in the <text> tag as the new maxping limit.
|
||||
!cmdName N : Will set a new maxping limit to N milliseconds.
|
||||
|
||||
Uses BE maxping command.
|
||||
-->
|
||||
<command id="7">
|
||||
<name>!mp</name>
|
||||
<group>3</group>
|
||||
<cmd>maxping</cmd>
|
||||
<time></time>
|
||||
<text>150</text>
|
||||
<desc>USAGE :: [!mp] or [!mp N] :: INFO -> Set a maxping limit on the server. N is the value in milliseconds, default = 150</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Ban a player
|
||||
|
||||
The <time> tag defines how long the ban is last.
|
||||
The time value is in minutes.
|
||||
Value 0 is permanent ban
|
||||
|
||||
The <text> tag defines the ban reason
|
||||
|
||||
There are two special words that can be used in the <text> tag.
|
||||
_name_ and,or _time_
|
||||
|
||||
if _name_ is used in the reason text, it will replace _name_ with the name of the admin who executed the command.
|
||||
if _time_ is used in the reason text, it will replace _time_ with the date when the player can come back.
|
||||
|
||||
Uses BE ban command.
|
||||
-->
|
||||
<command id="8">
|
||||
<name>!ban</name>
|
||||
<group>0</group>
|
||||
<cmd>ban</cmd>
|
||||
<time>518400</time>
|
||||
<text>You got a ban by : _name_ , come back _time_</text>
|
||||
<desc>USAGE :: !ban name :: INFO -> Ban a player.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Kick Command
|
||||
|
||||
The <text> tag defines the reason the player will be given.
|
||||
Like the ban command, the kick support the _name_ place holder in the reason text.
|
||||
|
||||
Uses BE kick command.
|
||||
-->
|
||||
<command id="9">
|
||||
<name>!kick</name>
|
||||
<group>3</group>
|
||||
<cmd>kick</cmd>
|
||||
<time></time>
|
||||
<text>Decision By Admin: _name_</text>
|
||||
<desc>USAGE :: !kick name :: INFO -> Kick a player.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Special Custom Commands is used with #beclient players to get players id
|
||||
This can be usefull if you need to kick example a russian named player. "if you dont know how to type in cyrillic"
|
||||
Example: #beclient players ... !bid 15
|
||||
bid and kid does not support the _name_ place holder
|
||||
|
||||
Uses BE ban or kick commands
|
||||
-->
|
||||
<!-- Ban based on BeId -->
|
||||
<command id="10">
|
||||
<name>!bid</name>
|
||||
<group>0</group>
|
||||
<cmd>bid</cmd>
|
||||
<time>0</time>
|
||||
<text>Admins Decision!</text>
|
||||
<desc>USAGE :: !bid id :: INFO -> Kick a player based on the BEID. use #Beclient players to get the id.</desc>
|
||||
</command>
|
||||
<!-- Kick based on BeId -->
|
||||
<command id="11">
|
||||
<name>!kid</name>
|
||||
<group>1</group>
|
||||
<cmd>kid</cmd>
|
||||
<time></time>
|
||||
<text>Admins Decision!</text>
|
||||
<desc>USAGE :: !kid id :: INFO -> Kick a player based on the BEID. use #Beclient players to find the id.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Give a warning to a player
|
||||
The Warnings parameter in [Misc] section in Bec config file must be higher than 0 for this to have any effect.
|
||||
-->
|
||||
<command id="12">
|
||||
<name>!warn</name>
|
||||
<group>3</group>
|
||||
<cmd>warn</cmd>
|
||||
<time></time>
|
||||
<text>This is a Warning given by admin: _name_</text>
|
||||
<desc>USAGE :: !warn name :: INFO -> Send a warning to a player and increase the warn-counter.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Grant a player tmp admin permissions
|
||||
The <text> tag defines the group level for the tmp admin.
|
||||
Tmp admin's will be able to execute all commands in the group level you set him/her too.
|
||||
-->
|
||||
<command id="13">
|
||||
<name>!ata</name>
|
||||
<group>2</group>
|
||||
<cmd>grant</cmd>
|
||||
<time></time>
|
||||
<text>4</text>
|
||||
<desc>USAGE :: !ata name :: INFO -> Add a temporary admin into group 4.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!-- Remove tmp admin permission -->
|
||||
<command id="14">
|
||||
<name>!rta</name>
|
||||
<group>2</group>
|
||||
<cmd>degrant</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !rta name :: INFO -> Remove temporary admin.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Make room for a other player, kick last player(s) based on connect time to the server.
|
||||
|
||||
Note:
|
||||
Do not use this if you have restarted Bec during a server session / mission while there was player online.
|
||||
Reason is that Bec will no longer have their correct connect time.
|
||||
-->
|
||||
<command id="15">
|
||||
<name>!mr</name>
|
||||
<group>2</group>
|
||||
<cmd>makeroom</cmd>
|
||||
<time></time>
|
||||
<text>Making Room For Members</text>
|
||||
<desc>USAGE :: !mr N :: INFO -> Kick N numbers of player based on join time. last joined players will get kicked.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Show basic player info
|
||||
Will send a private message back with info about the requested player such as:
|
||||
Player: Name | Beid: N | Joined: 12:00:00 12.12 | Ip: 127.0.0.1 | Guid: 1234567898cb748f813a62af1e52579a
|
||||
-->
|
||||
<command id="16">
|
||||
<name>!pinf</name>
|
||||
<group>2</group>
|
||||
<cmd>pinfo</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !pinf name :: INFO -> Show player info. Beid and join time.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Show admins online
|
||||
Sends back a private message with a list of Bec admins online.
|
||||
-->
|
||||
<command id="17">
|
||||
<name>!ainf</name>
|
||||
<group>100</group>
|
||||
<cmd>ainfo</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !ainf :: INFO -> Show Admins online.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Reload the admin file
|
||||
If you have edited your admin file you can make Bec reload the data instead of restarting Bec.
|
||||
-->
|
||||
<command id="18">
|
||||
<name>!raf</name>
|
||||
<group>0</group>
|
||||
<cmd>loadadmins</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !raf :: INFO -> Reloade the admin file.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Reloade the command file
|
||||
If you have edited your commands file you can make Bec reloade the data instead of restarting Bec.
|
||||
-->
|
||||
<command id="19">
|
||||
<name>!rcf</name>
|
||||
<group>0</group>
|
||||
<cmd>loadcommands</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !rcf :: INFO -> Reloade the command file.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Show the current server time.
|
||||
This will show the local time on the server not the client time.
|
||||
It can be useful for players to determine the time zone of the server.
|
||||
|
||||
The command will send back a private message to the player.
|
||||
Server time : 02:41:51 18/12 - 2014
|
||||
-->
|
||||
<command id="20">
|
||||
<name>!time</name>
|
||||
<group>0</group>
|
||||
<cmd>systime</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !time :: INFO -> Show server time.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Show the server uptime
|
||||
This will show how long the server has been running and when it was started (Local Server Time)
|
||||
|
||||
The command will send back a private message to the player.
|
||||
Server Uptime : 8:21:34 ~ Started : 2014-12-17 18:28:32
|
||||
|
||||
-->
|
||||
<command id="21">
|
||||
<name>!uptime</name>
|
||||
<group>100</group>
|
||||
<cmd>uptime</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: !uptime :: INFO -> Show Server Uptime.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Show basic help
|
||||
|
||||
This will list up all commands the admin/player is allowed to execute.
|
||||
If this is set to group 100 Normal players will be able to see all commands in group 100 ("Public commands")
|
||||
-->
|
||||
<command id="22">
|
||||
<name>!help</name>
|
||||
<group>100</group>
|
||||
<cmd>help</cmd>
|
||||
<time></time>
|
||||
<text></text>
|
||||
<desc>USAGE :: [!help] or [!help !command] :: INFO -> Use help to show available commands.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
Send a pre-defined text message to player(s)
|
||||
|
||||
Note about <time> tag.
|
||||
If set to 1, it will send the message back as a private.
|
||||
If you want it to be a global message for all players leave the tag empty.
|
||||
-->
|
||||
|
||||
<!-- send a private message with basic info to the admin/player who executed the command -->
|
||||
<command id="23">
|
||||
<name>!info</name>
|
||||
<group>100</group>
|
||||
<cmd>say</cmd>
|
||||
<time>1</time>
|
||||
<text>Use !help to get help, visit our webpage for more info.</text>
|
||||
<desc>USAGE :: !info :: INFO -> Send a private message with general info.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!-- group 5 admin may send a global message to all players. -->
|
||||
<command id="24">
|
||||
<name>!notify</name>
|
||||
<group>5</group>
|
||||
<cmd>say</cmd>
|
||||
<time></time>
|
||||
<text>The Server will be restart after this mission</text>
|
||||
<desc>USAGE :: !notify :: INFO :: Sends global message to all player</desc>
|
||||
</command>
|
||||
|
||||
|
||||
<!--
|
||||
External scripts
|
||||
Note:
|
||||
The 1st Argument Passed to a External script is always the Username "Hardcoded"
|
||||
The 2nd,3rd,4th.. and so forth are separated by spaces.
|
||||
-->
|
||||
<command id="25">
|
||||
<name>!math</name>
|
||||
<group>2</group>
|
||||
<cmd>external</cmd>
|
||||
<time></time>
|
||||
<text>Config\Script_Example.bat</text>
|
||||
<desc>USAGE :: !math Int+Int :: INFO -> Do simple bat math!.</desc>
|
||||
</command>
|
||||
|
||||
|
||||
</BeCommands>
|
183
ExileServers/ExileAltis/battleye/BEC/Config/Scheduler-FAQ.txt
Normal file
183
ExileServers/ExileAltis/battleye/BEC/Config/Scheduler-FAQ.txt
Normal file
@ -0,0 +1,183 @@
|
||||
|
||||
Frequently asked questions about the scheduler!
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
Q: I don't really understand the two time formats.
|
||||
What's this hhmmss and hh:mm:ss all about?
|
||||
|
||||
A: When we are dealing with Bec time system there are two format and they behave very differently in what they do.
|
||||
To say it simple. hh:mm:ss is for a specific time of the day and this is set in military time.
|
||||
so example 18:00:00 is the same as 6 Pm and 06:00:00 is 6 Am.
|
||||
(Bec inputs its range in 00:00:00 to max 23:59:59) for this format.
|
||||
|
||||
Now this other format hhmmss works a bit differently and needs a bit more explaining.
|
||||
Its basically a countdown format where you divide it up in three sections. [HH] , [MM], [SS]
|
||||
The first two are the hours. the middle two are the minutes and the last two are the seconds.
|
||||
(Bec inputs its range in 000000 to max 999999) for this format.
|
||||
|
||||
Example 010101 means the job is to be run after 1 hour, 1 minute and 1 second.
|
||||
Where as example 101010 the job is to be run after 10 hours 10 minutes and 10 seconds
|
||||
|
||||
This can also be a bit confusing since you can specify the same "countdown" in several ways.
|
||||
Example a job is to be run every 1 minute and 30 seconds can be defined two ways.
|
||||
000130 or 000090
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
Q: Why does none of my schedules work, been editing for hours for no use. :/
|
||||
|
||||
A: Because Bec is very strict when it comes to the Scheduler system, it does not tolerate any errors.
|
||||
Check your Error log for errors, if you have as much as one error related to the scheduler, no tasks will work.
|
||||
|
||||
THE Scheduler.xml NEEDS TO BE PERFECTLY EDITED WITH CORRECT SETTINGS FOR ALL TAGS. PERIOD.
|
||||
|
||||
Bec will write the errors both to the screen and to the error logfile.
|
||||
If you can not check the console window then take a look in your Bec directory.
|
||||
C:\YourPath\Bec\Log\CfgName\Error\BecError_Date.log
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
Q: I want to have two messages running every 20 sec. but show them 10 seconds apart, how to do this?
|
||||
|
||||
A: You can do something like this
|
||||
|
||||
<job id='0'>
|
||||
<day>1,2,3,4,5,6,7</day>
|
||||
<start>000020</start>
|
||||
<runtime>000020</runtime>
|
||||
<loop>-1</loop>
|
||||
<cmd>say -1 text 1</cmd>
|
||||
</job>
|
||||
<job id='1'>
|
||||
<day>1,2,3,4,5,6,7</day>
|
||||
<start>000030</start>
|
||||
<runtime>000020</runtime>
|
||||
<loop>-1</loop>
|
||||
<cmd>say -1 text 2</cmd>
|
||||
</job>
|
||||
|
||||
|
||||
As you can see the job 0 will start after 20 seconds. but job 1 will start after 30.
|
||||
Thus there will be a 10 second offset between the two messages.
|
||||
|
||||
18:00:20 : RCon admin #0: (Global) text 1
|
||||
18:00:30 : RCon admin #0: (Global) text 2
|
||||
18:00:40 : RCon admin #0: (Global) text 1
|
||||
18:00:50 : RCon admin #0: (Global) text 2
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
Q: I want to have a message run every N (Hour, Min, Sec) on my server but stop showing it after 10 times.
|
||||
|
||||
A: You can do something like this.
|
||||
|
||||
<job id='0'>
|
||||
<day>1,2,3,4,5,6,7</day>
|
||||
<start>010000</start>
|
||||
<runtime>010000</runtime>
|
||||
<loop>9</loop>
|
||||
<cmd>say -1 text xyz</cmd>
|
||||
</job>
|
||||
|
||||
This will start the job after one hour and show the message, it will continue to show the message nine times more, once each hour
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
Q: How can i set a task to repeat itself within a give time frame of the day. ?
|
||||
Example i want to show message: "Wherez My Beer Dude" every 15 min from 18:00:00 to 20:00:00
|
||||
I don't want to create tons of jobs nor do i want to have same message repeating itself all time.
|
||||
|
||||
A: You can not stop a task at a precise time.
|
||||
but we can do this somewhat. We will be using the hh:mm:ss in start tag and some simple math.
|
||||
|
||||
So. from 18:00 to 20:00 there is 120 minutes.. ok so we know the total minutes it should be active.
|
||||
Now to do an estimate: 120 total min / 15 min interval = 8
|
||||
So we are left with 8 times the messages should be show.
|
||||
|
||||
we just put this in our scheduler file
|
||||
|
||||
<job id='0'>
|
||||
<day>1,2,3,4,5,6,7</day>
|
||||
<start>18:00:00</start>
|
||||
<runtime>001500</runtime>
|
||||
<loop>7</loop>
|
||||
<cmd>say -1 Wherez My Beer Dude</cmd>
|
||||
</job>
|
||||
|
||||
We don't use loop 8, but 7 because we show the message once then repeat it 7 times more with 15 min apart.
|
||||
In total 8 messages will be shown
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
Q: I have a job that is set to use a external bat script. but it doesn't work.
|
||||
|
||||
A: There could be several reasons to it.
|
||||
|
||||
-*- Check List -*-
|
||||
|
||||
1 - Check your path in your scheduler.xml file, make sure its the full path and set correct.
|
||||
Thought Bec should detect this if its wrong.
|
||||
|
||||
|
||||
2 - if Bec is started up with the --dec parameter, it will be auto disabled.
|
||||
(Bec.exe -f my_config.cfg --dec ) disables Bec from using external commands.
|
||||
This is the case for both the Scheduler.xml and the Commands.xml file
|
||||
|
||||
GameHosters that are using Bec and not using (--dec) sets them self at a security risk.
|
||||
But that another story and not really my problem.
|
||||
|
||||
|
||||
3 - Try run it in CMD.exe, see how it works without Bec.
|
||||
|
||||
|
||||
4 - Keep in mind that the CWD (Current Work Directory) your bat|cmd script or program will have is the same as your Bec install.
|
||||
Let say the path you have your Bec installed is at (C:\Tools\Bec).
|
||||
This is and will be the CWD of your script even if its located in C:\Scripts\Myfile.bat or some other place.
|
||||
|
||||
Depending on your script and what it does, you might need to set a new work-dir by editing your script with something like:
|
||||
::--------------------
|
||||
set NewCWD="C:\Scripts\"
|
||||
cd /d %NewCWD%
|
||||
|
||||
do stuff
|
||||
::--------------------
|
||||
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
Q: Which commands does the scheduler support?
|
||||
|
||||
A: The scheduler supports these commands in the <cmd> tag.
|
||||
|
||||
say -1 some text
|
||||
loadbans
|
||||
loadscripts
|
||||
loadevents
|
||||
writebans
|
||||
maxping 250
|
||||
#shutdown
|
||||
#restart
|
||||
#reassign
|
||||
#lock
|
||||
#unlock
|
||||
#mission filename (without the .pbo extension)
|
||||
systime
|
||||
uptime
|
||||
fortune
|
||||
exit
|
||||
|
||||
|
||||
|
42
ExileServers/ExileAltis/battleye/BEC/Config/Scheduler.xml
Normal file
42
ExileServers/ExileAltis/battleye/BEC/Config/Scheduler.xml
Normal file
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
|
||||
<Scheduler>
|
||||
|
||||
<!-- this job will start after 10 minutes and run forever with a 1 hour and 30 minutes interval between the jobs -->
|
||||
<job id='0'>
|
||||
<day>1,2,3,4,5,6,7</day>
|
||||
<start>000100</start>
|
||||
<runtime>001000</runtime>
|
||||
<loop>-1</loop>
|
||||
<cmd>say -1 This server restarts every 4 hours</cmd>
|
||||
</job>
|
||||
|
||||
<!-- this job will start after 30 seconds and will only run once. note that the runtime tag is ignored when loop is 0 -->
|
||||
<job id='1'>
|
||||
<day>1,2,3,4,5,6,7</day>
|
||||
<start>000105</start>
|
||||
<runtime>001000</runtime>
|
||||
<loop>-1</loop>
|
||||
<cmd>say -1 TEAMSPEAK IP ts3.eXpoch.INFO -- Donate @ paypal.me/DonkeyPunch</cmd>
|
||||
</job>
|
||||
|
||||
<!-- this job will start after 15 seconds and will run every 25 sec. total times the message will be show is 6 times -->
|
||||
<job id='2'>
|
||||
<day>1,2,3,4,5,6,7</day>
|
||||
<start>000110</start>
|
||||
<runtime>001000</runtime>
|
||||
<loop>-1</loop>
|
||||
<cmd>say -1 Glitching/Cheating/Hacking/Abusing/Exploiting are all BANNABLE offenses</cmd>
|
||||
</job>
|
||||
|
||||
|
||||
<!-- this job will start at 07:00:00 (7 am) and will repeat itself every 20 min for 3 more time. in total 4 times. will run at set time for defined days -->
|
||||
<job id='3'>
|
||||
<day>1,2,3,4,5,6,7</day>
|
||||
<start>000400</start>
|
||||
<runtime>003000</runtime>
|
||||
<loop>-1</loop>
|
||||
<cmd>say -1 Please Support the server to keep it alive and the man behind the screen! paypal.me/DonkeyPunch</cmd>
|
||||
</job>
|
||||
|
||||
</Scheduler>
|
@ -0,0 +1,43 @@
|
||||
@echo off
|
||||
|
||||
:: This is only provided as a simple example file
|
||||
:: Passing Arguments to Scripts from ingame chat..
|
||||
:: The 1st Argument Passed to a External script is always the Username "Hardcoded"
|
||||
:: 2nd,3rd,4th etc are seperated by spaces.
|
||||
:: !script X Y Z
|
||||
:: !script "X" "Y" "Z"
|
||||
:: X = arg2 , Y = arg3 , Z = arg4
|
||||
:: Normally Bec will seperate arguments by spaces. but if you have aruments that has spaces in them. use quotes around them.
|
||||
:: External Scripts will never return anything back to Arma.
|
||||
|
||||
|
||||
|
||||
:: EXAMPLE
|
||||
:: Add two numbers together..
|
||||
|
||||
:: !math 1+2
|
||||
|
||||
set name=%~1
|
||||
set /a var=%~2
|
||||
echo Hello User: %name%
|
||||
echo The Result of %~2 is: %var%
|
||||
|
||||
|
||||
|
||||
:: EXAMPLE
|
||||
:: Write Text to a file..
|
||||
:: Note the Quote around the string. if we pass a argument with spaces in it we want to remove the quotes.
|
||||
|
||||
|
||||
:: Text and remove quotes.
|
||||
set arg2=%~2
|
||||
set arg2=%arg2:"=%
|
||||
|
||||
:: Filename
|
||||
set arg3=%3
|
||||
|
||||
:: Now write to the file.
|
||||
echo User: %~1 Wrote: %arg2% >> %arg3%
|
||||
|
||||
|
||||
timeout 10
|
40
ExileServers/ExileAltis/battleye/BEC/Config/WhiteList.txt
Normal file
40
ExileServers/ExileAltis/battleye/BEC/Config/WhiteList.txt
Normal file
@ -0,0 +1,40 @@
|
||||
8539e01499f87083b3a25eb30041261c headless client
|
||||
bcc3063dfd509dda3fc38f5803817f8c ArmaJesus
|
||||
2259dae0ce26ba074caba7ede760e0fa Mustang
|
||||
63a202fb7c8d640f35a6c1a35b5169e1 Daarken
|
||||
9b0966dfafa6b55c1fef9865c5ce0b4f Flux101
|
||||
b042d3073b72df7c926c6b1dd321b8c3 1toKill
|
||||
362e3513c4987ebdf9eb8a9f644a7c3c MrMan
|
||||
52f69fd75809984d0084293be1067191 Striker
|
||||
73f62872411f35f80b2b0a5dac17bec5 Philly
|
||||
866c65963192df1d0145f38df362724e Eisaak
|
||||
874c87bff45eb35b865cd5b77c13866e IcyyMike
|
||||
464e6d4d1748e5093d749953b8fae6a8 DustyBandito
|
||||
5fc54a9bf95b46f1ee2225e17e1151d5 Ghostman
|
||||
b93fb872dfe9f87a68b4c7ee766a67f4 Devastator
|
||||
cd1aa3e33146805039503b68ecffb165 specops
|
||||
7affebc112d0543b39cee64c288105a4 sneak
|
||||
52f69fd75809984d0084293be1067191 lucinity
|
||||
a7ed2c9b213edb8984521b8d26a273b0 Williams
|
||||
115b9e16e3750e82b59adb25b2e88226 Oswaldcobble
|
||||
3ed4eeddb53c84f379a2e43a4f20e4d6 GuidoDONE
|
||||
abb7ca396fa622eb58091f1da0be4d6e HellbentDONE
|
||||
6203932fe422d82e50214a1bde3782b6 ChupacabraDONE
|
||||
2ca838fd8176e0860a7bd4ff2645b758 CarelessDONE
|
||||
9b7566d895969f7513ceec22b5512f16 Jessedi
|
||||
bc671337665fc1e1e2454bd5f87bbeed LoopsDONE
|
||||
b4c921bbe1ac8896136aa82a9c33b62e MajewDONE
|
||||
bc0c9aa700cdd7c288fc5c9b3110f3d1 paddster7DONE
|
||||
2210fbcac6dadb9f7c499cd750946ad5 grantDONE
|
||||
fcbdd14f2e5d8388bd1c82828c2764ee swampfoxDONE
|
||||
f2c6e7369af68845757fefc988171952 fitipaldiDONE
|
||||
e6e770e301870c69fb8ed4898eceee7e ApexpredatorDONE
|
||||
457531ce72f14a897d4703d7a5471574 SgtMercDONE
|
||||
13e88cc791a5831cb2dc2d009c8667e6 BlakeBladesDONE
|
||||
edf0ea855203ecb15e5c509e1cc83c43 RedeyeDONE
|
||||
6e453e622670d80e13352d6d50a2e214 SteeleEFBDONE
|
||||
9844c16e3ad1439931f9ed49d47a9259 mythblaze
|
||||
6ba17147f227cfa1461a3431908c552f JMonetgoofy
|
||||
f8a8d26033d17b6ee41e2dee2e5379be Bill
|
||||
2fc0db78506ccdbee1d115e32f769758 kyle
|
||||
7703316de64b20500a3284badf90cb57 state
|
214
ExileServers/ExileAltis/battleye/BEC/Config/config.cfg
Normal file
214
ExileServers/ExileAltis/battleye/BEC/Config/config.cfg
Normal file
@ -0,0 +1,214 @@
|
||||
# This config file is only provided as an example file.
|
||||
# Edit it to sute your needs.
|
||||
# For more info on how to edit this file. use the Readme.txt file or visit http://www.ibattle.org/install-and-configure
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
[Bec]
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
|
||||
# Set the ip to your server. normally 127.0.0.1 will be fine.
|
||||
Ip = 127.0.0.1
|
||||
|
||||
|
||||
# Set the port to the server. default port is 2302
|
||||
Port = 2304
|
||||
|
||||
|
||||
# Set the path to the BattlEye directory that is currently in use by the server.
|
||||
BePath = C:\ExileServers\ExileAltis\battleye
|
||||
|
||||
|
||||
# Set the path to your Admins.xml file containing your admins.
|
||||
Admins = Admins.xml
|
||||
|
||||
|
||||
# Set the path to your Commands.xml file.
|
||||
Commands = Commands.xml
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
[Misc]
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
|
||||
# Set which type of hacks that will be added to your banlist.
|
||||
# 0 = none. 1 = GameHack. 2 = Battleye Hack. 3 = both GameHack & Battleye Hack.
|
||||
# value 3 is set as default if this parameter is not defined.
|
||||
Ban = 3
|
||||
|
||||
|
||||
# Set the names of your custom ban files, Separate each file with "," (comma): file1.txt, banfile2.txt, newfile.txt
|
||||
# If you do not use any custom ban files. delete this option or leave this option commented.
|
||||
# This option will check ban files for changes and automatic do a loadbans file when a file gets changed
|
||||
# Do not specify the default bans.txt file here.
|
||||
# BeCustomBanFiles = Bans1.txt, file2.txt, file3.txt
|
||||
|
||||
|
||||
# Set the height & width of Becs console window
|
||||
ConsoleHeight = 45
|
||||
ConsoleWidth = 165
|
||||
|
||||
|
||||
# Only allow english chars.
|
||||
AsciiNickOnly = True
|
||||
|
||||
|
||||
# Only allow english chars to be typed on the chat. Note, Warnings must be enabled. 0 or more.
|
||||
AsciiChatOnly = True
|
||||
|
||||
|
||||
# If AsciiChatOnly is set True. you can define none english chars that will be accepted.
|
||||
# You separate each char with a , "note you need to define lower and upper case of the chars."
|
||||
IgnoreChatChars = €,£,æ,Æ,ø,Ø,å,Å,ö,ä,ü,ß
|
||||
|
||||
|
||||
# Set the amount of warnings a player will get before kicked. -1 is disabled. 0 instant kick
|
||||
# 1 == one warning on a bad word. next bad word results in kick
|
||||
Warnings = -1
|
||||
|
||||
|
||||
# Kick players who has listed chars in their name
|
||||
# DisallowPlayerNameChars = []{}()0123456789
|
||||
|
||||
|
||||
# Min length, kicks players who has to short name.
|
||||
MinPlayerNameLength = 3
|
||||
|
||||
|
||||
# Max length, kicks players who has to long name.
|
||||
MaxPlayerNameLength = 25
|
||||
|
||||
|
||||
# Set the name of your Arma3server.exe if it has been renamed from arma3server.exe to something else!
|
||||
# if the exe has its original name. comment it out.
|
||||
# DO NOT SET FULL PATH TO THE EXE FILE
|
||||
ServerExeName = arma3server_x64.exe
|
||||
|
||||
|
||||
# Set path to the file containing a list of bad words. Note, Warnings must be enabled. 0 or more.
|
||||
WordFilterFile = BadWords.txt
|
||||
|
||||
|
||||
# Set the path to the file containing whitelisted guids.
|
||||
# WhiteListFile = WhiteList.txt
|
||||
|
||||
|
||||
# Set custom whitelist kick message. Text must be in ascii letters. MAX 58 CHARS. BE only does ascii on messages
|
||||
WhiteListKickMsg = Join TS3 or visit DONKEYPUNCH.INFO for more on Whitelisting
|
||||
|
||||
|
||||
# Kick people with offensive names
|
||||
# NickFilterFile = BadNames.txt
|
||||
|
||||
|
||||
# Set the path to the Scheduler.xml file.
|
||||
Scheduler = Scheduler.xml
|
||||
|
||||
|
||||
# Kick people who are idleing in the lobby, kick will happen after given time, Min time is 90 sec. use 0 to disable this function.
|
||||
KickLobbyIdlers = 0
|
||||
|
||||
|
||||
# If enabled. Bec will create separate chat files for each channel along with the main file.
|
||||
#ChatChannelFiles = false
|
||||
|
||||
# Set the amount of Normal players who can connect. Set it to -1 to disable it.
|
||||
# If set to 0 it means only players who are listed in the Admins.xml, (or whatever you call it) will be able to connect to the server.
|
||||
# Quick Example 1: server can holed 50 players. and you want to reserve 5 slots for admins. then set SlotLimit to 45.
|
||||
# Quick Example 2: server can holed 50 players. and you want to reserve 5 slots for admins and 5 slots for friends. then set SlotLimit to 40,
|
||||
# AND edit your admins.xml. ADD in all your frineds guid and remaining data, put them in group example 100. or whatever you feel likt.
|
||||
# by using this method you can give some of your friends some access to some commands if you like or none.
|
||||
# in general this is works like .Whitelisting X player slots for admins and friends, while leaving the remaining Y slots for public.
|
||||
SlotLimit = 60
|
||||
|
||||
# Set the message people will get when they try to connect and is not whitelisted. Text must be in ascii letters.
|
||||
SlotLimitKickMsg = OOPS Server Full! better Visit DONKEYPUNCH.INFO!
|
||||
|
||||
|
||||
# The amount of time Bec will wait for the server to start up.
|
||||
Timeout = 30
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
[Reporter]
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
# Reporter account. Fill in the username and password for your reporter account.
|
||||
# GameHacks, BattlEye Hacks will be reported to a database. all players who connect will also be checked against this database.
|
||||
|
||||
# Set the Username for your account
|
||||
#User = alfred
|
||||
|
||||
|
||||
# Set the Password for your account
|
||||
#Password = 123456
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
[ChatRestriction]
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
# Set max amount of chat lines a player is allowed to send for each channel.
|
||||
# Going passed the number will result in kick. -1 is disabled, 0 instant kick.
|
||||
# If the number is higher than 0 players will be sent warnings.
|
||||
|
||||
#Lobby = 30
|
||||
#Global = 5
|
||||
#Side = 7
|
||||
#Group = 9
|
||||
#Vehicle = 11
|
||||
#Command = 13
|
||||
#Commander = 15
|
||||
#Direct = 17
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
[ChatSpam]
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
|
||||
# Set max amount of chat lines per channel allowed within given time frame.
|
||||
# Set the values to 0 to disable this function(s)
|
||||
|
||||
# Quick Example:
|
||||
# Lobby = 5
|
||||
# Lobby_Time_Lower = 10
|
||||
# Lobby_Time_Upper = 15
|
||||
|
||||
# If the time between each new chatlines from a player is less than CHANNEL_Time_Lower the spam counter increases by + 1.
|
||||
# Consider the CHANNEL (Lobby) as the spam counter.
|
||||
# When a player has (CHANNEL - 1) in spam counting. a warning will be sent to whom it may concern.
|
||||
# If the time between each new chatline from the player is Greater than CHANNEL_Time_Lower and Less than CHANNEL_Time_Upper the spam counter stay as it is.
|
||||
# If the time since the last chatline is greater then CHANNEL_Time_Upper the spam counter is reset to 1.
|
||||
# To get optimal result play around a bit with the values on your server.
|
||||
|
||||
#Lobby = 0
|
||||
#Lobby_Time_Lower = 0
|
||||
#Lobby_Time_Upper = 0
|
||||
|
||||
#Global = 0
|
||||
#Global_Time_Lower = 0
|
||||
#Global_Time_Upper = 0
|
||||
|
||||
#Side = 0
|
||||
#Side_Time_Lower = 0
|
||||
#Side_Time_Upper = 0
|
||||
|
||||
#Group = 2
|
||||
#Group_Time_Lower = 1
|
||||
#Group_Time_Upper = 3
|
||||
|
||||
#Vehicle = 0
|
||||
#Vehicle_Time_Lower = 0
|
||||
#Vehicle_Time_Upper = 0
|
||||
|
||||
#Command = 0
|
||||
#Command_Time_Lower = 0
|
||||
#Command_Time_Upper = 0
|
||||
|
||||
#Commander = 0
|
||||
#Commander_Time_Lower = 0
|
||||
#Commander_Time_Upper = 0
|
||||
|
||||
#Direct = 0
|
||||
#Direct_Time_Lower = 0
|
||||
#Direct_Time_Upper = 0
|
||||
|
||||
|
26
ExileServers/ExileAltis/battleye/BEC/Credits.txt
Normal file
26
ExileServers/ExileAltis/battleye/BEC/Credits.txt
Normal file
@ -0,0 +1,26 @@
|
||||
Thanks to!
|
||||
|
||||
Sebastian. aka $able for support regarding BERcon protocole issues.
|
||||
Stian Strand. aka Sup@hKing. for supplying test environment.
|
||||
Daniel Koch. aka Kochleffel. for supplying test environment in Bec's early days.
|
||||
|
||||
|
||||
A Big thanks to all who has Donated!
|
||||
Karl Lawrence,
|
||||
Damian Hayden,
|
||||
Fabien Lefevre,
|
||||
Ivanov Alexander,
|
||||
Claus Lauridsen,
|
||||
Cintia D Fernandes,
|
||||
Travis Prue,
|
||||
Dennie Bosch,
|
||||
Florian Weber,
|
||||
Anthony Hartfield,
|
||||
Luc Mathlin,
|
||||
John Rhodes,
|
||||
Gorlov Nikita,
|
||||
Elias Toft Hansen,
|
||||
Александр Лежепеков,
|
||||
|
||||
And all the others who uses Bec, and the forgotten names who has donated and reported bugs and issues etc.
|
||||
By. Stian Mikalsen.
|
46
ExileServers/ExileAltis/battleye/BEC/LICENSE.txt
Normal file
46
ExileServers/ExileAltis/battleye/BEC/LICENSE.txt
Normal file
@ -0,0 +1,46 @@
|
||||
Battleye Extended Controls "Bec", License.
|
||||
=========================
|
||||
|
||||
Bec Copyright © 2011-2014 by Stian Mikalsen. All rights reserved.
|
||||
|
||||
"Software" refers to Bec "Battleye Extended Controls" and all files belonging to the program, including the documentation.
|
||||
|
||||
Warranty disclaimer
|
||||
=========================
|
||||
The Software is provided "as-is", without any express or implied warranty, to the maximum extent permitted by applicable law.
|
||||
In no event shall the author be held liable for any damages arising from the direct or indirect use of the Software.
|
||||
The user must assume the entire risk of using the Software,
|
||||
knowing in particular that the Software is not designed or intended for use in hazardous environments requiring fail-safe performance,
|
||||
where its failure to perform, misuse or inability to use adequately can
|
||||
reasonably be expected to lead to death, personal injury, or severe physical or environmental damage.
|
||||
|
||||
|
||||
|
||||
Right of use.
|
||||
=========================
|
||||
Permission is granted to anyone to use this Software for private purpose, provided that the warranty disclaimer is accepted and the following conditions are met:
|
||||
|
||||
1. All redistributions must keep the original package intact. you must retain all copyright notices that are currently in place, and this license without modification.
|
||||
|
||||
2. The origin of this Software must not be misrepresented; you must not claim that you wrote the original Software.
|
||||
|
||||
3. You may not distribute this Software and|or charge a distribution fee, you must not represent in any way that you are selling the Software itself.
|
||||
- Exception: As a Game Service Provider you are allowed to charge a fee for Bec. However, if this is done
|
||||
a one time payment of 50 € (euros), is required, Payment is done through Paypal. contact email for more info.
|
||||
|
||||
4. Restrictions. Except as otherwise agreed in writing.
|
||||
You shall have no right and you shall not permit any third party to:
|
||||
Decompile, decrypt, disassemble, reverse engineer or attempt to reconstruct or discover any source code or underlying ideas like,
|
||||
algorithms, file formats or programming or any files contained or generated using the Software by any means whatsoever.
|
||||
|
||||
5. The Software shall not be used for any Commercial or Military purpose unless otherwise agreed in writing.
|
||||
- Exception: see exception for rule 3
|
||||
|
||||
6. Use of the software indicates his/her acceptance of all these terms and conditions.
|
||||
|
||||
7. If you do not agree to these conditions, delete all files related to this software from your media|storage.
|
||||
|
||||
|
||||
Stian Mikalsen
|
||||
http://www.Ibattle.org
|
||||
|
804
ExileServers/ExileAltis/battleye/BEC/README.txt
Normal file
804
ExileServers/ExileAltis/battleye/BEC/README.txt
Normal file
@ -0,0 +1,804 @@
|
||||
|
||||
|
||||
Options:
|
||||
-h, --help show this help message and exit
|
||||
-f FILENAME Config file to read from ( REQUIRED )
|
||||
-v Show current Bec version and exit
|
||||
--dec Disable external commands
|
||||
--dsc Disable server check
|
||||
--dpl Disable plugins
|
||||
--enc Set encoding table
|
||||
|
||||
FILENAME is the name of your config file. the file MUST be located inside the Config dir..
|
||||
Bec will automaticly look in the Config directory. so if you have: ..\Bec\Config\myserver.cfg
|
||||
You start Bec like: Bec.exe -f myserver.cfg
|
||||
|
||||
Do not name your config files with space in them. Use underscore if you need to have 2 names it it, example like: foo_bar.cfg
|
||||
This is a nogo. Bec.exe -f foo bar.cfg
|
||||
Do it like this. Bec.exe -f foo_bar.cfg or Bec.exe -f 'foo bar.cfg' (using quotes with spaces)
|
||||
|
||||
--dec switch will disable external scripts, this applies to both Commands.xml and Scheduler.xml
|
||||
This means that no bat or cmd files may be executed.
|
||||
|
||||
--dsc switch will disable the wait & check for the arma server.
|
||||
Bec will try and connect directly to the rcon regardless if the server is running or not.
|
||||
Note. your reporter account will be disabled if you use this option.
|
||||
|
||||
--dpl switch will prevent Bec from loading up plugins
|
||||
|
||||
|
||||
--enc switch allows you to set another char table. Bec uses by default 65001.
|
||||
you can use the command chcp in a console to see current char table.
|
||||
|
||||
NOTE: Bec might need admin permission to work properly. but when using the --dsc switch it should not require it.
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
Are you Upgrading from a previous version ???.
|
||||
Make sure you read the changelog.txt and check out the example files for possible changes !!!.
|
||||
|
||||
Do not email me for bug and such if you are to lazy reading the information given to you.
|
||||
i'll ignore all emails when it's your own fault you cant get it started.
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
************** Now... What is Bec and Whats does it do!. **************
|
||||
Bec , Aka Battleye Extended Controls.
|
||||
|
||||
Bec is Automated Rcon Tool for Battleye on Oa & Arma3 Servers.
|
||||
You can consider Bec a Rcon Bot that does things automated for you.
|
||||
|
||||
This is a Server application only, no need for anything as a client, other than arma itself.
|
||||
For Bec to work properly it depends on Battleye and a stable internet connection and ofcource the Arma server itselfeslf.
|
||||
|
||||
Let it also be said that this application is intended to run on the machine that also runs the server.
|
||||
in other words. for optimal performance do run Bec on the same machine as where the Arma3 server is running.
|
||||
|
||||
What this tool does is give you the ability to:
|
||||
|
||||
* Give Be Power on the Chatline in-game the mission with Multi Admin Support.
|
||||
* Logs Chat to file(s) with timestamps, log Be events to Own file. all organized.
|
||||
* Allows you to setup multiple admins in different Groups, setup multiple custom commands with Permission levels.
|
||||
* Ie. !bpl bans a player 10 min, !btk bans a player 20 min for Team kill.
|
||||
* Nick filter. use file with rude, offensive names that you do not allow on your server. auto kicks player on connection.
|
||||
* Setup White list file for guids, so only listed guids will be able to connect.
|
||||
* Create Schedules tasks, such as modts, event notification., restart server, run external bat/cmd scripts etc.
|
||||
* Create your own Python plugins.
|
||||
* Bec will auto report hacks and also check players who connect against a database if you have an account.
|
||||
It requires that you signin up an reporter account, this will also give you the ability to use Bec's bansys pages.
|
||||
++ more
|
||||
|
||||
!!! Summary !!!
|
||||
* Multi Admin Support
|
||||
* Define Custom Names on Commands
|
||||
* Set Group Level on Admins and Commands
|
||||
* Organized Chat logger
|
||||
* Organized BE Event logger
|
||||
* Nick Filter, Auto Kick Offensive Names Defined By You
|
||||
* Word Filter. Warn/Autokick On Offensive Chat.
|
||||
* Create Whitelist.
|
||||
* Chat Restriction.
|
||||
* Chat Spam Protection.
|
||||
* Autokick Lobby Idlers.
|
||||
* Create schedules.
|
||||
(*) Check Guid of players who connects against a central ban database
|
||||
(*) Report GameHacks To a Central Ban Database
|
||||
|
||||
|
||||
!!! PLEASE DO READ THE HOLE FILE TO SETUP BEC ON YOUR SERVER !!!
|
||||
|
||||
|
||||
******************************************************************************************************
|
||||
!!! CONFIGURE !!!
|
||||
|
||||
-------------
|
||||
*** Stp 1 ***
|
||||
-------------
|
||||
|
||||
First you need to setup BEServer.cfg for BattlEye.
|
||||
You need to verify that you have a BEServer.cfg.
|
||||
If its missing you need to create this file for Battleye before Bec can start to work.
|
||||
In this file. create one line. like this:
|
||||
|
||||
Rconpassword MySecretPassWord
|
||||
|
||||
Save it and close.
|
||||
|
||||
Http://community.bistudio.com/wiki/BattlEye
|
||||
Http://forums.bistudio.com for more info about that.
|
||||
|
||||
If you are unsure about what this file is. Do read the wiki about it. its Needed for Bec to function.
|
||||
|
||||
--- !!! YOU MUST HAVE BATTLEYE SETUP CORRECTLY WITH RCON BEFORE YOU CONTINUE !!! ---
|
||||
|
||||
|
||||
-------------
|
||||
*** Stp 2 ***
|
||||
-------------
|
||||
|
||||
Place the Bec directory anywhere you want. it doesn’t really matter where its located on your disk.
|
||||
it might be anything like:
|
||||
C:\Tools\Bec
|
||||
|
||||
Open the "Bec\Config" directory and edit the files called.
|
||||
* Config_EXAMPLE.cfg
|
||||
* Admins_EXAMPLE.xml
|
||||
* Commands_EXAMPLE.xml
|
||||
* Scheduler_EXAMPLE.xml
|
||||
|
||||
----------------------------------------------------------
|
||||
EXAMPLE CONFIG FILE, ALL PARAMETERS DEFINED:
|
||||
----------------------------------------------------------
|
||||
[Bec]
|
||||
Ip = 127.0.0.1
|
||||
Port = 2302
|
||||
BePath = C:\SERVER1\BattlEye
|
||||
Admins = Admins.xml
|
||||
Commands = Commands.xml
|
||||
|
||||
# Optional
|
||||
[Misc]
|
||||
Ban = 3
|
||||
BeCustomBanFiles = Bans1.txt, file2.txt, file3.txt
|
||||
ConsoleHeight = 65
|
||||
ConsoleWidth = 125
|
||||
AsciiNickOnly = True
|
||||
AsciiChatOnly = True
|
||||
IgnoreChars = æ,Æ,ø,Ø,å,Å
|
||||
NickFilterFile = C:\Path\Bec\Config\BadNames.txt
|
||||
WordFilterFile = C:\Path\Bec\Config\BadWords.txt
|
||||
WhiteListFile = WhiteList.txt
|
||||
WhiteListKickMsg = please connect to our ts3 for more information on howto join. ts3.domain.com
|
||||
Warnings = 5
|
||||
ServerExeName = myArma2_Server.exe
|
||||
Timeout = 40
|
||||
KickLobbyIdlers = 300
|
||||
Scheduler = Scheduler.xml
|
||||
MinPlayerNameLength = 3
|
||||
MaxPlayerNameLength = 16
|
||||
DisallowPlayerNameChars = [](){}<>/\^¨|§!"'#¤%&@£$€
|
||||
ChatChannelFiles = true
|
||||
SlotLimit = 45
|
||||
SlotLimitKickMsg = The Server has reached its player limit.
|
||||
|
||||
|
||||
# Optional
|
||||
[ChatRestriction]
|
||||
Global = 10
|
||||
Side = -1
|
||||
Group = -1
|
||||
Vehicle = -1
|
||||
Command = -1
|
||||
Commander = -1
|
||||
Direct = -1
|
||||
|
||||
# Optional
|
||||
[ChatSpam]
|
||||
Lobby = 0
|
||||
Lobby_Time_Lower = 3
|
||||
Lobby_Time_Upper = 10
|
||||
Global = 0
|
||||
Global_Time_Lower = 3
|
||||
Global_Time_Upper = 10
|
||||
Side = 0
|
||||
Side_Time_Lower = 3
|
||||
Side_Time_Upper = 10
|
||||
Group = 0
|
||||
Group_Time_Lower = 3
|
||||
Group_Time_Upper = 10
|
||||
Vehicle = 0
|
||||
Vehicle_Time_Lower = 3
|
||||
Vehicle_Time_Upper = 10
|
||||
Command = 0
|
||||
Command_Time_Lower = 3
|
||||
Command_Time_Upper = 10
|
||||
Commander = 0
|
||||
Commander_Time_Lower = 3
|
||||
Commander_Time_Upper = 10
|
||||
Direct = 0
|
||||
Direct_Time_Lower = 3
|
||||
Direct_Time_Upper = 10
|
||||
|
||||
# Optional
|
||||
[Reporter]
|
||||
User = name
|
||||
Password = pwd
|
||||
----------------------------------------------------------
|
||||
EOF
|
||||
|
||||
|
||||
----------------------------------------------------------
|
||||
MINIMAL CONFIG FILE EXAMPLE
|
||||
----------------------------------------------------------
|
||||
[bec]
|
||||
Ip = 127.0.0.1
|
||||
Port = 2302
|
||||
BeBanFile = C:\SERVER1\BattlEye\bans.txt
|
||||
Admins = Admins.xml
|
||||
Commands = Commands.xml
|
||||
----------------------------------------------------------
|
||||
EOF
|
||||
|
||||
# Note that Misc, ChatRestriction, Reporter are all fully optional and does not need to be in the config file.
|
||||
The only time [Misc] is needed, is if the arma server exe file has been renamed.
|
||||
|
||||
Now..
|
||||
Make a Shortcut to Bec Some place.
|
||||
Go to properties of this shortcut and edit the Target box, put in the -f argument.
|
||||
Example!
|
||||
Target| "c:\..\..\Bec\Bec.exe" -f MyConfig.cfg
|
||||
Or set up Bec as a service.
|
||||
|
||||
|
||||
Some explanation of the parameters used by Bec.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
* BEC *
|
||||
------------------------------------------------------------------------------------
|
||||
In the [Bec] block we define Rcon parameters such as Ip, porta etc.
|
||||
All are needed for Bec to work.
|
||||
|
||||
-------------------
|
||||
* Ip = *
|
||||
|
||||
The ip Bec need to connect to the server.
|
||||
By default you should use 127.0.0.1.
|
||||
But in some cases you need to use other Ip,
|
||||
Example if you have 2 servers running on same port and are using multihoming.
|
||||
if unsure. try with 127.0.0.1 1st
|
||||
|
||||
-------------------
|
||||
* Port = *
|
||||
|
||||
The the port the server is running on.
|
||||
|
||||
-------------------
|
||||
* BePath = *
|
||||
|
||||
The full path to your Battleye directory for you current profile.
|
||||
This is the directory where your BEServer.cfg and Bans.txt file is located.
|
||||
|
||||
-------------------
|
||||
* Admins = *
|
||||
|
||||
This is the file where you define your admin and the group level on your admins.
|
||||
This file does not need to be named Admins.xml. but to make it more understandable, we call it Admins.xml for now.
|
||||
If you do not set full path to this file. it will look in the Config directory 1st.
|
||||
|
||||
Valid methods:
|
||||
|
||||
Admis = Admins.xml
|
||||
Admins = C:\some\path\Admins.xml
|
||||
Admins = \some\path\Admins.xml
|
||||
|
||||
Note. if last method is used. Bec needs to be located on the same partition.
|
||||
|
||||
For more information on how to create a admin file, Visit:
|
||||
Http://ibattle.org/install-and-configure/define-admins/
|
||||
|
||||
-------------------
|
||||
* Commands = *
|
||||
|
||||
This is the file where you create your commands.
|
||||
Set custom names and group level in this file.
|
||||
This file does not need to be named Commands.xml. but to make it more understandable, we call it Commands.xml for now.
|
||||
If you do not set full path to this file. it will look in the Config directory 1st.
|
||||
|
||||
Valid methods:
|
||||
|
||||
Commands = Commands.xml
|
||||
Commands = C:\some\path\Commands.xml
|
||||
Commands = \some\path\Commands.xml
|
||||
|
||||
Note. if last method is used. Bec needs to be located on the same partition.
|
||||
|
||||
For more information on how to create a command file, Visit:
|
||||
Http://ibattle.org/install-and-configure/define-commands/
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
* MISC
|
||||
------------------------------------------------------------------------------------
|
||||
This Block is optional with 1 exception.
|
||||
In cases where you have renamed your exe file and need to use ServerExeName = MyNewArmaExeName.exe
|
||||
|
||||
-------------------
|
||||
* Ban *
|
||||
This parameter will define if you will ban people for GameHack, BattlEye Hack, Both or No banning at all
|
||||
You need to specify the value in range 0 til 3
|
||||
|
||||
0 = No ban will occure on GameHack or BattlEye Hacks
|
||||
1 = Will only ban on GameHacks
|
||||
2 = will only ban BattlEye Hacks
|
||||
3 = will ban both GameHack and BattlEye Hacks.
|
||||
|
||||
Note: If you have a reporter account and use it. you will still report in GameHacks & BattlEye Hacks regardless of your setting.
|
||||
However, when you check guid's against the database. it will only kick out people according to you setting.
|
||||
This means, if you have set it to value 1. people caught for battleye hacks will be able to join your server.
|
||||
|
||||
If the parameter is not define. Bec will use value 3 as default.
|
||||
|
||||
-------------------
|
||||
* BeCustomBanFiles *
|
||||
|
||||
Set the names of your custom ban files, Separate each file with "," (comma): file1.txt, banfile2.txt, newfile.txt
|
||||
If you do not use any custom ban files. delete this option or leave this option commented.
|
||||
This option will check ban files for changes and automatic do a (loadbans file) when a file gets changed
|
||||
|
||||
-------------------
|
||||
* AsciiNickOnly = *
|
||||
|
||||
If set to True it will autokick all players who has none ascii chars in the nickname.
|
||||
Kick happens instant on connect.
|
||||
If this parameter is not defined, AsciiNickOnly will be set to False by default
|
||||
|
||||
-------------------
|
||||
* AsciiChatOnly = *
|
||||
|
||||
If set to True a warning will be send to the player who does not use Ascii on chat.
|
||||
You will also need to set parameter Warnings to 0 or higher for this option to work..
|
||||
If this parameter is not defined, AsciiChatOnly will be set to False by default
|
||||
Note: This will have no affect on admins, and will be ignored when a admin chats.
|
||||
|
||||
-------------------
|
||||
* IgnoreChatChars = *
|
||||
|
||||
This Option will only work if AsciiChatOnly is set on.
|
||||
Add in chars/symbols that is not listed in the ascii table.
|
||||
example you don’t want to have/allow german/russian chars. but norwegian is ok for you
|
||||
then you can do it like.
|
||||
|
||||
AsciiChatOnly = True
|
||||
IgnoreChatChars = æ,Æ,ø,Ø,å,Å
|
||||
|
||||
It's recommended that you use a proper editor like Notepad++
|
||||
When using non ascii chars. you need to save the file with utf encoding.
|
||||
|
||||
-------------------
|
||||
* NickFilterFile = *
|
||||
|
||||
Here you can define player names you do not allow on your server.
|
||||
If a players nick matches any lines in the file he will be autokicked upon connection
|
||||
If this parameter is not defined, NickFilterFile will be disabled by default
|
||||
If you do not set full path to this file. it will look in the Config directory 1st.
|
||||
|
||||
Valid methods:
|
||||
|
||||
NickFilterFile = BadNames.txt
|
||||
NickFilterFile = C:\some\path\BadNames.txt
|
||||
NickFilterFile = \some\path\BadNames.txt
|
||||
|
||||
Note. if last method is used. Bec needs to be located on the same partition.
|
||||
|
||||
-------------------
|
||||
* WordFilterFile = *
|
||||
|
||||
Here you can define words you do not allow on your chat.
|
||||
If a players chat matches any lines in the file he will be sent a warning.
|
||||
You will need to set parameter Warnings to 0 or higher for this option to work..
|
||||
Autokick will happen when he|she reaches the set value..
|
||||
If this parameter is not defined, WordFilterFile will be disabled by default
|
||||
|
||||
Valid methods:
|
||||
|
||||
WordFilterFile = BadNames.txt
|
||||
WordFilterFile = C:\some\path\BadWords.txt
|
||||
WordFilterFile = \some\path\BadWords.txt
|
||||
|
||||
Note. if last method is used. Bec needs to be located on the same partition.
|
||||
|
||||
-------------------
|
||||
* Warnings = *
|
||||
|
||||
This is the number of warning a player should get before autokick happens
|
||||
If example warning is set to 3. the player will get 3 warnings, if he|she still continue to use none ascii after the 3rd warning. he|she will be kicked.
|
||||
|
||||
There are 3 functions that uses this parameter.
|
||||
1 * AsciiChatOnly
|
||||
2 * WordFilterFile
|
||||
3 * Warn "command in Commands.xml file"
|
||||
|
||||
Example of reply message from Bec:
|
||||
22:21:24 : (Global) SomeDude:fucking noob.
|
||||
22:21:25 : RCon admin #0: (To SomeDude) Watch your language. Warnings left:2
|
||||
|
||||
Set this to -1 to disable warnings/warnkick functions listed below.
|
||||
1 * AsciiChatOnly
|
||||
2 * WordFilterFile
|
||||
3 * Warn "command in Commands.xml file"
|
||||
|
||||
Setting the value to 0 means Instant kick without warning.
|
||||
the player will then only get a message on the kick reason why kick happened.
|
||||
Also take a note, the command "warn" in Commands.xml will only work if this value is set higher than 0,
|
||||
Since there is no point in send a warning when the value is 0 "instant kick". we use !kpl or other names you defined
|
||||
|
||||
NOTE: if you do not define this parameter. it will be set to -1 by default.
|
||||
All 3 depending functions will then be disabled by default.
|
||||
NOTE: sending a warning to an another admin will not work.
|
||||
|
||||
-------------------
|
||||
* ServerExeName = *
|
||||
|
||||
If you for some reason had to rename your Oa/Arma3 server exe file.
|
||||
You must use this parameter and set its name. do include the full name inclusive .exe, but not the path.
|
||||
ServerExeName = myA2Server.exe
|
||||
|
||||
-------------------
|
||||
* ConsoleHeight / ConsoleWidth *
|
||||
|
||||
|
||||
Set the height of Bec's console window
|
||||
ConsoleHeight = 65
|
||||
|
||||
Set the width of Bec's console window
|
||||
ConsoleWidth = 125
|
||||
|
||||
|
||||
-------------------
|
||||
* Timeout = *
|
||||
|
||||
If your server for some reason needs longer than 30 seconds to start up.
|
||||
You can then set custom timeout with this parameter
|
||||
Timeout = 60
|
||||
The number is set in seconds.
|
||||
|
||||
|
||||
-------------------
|
||||
* KickLobbyIdlers = *
|
||||
|
||||
Auto kick lobby idlers who take up a slot without playing. lowest timeout is 90 sec.
|
||||
if you set this to 0 it will be disabled or if you don’t define this parameter at all it will be ignored.
|
||||
|
||||
KickLobbyIdlers = 300
|
||||
this will kick a player who has been idling in the lobby for 300 sec. 5min
|
||||
value is set in seconds.
|
||||
|
||||
NOTES:
|
||||
A players is considered to be in the lobby until hes/she is fully ingame.
|
||||
A player sitting in the briefing screen will be seen as if the player is in the lobby.
|
||||
A players loading the mission will also be seen as if they are in the lobby.
|
||||
|
||||
-------------------
|
||||
* Scheduler = *
|
||||
|
||||
Set the path to your scheduler file.
|
||||
allows you to create simple schedules.
|
||||
|
||||
This is the file where you define your schedules
|
||||
This file does not need to be named Scheduler.xml.
|
||||
If you do not set full path to this file. it will look in the Config directory 1st.
|
||||
|
||||
Valid methods:
|
||||
|
||||
Scheduler = Scheduler.xml
|
||||
Scheduler = C:\some\path\Scheduler.xml
|
||||
Scheduler = \some\path\Scheduler.xml
|
||||
|
||||
Note. if last method is used. Bec needs to be located on the same partition.
|
||||
|
||||
For more information on how to create schedules, Visit:
|
||||
Http://ibattle.org/install-and-configure/setting-up-the-scheduler/
|
||||
|
||||
Known Issues with the Scheduler.
|
||||
* Text containing chars like % @ etc may cause problems. avoid using them for now.
|
||||
|
||||
-------------------
|
||||
* WhiteListFile = *
|
||||
|
||||
Set the path to your whitelist file.
|
||||
In this file you add one guid per line.
|
||||
|
||||
Only players who are listed in this file are able to join the server.
|
||||
|
||||
|
||||
Valid methods:
|
||||
|
||||
WhiteListFile = whitelist.txt
|
||||
WhiteListFile = C:\some\path\whitelist.txt
|
||||
WhiteListFile = \some\path\whitelist.txt
|
||||
|
||||
Note. if last method is used. Bec needs to be located on the same partition.
|
||||
|
||||
-------------------
|
||||
* WhileListKickMsg = *
|
||||
|
||||
Set custom whitelist kick message. A message must be minimum 7 chars long.
|
||||
|
||||
WhileListKickMsg = please connect to our ts3 for more information on howto join. ts3.domain.com
|
||||
|
||||
|
||||
-------------------
|
||||
* MinPlayerNameLength = *
|
||||
|
||||
MinPlayerNameLength = 3
|
||||
Set the min length a player name can have.
|
||||
Players connecting with a name shorter than defined in this parameter will be kicked from the server
|
||||
|
||||
-------------------
|
||||
* MaxPlayerNameLength = *
|
||||
|
||||
MaxPlayerNameLength = 16
|
||||
Set the max length a player name can have.
|
||||
Players connecting with a name longer than defined in this parameter will be kicked from the server.
|
||||
|
||||
-------------------
|
||||
* DisallowPlayerNameChars = *
|
||||
|
||||
Limits chars a player can have in the nick
|
||||
DisallowPlayerNameChars = [](){}<>/\^¨|§!"'#¤%&@£$€
|
||||
Players that connects and do have any chars in their name that is listed in this parameter will be kicked from the server.
|
||||
|
||||
-------------------
|
||||
* ChatChannelFiles = *
|
||||
|
||||
If enabled. it will create additional chat files. once for each channel.
|
||||
Files will only be created if there is chat in the channels.
|
||||
|
||||
-------------------
|
||||
* SlotLimit = *
|
||||
|
||||
If enabled. it will only allow N normal players to join.
|
||||
|
||||
Example:
|
||||
|
||||
Max server.. 90 players
|
||||
(players:90) > slotlimit:54
|
||||
90 > slotlimit:54 ...meaning that it kick players above player count.. 80
|
||||
------
|
||||
44players..
|
||||
44 > 54 ... nop
|
||||
------
|
||||
55players:
|
||||
55 > 54 ... nop
|
||||
------
|
||||
81players
|
||||
81 > 54 ... yes check...
|
||||
-----------------------------------
|
||||
Using slotlimit 45 on max 90 pl server
|
||||
90 players
|
||||
90 > 45 ... yes check
|
||||
------
|
||||
75players
|
||||
75 > 45 ... yes check
|
||||
------
|
||||
42players
|
||||
42 > 45 ... nop
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
* Reporting *
|
||||
------------------------------------------------------------------------------------
|
||||
In the [Reporter] block we add in account data so that GameHack's|BattlEye Hacks's gets automatically reported to a central ban database.
|
||||
You will need an account for this to work.
|
||||
If you don't have one or don't want to create one, just remove this block since its fully optional.
|
||||
|
||||
[Reporter]
|
||||
User = you
|
||||
Password = secret
|
||||
|
||||
|
||||
If Enabled it will also check the status on a Guid against the database.
|
||||
Again this will only work if you have a valid user account..
|
||||
If you see a file called "Reporting_Failures.log", this is a a fallback file if the host is down or unavailable for some reason.
|
||||
Do not mess with this file, it will be auto deleted when the bans get uploaded..
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
* ChatRestriction *
|
||||
------------------------------------------------------------------------------------
|
||||
Here you can set max message that is allowed for each channel.
|
||||
If you want to restrict usage of example global chat.
|
||||
|
||||
[ChatRestriction]
|
||||
Global = 10
|
||||
|
||||
This will autokick a player after the 10th message in global channel.
|
||||
setting the value to 0 mean instant kick..
|
||||
setting the value to -1 mean its disabled.
|
||||
|
||||
The player will receive warnings when typing in the global chat
|
||||
|
||||
[ChatRestriction]
|
||||
Global = 10
|
||||
Side = -1
|
||||
Group = -1
|
||||
Vehicle = -1
|
||||
Command = -1
|
||||
Commander = -1
|
||||
Direct = -1
|
||||
|
||||
Is the same as
|
||||
|
||||
[ChatRestriction]
|
||||
Global = 10
|
||||
|
||||
So if you don’t need any channels to be restricted. you can delete the hole block [ChatRestriction]
|
||||
Note: This is will not use the Warnings Parameter for its counter.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
* ChatSpam Function *
|
||||
------------------------------------------------------------------------------------
|
||||
here you can define the limit for the amount of spam you allow on the server before autokick happens.
|
||||
Note- the ChatSpam works per chat channel.
|
||||
|
||||
each channel has 3 variables.
|
||||
1st is the channel name
|
||||
2nd the lower time limit
|
||||
3rd the upper time limit.
|
||||
|
||||
Example:
|
||||
Global = 5
|
||||
Global_Time_Lower = 4
|
||||
Global_Time_Upper = 10
|
||||
|
||||
This will kick a player if he spammed more than 5 lines on the server within 4 secs.
|
||||
For each line the player spam on the chat when time is less than 4 secs since last line was received the spam-counter increases.
|
||||
If the player chats between 4 - 10 seconds the spam counter does not increases, but stays at current level.
|
||||
If the time is greater than 10 sec since last message. the spam counter is reset.
|
||||
|
||||
[ChatSpam]
|
||||
Lobby = 0
|
||||
Lobby_Time_Lower = 3
|
||||
Lobby_Time_Upper = 10
|
||||
Global = 0
|
||||
Global_Time_Lower = 3
|
||||
Global_Time_Upper = 10
|
||||
Side = 0
|
||||
Side_Time_Lower = 3
|
||||
Side_Time_Upper = 10
|
||||
Group = 0
|
||||
Group_Time_Lower = 3
|
||||
Group_Time_Upper = 10
|
||||
Vehicle = 0
|
||||
Vehicle_Time_Lower = 3
|
||||
Vehicle_Time_Upper = 10
|
||||
Command = 0
|
||||
Command_Time_Lower = 3
|
||||
Command_Time_Upper = 10
|
||||
Commander = 0
|
||||
Commander_Time_Lower = 3
|
||||
Commander_Time_Upper = 10
|
||||
Direct = 0
|
||||
Direct_Time_Lower = 3
|
||||
Direct_Time_Upper = 10
|
||||
|
||||
|
||||
____________________________________________________________________________________
|
||||
| |
|
||||
| * Understanding the Permission system * |
|
||||
|____________________________________________________________________________________|
|
||||
|
||||
Both Admin and the Command must have assigned a group number.
|
||||
To be able to execute a command. the admin must have the same or a lower group number as the command.
|
||||
|
||||
A lower ranked admin can not kick or ban a higher ranked admin..
|
||||
When i say higher ranked admin.. it means that a admin that has a lower group number than the admin who tried to execute the command.
|
||||
Equal ranked admins can only kick each other.
|
||||
When making commands you should consider the level.
|
||||
|
||||
*** Short persudo example ***
|
||||
|
||||
You may want to use 3 Preset Ban commands and one Kick.
|
||||
ban for 10min
|
||||
ban for 60min
|
||||
and one ban for PermBan
|
||||
|
||||
You may not want all admins to be able to do a permban. but only short bans.
|
||||
Lets say we have 4 admins and 4 commands.
|
||||
|
||||
**************************
|
||||
# Admins.xml
|
||||
admin_a - group 0
|
||||
admin_b - group 1
|
||||
admin_c - group 2
|
||||
admin_d - group 1
|
||||
|
||||
# Commands.xml
|
||||
ban_a - group 0 - Perm ban
|
||||
ban_b - group 1 - 60 min
|
||||
ban_c - group 2 - 10 min
|
||||
kick_a - group 3
|
||||
**************************
|
||||
|
||||
|
||||
# Admin Ban/Kick On ordinary players
|
||||
(admin_a) can execute command (ban_a, ban_b, ban_c) on any players
|
||||
(admin_b) can execute command (ban_b, ban_c) on any players
|
||||
(admin_c) can execute command (ban_c) on any players
|
||||
(admin_d) can execute command (ban_b, ban_c) on any players
|
||||
(admin_a, admin_b, admin_c, admin_d) can execute command kick_a on any players.
|
||||
|
||||
|
||||
# Admins vs Admins
|
||||
* Kick
|
||||
admin_a can execute kick_a on (admin_a, admin_b, admin_c, admin_d)
|
||||
admin_b can execute kick_a on (admin_b, admin_c, admin_d)
|
||||
admin_d can execute kick_a on (admin_c, admin_d)
|
||||
admin_c can only execute kick_a on (admin_c)
|
||||
|
||||
Yes you are reading correct. you can kick yourself. ;)
|
||||
I use this very much for a fast exit, i hate pressing esc. disconnect, disconnect, then esc again.. !kpl in much faster ;D
|
||||
|
||||
|
||||
* Ban
|
||||
admin_a can execute (ban_a, ban_b, ban_c) on (admin_b, admin_c, admin_d)
|
||||
admin_b can execute (ban_b, ban_c) on (admin_c)
|
||||
admin_c can not ban any of (admin_a, admin_b, admin_c, admin_d) due to its lower rank..
|
||||
|
||||
Temp Admins may never execute any kick or ban commands on a perm admin.
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
* Plugins System *
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
Bec allows you to make your own plugins written in python (g'old 2.6 :)
|
||||
There is No to Little Documentation on how to create Plugins for Bec.
|
||||
The best way to learn is to dig through the plugins you find on Ibattle.org download page.
|
||||
I'll write up the docs about it once i get more time.
|
||||
|
||||
|
||||
To install a Plugins..
|
||||
First step is to create a new directory called Plugins in the root of your Bec install. ( X:\Path\Bec\Plugins )
|
||||
Next, place your Bec plugin inside the Plugins directory: ( X:\Path\Bec\Plugins\MyPlugin )
|
||||
|
||||
Example. lets use the ConnectionLimiter as an example. found at www.ibattle.org on the download page
|
||||
you should end up with something like.
|
||||
|
||||
X:\Path\Bec\Plugins\ConnectionLimiter
|
||||
X:\Path\Bec\Plugins\ConnectionLimiter\__init__.py
|
||||
X:\Path\Bec\Plugins\ConnectionLimiter\ReadMe.txt
|
||||
|
||||
Thats Basicly it. Next step is to Read the ReadMe file the plugin has. some plugins uses a settings file..
|
||||
So make sure to read the file before starting Bec.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------------
|
||||
* Basic Rcon Questions..
|
||||
|
||||
Q. How do i get a players guid.??
|
||||
A. You need to type | players | in a Rcon client that accepts command line input.
|
||||
You also use the same command to find a players id. "BE id".
|
||||
There are two types of Id's one that Arma will return to you by typing | #userlist |
|
||||
This Id is not what you are after when using a RCon. you always want to get the BE_ID instead.
|
||||
|
||||
Q. How do i Ban a player?
|
||||
A. first type | players | to get the player BE_ID then execute the command something like this examples.
|
||||
assuming the player we want to kick has BE_ID 12
|
||||
|
||||
ban 12 -- > Permban player with BE_ID without reason.
|
||||
ban 12 0 -- > Same as above
|
||||
ban 12 60 -- > Ban player with BE_ID 12 without reason for 60 min.
|
||||
ban 12 My reason -- > Permban player with BE_ID 12 and setting reason as "My reason" as the Ban message.
|
||||
ban 12 0 My reason -- > Same as above
|
||||
ban 12 60 My reason -- > Ban player with BE_ID 12 for 60 min and setting reason to "My reason" as the Ban message.
|
||||
|
||||
|
||||
Q. How do i Kick a player.
|
||||
A. Same as with Ban. but you do not provide a Time
|
||||
assuming the player we want to kick has BE_ID 12
|
||||
|
||||
kick 12 -- > Kicks player with BE_ID 12 with no reason set. "default is: Admin Kick" by Battleye
|
||||
kick 12 My Reason -- > Kicks player with BE_ID 12 with reason set as "My reason"
|
||||
|
||||
Q. How do i remove a ban.
|
||||
A. First get the Ban index by typing | bans |. locate the ban id in your ban list for the ban you want to remove.
|
||||
Once located you type | removeban Number |.
|
||||
|
||||
Another way to do it is by locating you bans.txt file. delete the line containing the baned guid.
|
||||
Once removed you can type | loadbans | to reloade the banfile.
|
||||
|
||||
|
||||
Q. How do i add a ban on a player thats no longer connected?
|
||||
A. it basicly works the same wat as ban. but you need to provide the guid instead of the BE_ID.
|
||||
examples.
|
||||
|
||||
addban abcdef0123456789876543210fedcba9 -- > Permban player with this guid
|
||||
addban abcdef0123456789876543210fedcba9 120 "Teamkiller" -- > Ban player with this guid for 120 min and set reason as Teamkiller
|
||||
|
||||
For more information use Bis wiki,
|
||||
|
||||
|
||||
|
BIN
ExileServers/ExileAltis/battleye/BEC/splash.bmp
Normal file
BIN
ExileServers/ExileAltis/battleye/BEC/splash.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 420 KiB |
4
ExileServers/ExileAltis/battleye/BEServer.cfg
Normal file
4
ExileServers/ExileAltis/battleye/BEServer.cfg
Normal file
@ -0,0 +1,4 @@
|
||||
RConPassword pw4rcon
|
||||
MaxPing 500
|
||||
RConIP 127.0.0.1
|
||||
RConPort 2304
|
4
ExileServers/ExileAltis/battleye/BEServer_x64.cfg
Normal file
4
ExileServers/ExileAltis/battleye/BEServer_x64.cfg
Normal file
@ -0,0 +1,4 @@
|
||||
RConPassword pw4rcon
|
||||
MaxPing 500
|
||||
RConIP 192.168.0.102
|
||||
RConPort 2304
|
1
ExileServers/ExileAltis/battleye/bans.txt
Normal file
1
ExileServers/ExileAltis/battleye/bans.txt
Normal file
@ -0,0 +1 @@
|
||||
|
BIN
ExileServers/ExileAltis/battleye/beserver.dll
Normal file
BIN
ExileServers/ExileAltis/battleye/beserver.dll
Normal file
Binary file not shown.
BIN
ExileServers/ExileAltis/battleye/beserver_x64.dll
Normal file
BIN
ExileServers/ExileAltis/battleye/beserver_x64.dll
Normal file
Binary file not shown.
27
ExileServers/ExileAltis/battleye/eula.txt
Normal file
27
ExileServers/ExileAltis/battleye/eula.txt
Normal file
@ -0,0 +1,27 @@
|
||||
****** End-User License Agreement ******
|
||||
|
||||
|
||||
This License Agreement ("Agreement") is made between you (the "Licensee") and BattlEye Innovations / Bastian Suter (the "Licensor"). The terms of this Agreement apply to all current and future versions and updates of BattlEye.
|
||||
|
||||
|
||||
By installing, enabling or using BattlEye, Licensee agrees with all the terms of this Agreement. Licensor reserves all rights not specifically granted and transferred to Licensee.
|
||||
|
||||
|
||||
Licensee understands and agrees with the following:
|
||||
|
||||
- Licensor grants Licensee a non-exclusive and non-transferable license to use BattlEye for non-commercial purposes only. Licensee therefore does not own BattlEye, Licensor remains the owner of BattlEye.
|
||||
|
||||
- Licensor provides BattlEye on an "as is" basis without warranty of any kind. Licensor neither guarantees the correct, error-free functioning of BattlEye nor is he responsible for any damage caused by the use of BattlEye.
|
||||
|
||||
- Licensee may not decompile, disassemble, reverse-engineer, modify or redistribute BattlEye in any way.
|
||||
|
||||
- BattlEye will automatically, without notice to Licensee, download and install updates from time to time.
|
||||
|
||||
- BattlEye may scan the entire memory, and any game-related and system-related files and folders on harddisk and report results to the connected game server for the sole purpose of detecting cheats.
|
||||
|
||||
- BattlEye will never report any of Licensee's private data (documents, passwords, etc.) to other connected computers or to Licensor. BattlEye will not violate Licensee's privacy.
|
||||
|
||||
- Licensor is allowed to terminate the license at any time for any reason and without notice to Licensee.
|
||||
|
||||
|
||||
This License Agreement constitutes the entire agreement between Licensor and Licensee and supersedes any prior statements.
|
BIN
ExileServers/ExileAltis/keys/a3.bikey
Normal file
BIN
ExileServers/ExileAltis/keys/a3.bikey
Normal file
Binary file not shown.
BIN
ExileServers/ExileAltis/keys/exile.bikey
Normal file
BIN
ExileServers/ExileAltis/keys/exile.bikey
Normal file
Binary file not shown.
1
ExileServers/ExileAltis/mpmissions/Exile.Altis/$PREFIX$
Normal file
1
ExileServers/ExileAltis/mpmissions/Exile.Altis/$PREFIX$
Normal file
@ -0,0 +1 @@
|
||||
Exile.Altis
|
@ -0,0 +1,37 @@
|
||||
ExileServer_object_construction_database_insert = "Overrides\ExileServer_object_construction_database_insert.sqf";
|
||||
ExileServer_object_construction_database_load = "Overrides\ExileServer_object_construction_database_load.sqf";
|
||||
ExileServer_object_container_createContainer = "Overrides\ExileServer_object_container_createContainer.sqf";
|
||||
ExileServer_object_container_database_insert = "Overrides\ExileServer_object_container_database_insert.sqf";
|
||||
ExileServer_object_container_database_load = "Overrides\ExileServer_object_container_database_load.sqf";
|
||||
ExileServer_object_container_database_update = "Overrides\ExileServer_object_container_database_update.sqf";
|
||||
ExileServer_object_player_createBambi = "Overrides\ExileServer_object_player_createBambi.sqf";
|
||||
ExileServer_object_player_database_load = "Overrides\ExileServer_object_player_database_load.sqf";
|
||||
ExileServer_object_player_event_onMpKilled = "Overrides\ExileServer_object_player_event_onMpKilled.sqf";
|
||||
ExileServer_object_vehicle_createNonPersistentVehicle = "Overrides\ExileServer_object_vehicle_createNonPersistentVehicle.sqf";
|
||||
ExileServer_object_vehicle_createPersistentVehicle = "Overrides\ExileServer_object_vehicle_createPersistentVehicle.sqf";
|
||||
ExileServer_object_vehicle_database_load = "Overrides\ExileServer_object_vehicle_database_load.sqf";
|
||||
ExileServer_system_database_connect = "Overrides\ExileServer_system_database_connect.sqf";
|
||||
ExileServer_system_database_handleBig = "Overrides\ExileServer_system_database_handleBig.sqf";
|
||||
ExileServer_system_database_query_fireAndForget = "Overrides\ExileServer_system_database_query_fireAndForget.sqf";
|
||||
ExileServer_system_database_query_insertSingle = "Overrides\ExileServer_system_database_query_insertSingle.sqf";
|
||||
ExileServer_system_database_query_selectFull = "Overrides\ExileServer_system_database_query_selectFull.sqf";
|
||||
ExileServer_system_database_query_selectSingle = "Overrides\ExileServer_system_database_query_selectSingle.sqf";
|
||||
ExileServer_system_database_query_selectSingleField = "Overrides\ExileServer_system_database_query_selectSingleField.sqf";
|
||||
ExileServer_system_territory_database_insert = "Overrides\ExileServer_system_territory_database_insert.sqf";
|
||||
ExileServer_system_territory_maintenance_recalculateDueDate = "Overrides\ExileServer_system_territory_maintenance_recalculateDueDate.sqf";
|
||||
ExileServer_system_territory_network_flagStolenRequest = "Overrides\ExileServer_system_territory_network_flagStolenRequest.sqf";
|
||||
ExileServer_system_territory_network_payFlagRansomRequest = "Overrides\ExileServer_system_territory_network_payFlagRansomRequest.sqf";
|
||||
ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest = "Overrides\ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest.sqf";
|
||||
ExileServer_system_territory_network_purchaseTerritory = "Overrides\ExileServer_system_territory_network_purchaseTerritory.sqf";
|
||||
ExileServer_system_territory_network_restoreFlagRequest = "Overrides\ExileServer_system_territory_network_restoreFlagRequest.sqf";
|
||||
ExileServer_system_territory_network_territoryUpgradeRequest = "Overrides\ExileServer_system_territory_network_territoryUpgradeRequest.sqf";
|
||||
ExileServer_system_trading_network_purchaseItemRequest = "Overrides\ExileServer_system_trading_network_purchaseItemRequest.sqf";
|
||||
ExileServer_system_trading_network_purchaseVehicleRequest = "Overrides\ExileServer_system_trading_network_purchaseVehicleRequest.sqf";
|
||||
ExileServer_system_trading_network_purchaseVehicleSkinRequest = "Overrides\ExileServer_system_trading_network_purchaseVehicleSkinRequest.sqf";
|
||||
ExileServer_system_trading_network_sellItemRequest = "Overrides\ExileServer_system_trading_network_sellItemRequest.sqf";
|
||||
ExileServer_system_trading_network_wasteDumpRequest = "Overrides\ExileServer_system_trading_network_wasteDumpRequest.sqf";
|
||||
ExileServer_util_time_addTime = "Overrides\ExileServer_util_time_addTime.sqf";
|
||||
ExileServer_util_time_currentTime = "Overrides\ExileServer_util_time_currentTime.sqf";
|
||||
ExileServer_util_time_uptime = "Overrides\ExileServer_util_time_uptime.sqf";
|
||||
ExileServer_world_initialize = "Overrides\ExileServer_world_initialize.sqf";
|
||||
ExileClient_util_string_scalarToString = "Overrides\ExileClient_util_string_scalarToString.sqf";
|
@ -0,0 +1,9 @@
|
||||
// Fix for 64bit Servers, more info @
|
||||
// http://www.exilemod.com/topic/21761-168-bugs-megathread-discussion/?do=findComment&comment=156590
|
||||
// You could also use toFixed, but will have trailing zeros + random crap after 6-7 decimal points, (float precision?)
|
||||
|
||||
private "_arr";
|
||||
if (_this isEqualTo 0) exitWith {"0"};
|
||||
_arr = toArray str abs (_this % 1);
|
||||
_arr set [0, 32];
|
||||
toString (toArray str (abs (_this - _this % 1) * _this / abs _this) + _arr - [32])
|
@ -0,0 +1,39 @@
|
||||
/**
|
||||
* ExileServer_object_construction_database_insert
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_constructionObject","_position","_vectorDirection","_vectorUp","_territoryFlag","_territoryID","_data","_extDB2Message","_constructionID"];
|
||||
_constructionObject = _this;
|
||||
_position = getPosATL _constructionObject;
|
||||
_vectorDirection = vectorDir _constructionObject;
|
||||
_vectorUp = vectorUp _constructionObject;
|
||||
_territoryFlag = _constructionObject call ExileClient_util_world_getTerritoryAtPosition;
|
||||
_territoryID = if (isNull _territoryFlag) then { '' } else { _territoryFlag getVariable ["ExileDatabaseID", '']};
|
||||
_data =
|
||||
[
|
||||
typeOf _constructionObject,
|
||||
_constructionObject getVariable ["ExileOwnerUID", ""],
|
||||
_position select 0,
|
||||
_position select 1,
|
||||
_position select 2,
|
||||
_vectorDirection select 0,
|
||||
_vectorDirection select 1,
|
||||
_vectorDirection select 2,
|
||||
_vectorUp select 0,
|
||||
_vectorUp select 1,
|
||||
_vectorUp select 2,
|
||||
_territoryID
|
||||
];
|
||||
_extDB2Message = ["insertConstruction", _data] call ExileServer_util_extDB2_createMessage;
|
||||
_constructionID = _extDB2Message call ExileServer_system_database_query_insertSingle;
|
||||
_constructionObject setVariable ["ExileDatabaseID", _constructionID];
|
||||
_constructionObject setVariable ["ExileTerritoryID", _territoryID];
|
||||
_constructionObject enableDynamicSimulation true;
|
||||
_constructionID
|
@ -0,0 +1,47 @@
|
||||
/**
|
||||
* ExileServer_object_construction_database_load
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_constructionID","_data","_position","_vectorDirection","_vectorUp","_constructionObject","_damageLevel","_public","_pinCode"];
|
||||
_constructionID = _this;
|
||||
_data = format ["loadConstruction:%1", _constructionID] call ExileServer_system_database_query_selectSingle;
|
||||
_position = [_data select 4, _data select 5, _data select 6];
|
||||
_vectorDirection = [_data select 7, _data select 8, _data select 9];
|
||||
_vectorUp = [_data select 10, _data select 11, _data select 12];
|
||||
_constructionObject = createVehicle [(_data select 1), _position, [], 0, "CAN_COLLIDE"];
|
||||
_constructionObject setPosATL _position;
|
||||
_constructionObject setVectorDirAndUp [_vectorDirection, _vectorUp];
|
||||
_constructionObject setVariable ["ExileDatabaseID", (_data select 0)];
|
||||
_constructionObject setVariable ["ExileOwnerUID", (_data select 2)];
|
||||
_constructionObject setVariable ["ExileIsPersistent", true];
|
||||
_constructionObject setVariable ["ExileTerritoryID", (_data select 15)];
|
||||
_damageLevel = (_data select 17);
|
||||
_public = _damageLevel > 0;
|
||||
_constructionObject setVariable ["ExileConstructionDamage",_damageLevel,_public];
|
||||
if(_public)then
|
||||
{
|
||||
_constructionObject call ExileServer_util_setDamageTexture;
|
||||
};
|
||||
_pinCode = _data select 14;
|
||||
if !(_pinCode isEqualTo "000000") then
|
||||
{
|
||||
_constructionObject setVariable ["ExileAccessCode", _pinCode];
|
||||
_constructionObject setVariable ["ExileIsLocked", (_data select 13), true];
|
||||
};
|
||||
if (typeOf _constructionObject in ["Exile_Construction_ConcreteDoor_Static", "Exile_Construction_ConcreteGate_Static", "Exile_Construction_WoodGate_Static", "Exile_Construction_WoodDoor_Static", "Exile_Construction_ConcreteWindowHatch_Static", "Exile_Construction_WoodGate_Reinforced_Static", "Exile_Construction_WoodDoor_Reinforced_Static", "Exile_Construction_ConcreteFloorHatch_Static"]) then
|
||||
{
|
||||
_constructionObject enableDynamicSimulation true;
|
||||
};
|
||||
_constructionObject setVelocity [0, 0, 0];
|
||||
_constructionObject setPosATL _position;
|
||||
_constructionObject setVelocity [0, 0, 0];
|
||||
_constructionObject setVectorDirAndUp [_vectorDirection, _vectorUp];
|
||||
_constructionObject setVelocity [0, 0, 0];
|
||||
_constructionObject
|
@ -0,0 +1,30 @@
|
||||
/**
|
||||
* ExileServer_object_container_createContainer
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_className","_position","_direction","_containerObject"];
|
||||
_className = _this select 0;
|
||||
_position = _this select 1;
|
||||
_direction = _this select 2;
|
||||
_containerObject = createVehicle [_className, _position, [], 0, "CAN_COLLIDE"];
|
||||
clearBackpackCargoGlobal _containerObject;
|
||||
clearItemCargoGlobal _containerObject;
|
||||
clearMagazineCargoGlobal _containerObject;
|
||||
clearWeaponCargoGlobal _containerObject;
|
||||
_containerObject setDir _direction;
|
||||
_containerObject setPosATL _position;
|
||||
_containerObject setVariable ["ExileIsPersistent", true];
|
||||
_containerObject setVariable ["ExileIsContainer", true];
|
||||
if(getNumber(configFile >> "CfgVehicles" >> typeOf _containerObject >> "exileIsLockable") isEqualTo 1)then
|
||||
{
|
||||
_containerObject setVariable ["ExileIsLocked", -1,true];
|
||||
};
|
||||
_containerObject enableDynamicSimulation true;
|
||||
_containerObject
|
@ -0,0 +1,91 @@
|
||||
/**
|
||||
* ExileServer_object_container_database_insert
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_containerObject","_position","_vectorDirection","_vectorUp","_territoryFlag","_territoryID","_data","_extDB2Message","_containerID","_cargoContainers"];
|
||||
_containerObject = _this;
|
||||
_position = getPosATL _containerObject;
|
||||
_vectorDirection = vectorDir _containerObject;
|
||||
_vectorUp = vectorUp _containerObject;
|
||||
_territoryFlag = _containerObject call ExileClient_util_world_getTerritoryAtPosition;
|
||||
_territoryID = if (isNull _territoryFlag) then { '' } else { _territoryFlag getVariable ["ExileDatabaseID", '']};
|
||||
if !(ExileContainerCargo isEqualTo []) then
|
||||
{
|
||||
_data =
|
||||
[
|
||||
typeOf _containerObject,
|
||||
_containerObject getVariable ["ExileOwnerUID", ""],
|
||||
_position select 0,
|
||||
_position select 1,
|
||||
_position select 2,
|
||||
_vectorDirection select 0,
|
||||
_vectorDirection select 1,
|
||||
_vectorDirection select 2,
|
||||
_vectorUp select 0,
|
||||
_vectorUp select 1,
|
||||
_vectorUp select 2,
|
||||
ExileContainerCargo select 0,
|
||||
ExileContainerCargo select 1,
|
||||
ExileContainerCargo select 2,
|
||||
ExileContainerCargo select 3,
|
||||
ExileContainerCargo select 4,
|
||||
"0000",
|
||||
_territoryID
|
||||
];
|
||||
} else
|
||||
{
|
||||
_data =
|
||||
[
|
||||
typeOf _containerObject,
|
||||
_containerObject getVariable ["ExileOwnerUID", ""],
|
||||
_position select 0,
|
||||
_position select 1,
|
||||
_position select 2,
|
||||
_vectorDirection select 0,
|
||||
_vectorDirection select 1,
|
||||
_vectorDirection select 2,
|
||||
_vectorUp select 0,
|
||||
_vectorUp select 1,
|
||||
_vectorUp select 2,
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
0,
|
||||
"0000",
|
||||
_territoryID
|
||||
];
|
||||
};
|
||||
_extDB2Message = ["insertContainer", _data] call ExileServer_util_extDB2_createMessage;
|
||||
_containerID = _extDB2Message call ExileServer_system_database_query_insertSingle;
|
||||
if !(ExileContainerCargo isEqualTo []) then
|
||||
{
|
||||
[_containerObject, (_data select 11)] call ExileServer_util_fill_fillItems;
|
||||
[_containerObject, (_data select 12)] call ExileServer_util_fill_fillMagazines;
|
||||
[_containerObject, (_data select 13)] call ExileServer_util_fill_fillWeapons;
|
||||
_cargoContainers = format ["loadContainerCargo:%1", _containerID] call ExileServer_system_database_query_selectSingle;
|
||||
if !(_cargoContainers isEqualTo []) then
|
||||
{
|
||||
[_containerObject, (_cargoContainers select 0)] call ExileServer_util_fill_fillContainers;
|
||||
};
|
||||
ExileContainerCargo = [];
|
||||
};
|
||||
_containerObject setVariable ["ExileDatabaseID", _containerID];
|
||||
_containerObject setVariable ["ExileIsPersistent", true];
|
||||
_containerObject setVariable ["ExileIsContainer", true];
|
||||
_containerObject setVariable ["ExileAccessCode","0000"];
|
||||
_containerObject setVariable ["ExileTerritoryID", _territoryID];
|
||||
_containerObject setVariable ["ExileMoney", parseNumber (_data select 15), true];
|
||||
_containerObject addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; (_this select 0) call ExileServer_object_container_event_onMpKilled; }];
|
||||
if(getNumber(configFile >> "CfgVehicles" >> typeOf _containerObject >> "exileIsLockable") isEqualTo 1)then
|
||||
{
|
||||
_containerObject setVariable ["ExileIsLocked",-1,true];
|
||||
};
|
||||
_containerID
|
@ -0,0 +1,45 @@
|
||||
/**
|
||||
* ExileServer_object_container_database_load
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_containerID","_data","_position","_vectorDirection","_vectorUp","_abandoned","_containerObject","_cargoContainers"];
|
||||
_containerID = _this;
|
||||
_data = format ["loadContainer:%1", _containerID] call ExileServer_system_database_query_selectSingle;
|
||||
_position = [_data select 4, _data select 5, _data select 6];
|
||||
_vectorDirection = [_data select 7, _data select 8, _data select 9];
|
||||
_vectorUp = [_data select 10, _data select 11, _data select 12];
|
||||
_abandoned = _data select 18;
|
||||
_containerObject = [(_data select 1), _position, 0] call ExileServer_object_container_createContainer;
|
||||
_containerObject setVectorDirAndUp [_vectorDirection, _vectorUp];
|
||||
_containerObject setVariable ["ExileDatabaseID", _containerID];
|
||||
_containerObject setVariable ["ExileOwnerUID", (_data select 2),true];
|
||||
_containerObject setVariable ["ExileAccessCode",(_data select 16)];
|
||||
_containerObject setVariable ["ExileTerritoryID", (_data select 17)];
|
||||
_containerObject setVariable ["ExileMoney", (_data select 20), true];
|
||||
if(getNumber(configFile >> "CfgVehicles" >> typeOf _containerObject >> "exileIsLockable") isEqualTo 1)then
|
||||
{
|
||||
_containerObject setVariable ["ExileIsLocked",(_data select 3),true];
|
||||
};
|
||||
[_containerObject, (_data select 13)] call ExileServer_util_fill_fillItems;
|
||||
[_containerObject, (_data select 14)] call ExileServer_util_fill_fillMagazines;
|
||||
[_containerObject, (_data select 15)] call ExileServer_util_fill_fillWeapons;
|
||||
_cargoContainers = format ["loadContainerCargo:%1", _containerID] call ExileServer_system_database_query_selectSingle;
|
||||
if !(_cargoContainers isEqualTo []) then
|
||||
{
|
||||
[_containerObject, (_cargoContainers select 0)] call ExileServer_util_fill_fillContainers;
|
||||
};
|
||||
if !(_abandoned isEqualTo "") then
|
||||
{
|
||||
format ["ExileServer - Adding Container %1 to Abandonded Safes", _containerID] call ExileClient_util_log;
|
||||
ExileAbandondedSafes pushBack _containerObject;
|
||||
};
|
||||
_containerObject enableDynamicSimulation true;
|
||||
_containerObject addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; (_this select 0) call ExileServer_object_container_event_onMpKilled; }];
|
||||
_containerObject
|
@ -0,0 +1,46 @@
|
||||
/**
|
||||
* ExileServer_object_container_database_update
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_containerObject","_containerID","_position","_vectorDirection","_vectorUp","_territoryFlag","_territoryID","_data","_extDB2Message"];
|
||||
_containerObject= _this;
|
||||
_containerID = _containerObject getVariable ["ExileDatabaseID", -1];
|
||||
if (_containerID > -1) then
|
||||
{
|
||||
_position = getPosATL _containerObject;
|
||||
_vectorDirection = vectorDir _containerObject;
|
||||
_vectorUp = vectorUp _containerObject;
|
||||
_territoryFlag = _containerObject call ExileClient_util_world_getTerritoryAtPosition;
|
||||
_territoryID = if (isNull _territoryFlag) then { '' } else { _territoryFlag getVariable ["ExileDatabaseID", '']};
|
||||
_containerObject setVariable ["ExileTerritoryID", _territoryID];
|
||||
_data =
|
||||
[
|
||||
_containerObject getVariable ["ExileIsLocked",-1],
|
||||
_position select 0,
|
||||
_position select 1,
|
||||
_position select 2,
|
||||
_vectorDirection select 0,
|
||||
_vectorDirection select 1,
|
||||
_vectorDirection select 2,
|
||||
_vectorUp select 0,
|
||||
_vectorUp select 1,
|
||||
_vectorUp select 2,
|
||||
_containerObject call ExileServer_util_getItemCargo,
|
||||
magazinesAmmoCargo _containerObject,
|
||||
weaponsItemsCargo _containerObject,
|
||||
_containerObject call ExileServer_util_getObjectContainerCargo,
|
||||
_territoryID,
|
||||
_containerObject getVariable ["ExileMoney", 0],
|
||||
_containerID
|
||||
];
|
||||
_extDB2Message = ["updateContainer", _data] call ExileServer_util_extDB2_createMessage;
|
||||
_extDB2Message call ExileServer_system_database_query_fireAndForget;
|
||||
};
|
||||
true
|
@ -0,0 +1,153 @@
|
||||
/**
|
||||
* ExileServer_object_player_createBambi
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_requestingPlayer","_spawnLocationMarkerName","_bambiPlayer","_accountData","_direction","_position","_spawnAreaPosition","_spawnAreaRadius","_clanID","_clanData","_clanGroup","_player","_devFriendlyMode","_devs","_parachuteNetID","_spawnType","_parachuteObject"];
|
||||
_sessionID = _this select 0;
|
||||
_requestingPlayer = _this select 1;
|
||||
_spawnLocationMarkerName = _this select 2;
|
||||
_bambiPlayer = _this select 3;
|
||||
_accountData = _this select 4;
|
||||
_direction = random 360;
|
||||
if ((count ExileSpawnZoneMarkerPositions) isEqualTo 0) then
|
||||
{
|
||||
_position = call ExileClient_util_world_findCoastPosition;
|
||||
if ((toLower worldName) isEqualTo "namalsk") then
|
||||
{
|
||||
while {(_position distance2D [76.4239, 107.141, 0]) < 100} do
|
||||
{
|
||||
_position = call ExileClient_util_world_findCoastPosition;
|
||||
};
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
_spawnAreaPosition = getMarkerPos _spawnLocationMarkerName;
|
||||
_spawnAreaRadius = getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "spawnZoneRadius");
|
||||
_position = [_spawnAreaPosition, _spawnAreaRadius] call ExileClient_util_math_getRandomPositionInCircle;
|
||||
while {surfaceIsWater _position} do
|
||||
{
|
||||
_position = [_spawnAreaPosition, _spawnAreaRadius] call ExileClient_util_math_getRandomPositionInCircle;
|
||||
};
|
||||
};
|
||||
_name = name _requestingPlayer;
|
||||
_clanID = (_accountData select 3);
|
||||
if !((typeName _clanID) isEqualTo "SCALAR") then
|
||||
{
|
||||
_clanID = -1;
|
||||
_clanData = [];
|
||||
}
|
||||
else
|
||||
{
|
||||
_clanData = missionNamespace getVariable [format ["ExileServer_clan_%1",_clanID],[]];
|
||||
if(isNull (_clanData select 5))then
|
||||
{
|
||||
_clanGroup = createGroup independent;
|
||||
_clanData set [5,_clanGroup];
|
||||
_clanGroup setGroupIdGlobal [_clanData select 0];
|
||||
missionNameSpace setVariable [format ["ExileServer_clan_%1",_clanID],_clanData];
|
||||
}
|
||||
else
|
||||
{
|
||||
_clanGroup = (_clanData select 5);
|
||||
};
|
||||
[_player] joinSilent _clanGroup;
|
||||
};
|
||||
_bambiPlayer setPosATL [_position select 0,_position select 1,0];
|
||||
_bambiPlayer disableAI "FSM";
|
||||
_bambiPlayer disableAI "MOVE";
|
||||
_bambiPlayer disableAI "AUTOTARGET";
|
||||
_bambiPlayer disableAI "TARGET";
|
||||
_bambiPlayer disableAI "CHECKVISIBLE";
|
||||
_bambiPlayer setDir _direction;
|
||||
_bambiPlayer setName _name;
|
||||
_bambiPlayer setVariable ["ExileMoney", 0, true];
|
||||
_bambiPlayer setVariable ["ExileScore", (_accountData select 0)];
|
||||
_bambiPlayer setVariable ["ExileKills", (_accountData select 1)];
|
||||
_bambiPlayer setVariable ["ExileDeaths", (_accountData select 2)];
|
||||
_bambiPlayer setVariable ["ExileClanID", _clanID];
|
||||
_bambiPlayer setVariable ["ExileClanData", _clanData];
|
||||
_bambiPlayer setVariable ["ExileHunger", 100];
|
||||
_bambiPlayer setVariable ["ExileThirst", 100];
|
||||
_bambiPlayer setVariable ["ExileTemperature", 37];
|
||||
_bambiPlayer setVariable ["ExileWetness", 0];
|
||||
_bambiPlayer setVariable ["ExileAlcohol", 0];
|
||||
_bambiPlayer setVariable ["ExileName", _name];
|
||||
_bambiPlayer setVariable ["ExileOwnerUID", getPlayerUID _requestingPlayer];
|
||||
_bambiPlayer setVariable ["ExileIsBambi", true];
|
||||
_bambiPlayer setVariable ["ExileXM8IsOnline", false, true];
|
||||
_bambiPlayer setVariable ["ExileLocker", (_accountData select 4), true];
|
||||
_devFriendlyMode = getNumber (configFile >> "CfgSettings" >> "ServerSettings" >> "devFriendyMode");
|
||||
if (_devFriendlyMode isEqualTo 1) then
|
||||
{
|
||||
_devs = getArray (configFile >> "CfgSettings" >> "ServerSettings" >> "devs");
|
||||
{
|
||||
if ((getPlayerUID _requestingPlayer) isEqualTo (_x select 0))exitWith
|
||||
{
|
||||
if((name _requestingPlayer) isEqualTo (_x select 1))then
|
||||
{
|
||||
_bambiPlayer setVariable ["ExileMoney", 500000, true];
|
||||
_bambiPlayer setVariable ["ExileScore", 100000];
|
||||
};
|
||||
};
|
||||
}
|
||||
forEach _devs;
|
||||
};
|
||||
_parachuteNetID = "";
|
||||
if ((getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "parachuteSpawning")) isEqualTo 1) then
|
||||
{
|
||||
_position set [2, getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "parachuteDropHeight")];
|
||||
if ((getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "haloJump")) isEqualTo 1) then
|
||||
{
|
||||
_bambiPlayer addBackpackGlobal "B_Parachute";
|
||||
_bambiPlayer setPosATL _position;
|
||||
_spawnType = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
_parachuteObject = createVehicle ["Steerable_Parachute_F", _position, [], 0, "CAN_COLLIDE"];
|
||||
_parachuteObject setDir _direction;
|
||||
_parachuteObject setPosATL _position;
|
||||
_parachuteObject enableSimulationGlobal true;
|
||||
_parachuteNetID = netId _parachuteObject;
|
||||
_spawnType = 1;
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
_spawnType = 0;
|
||||
};
|
||||
if((canTriggerDynamicSimulation _player) isEqualTo false) then
|
||||
{
|
||||
_player triggerDynamicSimulation true;
|
||||
};
|
||||
_bambiPlayer addMPEventHandler ["MPKilled", {_this call ExileServer_object_player_event_onMpKilled}];
|
||||
_bambiPlayer call ExileServer_object_player_database_insert;
|
||||
_bambiPlayer call ExileServer_object_player_database_update;
|
||||
[
|
||||
_sessionID,
|
||||
"createPlayerResponse",
|
||||
[
|
||||
_bambiPlayer,
|
||||
_parachuteNetID,
|
||||
str (_accountData select 0),
|
||||
(_accountData select 1),
|
||||
(_accountData select 2),
|
||||
100,
|
||||
100,
|
||||
0,
|
||||
(getNumber (configFile >> "CfgSettings" >> "BambiSettings" >> "protectionDuration")) * 60,
|
||||
_clanData,
|
||||
_spawnType
|
||||
]
|
||||
]
|
||||
call ExileServer_system_network_send_to;
|
||||
[_sessionID, _bambiPlayer] call ExileServer_system_session_update;
|
||||
true
|
@ -0,0 +1,250 @@
|
||||
/**
|
||||
* ExileServer_object_player_database_load
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_data","_oldPlayerObject","_playerUID","_sessionID","_position","_direction","_player","_clanID","_clanName","_clanData","_clanGroup","_devFriendlyMode","_devs","_requestingPlayer","_bambiPlayer","_headgear","_goggles","_binocular","_primaryWeapon","_handgunWeapon","_secondaryWeapon","_currentWeapon","_uniform","_vest","_backpack","_uniformContainer","_vestContainer","_backpackContainer","_assignedItems"];
|
||||
_data = _this select 0;
|
||||
_oldPlayerObject = _this select 1;
|
||||
_playerUID = _this select 2;
|
||||
_sessionID = _this select 3;
|
||||
_name = name _oldPlayerObject;
|
||||
_position = [_data select 11, _data select 12, _data select 13];
|
||||
_direction = _data select 10;
|
||||
_player = (createGroup independent) createUnit ["Exile_Unit_Player", _position, [], 0, "CAN_COLLIDE"];
|
||||
_player setDir _direction;
|
||||
_player setPosATL _position;
|
||||
_player disableAI "FSM";
|
||||
_player disableAI "MOVE";
|
||||
_player disableAI "AUTOTARGET";
|
||||
_player disableAI "TARGET";
|
||||
_player disableAI "CHECKVISIBLE";
|
||||
_clanID = (_data select 42);
|
||||
_clanName = (_data select 43);
|
||||
if !((typeName _clanID) isEqualTo "SCALAR") then
|
||||
{
|
||||
_clanID = -1;
|
||||
_clanData = [];
|
||||
}
|
||||
else
|
||||
{
|
||||
_clanData = missionnamespace getVariable [format ["ExileServer_clan_%1",_clanID],[]];
|
||||
if(isNull (_clanData select 5))then
|
||||
{
|
||||
_clanGroup = createGroup independent;
|
||||
_clanData set [5,_clanGroup];
|
||||
_clanGroup setGroupIdGlobal [_clanData select 0];
|
||||
missionNameSpace setVariable [format ["ExileServer_clan_%1",_clanID],_clanData];
|
||||
}
|
||||
else
|
||||
{
|
||||
_clanGroup = (_clanData select 5);
|
||||
};
|
||||
[_player] joinSilent _clanGroup;
|
||||
};
|
||||
_player setDamage (_data select 3);
|
||||
_player setName _name;
|
||||
_player setVariable ["ExileMoney", (_data select 38), true];
|
||||
_player setVariable ["ExileScore", (_data select 39)];
|
||||
_player setVariable ["ExileKills", (_data select 40)];
|
||||
_player setVariable ["ExileDeaths", (_data select 41)];
|
||||
_player setVariable ["ExileClanID", _clanID];
|
||||
_player setVariable ["ExileClanData", _clanData];
|
||||
_player setVariable ["ExileName", _name];
|
||||
_player setVariable ["ExileOwnerUID", _playerUID];
|
||||
_player setVariable ["ExileDatabaseID", _data select 0];
|
||||
_player setVariable ["ExileHunger", _data select 4];
|
||||
_player setVariable ["ExileThirst", _data select 5];
|
||||
_player setVariable ["ExileAlcohol", _data select 6];
|
||||
_player setVariable ["ExileTemperature", _data select 44];
|
||||
_player setVariable ["ExileWetness", _data select 45];
|
||||
_player setVariable ["ExileIsBambi", false];
|
||||
_player setVariable ["ExileXM8IsOnline", false, true];
|
||||
_player setOxygenRemaining (_data select 7);
|
||||
_player setBleedingRemaining (_data select 8);
|
||||
_player setVariable ["ExileLocker", (_data select 46), true];
|
||||
[_player, _data select 9] call ExileClient_util_player_applyHitPointMap;
|
||||
_devFriendlyMode = getNumber (configFile >> "CfgSettings" >> "ServerSettings" >> "devFriendyMode");
|
||||
if (_devFriendlyMode isEqualTo 1) then
|
||||
{
|
||||
_devs = getArray (configFile >> "CfgSettings" >> "ServerSettings" >> "devs");
|
||||
{
|
||||
if ((getPlayerUID _requestingPlayer) isEqualTo (_x select 0))exitWith
|
||||
{
|
||||
if((name _requestingPlayer) isEqualTo (_x select 1))then
|
||||
{
|
||||
_bambiPlayer setVariable ["ExileMoney", 500000, true];
|
||||
_bambiPlayer setVariable ["ExileScore", 100000];
|
||||
};
|
||||
};
|
||||
}
|
||||
forEach _devs;
|
||||
};
|
||||
_player call ExileClient_util_playerCargo_clear;
|
||||
_headgear = _data select 23;
|
||||
if (_headgear != "") then
|
||||
{
|
||||
_player addHeadgear _headgear;
|
||||
};
|
||||
_goggles = _data select 20;
|
||||
if (_goggles != "") then
|
||||
{
|
||||
_player addGoggles _goggles;
|
||||
};
|
||||
_binocular = _data select 24;
|
||||
if (_binocular != "") then
|
||||
{
|
||||
_player addWeaponGlobal _binocular;
|
||||
};
|
||||
_primaryWeapon = _data select 26;
|
||||
if (_primaryWeapon != "") then
|
||||
{
|
||||
_player addWeaponGlobal _primaryWeapon;
|
||||
removeAllPrimaryWeaponItems _player;
|
||||
{
|
||||
if (_x != "") then
|
||||
{
|
||||
_player addPrimaryWeaponItem _x;
|
||||
};
|
||||
}
|
||||
forEach (_data select 27);
|
||||
};
|
||||
_handgunWeapon = _data select 22;
|
||||
if (_handgunWeapon != "") then
|
||||
{
|
||||
_player addWeaponGlobal _handgunWeapon;
|
||||
removeAllHandgunItems _player;
|
||||
{
|
||||
if (_x != "") then
|
||||
{
|
||||
_player addHandgunItem _x;
|
||||
};
|
||||
}
|
||||
forEach (_data select 21);
|
||||
};
|
||||
_secondaryWeapon = _data select 28;
|
||||
if (_secondaryWeapon != "") then
|
||||
{
|
||||
_player addWeaponGlobal _secondaryWeapon;
|
||||
{
|
||||
if (_x != "") then
|
||||
{
|
||||
_player addSecondaryWeaponItem _x;
|
||||
};
|
||||
}
|
||||
forEach (_data select 29);
|
||||
};
|
||||
_currentWeapon = _data select 19;
|
||||
if (_currentWeapon != "") then
|
||||
{
|
||||
_player selectWeapon _currentWeapon;
|
||||
};
|
||||
{
|
||||
_player addWeaponItem [_x select 0, [_x select 1, _x select 2, _x select 3]];
|
||||
}
|
||||
forEach (_data select 25);
|
||||
_uniform = _data select 30;
|
||||
_vest = _data select 34;
|
||||
_backpack = _data select 15;
|
||||
if (_uniform != "") then
|
||||
{
|
||||
_player forceAddUniform _uniform;
|
||||
};
|
||||
if (_vest != "") then
|
||||
{
|
||||
_player addVest _vest;
|
||||
};
|
||||
if (_backpack != "") then
|
||||
{
|
||||
_player addBackpackGlobal _backpack;
|
||||
};
|
||||
_uniformContainer = uniformContainer _player;
|
||||
if !(isNil "_uniformContainer") then
|
||||
{
|
||||
{
|
||||
_uniformContainer addWeaponCargoGlobal _x;
|
||||
}
|
||||
forEach (_data select 33);
|
||||
{
|
||||
_uniformContainer addMagazineAmmoCargo [_x select 0, 1, _x select 1];
|
||||
}
|
||||
forEach (_data select 32);
|
||||
{
|
||||
_uniformContainer addItemCargoGlobal _x;
|
||||
}
|
||||
forEach (_data select 31);
|
||||
};
|
||||
_vestContainer = vestContainer _player;
|
||||
if !(isNil "_vestContainer") then
|
||||
{
|
||||
{
|
||||
_vestContainer addWeaponCargoGlobal _x;
|
||||
}
|
||||
forEach (_data select 37);
|
||||
{
|
||||
_vestContainer addMagazineAmmoCargo [_x select 0, 1, _x select 1];
|
||||
}
|
||||
forEach (_data select 36);
|
||||
{
|
||||
_vestContainer addItemCargoGlobal _x;
|
||||
}
|
||||
forEach (_data select 35);
|
||||
};
|
||||
_backpackContainer = backpackContainer _player;
|
||||
if !(isNil "_backpackContainer") then
|
||||
{
|
||||
{
|
||||
_backpackContainer addWeaponCargoGlobal _x;
|
||||
}
|
||||
forEach (_data select 18);
|
||||
{
|
||||
_backpackContainer addMagazineAmmoCargo [_x select 0, 1, _x select 1];
|
||||
}
|
||||
forEach (_data select 17);
|
||||
{
|
||||
_backpackContainer addItemCargoGlobal _x;
|
||||
}
|
||||
forEach (_data select 16);
|
||||
};
|
||||
_assignedItems = _data select 14;
|
||||
if !(_assignedItems isEqualTo []) then
|
||||
{
|
||||
{
|
||||
_player linkItem _x;
|
||||
}
|
||||
forEach _assignedItems;
|
||||
};
|
||||
_player addMPEventHandler ["MPKilled", {_this call ExileServer_object_player_event_onMpKilled}];
|
||||
if((canTriggerDynamicSimulation _player) isEqualTo false) then
|
||||
{
|
||||
_player triggerDynamicSimulation true;
|
||||
};
|
||||
if (getNumber (configFile >> "CfgSettings" >> "VehicleSpawn" >> "thermalVision") isEqualTo 0) then
|
||||
{
|
||||
_player addEventHandler ["WeaponAssembled", {(_this select 1) disableTIEquipment true;}];
|
||||
};
|
||||
[
|
||||
_sessionID,
|
||||
"loadPlayerResponse",
|
||||
[
|
||||
(netId _player),
|
||||
str (_player getVariable ["ExileScore", 0]),
|
||||
(_player getVariable ["ExileKills", 0]),
|
||||
(_player getVariable ["ExileDeaths", 0]),
|
||||
(_player getVariable ["ExileHunger", 100]),
|
||||
(_player getVariable ["ExileThirst", 100]),
|
||||
(_player getVariable ["ExileAlcohol", 0]),
|
||||
(_player getVariable ["ExileClanData", []]),
|
||||
(_player getVariable ["ExileTemperature", 0]),
|
||||
(_player getVariable ["ExileWetness", 0])
|
||||
]
|
||||
]
|
||||
call ExileServer_system_network_send_to;
|
||||
[_sessionID, _player] call ExileServer_system_session_update;
|
||||
true
|
@ -0,0 +1,194 @@
|
||||
/**
|
||||
* ExileServer_object_player_event_onMpKilled
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_victim","_killer","_countDeath","_countKill","_killSummary","_killingPlayer","_killType","_oldVictimRespect","_newVictimRespect","_oldKillerRespect","_newKillerRespect","_systemChat","_modifyVictimRespect","_respectLoss","_perks","_minRespectTransfer","_respectTransfer","_perkNames","_killerStatsNeedUpdate","_newKillerFrags","_victimStatsNeedUpdate","_newVictimDeaths","_victimPosition"];
|
||||
_victim = _this select 0;
|
||||
_killer = _this select 1;
|
||||
if (!isServer || hasInterface || isNull _victim) exitWith {};
|
||||
_victim setVariable ["ExileDiedAt", time];
|
||||
if !(isPlayer _victim) exitWith {};
|
||||
_victim setVariable ["ExileIsDead", true];
|
||||
_victim setVariable ["ExileName", name _victim, true];
|
||||
_countDeath = false;
|
||||
_countKill = false;
|
||||
_killSummary = [];
|
||||
_killingPlayer = _killer call ExileServer_util_getFragKiller;
|
||||
_killType = [_victim, _killer, _killingPlayer] call ExileServer_util_getFragType;
|
||||
_oldVictimRespect = _victim getVariable ["ExileScore", 0];
|
||||
_newVictimRespect = _oldVictimRespect;
|
||||
_oldKillerRespect = 0;
|
||||
if !(isNull _killingPlayer) then
|
||||
{
|
||||
_oldKillerRespect = _killingPlayer getVariable ["ExileScore", 0];
|
||||
};
|
||||
_newKillerRespect = _oldKillerRespect;
|
||||
switch (_killType) do
|
||||
{
|
||||
default
|
||||
{
|
||||
_countDeath = true;
|
||||
_systemChat = format ["%1 died for an unknown reason!", name _victim];
|
||||
_newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "unlucky")));
|
||||
};
|
||||
case 1:
|
||||
{
|
||||
_countDeath = true;
|
||||
_modifyVictimRespect = true;
|
||||
_systemChat = format ["%1 commited suicide!", name _victim];
|
||||
_newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "suicide")));
|
||||
};
|
||||
case 2:
|
||||
{
|
||||
_countDeath = true;
|
||||
_countKill = false;
|
||||
_systemChat = format ["%1 died while playing Russian Roulette!", name _victim];
|
||||
_newVictimRespect = _oldVictimRespect;
|
||||
_victim call ExileServer_system_russianRoulette_event_onPlayerDied;
|
||||
};
|
||||
case 3:
|
||||
{
|
||||
_countDeath = true;
|
||||
_countKill = false;
|
||||
_systemChat = format ["%1 crashed to death!", name _victim];
|
||||
_newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "crash")));
|
||||
};
|
||||
case 4:
|
||||
{
|
||||
_countDeath = true;
|
||||
_countKill = false;
|
||||
_systemChat = format ["%1 was killed by an NPC!", name _victim];
|
||||
_newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "npc")));
|
||||
};
|
||||
case 5:
|
||||
{
|
||||
_countDeath = false;
|
||||
_countKill = false;
|
||||
_systemChat = format ["%1 was team-killed by %2!", name _victim, name _killingPlayer];
|
||||
_respectLoss = round ((abs _oldKillerRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "friendyFire")));
|
||||
_newKillerRespect = _oldKillerRespect - _respectLoss;
|
||||
_killSummary pushBack ["FRIENDLY FIRE", -1 * _respectLoss];
|
||||
};
|
||||
case 6:
|
||||
{
|
||||
_countDeath = false;
|
||||
_countKill = false;
|
||||
_systemChat = format ["%1 was killed by %2! (BAMBI SLAYER)", name _victim, name _killingPlayer];
|
||||
_respectLoss = round ((abs _oldKillerRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "bambiKill")));
|
||||
_newKillerRespect = _oldKillerRespect - _respectLoss;
|
||||
_killSummary pushBack ["BAMBI SLAYER", -1 * _respectLoss];
|
||||
};
|
||||
case 7:
|
||||
{
|
||||
_countDeath = true;
|
||||
_countKill = true;
|
||||
_perks = [_victim, _killer, _killingPlayer] call ExileServer_util_getFragPerks;
|
||||
_minRespectTransfer = getNumber (configFile >> "CfgSettings" >> "Respect" >> "minRespectTransfer");
|
||||
_respectTransfer = round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "frag")));
|
||||
if (_respectTransfer < _minRespectTransfer) then
|
||||
{
|
||||
_respectTransfer = _minRespectTransfer;
|
||||
};
|
||||
_newVictimRespect = _oldVictimRespect - _respectTransfer;
|
||||
_newKillerRespect = _oldKillerRespect + _respectTransfer;
|
||||
_killSummary pushBack ["ENEMY FRAGGED", _respectTransfer];
|
||||
if (_perks isEqualTo []) then
|
||||
{
|
||||
_systemChat = format ["%1 was killed by %2!", name _victim, name _killingPlayer];
|
||||
}
|
||||
else
|
||||
{
|
||||
_perkNames = [];
|
||||
{
|
||||
_perkNames pushBack (_x select 0);
|
||||
_killSummary pushBack _x;
|
||||
_newKillerRespect = _newKillerRespect + (_x select 1);
|
||||
}
|
||||
forEach _perks;
|
||||
_systemChat = format ["%1 was killed by %2! (%3)", name _victim, name _killingPlayer, _perkNames joinString ", "];
|
||||
};
|
||||
};
|
||||
};
|
||||
if !(isNull _killingPlayer) then
|
||||
{
|
||||
if !(_killSummary isEqualTo []) then
|
||||
{
|
||||
[_killingPlayer, "showFragRequest", [_killSummary]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
};
|
||||
if !(isNull _killingPlayer) then
|
||||
{
|
||||
_killerStatsNeedUpdate = false;
|
||||
if (_countKill) then
|
||||
{
|
||||
_newKillerFrags = _killingPlayer getVariable ["ExileKills", 0];
|
||||
_newKillerFrags = _newKillerFrags + 1;
|
||||
_killerStatsNeedUpdate = true;
|
||||
_killingPlayer setVariable ["ExileKills", _newKillerFrags];
|
||||
format["addAccountKill:%1", getPlayerUID _killingPlayer] call ExileServer_system_database_query_fireAndForget;
|
||||
};
|
||||
if !(_newKillerRespect isEqualTo _oldKillerRespect) then
|
||||
{
|
||||
_killingPlayer setVariable ["ExileScore", _newKillerRespect];
|
||||
_killerStatsNeedUpdate = true;
|
||||
format["setAccountScore:%1:%2", _newKillerRespect, getPlayerUID _killingPlayer] call ExileServer_system_database_query_fireAndForget;
|
||||
};
|
||||
if (_killerStatsNeedUpdate) then
|
||||
{
|
||||
_killingPlayer call ExileServer_object_player_sendStatsUpdate;
|
||||
};
|
||||
};
|
||||
_victimStatsNeedUpdate = false;
|
||||
if (_countDeath) then
|
||||
{
|
||||
_newVictimDeaths = _victim getVariable ["ExileDeaths", 0];
|
||||
_newVictimDeaths = _newVictimDeaths + 1;
|
||||
_victim setVariable ["ExileDeaths", _newVictimDeaths];
|
||||
_victimStatsNeedUpdate = true;
|
||||
format["addAccountDeath:%1", getPlayerUID _victim] call ExileServer_system_database_query_fireAndForget;
|
||||
};
|
||||
if !(_newVictimRespect isEqualTo _oldVictimRespect) then
|
||||
{
|
||||
_victim setVariable ["ExileScore", _newVictimRespect];
|
||||
_victimStatsNeedUpdate = true;
|
||||
format["setAccountScore:%1:%2", _newVictimRespect, getPlayerUID _victim] call ExileServer_system_database_query_fireAndForget;
|
||||
};
|
||||
if (_victimStatsNeedUpdate) then
|
||||
{
|
||||
_victim call ExileServer_object_player_sendStatsUpdate;
|
||||
};
|
||||
if ((vehicle _victim) isEqualTo _victim) then
|
||||
{
|
||||
if !(underwater _victim) then
|
||||
{
|
||||
if !(_victim call ExileClient_util_world_isInTraderZone) then
|
||||
{
|
||||
_victim call ExileServer_object_flies_spawn;
|
||||
};
|
||||
};
|
||||
};
|
||||
if !(_systemChat isEqualTo "") then
|
||||
{
|
||||
if ((getNumber (configFile >> "CfgSettings" >> "KillFeed" >> "showKillFeed")) isEqualTo 1) then
|
||||
{
|
||||
["systemChatRequest", [_systemChat]] call ExileServer_system_network_send_broadcast;
|
||||
};
|
||||
};
|
||||
if !(_systemChat isEqualTo "") then
|
||||
{
|
||||
if ((getNumber (configFile >> "CfgSettings" >> "Logging" >> "deathLogging")) isEqualTo 1) then
|
||||
{
|
||||
"extDB3" callExtension format["1:DEATH:%1", _systemChat];
|
||||
};
|
||||
};
|
||||
_victimPosition = getPos _victim;
|
||||
format["insertPlayerHistory:%1:%2:%3:%4:%5", getPlayerUID _victim, name _victim, _victimPosition select 0, _victimPosition select 1, _victimPosition select 2] call ExileServer_system_database_query_fireAndForget;
|
||||
format["deletePlayer:%1", _victim getVariable ["ExileDatabaseId", -1]] call ExileServer_system_database_query_fireAndForget;
|
||||
true
|
@ -0,0 +1,22 @@
|
||||
/**
|
||||
* ExileServer_object_vehicle_createNonPersistentVehicle
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_className","_position","_direction","_usePositionATL","_vehicleObject"];
|
||||
_className = _this select 0;
|
||||
_position = _this select 1;
|
||||
_direction = _this select 2;
|
||||
_usePositionATL = _this select 3;
|
||||
_vehicleObject = [_className, _position, _direction, _usePositionATL] call ExileServer_object_vehicle_carefulCreateVehicle;
|
||||
_vehicleObject setVariable ["ExileIsPersistent", false];
|
||||
_vehicleObject addEventHandler ["GetIn", {_this call ExileServer_object_vehicle_event_onGetIn}];
|
||||
_vehicleObject addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; _this call ExileServer_object_vehicle_event_onMPKilled;}];
|
||||
_vehicleObject enableDynamicSimulation true;
|
||||
_vehicleObject
|
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* ExileServer_object_vehicle_createPersistentVehicle
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_className","_position","_direction","_usePositionATL","_pinCode","_vehicleObject"];
|
||||
_className = _this select 0;
|
||||
_position = _this select 1;
|
||||
_direction = _this select 2;
|
||||
_usePositionATL = _this select 3;
|
||||
_pinCode = _this select 4;
|
||||
_vehicleObject = [_className, _position, _direction, _usePositionATL] call ExileServer_object_vehicle_carefulCreateVehicle;
|
||||
_vehicleObject setVariable ["ExileIsPersistent", true];
|
||||
_vehicleObject setVariable ["ExileAccessCode", _pinCode];
|
||||
_vehicleObject addEventHandler ["GetOut", {_this call ExileServer_object_vehicle_event_onGetOut}];
|
||||
_vehicleObject addEventHandler ["GetIn", {_this call ExileServer_object_vehicle_event_onGetIn}];
|
||||
_vehicleObject addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; _this call ExileServer_object_vehicle_event_onMPKilled;}];
|
||||
_vehicleObject enableDynamicSimulation true;
|
||||
_vehicleObject
|
@ -0,0 +1,82 @@
|
||||
/**
|
||||
* ExileServer_object_vehicle_database_load
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_vehicleID","_data","_position","_vectorDirection","_vectorUp","_pinCode","_texture","_vehicleObject","_lock","_unlockInSafeZonesAfterRestart","_isLocked","_hitpoints","_cargoContainers"];
|
||||
_vehicleID = _this;
|
||||
_data = format ["loadVehicle:%1", _vehicleID] call ExileServer_system_database_query_selectSingle;
|
||||
_position = [_data select 8, _data select 9, _data select 10];
|
||||
_vectorDirection = [_data select 11, _data select 12, _data select 13];
|
||||
_vectorUp = [_data select 14, _data select 15, _data select 16];
|
||||
_pinCode = _data select 20;
|
||||
_texture = _data select 21;
|
||||
_vehicleObject = [(_data select 1), _position, [_vectorDirection, _vectorUp], true,_pinCode] call ExileServer_object_vehicle_createPersistentVehicle;
|
||||
_vehicleObject setVariable ["ExileDatabaseID", _vehicleID];
|
||||
_vehicleObject setVariable ["ExileOwnerUID", (_data select 3)];
|
||||
_vehicleObject setVariable ["ExileMoney", (_data select 23), true];
|
||||
_lock = (_data select 4);
|
||||
_unlockInSafeZonesAfterRestart = (getNumber (configFile >> "CfgSettings" >> "VehicleSpawn" >> "unlockInSafeZonesAfterRestart")) isEqualTo 1;
|
||||
_isLocked = (_lock isEqualTo -1);
|
||||
if (_isLocked) then
|
||||
{
|
||||
if (_unlockInSafeZonesAfterRestart) then
|
||||
{
|
||||
if (_position call ExileClient_util_world_isInTraderZone) then
|
||||
{
|
||||
_isLocked = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
if (_isLocked) then
|
||||
{
|
||||
_vehicleObject setVariable ["ExileIsLocked", -1];
|
||||
_vehicleObject lock 2;
|
||||
_vehicleObject enableRopeAttach false;
|
||||
}
|
||||
else
|
||||
{
|
||||
_vehicleObject setVariable ["ExileIsLocked", 0];
|
||||
_vehicleObject lock 0;
|
||||
_vehicleObject enableRopeAttach true;
|
||||
};
|
||||
_vehicleObject setFuel (_data select 5);
|
||||
_vehicleObject setDamage (_data select 6);
|
||||
_hitpoints = _data select 7;
|
||||
if ((typeName _hitpoints) isEqualTo "ARRAY") then
|
||||
{
|
||||
{
|
||||
_vehicleObject setHitPointDamage [_x select 0, _x select 1];
|
||||
}
|
||||
forEach _hitpoints;
|
||||
};
|
||||
[_vehicleObject, (_data select 17)] call ExileServer_util_fill_fillItems;
|
||||
[_vehicleObject, (_data select 18)] call ExileServer_util_fill_fillMagazines;
|
||||
[_vehicleObject, (_data select 19)] call ExileServer_util_fill_fillWeapons;
|
||||
_cargoContainers = format ["loadVehicleContainer:%1", _vehicleID] call ExileServer_system_database_query_selectSingle;
|
||||
if ((typeName _cargoContainers) isEqualTo "ARRAY") then
|
||||
{
|
||||
if !(_cargoContainers isEqualTo []) then
|
||||
{
|
||||
[_vehicleObject, (_cargoContainers select 0)] call ExileServer_util_fill_fillContainers;
|
||||
};
|
||||
};
|
||||
if !(_texture isEqualTo "") then
|
||||
{
|
||||
{
|
||||
_vehicleObject setObjectTextureGlobal [_forEachIndex, _texture select _forEachIndex];
|
||||
}
|
||||
forEach _texture;
|
||||
};
|
||||
_vehicleObject enableDynamicSimulation true;
|
||||
if (_vehicleObject call ExileClient_util_world_isInTraderZone) then
|
||||
{
|
||||
_vehicleObject allowDamage false;
|
||||
};
|
||||
_vehicleObject
|
@ -0,0 +1,62 @@
|
||||
/**
|
||||
* ExileServer_system_database_connect
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_isConnected","_error","_result"];
|
||||
_isConnected = false;
|
||||
_error_locked = false;
|
||||
ExileServerDatabaseSessionId = "";
|
||||
ExileServerRconSessionID = "";
|
||||
try
|
||||
{
|
||||
_result = "extDB3" callExtension "9:VERSION";
|
||||
format ["Installed extDB3 version: %1", _result] call ExileServer_util_log;
|
||||
if ((parseNumber _result) < 1.027) then
|
||||
{
|
||||
throw format ["Error Required extDB3 Version 1.027 or higher: %1", _result];
|
||||
};
|
||||
_result = parseSimpleArray ("extDB3" callExtension "9:ADD_DATABASE:exile");
|
||||
if (_result select 0 isEqualTo 0) then
|
||||
{
|
||||
throw format ["Could not add database: %1", _result];
|
||||
};
|
||||
"Connected to database!" call ExileServer_util_log;
|
||||
ExileServerDatabaseSessionId = "SQL"; //str(round(random(999999)));
|
||||
_result = parseSimpleArray ("extDB3" callExtension "9:ADD_DATABASE_PROTOCOL:exile:SQL_CUSTOM:SQL:exile.ini");
|
||||
if ((_result select 0) isEqualTo 0) then
|
||||
{
|
||||
throw format ["Failed to initialize database protocol: %1", _result];
|
||||
};
|
||||
ExileServerStartTime = (parseSimpleArray ("extDB3" callExtension "9:LOCAL_TIME")) select 1;
|
||||
"Database protocol initialized!" call ExileServer_util_log;
|
||||
"extDB3" callExtension "9:ADD_PROTOCOL:LOG:TRADING:Exile_TradingLog";
|
||||
"extDB3" callExtension "9:ADD_PROTOCOL:LOG:DEATH:Exile_DeathLog";
|
||||
"extDB3" callExtension "9:ADD_PROTOCOL:LOG:TERRITORY:Exile_TerritoryLog";
|
||||
"extDB3" callExtension "9:LOCK";
|
||||
_isConnected = true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
if (!_error_locked) then
|
||||
{
|
||||
"MySQL connection error!" call ExileServer_util_log;
|
||||
"Make sure [Database] in the extdb3-conf.ini is set to [exile] unless you have a different database setup!!!!!" call ExileServer_util_log;
|
||||
"Please have a look at @extDB3/logs/ to find out what went wrong." call ExileServer_util_log;
|
||||
format ["MySQL Error: %1", _exception] call ExileServer_util_log;
|
||||
"Server will shutdown now :(" call ExileServer_util_log;
|
||||
//"extDB3" callExtension "9:SHUTDOWN"; Not implemented in extDB3
|
||||
}
|
||||
else
|
||||
{
|
||||
format ["extDB3: %1", _exception] call ExileServer_util_log;
|
||||
"Check your server rpt for errors, your mission might be stuck a loop restarting" call ExileServer_util_log;
|
||||
};
|
||||
};
|
||||
_isConnected
|
@ -0,0 +1,21 @@
|
||||
/**
|
||||
* ExileServer_system_database_handleBig
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_key","_result","_pipe"];
|
||||
_key = _this;
|
||||
_result = "";
|
||||
while{true} do
|
||||
{
|
||||
_pipe = "extDB3" callExtension format["5:%1", _key];
|
||||
if(_pipe isEqualTo "") exitWith {};
|
||||
_result = _result + _pipe;
|
||||
};
|
||||
call (compile _result)
|
@ -0,0 +1,16 @@
|
||||
/**
|
||||
* ExileServer_system_database_query_fireAndForget
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_parameters","_query"];
|
||||
_parameters = _this;
|
||||
_query = [1, "SQL",_parameters] joinString ":";
|
||||
"extDB3" callExtension _query;
|
||||
true
|
@ -0,0 +1,16 @@
|
||||
/**
|
||||
* ExileServer_system_database_query_insertSingle
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_parameters","_query","_result"];
|
||||
_parameters = _this;
|
||||
_query = [0, "SQL",_parameters] joinString ":";
|
||||
_result = parseSimpleArray ("extDB3" callExtension _query);
|
||||
(_result select 1) select 0
|
@ -0,0 +1,27 @@
|
||||
/**
|
||||
* ExileServer_system_database_query_selectFull
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_parameters","_query","_result"];
|
||||
_parameters = _this;
|
||||
_query = [0, "SQL",_parameters] joinString ":";
|
||||
_result = parseSimpleArray ("extDB3" callExtension _query);
|
||||
switch (_result select 0) do
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
(format["Database Error: %1", (_result select 1)]) call ExileServer_util_log;
|
||||
};
|
||||
case 2:
|
||||
{
|
||||
_result = (_result select 1) call ExileServer_system_database_handleBig;
|
||||
};
|
||||
};
|
||||
_result select 1
|
@ -0,0 +1,27 @@
|
||||
/**
|
||||
* ExileServer_system_database_query_selectSingle
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_parameters","_query","_result"];
|
||||
_parameters = _this;
|
||||
_query = [0, "SQL",_parameters] joinString ":";
|
||||
_result = parseSimpleArray ("extDB3" callExtension _query);
|
||||
switch (_result select 0) do
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
(format["Database Error: %1", (_result select 1)]) call ExileServer_util_log;
|
||||
};
|
||||
case 2:
|
||||
{
|
||||
_result = (_result select 1) call ExileServer_system_database_handleBig;
|
||||
};
|
||||
};
|
||||
(_result select 1) select 0
|
@ -0,0 +1,27 @@
|
||||
/**
|
||||
* ExileServer_system_database_query_selectSingleField
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_parameters","_query","_result"];
|
||||
_parameters = _this;
|
||||
_query = [0,"SQL",_parameters] joinString ":";
|
||||
_result = parseSimpleArray ("extDB3" callExtension _query);
|
||||
switch (_result select 0) do
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
(format["Database Error: %1", (_result select 1)]) call ExileServer_util_log;
|
||||
};
|
||||
case 2:
|
||||
{
|
||||
_result = (_result select 1) call ExileServer_system_database_handleBig;
|
||||
};
|
||||
};
|
||||
((_result select 1) select 0) select 0
|
@ -0,0 +1,40 @@
|
||||
/**
|
||||
* ExileServer_system_territory_database_insert
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_flagObject","_territoryName","_flagTexture","_territorySize","_owner","_position","_build","_moderators","_data","_extDB2Message","_territoryID"];
|
||||
_flagObject = _this select 0;
|
||||
_territoryName = _this select 1;
|
||||
_flagTexture = _this select 2;
|
||||
_territorySize = ((getArray(missionConfigFile >> "CfgTerritories" >> "prices")) select 0)select 1;
|
||||
_owner = _flagObject getVariable ["ExileOwnerUID",""];
|
||||
_position = getPosATL _flagObject;
|
||||
_build_rights = _flagObject getVariable ["ExileTerritoryBuildRights",[]];
|
||||
_moderators = _flagObject getVariable ["ExileTerritoryModerators",[]];
|
||||
_data =
|
||||
[
|
||||
_owner,
|
||||
_territoryName,
|
||||
_position select 0,
|
||||
_position select 1,
|
||||
_position select 2,
|
||||
_territorySize,
|
||||
1,
|
||||
_flagTexture,
|
||||
0,
|
||||
_build_rights,
|
||||
_moderators,
|
||||
""
|
||||
];
|
||||
_extDB2Message = ["createTerritory", _data] call ExileServer_util_extDB2_createMessage;
|
||||
_territoryID = _extDB2Message call ExileServer_system_database_query_insertSingle;
|
||||
_flagObject setVariable ["ExileDatabaseID",_territoryID];
|
||||
_flagObject setVariable ["ExileFlagTexture",_flagTexture];
|
||||
true
|
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* ExileServer_system_territory_maintenance_recalculateDueDate
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_flag","_currentTimestamp","_flagBuild","_maintenancePeriod","_maintenancePeriodDueDate"];
|
||||
_flag = _this;
|
||||
_currentTimestamp = call ExileServer_util_time_currentTime;
|
||||
_flagBuild = _flag getVariable ["ExileTerritoryLastPayed", _currentTimestamp];
|
||||
_maintenancePeriod = getNumber(configFile >> "CfgSettings" >> "GarbageCollector" >> "Database" >> "territoryLifeTime");
|
||||
_maintenancePeriodDueDate = parseSimpleArray ("extDB3" callExtension format["9:DATEADD:%1:[%2,0,0,0]",_flagBuild,_maintenancePeriod]);
|
||||
_flag setVariable ["ExileTerritoryMaintenanceDue", _maintenancePeriodDueDate select 1, true];
|
||||
true
|
@ -0,0 +1,54 @@
|
||||
/**
|
||||
* ExileServer_system_territory_network_flagStolenRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_flag","_playerObject","_databaseID","_level","_flagPosition","_spawnRadius","_weaponHolderPosition","_weaponHolder","_logging","_territoryLog"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_flag = _parameters select 0;
|
||||
try
|
||||
{
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw "Player Object NULL";
|
||||
};
|
||||
if ((_flag getVariable ["ExileFlagStolen", 0]) isEqualTo 1) then
|
||||
{
|
||||
throw "Flag already stolen!";
|
||||
};
|
||||
if ((_playerObject distance2D _flag) > 5) then
|
||||
{
|
||||
throw "You are too far away!";
|
||||
};
|
||||
_databaseID = _flag getVariable ["ExileDatabaseID",0];
|
||||
_level = _flag getVariable ["ExileTerritoryLevel",_level];
|
||||
_flagPosition = getPosATL _flag;
|
||||
_flagPosition set[2, 0];
|
||||
_spawnRadius = 3;
|
||||
_weaponHolderPosition = getPosATL _playerObject;
|
||||
_weaponHolder = createVehicle ["GroundWeaponHolder", _weaponHolderPosition, [], 0, "CAN_COLLIDE"];
|
||||
_weaponHolder setPosATL _weaponHolderPosition;
|
||||
_weaponHolder addMagazineCargoGlobal [format["Exile_Item_FlagStolen%1", _level], 1];
|
||||
_flag setVariable ["ExileFlagStolen", 1, true];
|
||||
format["flagStolen:%1:%2",getPlayerUID _playerObject,_databaseID] call ExileServer_system_database_query_fireAndForget;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_territoryLog = format ["PLAYER ( %1 ) %2 STOLE A LEVEL %3 FLAG FROM TERRITORY #%4",getPlayerUID _playerObject,_playerObject,_level,_databaseID];
|
||||
"extDB3" callExtension format["1:TERRITORY:%1",_territoryLog];
|
||||
};
|
||||
_flag call ExileServer_system_xm8_sendFlagStolen;
|
||||
}
|
||||
catch
|
||||
{
|
||||
[_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to steal!", _exception]]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
true
|
@ -0,0 +1,79 @@
|
||||
/**
|
||||
* ExileServer_system_territory_network_payFlagRansomRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_flagNetID","_flag","_playerObject","_buildRights","_playerUID","_level","_itemClassName","_flagFee","_playerMoney","_logging","_databaseID","_territoryLog"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_flagNetID = _parameters select 0;
|
||||
try
|
||||
{
|
||||
_flag = objectFromNetid _flagNetID;
|
||||
if (isNull _flag) then
|
||||
{
|
||||
throw "Territory not found!";
|
||||
};
|
||||
if ((_flag getVariable ["ExileFlagStolen", 1]) isEqualTo 0) then
|
||||
{
|
||||
throw "Flag not stolen!";
|
||||
};
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw "You do not exist!";
|
||||
};
|
||||
if !(alive _playerObject) then
|
||||
{
|
||||
throw "You are dead!";
|
||||
};
|
||||
_buildRights = _flag getVariable ["ExileTerritoryBuildRights", []];
|
||||
_playerUID = getPlayerUID _playerObject;
|
||||
if !(_playerUID in _buildRights) then
|
||||
{
|
||||
throw "Missing build rights!";
|
||||
};
|
||||
_level = _flag getVariable ["ExileTerritoryLevel", 0];
|
||||
_itemClassName = format["Exile_Item_FlagStolen%1", _level];
|
||||
if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _itemClassName) ) then
|
||||
{
|
||||
throw "Flag price not found!";
|
||||
};
|
||||
_flagFee = getNumber (missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "price");
|
||||
if (_flagFee <= 0) then
|
||||
{
|
||||
throw "Invalid flag price!";
|
||||
};
|
||||
_playerMoney = _playerObject getVariable ["ExileMoney", 0];
|
||||
if (_playerMoney < _flagFee) then
|
||||
{
|
||||
throw "You are too poor!";
|
||||
};
|
||||
if !(_playerObject canAdd _itemClassName) then
|
||||
{
|
||||
throw "Inventory is full!";
|
||||
};
|
||||
_playerMoney = _playerMoney - _flagFee;
|
||||
_playerObject setVariable ["ExileMoney", _playerMoney, true];
|
||||
format ["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
|
||||
_playerObject addItem _itemClassName;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_databaseID = _flag getVariable ["ExileDatabaseID",0];
|
||||
_territoryLog = format ["PLAYER ( %1 ) %2 PAID %3 POP TABS FOR THE RANSOM OF TERRITORY #%4 | PLAYER TOTAL POP TABS: %5", _playerUID, _playerObject, _flagFee, _databaseID, _playerMoney];
|
||||
"extDB3" callExtension format["1:TERRITORY:%1", _territoryLog];
|
||||
};
|
||||
[_sessionID, "toastRequest", ["SuccessTitleOnly", ["Random paid!"]]] call ExileServer_system_network_send_to;
|
||||
}
|
||||
catch
|
||||
{
|
||||
[_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to pay!", _exception]]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
true
|
@ -0,0 +1,64 @@
|
||||
/**
|
||||
* ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_flagNetID","_playerObject","_flagObject","_flagStolen","_territoryDatabaseID","_radius","_level","_objectsInTerritory","_popTabAmountPerObject","_totalPopTabAmount","_playerPopTabs","_currentTimestamp","_logging","_territoryLog"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_flagNetID = _parameters select 0;
|
||||
try
|
||||
{
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw "Invalid player object";
|
||||
};
|
||||
_flagObject = objectFromNetId _flagNetID;
|
||||
if (isNull _flagObject) then
|
||||
{
|
||||
throw "Invalid flag object";
|
||||
};
|
||||
_flagStolen = _flagObject getVariable ["ExileFlagStolen", 0];
|
||||
if (_flagStolen isEqualTo 1) then
|
||||
{
|
||||
throw "Flag stolen!";
|
||||
};
|
||||
_territoryDatabaseID = _flagObject getVariable ["ExileDatabaseID", 0];
|
||||
_radius = _flagObject getVariable ["ExileTerritorySize", 15];
|
||||
_level = _flagObject getVariable ["ExileTerritoryLevel", 1];
|
||||
_objectsInTerritory = _flagObject getVariable ["ExileTerritoryNumberOfConstructions", 0];
|
||||
_popTabAmountPerObject = getNumber (missionConfigFile >> "CfgTerritories" >> "popTabAmountPerObject");
|
||||
_totalPopTabAmount = _level * _popTabAmountPerObject * _objectsInTerritory;
|
||||
_playerPopTabs = _playerObject getVariable ["ExileMoney", 0];
|
||||
if (_playerPopTabs < _totalPopTabAmount) then
|
||||
{
|
||||
throw "You do not have enough pop tabs!";
|
||||
};
|
||||
_playerPopTabs = _playerPopTabs - _totalPopTabAmount;
|
||||
_playerObject setVariable ["ExileMoney", _playerPopTabs, true];
|
||||
format["setPlayerMoney:%1:%2", _playerPopTabs, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
|
||||
_currentTimestamp = call ExileServer_util_time_currentTime;
|
||||
_flagObject setVariable ["ExileTerritoryLastPayed", _currentTimestamp];
|
||||
_flagObject call ExileServer_system_territory_maintenance_recalculateDueDate;
|
||||
format["maintainTerritory:%1", _territoryDatabaseID] call ExileServer_system_database_query_fireAndForget;
|
||||
[_sessionID, "toastRequest", ["SuccessTitleOnly", ["Protection money paid!"]]] call ExileServer_system_network_send_to;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_territoryLog = format ["PLAYER ( %1 ) %2 PAID %3 POP TABS TO PROTECT TERRITORY #%4 | PLAYER TOTAL POP TABS: %5",getPlayerUID _playerObject,_playerObject,_totalPopTabAmount,_territoryDatabaseID,_playerPopTabs];
|
||||
"extDB3" callExtension format["1:TERRITORY:%1",_territoryLog];
|
||||
};
|
||||
_flagObject call ExileServer_system_xm8_sendProtectionMoneyPaid;
|
||||
}
|
||||
catch
|
||||
{
|
||||
[_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to pay!", _exception]]] call ExileServer_system_network_send_to;
|
||||
_exception call ExileServer_util_log;
|
||||
};
|
@ -0,0 +1,46 @@
|
||||
/**
|
||||
* ExileServer_system_territory_network_purchaseTerritory
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_player","_price","_playerMoney","_logging","_territoryLog"];
|
||||
_sessionID = _this select 0;
|
||||
try
|
||||
{
|
||||
_player = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _player) then
|
||||
{
|
||||
throw 1;
|
||||
};
|
||||
if !(alive _player) then
|
||||
{
|
||||
throw 2;
|
||||
};
|
||||
_price = ((getArray(missionConfigFile >> "CfgTerritories" >> "prices")) select 0) select 0;
|
||||
_playerMoney = _player getVariable ["ExileMoney", 0];
|
||||
if (_price > _playerMoney) then
|
||||
{
|
||||
throw 3;
|
||||
};
|
||||
_playerMoney = _playerMoney - _price;
|
||||
_player setVariable ["ExileMoney", _playerMoney, true];
|
||||
format["setPlayerMoney:%1:%2", _playerMoney, _player getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
|
||||
[_sessionID, "purchaseTerritoryResponse" , [0]] call ExileServer_system_network_send_to;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_territoryLog = format ["PLAYER ( %1 ) %2 PAID %3 POP TABS TO PURCHASE A TERRITORY FLAG | PLAYER TOTAL POP TABS: %4",getPlayerUID _player,_player,_price,_playerMoney];
|
||||
"extDB3" callExtension format["1:TERRITORY:%1",_territoryLog];
|
||||
};
|
||||
}
|
||||
catch
|
||||
{
|
||||
[_sessionID, "purchaseTerritoryResponse" , [_exception]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
true
|
@ -0,0 +1,71 @@
|
||||
/**
|
||||
* ExileServer_system_territory_network_restoreFlagRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_flagNetID","_flag","_playerObject","_buildRights","_playerUID","_level","_itemClassName","_territoryDatabaseID","_flagTexture","_logging"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_flagNetID = _parameters select 0;
|
||||
try
|
||||
{
|
||||
_flag = objectFromNetid _flagNetID;
|
||||
if (isNull _flag) then
|
||||
{
|
||||
throw "Territory not found!";
|
||||
};
|
||||
if ((_flag getVariable ["ExileFlagStolen", 1]) isEqualTo 0) then
|
||||
{
|
||||
throw "Flag is not stolen!";
|
||||
};
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw "You do not exist!";
|
||||
};
|
||||
if !(alive _playerObject) then
|
||||
{
|
||||
throw "You are dead! Didn't you know that?";
|
||||
};
|
||||
if ((_playerObject distance2D _flag) > 4) then
|
||||
{
|
||||
throw "You are too far away.";
|
||||
};
|
||||
_buildRights = _flag getVariable ["ExileTerritoryBuildRights", []];
|
||||
_playerUID = getPlayerUID _playerObject;
|
||||
if !(_playerUID in _buildRights) then
|
||||
{
|
||||
throw "Missing build rights.";
|
||||
};
|
||||
_level = _flag getVariable ["ExileTerritoryLevel", 0];
|
||||
_itemClassName = format["Exile_Item_FlagStolen%1", _level];
|
||||
if !(_itemClassName in (magazines _playerObject)) then
|
||||
{
|
||||
throw format ["You need a level %1 flag.", _level];
|
||||
};
|
||||
_playerObject removeItem _itemClassName;
|
||||
_territoryDatabaseID = _flag getVariable ["ExileDatabaseID", 0];
|
||||
format["flagRestore:%1", _territoryDatabaseID] call ExileServer_system_database_query_fireAndForget;
|
||||
_flag setVariable ["ExileFlagStolen", 0, true];
|
||||
_flag setFlagOwner objNull;
|
||||
_flagTexture = _flag getVariable "ExileFlagTexture";
|
||||
_flag setFlagTexture _flagTexture;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
"extDB3" callExtension format ["1:TERRITORY:PLAYER ( %1 ) %2 RESTORED THE FLAG OF TERRITORY #%3", _playerUID, _playerObject, _territoryDatabaseID];
|
||||
};
|
||||
[_sessionID, "toastRequest", ["SuccessTitleAndText", ["Flag has been restored!", "You can now maintain and build on our territory again."]]] call ExileServer_system_network_send_to;
|
||||
_flag call ExileServer_system_xm8_sendFlagRestored;
|
||||
}
|
||||
catch
|
||||
{
|
||||
[_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to restore!", _exception]]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
true
|
@ -0,0 +1,72 @@
|
||||
/**
|
||||
* ExileServer_system_territory_network_territoryUpgradeRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_flag","_playerObject","_databaseID","_moderators","_level","_territoryConfig","_territoryLevels","_territoryPrice","_territoryRange","_playerMoney","_logging","_territoryLog"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_flag = _parameters select 0;
|
||||
try
|
||||
{
|
||||
if (isNull _flag) then
|
||||
{
|
||||
throw "Invalid flag object";
|
||||
};
|
||||
if ((_flag getVariable ["ExileFlagStolen", 0]) isEqualTo 1) then
|
||||
{
|
||||
throw "Flag is stolen!";
|
||||
};
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw "Player Object NULL";
|
||||
};
|
||||
_databaseID = _flag getVariable ["ExileDatabaseID",0];
|
||||
_moderators = _flag getVariable ["ExileTerritoryModerators",[]];
|
||||
if !((getPlayerUID _playerObject) in _moderators) then
|
||||
{
|
||||
throw "No upgrade Access!";
|
||||
};
|
||||
_level = _flag getVariable ["ExileTerritoryLevel",_level];
|
||||
_territoryConfig = getArray(missionConfigFile >> "CfgTerritories" >> "Prices");
|
||||
_territoryLevels = count _territoryConfig;
|
||||
if (_territoryLevels < (_level + 1)) then
|
||||
{
|
||||
throw "This territory has already the highest level.";
|
||||
};
|
||||
_territoryPrice = (_territoryConfig select _level) select 0;
|
||||
_territoryRange = (_territoryConfig select _level) select 1;
|
||||
_playerMoney = _playerObject getVariable ["ExileMoney",0];
|
||||
if (_playerMoney < _territoryPrice) then
|
||||
{
|
||||
throw "Not enough pop tabs!";
|
||||
};
|
||||
_playerMoney = _playerMoney - _territoryPrice;
|
||||
_playerObject setVariable ["ExileMoney", _playerMoney, true];
|
||||
format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
|
||||
_flag setVariable ["ExileTerritoryLevel",_level + 1, true];
|
||||
_flag setVariable ["ExileTerritorySize",_territoryRange, true];
|
||||
format ["setTerritoryLevel:%1:%2",_level + 1,_databaseID] call ExileServer_system_database_query_fireAndForget;
|
||||
format ["setTerritorySize:%1:%2",_territoryRange,_databaseID] call ExileServer_system_database_query_fireAndForget;
|
||||
_flag call ExileServer_system_territory_updateNearContainers;
|
||||
_flag call ExileServer_system_territory_updateNearConstructions;
|
||||
[_sessionID, "toastRequest", ["SuccessTitleAndText", ["Territory upgraded!", format ["Your territory has reached level %1 and now has a new radius of %2 meters.", _level + 1, _territoryRange]]]] call ExileServer_system_network_send_to;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_territoryLog = format ["PLAYER ( %1 ) %2 PAID %3 POP TABS TO UPGRADE TERRITORY #%4 TO LEVEL %5 | PLAYER TOTAL POP TABS: %6",getPlayerUID _playerObject,_playerObject,_territoryPrice,_databaseID,(_level + 1),_playerMoney];
|
||||
"extDB3" callExtension format["1:TERRITORY:%1",_territoryLog];
|
||||
};
|
||||
}
|
||||
catch
|
||||
{
|
||||
[_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to upgrade!", _exception]]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
true
|
@ -0,0 +1,82 @@
|
||||
/**
|
||||
* ExileServer_system_trading_network_purchaseItemRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_itemClassName","_quantity","_containerType","_containerNetID","_playerObject","_vehicleObject","_salesPrice","_playerMoney","_playerRespect","_quality","_requiredRespect","_logging","_traderLog","_responseCode"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_itemClassName = _parameters select 0;
|
||||
_quantity = _parameters select 1;
|
||||
_containerType = _parameters select 2;
|
||||
_containerNetID = _parameters select 3;
|
||||
try
|
||||
{
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (_playerObject getVariable ["ExileMutex",false]) then
|
||||
{
|
||||
throw 12;
|
||||
};
|
||||
_playerObject setVariable ["ExileMutex",true];
|
||||
_vehicleObject = objNull;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw 1;
|
||||
};
|
||||
if !(alive _playerObject) then
|
||||
{
|
||||
throw 2;
|
||||
};
|
||||
if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _itemClassName) ) then
|
||||
{
|
||||
throw 3;
|
||||
};
|
||||
_salesPrice = getNumber (missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "price");
|
||||
if (_salesPrice <= 0) then
|
||||
{
|
||||
throw 4;
|
||||
};
|
||||
_playerMoney = _playerObject getVariable ["ExileMoney", 0];
|
||||
if (_playerMoney < _salesPrice) then
|
||||
{
|
||||
throw 5;
|
||||
};
|
||||
_playerRespect = _playerObject getVariable ["ExileScore", 0];
|
||||
_quality = getNumber(missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "quality");
|
||||
_requiredRespect = getNumber(missionConfigFile >> "CfgTrading" >> "requiredRespect" >> format["Level%1",_quality]);
|
||||
if (_playerRespect < _requiredRespect) then
|
||||
{
|
||||
throw 14;
|
||||
};
|
||||
_playerMoney = _playerMoney - _salesPrice;
|
||||
_playerObject setVariable ["ExileMoney", _playerMoney, true];
|
||||
format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
|
||||
[_sessionID, "purchaseItemResponse", [0, _salesPrice, _itemClassName, 1, _containerType, _containerNetID]] call ExileServer_system_network_send_to;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_traderLog = format ["PLAYER: ( %1 ) %2 PURCHASED ITEM %3 FOR %4 POPTABS | PLAYER TOTAL MONEY: %5",getPlayerUID _playerObject,_playerObject,_itemClassName,_salesPrice,_playerMoney];
|
||||
"extDB3" callExtension format["1:TRADING:%1",_traderLog];
|
||||
};
|
||||
if !(_vehicleObject isEqualTo objNull) then
|
||||
{
|
||||
_vehicleObject call ExileServer_object_vehicle_database_update;
|
||||
}
|
||||
else
|
||||
{
|
||||
_playerObject call ExileServer_object_player_database_update;
|
||||
};
|
||||
}
|
||||
catch
|
||||
{
|
||||
_responseCode = _exception;
|
||||
[_sessionID, "purchaseItemResponse", [_responseCode, 0, "", 0, 0, ""]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
_playerObject setVariable ["ExileMutex",false];
|
||||
true
|
@ -0,0 +1,90 @@
|
||||
/**
|
||||
* ExileServer_system_trading_network_purchaseVehicleRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_vehicleClass","_pinCode","_playerObject","_salesPrice","_playerMoney","_position","_vehicleObject","_logging","_traderLog","_responseCode"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_vehicleClass = _parameters select 0;
|
||||
_pinCode = _parameters select 1;
|
||||
try
|
||||
{
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw 1;
|
||||
};
|
||||
if !(alive _playerObject) then
|
||||
{
|
||||
throw 2;
|
||||
};
|
||||
if (_playerObject getVariable ["ExileMutex",false]) then
|
||||
{
|
||||
throw 12;
|
||||
};
|
||||
_playerObject setVariable ["ExileMutex", true];
|
||||
if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _vehicleClass) ) then
|
||||
{
|
||||
throw 3;
|
||||
};
|
||||
_salesPrice = getNumber (missionConfigFile >> "CfgExileArsenal" >> _vehicleClass >> "price");
|
||||
if (_salesPrice <= 0) then
|
||||
{
|
||||
throw 4;
|
||||
};
|
||||
_playerMoney = _playerObject getVariable ["ExileMoney", 0];
|
||||
if (_playerMoney < _salesPrice) then
|
||||
{
|
||||
throw 5;
|
||||
};
|
||||
if !((count _pinCode) isEqualTo 4) then
|
||||
{
|
||||
throw 11;
|
||||
};
|
||||
if (_vehicleClass isKindOf "Ship") then
|
||||
{
|
||||
_position = [(getPosATL _playerObject), 100, 20] call ExileClient_util_world_findWaterPosition;
|
||||
_vehicleObject = [_vehicleClass, _position, (random 360), false, _pinCode] call ExileServer_object_vehicle_createPersistentVehicle;
|
||||
}
|
||||
else
|
||||
{
|
||||
_position = (getPos _playerObject) findEmptyPosition [10, 250, _vehicleClass];
|
||||
if (_position isEqualTo []) then
|
||||
{
|
||||
throw 13;
|
||||
};
|
||||
_vehicleObject = [_vehicleClass, _position, (random 360), true, _pinCode] call ExileServer_object_vehicle_createPersistentVehicle;
|
||||
};
|
||||
_vehicleObject setVariable ["ExileOwnerUID", (getPlayerUID _playerObject)];
|
||||
_vehicleObject setVariable ["ExileIsLocked",0];
|
||||
_vehicleObject lock 0;
|
||||
_vehicleObject call ExileServer_object_vehicle_database_insert;
|
||||
_vehicleObject call ExileServer_object_vehicle_database_update;
|
||||
_playerMoney = _playerMoney - _salesPrice;
|
||||
_playerObject setVariable ["ExileMoney", _playerMoney, true];
|
||||
format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
|
||||
[_sessionID, "purchaseVehicleResponse", [0, netId _vehicleObject, _salesPrice]] call ExileServer_system_network_send_to;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_traderLog = format ["PLAYER: ( %1 ) %2 PURCHASED VEHICLE %3 FOR %4 POPTABS | PLAYER TOTAL MONEY: %5",getPlayerUID _playerObject,_playerObject,_vehicleClass,_salesPrice,_playerMoney];
|
||||
"extDB3" callExtension format["1:TRADING:%1",_traderLog];
|
||||
};
|
||||
}
|
||||
catch
|
||||
{
|
||||
_responseCode = _exception;
|
||||
[_sessionID, "purchaseVehicleResponse", [_responseCode, "", 0]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
if !(isNull _playerObject) then
|
||||
{
|
||||
_playerObject setVariable ["ExileMutex", false];
|
||||
};
|
||||
true
|
@ -0,0 +1,93 @@
|
||||
/**
|
||||
* ExileServer_system_trading_network_purchaseVehicleSkinRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_vehicleNetID","_skinTextures","_playerObject","_vehicleObject","_vehicleParentClass","_salesPrice","_skinVariations","_availableSkinTexture","_playerMoney","_skinMaterials","_skinClassName","_vehicleID","_logging","_traderLog","_responseCode"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_vehicleNetID = _parameters select 0;
|
||||
_skinTextures = _parameters select 1;
|
||||
try
|
||||
{
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw 1;
|
||||
};
|
||||
if !(alive _playerObject) then
|
||||
{
|
||||
throw 2;
|
||||
};
|
||||
if(_playerObject getVariable ["ExileMutex",false]) then
|
||||
{
|
||||
throw 12;
|
||||
};
|
||||
_playerObject setVariable ["ExileMutex",true];
|
||||
_vehicleObject = objectFromNetId _vehicleNetID;
|
||||
if (isNull _vehicleObject) then
|
||||
{
|
||||
throw 6;
|
||||
};
|
||||
_vehicleParentClass = configName (inheritsFrom (configFile >> "CfgVehicles" >> (typeOf _vehicleObject)));
|
||||
if !(isClass (missionConfigFile >> "CfgVehicleCustoms" >> _vehicleParentClass) ) then
|
||||
{
|
||||
throw 7;
|
||||
};
|
||||
_salesPrice = -1;
|
||||
_skinVariations = getArray(missionConfigFile >> "CfgVehicleCustoms" >> _vehicleParentClass >> "skins");
|
||||
{
|
||||
_availableSkinTexture = _x select 3;
|
||||
if (_availableSkinTexture isEqualTo _skinTextures) exitWith
|
||||
{
|
||||
_salesPrice = _x select 1;
|
||||
};
|
||||
}
|
||||
forEach _skinVariations;
|
||||
if (_salesPrice <= 0) then
|
||||
{
|
||||
throw 4;
|
||||
};
|
||||
_playerMoney = _playerObject getVariable ["ExileMoney", 0];
|
||||
if (_playerMoney < _salesPrice) then
|
||||
{
|
||||
throw 5;
|
||||
};
|
||||
_skinMaterials = getArray(configFile >> "CfgVehicles" >> _skinClassName >> "hiddenSelectionsMaterials");
|
||||
{
|
||||
_vehicleObject setObjectTextureGlobal [_forEachIndex, _skinTextures select _forEachIndex];
|
||||
}
|
||||
forEach _skinTextures;
|
||||
{
|
||||
_vehicleObject setObjectMaterial [_forEachIndex, _x];
|
||||
}
|
||||
forEach _skinMaterials;
|
||||
_vehicleID = _vehicleObject getVariable ["ExileDatabaseID", -1];
|
||||
format["updateVehicleSkin:%1:%2", _skinTextures, _vehicleID] call ExileServer_system_database_query_fireAndForget;
|
||||
_playerMoney = _playerMoney - _salesPrice;
|
||||
_playerObject setVariable ["ExileMoney", _playerMoney, true];
|
||||
format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
|
||||
[_sessionID, "purchaseVehicleSkinResponse", [0, _salesPrice]] call ExileServer_system_network_send_to;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_traderLog = format ["PLAYER: ( %1 ) %2 PURCHASED VEHICLE SKIN %3 (%4) FOR %5 POPTABS | PLAYER TOTAL MONEY: %6",getPlayerUID _playerObject,_playerObject,_skinTextures,_vehicleParentClass,_salesPrice,_playerMoney];
|
||||
"extDB3" callExtension format["1:TRADING:%1",_traderLog];
|
||||
};
|
||||
}
|
||||
catch
|
||||
{
|
||||
_responseCode = _exception;
|
||||
[_sessionID, "purchaseVehicleSkinResponse", [_responseCode, 0]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
if !(isNull _playerObject) then
|
||||
{
|
||||
_playerObject setVariable ["ExileMutex", false];
|
||||
};
|
||||
true
|
@ -0,0 +1,133 @@
|
||||
/**
|
||||
* ExileServer_system_trading_network_sellItemRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_itemClassName","_quantity","_containerType","_containerNetID","_playerObject","_vehicleObject","_sellPrice","_playerMoney","_noRespectItems","_playerRespect","_respectGain","_logging","_playerMoneyString","_traderLog","_responseCode"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_itemClassName = _parameters select 0;
|
||||
_quantity = _parameters select 1;
|
||||
_containerType = _parameters select 2;
|
||||
_containerNetID = _parameters select 3;
|
||||
try
|
||||
{
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw 1;
|
||||
};
|
||||
if !(alive _playerObject) then
|
||||
{
|
||||
throw 2;
|
||||
};
|
||||
if(_playerObject getVariable ["ExileMutex",false]) then
|
||||
{
|
||||
throw 12;
|
||||
};
|
||||
_playerObject setVariable ["ExileMutex",true];
|
||||
_vehicleObject = objNull;
|
||||
if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _itemClassName) ) then
|
||||
{
|
||||
throw 3;
|
||||
};
|
||||
_sellPrice = _itemClassName call ExileClient_util_gear_calculateSellPrice;
|
||||
if (_containerType isEqualTo 1) then
|
||||
{
|
||||
if (_itemClassName isEqualTo (primaryWeapon _playerObject)) then
|
||||
{
|
||||
{
|
||||
{
|
||||
if !(_x isEqualTo "") then
|
||||
{
|
||||
_sellPrice = _sellPrice + (_x call ExileClient_util_gear_calculateSellPrice);
|
||||
};
|
||||
}
|
||||
forEach _x;
|
||||
}
|
||||
forEach
|
||||
[
|
||||
primaryWeaponItems _playerObject,
|
||||
primaryWeaponMagazine _playerObject
|
||||
];
|
||||
};
|
||||
if (_itemClassName isEqualTo (handgunWeapon _playerObject)) then
|
||||
{
|
||||
{
|
||||
{
|
||||
if !(_x isEqualTo "") then
|
||||
{
|
||||
_sellPrice = _sellPrice + (_x call ExileClient_util_gear_calculateSellPrice);
|
||||
};
|
||||
}
|
||||
forEach _x;
|
||||
}
|
||||
forEach
|
||||
[
|
||||
handgunItems _playerObject,
|
||||
handgunMagazine _playerObject
|
||||
];
|
||||
};
|
||||
};
|
||||
if (_sellPrice <= 0) then
|
||||
{
|
||||
throw 4;
|
||||
};
|
||||
_playerMoney = _playerObject getVariable ["ExileMoney", 0];
|
||||
_playerMoney = _playerMoney + _sellPrice;
|
||||
_playerObject setVariable ["ExileMoney", _playerMoney, true];
|
||||
format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
|
||||
_noRespectItems =
|
||||
[
|
||||
"Exile_Item_FlagStolen1",
|
||||
"Exile_Item_FlagStolen2",
|
||||
"Exile_Item_FlagStolen3",
|
||||
"Exile_Item_FlagStolen4",
|
||||
"Exile_Item_FlagStolen5",
|
||||
"Exile_Item_FlagStolen6",
|
||||
"Exile_Item_FlagStolen7",
|
||||
"Exile_Item_FlagStolen8",
|
||||
"Exile_Item_FlagStolen9",
|
||||
"Exile_Item_FlagStolen10"
|
||||
];
|
||||
_playerRespect = _playerObject getVariable ["ExileScore", 0];
|
||||
if !(_itemClassName in _noRespectItems) then
|
||||
{
|
||||
_respectGain = _sellPrice * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor");
|
||||
_playerRespect = floor (_playerRespect + _respectGain);
|
||||
_playerObject setVariable ["ExileScore", _playerRespect];
|
||||
format["setAccountScore:%1:%2", _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
|
||||
};
|
||||
[_sessionID, "sellItemResponse", [0, _sellPrice, _itemClassName, 1, _containerType, _containerNetID, str _playerRespect]] call ExileServer_system_network_send_to;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_playerMoneyString = _playerMoney call ExileClient_util_string_exponentToString;
|
||||
_traderLog = format ["PLAYER: ( %1 ) %2 SOLD ITEM %3 FOR %4 POPTABS AND %5 RESPECT | PLAYER TOTAL MONEY: %6",getPlayerUID _playerObject,_playerObject,_itemClassName,_sellPrice,_respectGain,_playerMoneyString];
|
||||
"extDB3" callExtension format["1:TRADING:%1",_traderLog];
|
||||
};
|
||||
if !(_vehicleObject isEqualTo objNull) then
|
||||
{
|
||||
_vehicleObject call ExileServer_object_vehicle_database_update;
|
||||
}
|
||||
else
|
||||
{
|
||||
_playerObject call ExileServer_object_player_database_update;
|
||||
};
|
||||
}
|
||||
catch
|
||||
{
|
||||
_responseCode = _exception;
|
||||
[_sessionID, "sellItemResponse", [_responseCode, 0, "", 0, 0, "", ""]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
if !(isNull _playerObject) then
|
||||
{
|
||||
_playerObject setVariable ["ExileMutex", false];
|
||||
};
|
||||
true
|
@ -0,0 +1,85 @@
|
||||
/**
|
||||
* ExileServer_system_trading_network_wasteDumpRequest
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_sessionID","_parameters","_vehicleNetID","_mode","_vehicleObject","_vehicleDBID","_playerObject","_cargo","_revenue","_playerMoney","_respectGain","_playerRespect","_logging","_traderLog","_responseCode"];
|
||||
_sessionID = _this select 0;
|
||||
_parameters = _this select 1;
|
||||
_vehicleNetID = _parameters select 0;
|
||||
_mode = _parameters select 1;
|
||||
try
|
||||
{
|
||||
_vehicleObject = objectFromNetId _vehicleNetID;
|
||||
_vehicleDBID = _vehicleObject getVariable "ExileDatabaseID";
|
||||
if (isNull _vehicleObject) then
|
||||
{
|
||||
throw 6;
|
||||
};
|
||||
if (_vehicleObject getVariable ["ExileMutex", false]) then
|
||||
{
|
||||
throw 12;
|
||||
};
|
||||
_vehicleObject setVariable ["ExileMutex", true];
|
||||
_playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
|
||||
if (isNull _playerObject) then
|
||||
{
|
||||
throw 1;
|
||||
};
|
||||
if !(alive _playerObject) then
|
||||
{
|
||||
throw 2;
|
||||
};
|
||||
if !((owner _vehicleObject) isEqualTo (owner _playerObject)) then
|
||||
{
|
||||
throw 6;
|
||||
};
|
||||
_cargo = _vehicleObject call ExileClient_util_containerCargo_list;
|
||||
_revenue = _cargo call ExileClient_util_gear_calculateTotalSellPrice;
|
||||
clearBackpackCargoGlobal _vehicleObject;
|
||||
clearItemCargoGlobal _vehicleObject;
|
||||
clearMagazineCargoGlobal _vehicleObject;
|
||||
clearWeaponCargoGlobal _vehicleObject;
|
||||
if (_mode isEqualTo 2) then
|
||||
{
|
||||
_revenue = _revenue + ([(typeOf _vehicleObject)] call ExileClient_util_gear_calculateTotalSellPrice);
|
||||
_vehicleObject call ExileServer_object_vehicle_remove;
|
||||
deleteVehicle _vehicleObject;
|
||||
}
|
||||
else
|
||||
{
|
||||
_vehicleObject call ExileServer_object_vehicle_database_update;
|
||||
};
|
||||
_playerMoney = _playerObject getVariable ["ExileMoney", 0];
|
||||
_playerMoney = _playerMoney + _revenue;
|
||||
_playerObject setVariable ["ExileMoney", _playerMoney, true];
|
||||
format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
|
||||
_respectGain = _revenue * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor");
|
||||
_playerRespect = _playerObject getVariable ["ExileScore", 0];
|
||||
_playerRespect = floor (_playerRespect + _respectGain);
|
||||
_playerObject setVariable ["ExileScore", _playerRespect];
|
||||
format["setAccountScore:%1:%2", _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
|
||||
[_sessionID, "wasteDumpResponse", [0, _revenue, str _playerRespect]] call ExileServer_system_network_send_to;
|
||||
_logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
|
||||
if (_logging isEqualTo 1) then
|
||||
{
|
||||
_traderLog = format ["PLAYER: ( %1 ) %2 SOLD ITEM: %3 (ID# %4) with Cargo %5 FOR %6 POPTABS AND %7 RESPECT | PLAYER TOTAL MONEY: %8",getPlayerUID _playerObject,_playerObject,typeOf _vehicleObject,_vehicleDBID,_cargo,_revenue,_respectGain,_playerMoney];
|
||||
"extDB3" callExtension format["1:TRADING:%1",_traderLog];
|
||||
};
|
||||
}
|
||||
catch
|
||||
{
|
||||
_responseCode = _exception;
|
||||
[_sessionID, "wasteDumpResponse", [_responseCode, 0, ""]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
if (!isNull _vehicleObject) then
|
||||
{
|
||||
_vehicleObject setVariable ["ExileMutex", false];
|
||||
};
|
||||
true
|
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* ExileServer_util_time_addTime
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_time1","_time2"];
|
||||
_time1 = _this select 0;
|
||||
_time2 = _this select 1;
|
||||
(parseSimpleArray ("extDB3" callExtension format ["9:TIMEDIFF:MINUTES:%1:%2",_time1,_time2])) select 1
|
@ -0,0 +1,12 @@
|
||||
/**
|
||||
* ExileServer_util_time_currentTime
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
(parseSimpleArray ("extDB3" callExtension "9:LOCAL_TIME")) select 1
|
@ -0,0 +1,12 @@
|
||||
/**
|
||||
* ExileServer_util_time_uptime
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
(parseNumber ("extDB3" callExtension "9:UPTIME:MINUTES"))
|
@ -0,0 +1,22 @@
|
||||
/**
|
||||
* ExileServer_world_initialize
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
enableDynamicSimulationSystem true;
|
||||
"Initializing game world..." call ExileServer_util_log;
|
||||
call ExileServer_World_loadAllClans;
|
||||
call ExileServer_World_loadAllTerritories;
|
||||
call ExileServer_world_loadAllDatabaseConstructions;
|
||||
call ExileServer_world_loadAllDatabaseVehicles;
|
||||
call ExileServer_world_loadAllDatabaseContainers;
|
||||
call ExileServer_system_xm8_sendProtectionMoneyDue;
|
||||
call ExileServer_world_spawnSpawnZoneVehicles;
|
||||
call ExileServer_world_spawnVehicles;
|
||||
"Game world initialized! Let the fun begin!" call ExileServer_util_log;
|
||||
true
|
6328
ExileServers/ExileAltis/mpmissions/Exile.Altis/config.cpp
Normal file
6328
ExileServers/ExileAltis/mpmissions/Exile.Altis/config.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,87 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Server Settings - Modify at will
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
author = "Exile Mod Team";
|
||||
onLoadName = "Exile Mod";
|
||||
onLoadMission= "www.exilemod.com";
|
||||
loadScreen = "exile_assets\texture\mod\logo.paa";
|
||||
disableChannels[] = {0, 2};
|
||||
OnLoadIntro = "";
|
||||
OnLoadIntroTime = false;
|
||||
OnLoadMissionTime = false;
|
||||
|
||||
class Header
|
||||
{
|
||||
gameType = Survive; // Do NOT change this
|
||||
minPlayers = 1;
|
||||
maxPlayers = 100;
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Exile Settings - Do not change these!
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
forceRotorLibSimulation = 2;
|
||||
skipLobby = 1;
|
||||
joinUnassigned = 1;
|
||||
respawn = "BASE";
|
||||
respawnDelay = 120;
|
||||
respawnDialog = 0;
|
||||
respawnOnStart = 0;
|
||||
respawnButton = 1;
|
||||
respawnTemplates[] = {"Exile"};
|
||||
corpseManagerMode = 0;
|
||||
corpseLimit = 20;
|
||||
corpseRemovalMinTime = 1800;
|
||||
corpseRemovalMaxTime = 3600;
|
||||
wreckManagerMode = 0;
|
||||
wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
scriptedPlayer = 1;
|
||||
disabledAI = 1;
|
||||
enableItemsDropping = 0;
|
||||
briefing = 0;
|
||||
debriefing = 0;
|
||||
allowFunctionsLog = 1;
|
||||
enableDebugConsole = 0;
|
||||
allowFunctionsRecompile = 0;
|
||||
showSquadRadar = 0;
|
||||
showUAVFeed = 0;
|
||||
reviveDelay = 6;
|
||||
reviveForceRespawnDelay = 3;
|
||||
reviveBleedOutDelay = 120;
|
||||
|
||||
showHUD[] =
|
||||
{
|
||||
true, // Scripted HUD (same as showHUD command)
|
||||
true, // Vehicle + soldier info
|
||||
true, // Vehicle radar
|
||||
true, // Vehicle compass
|
||||
true, // Tank direction indicator
|
||||
false, // Commanding menu
|
||||
false, // Group Bar
|
||||
true, // HUD Weapon Cursors
|
||||
false // Squad Radar
|
||||
};
|
||||
|
||||
#include "config.cpp"
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
|
||||
class ExileServer_system_network_dispatchIncomingMessage
|
||||
{
|
||||
allowedTargets = 2;
|
||||
};
|
||||
};
|
||||
|
||||
class Commands
|
||||
{
|
||||
mode = 0;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
@ -0,0 +1,508 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Static Objects
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Taken away for now
|
||||
//#include "initServer.sqf"
|
||||
|
||||
if (!hasInterface || isServer) exitWith {};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Hardware Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_workBench = "Land_Workbench_01_F" createVehicleLocal [0,0,0];
|
||||
_workBench setDir 45.4546;
|
||||
_workBench setPosATL [14587.8, 16758.7, 0.0938587];
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Hardware",
|
||||
"Exile_Trader_Hardware",
|
||||
"WhiteHead_17",
|
||||
["InBaseMoves_sitHighUp1"],
|
||||
[0, 0, -0.5],
|
||||
170,
|
||||
_workBench
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Fast Food Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_cashDesk = "Land_CashDesk_F" createVehicleLocal [0,0,0];
|
||||
_cashDesk setDir 131.818;
|
||||
_cashDesk setPosATL [14589.8, 16778.2, -0.0701294];
|
||||
|
||||
_microwave = "Land_Microwave_01_F" createVehicleLocal [0,0,0];
|
||||
_cashDesk disableCollisionWith _microwave;
|
||||
_microwave disableCollisionWith _cashDesk;
|
||||
_microwave attachTo [_cashDesk, [-0.6, 0.2, 1.1]];
|
||||
|
||||
_ketchup = "Land_Ketchup_01_F" createVehicleLocal [0,0,0];
|
||||
_cashDesk disableCollisionWith _ketchup;
|
||||
_ketchup disableCollisionWith _cashDesk;
|
||||
_ketchup attachTo [_cashDesk, [-0.6, 0, 1.1]];
|
||||
|
||||
_mustard = "Land_Mustard_01_F" createVehicleLocal [0,0,0];
|
||||
_cashDesk disableCollisionWith _mustard;
|
||||
_mustard disableCollisionWith _cashDesk;
|
||||
_mustard attachTo [_cashDesk, [-0.5, -0.05, 1.1]];
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Food",
|
||||
"Exile_Trader_Food",
|
||||
"GreekHead_A3_01",
|
||||
["InBaseMoves_table1"],
|
||||
[0.1, 0.5, 0.2],
|
||||
170,
|
||||
_cashDesk
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Armory Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_chair = "Land_CampingChair_V2_F" createVehicleLocal [0,0,0];
|
||||
_chair setDir 208.182;
|
||||
_chair setPosATL [14568.1, 16764.3, 0.084837];
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Armory",
|
||||
"Exile_Trader_Armory",
|
||||
"PersianHead_A3_02",
|
||||
["InBaseMoves_SittingRifle1"],
|
||||
[0, -0.15, -0.45],
|
||||
180,
|
||||
_chair
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Equipment Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Equipment",
|
||||
"Exile_Trader_Equipment",
|
||||
"WhiteHead_19",
|
||||
["InBaseMoves_Lean1"],
|
||||
[14571.5, 16759.1, 0.126438],
|
||||
0
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Specops Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_SpecialOperations",
|
||||
"Exile_Trader_SpecialOperations",
|
||||
"AfricanHead_02",
|
||||
["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"],
|
||||
[14566.3, 16773.2, 0.126438],
|
||||
140
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Office Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Office",
|
||||
"Exile_Trader_Office",
|
||||
"GreekHead_A3_04",
|
||||
["HubBriefing_scratch", "HubBriefing_stretch", "HubBriefing_think", "HubBriefing_lookAround1", "HubBriefing_lookAround2"],
|
||||
[14599.6, 16774.6, 5.12644],
|
||||
220
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Waste Dump Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_WasteDump",
|
||||
"Exile_Trader_WasteDump",
|
||||
"GreekHead_A3_01",
|
||||
["HubStandingUA_move1", "HubStandingUA_move2", "HubStandingUA_idle1", "HubStandingUA_idle2", "HubStandingUA_idle3"],
|
||||
[14608.4, 16901.3, 0],
|
||||
270
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Aircraft Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Aircraft",
|
||||
"Exile_Trader_Aircraft",
|
||||
"WhiteHead_17",
|
||||
["LHD_krajPaluby"],
|
||||
[14596.5, 16752.9, 0.12644],
|
||||
133
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Aircraft Customs Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_AircraftCustoms",
|
||||
"Exile_Trader_AircraftCustoms",
|
||||
"GreekHead_A3_07",
|
||||
["HubStandingUC_idle1", "HubStandingUC_idle2", "HubStandingUC_idle3", "HubStandingUC_move1", "HubStandingUC_move2"],
|
||||
[14635, 16790.3, 0],
|
||||
156.294
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Vehicle Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Vehicle",
|
||||
"Exile_Trader_Vehicle",
|
||||
"WhiteHead_11",
|
||||
["InBaseMoves_repairVehicleKnl", "InBaseMoves_repairVehiclePne"],
|
||||
[14603.7, 16877.3, 0.00143433],
|
||||
90
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_carWreck = "Land_Wreck_CarDismantled_F" createVehicleLocal [0,0,0];
|
||||
_carWreck setDir 355.455;
|
||||
_carWreck setPosATL [14605.6, 16877.3, 0.0208359];
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Vehicle Customs Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_VehicleCustoms",
|
||||
"Exile_Trader_VehicleCustoms",
|
||||
"WhiteHead_11",
|
||||
["AidlPercMstpSnonWnonDnon_G01", "AidlPercMstpSnonWnonDnon_G02", "AidlPercMstpSnonWnonDnon_G03", "AidlPercMstpSnonWnonDnon_G04", "AidlPercMstpSnonWnonDnon_G05", "AidlPercMstpSnonWnonDnon_G06"],
|
||||
[14617.2, 16888.4, 0],
|
||||
269.96
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Guard 01
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Guard_01",
|
||||
"",
|
||||
"WhiteHead_17",
|
||||
["InBaseMoves_patrolling1"],
|
||||
[14564.9,16923.4,0.00146294],
|
||||
323.53
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Guard 02
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Guard_02",
|
||||
"",
|
||||
"WhiteHead_03",
|
||||
["InBaseMoves_patrolling2"],
|
||||
[14626.3,16834.6,4.72644],
|
||||
326.455
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Guard 03
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Guard_03",
|
||||
"",
|
||||
"AfricanHead_03",
|
||||
["InBaseMoves_patrolling1"],
|
||||
[14577.1,16793.1,3.75118],
|
||||
313.349
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Western Guard 01
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Guard_02",
|
||||
"",
|
||||
"WhiteHead_03",
|
||||
["InBaseMoves_patrolling2"],
|
||||
[2950.52,18195.3,4.93399],
|
||||
179.092
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Western Boat Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Boat",
|
||||
"Exile_Trader_Boat",
|
||||
"WhiteHead_17",
|
||||
["AidlPercMstpSnonWnonDnon_G01", "AidlPercMstpSnonWnonDnon_G02", "AidlPercMstpSnonWnonDnon_G03", "AidlPercMstpSnonWnonDnon_G04", "AidlPercMstpSnonWnonDnon_G05", "AidlPercMstpSnonWnonDnon_G06"],
|
||||
[2914.35,18192.9,8.51858],
|
||||
88.3346
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Western Vehicle Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Vehicle",
|
||||
"Exile_Trader_Vehicle",
|
||||
"WhiteHead_11",
|
||||
["InBaseMoves_repairVehicleKnl", "InBaseMoves_repairVehiclePne"],
|
||||
[2980.19,18146.2,1.06391],
|
||||
222.352
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_carWreck = "Land_Wreck_CarDismantled_F" createVehicleLocal [0,0,0];
|
||||
_carWreck setDir 130.966;
|
||||
_carWreck setPosATL [2978.76,18144.5,1.13293];
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Western Waste Dump Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_WasteDump",
|
||||
"Exile_Trader_WasteDump",
|
||||
"GreekHead_A3_01",
|
||||
["HubStandingUA_move1", "HubStandingUA_move2", "HubStandingUA_idle1", "HubStandingUA_idle2", "HubStandingUA_idle3"],
|
||||
[2984.05,18133.4,0.00107765],
|
||||
29.3856
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Western Fast Food Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Food",
|
||||
"Exile_Trader_Food",
|
||||
"GreekHead_A3_01",
|
||||
["AidlPercMstpSnonWnonDnon_G01", "AidlPercMstpSnonWnonDnon_G02", "AidlPercMstpSnonWnonDnon_G03", "AidlPercMstpSnonWnonDnon_G04", "AidlPercMstpSnonWnonDnon_G05", "AidlPercMstpSnonWnonDnon_G06"],
|
||||
[2979.87,18184.9,2.55185],
|
||||
89.2952
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Western Equipment Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Equipment",
|
||||
"Exile_Trader_Equipment",
|
||||
"WhiteHead_19",
|
||||
["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"],
|
||||
[2980.7,18192.9,2.49853],
|
||||
130.535
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Western Armory Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Armory",
|
||||
"Exile_Trader_Armory",
|
||||
"PersianHead_A3_02",
|
||||
["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"],
|
||||
[2986.43,18178.5,1.66267],
|
||||
296.855
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Western Guard 02
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Guard_03",
|
||||
"",
|
||||
"AfricanHead_03",
|
||||
["InBaseMoves_patrolling1"],
|
||||
[2993.2,18167,0.353821],
|
||||
109.888
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Eastern Fast Food Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_cashDesk = "Land_CashDesk_F" createVehicleLocal [0,0,0];
|
||||
_cashDesk setDir 222.727;
|
||||
_cashDesk setPosATL [23353.1, 24168, 0.16585];
|
||||
|
||||
_microwave = "Land_Microwave_01_F" createVehicleLocal [0,0,0];
|
||||
_cashDesk disableCollisionWith _microwave;
|
||||
_microwave disableCollisionWith _cashDesk;
|
||||
_microwave attachTo [_cashDesk, [-0.6, 0.2, 1.1]];
|
||||
|
||||
_ketchup = "Land_Ketchup_01_F" createVehicleLocal [0,0,0];
|
||||
_cashDesk disableCollisionWith _ketchup;
|
||||
_ketchup disableCollisionWith _cashDesk;
|
||||
_ketchup attachTo [_cashDesk, [-0.6, 0, 1.1]];
|
||||
|
||||
_mustard = "Land_Mustard_01_F" createVehicleLocal [0,0,0];
|
||||
_cashDesk disableCollisionWith _mustard;
|
||||
_mustard disableCollisionWith _cashDesk;
|
||||
_mustard attachTo [_cashDesk, [-0.5, -0.05, 1.1]];
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Food",
|
||||
"Exile_Trader_Food",
|
||||
"GreekHead_A3_01",
|
||||
["InBaseMoves_table1"],
|
||||
[0.1, 0.5, 0.2],
|
||||
170,
|
||||
_cashDesk
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Eastern Boat Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Boat",
|
||||
"Exile_Trader_Boat",
|
||||
"WhiteHead_17",
|
||||
["AidlPercMstpSnonWnonDnon_G01", "AidlPercMstpSnonWnonDnon_G02", "AidlPercMstpSnonWnonDnon_G03", "AidlPercMstpSnonWnonDnon_G04", "AidlPercMstpSnonWnonDnon_G05", "AidlPercMstpSnonWnonDnon_G06"],
|
||||
[23296.6,24189.8,5.61213],
|
||||
96
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Eastern Vehicle Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Vehicle",
|
||||
"Exile_Trader_Vehicle",
|
||||
"WhiteHead_11",
|
||||
["InBaseMoves_repairVehicleKnl", "InBaseMoves_repairVehiclePne"],
|
||||
[23385.6,24191.6,0.00136566],
|
||||
123
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_carWreck = "Land_Wreck_CarDismantled_F" createVehicleLocal [0,0,0];
|
||||
_carWreck setDir 47.2728;
|
||||
_carWreck setPosATL [23387.3, 24190.3, 0.05];
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Eastern Hardware Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_workBench = "Land_Workbench_01_F" createVehicleLocal [0,0,0];
|
||||
_workBench setDir 279.545;
|
||||
_workBench setPosATL [23371.6, 24188, 0.89873];
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Hardware",
|
||||
"Exile_Trader_Hardware",
|
||||
"WhiteHead_17",
|
||||
["InBaseMoves_sitHighUp1"],
|
||||
[0, 0, -0.5],
|
||||
170,
|
||||
_workBench
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Eastern Equipment Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Equipment",
|
||||
"Exile_Trader_Equipment",
|
||||
"WhiteHead_19",
|
||||
["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"],
|
||||
[23379.9, 24169.3, 0.199955],
|
||||
206
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Eastern Armory Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_chair = "Land_CampingChair_V2_F" createVehicleLocal [0,0,0];
|
||||
_chair setDir 12.7272;
|
||||
_chair setPosATL [23379.6, 24169.3, 4.56662];
|
||||
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_Armory",
|
||||
"Exile_Trader_Armory",
|
||||
"PersianHead_A3_02",
|
||||
["InBaseMoves_SittingRifle1"],
|
||||
[0, -0.15, -0.45],
|
||||
180,
|
||||
_chair
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Eastern Waste Dump Trader
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
_trader =
|
||||
[
|
||||
"Exile_Trader_WasteDump",
|
||||
"Exile_Trader_WasteDump",
|
||||
"GreekHead_A3_01",
|
||||
["HubStandingUA_move1", "HubStandingUA_move2", "HubStandingUA_idle1", "HubStandingUA_idle2", "HubStandingUA_idle3"],
|
||||
[23336.6,24214.4,0.00115061],
|
||||
346
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Russian Roulette
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
[
|
||||
"Exile_Trader_RussianRoulette",
|
||||
"",
|
||||
"GreekHead_A3_01",
|
||||
["HubStandingUA_move1", "HubStandingUA_move2", "HubStandingUA_idle1", "HubStandingUA_idle2", "HubStandingUA_idle3"],
|
||||
[14622.6, 16820.1, 0.126],
|
||||
187.428
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
442
ExileServers/ExileAltis/mpmissions/Exile.Altis/initServer.sqf
Normal file
442
ExileServers/ExileAltis/mpmissions/Exile.Altis/initServer.sqf
Normal file
@ -0,0 +1,442 @@
|
||||
private _objects =
|
||||
[
|
||||
["Land_CarService_F", [14618.7,16877.4,18.7724], [[0.750538,-0.660827,0],[0,0,1]], [false, false]],
|
||||
["Land_cargo_addon02_V2_F", [14563.7,16776.6,19.4699], [[0.723738,-0.690074,0],[0,0,1]], [false, false]],
|
||||
["Land_cargo_addon02_V1_F", [14619.2,16831.5,19.1926], [[-0.707107,0.707107,0],[0,0,1]], [false, false]],
|
||||
["Land_ScrapHeap_1_F", [14630.3,16882.7,17.7946], [[-8.74228e-008,-1,0],[0,0,1]], [false, false]],
|
||||
["Land_ScrapHeap_2_F", [14616,16869,18.1088], [[0.978803,-0.204804,0],[0,0,1]], [false, false]],
|
||||
["Land_PaperBox_open_full_F", [14569.5,16763.1,17.91], [[0.29692,0.954902,0],[0,0,1]], [false, false]],
|
||||
["Land_PaperBox_open_empty_F", [14563.8,16770.5,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_PaperBox_closed_F", [14563.1,16768.8,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Basket_F", [14583.6,16778.2,17.9318], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Cages_F", [14573.2,16797.4,17.9346], [[-0.73996,-0.672651,0],[0,0,1]], [false, false]],
|
||||
["Land_CratesPlastic_F", [14588.4,16777.7,17.9915], [[0.0713395,0.997452,0],[0,0,1]], [false, false]],
|
||||
["Land_CratesShabby_F", [14587.2,16789,17.9782], [[-0.701482,-0.712687,0],[0,0,1]], [false, false]],
|
||||
["Land_CratesWooden_F", [14575.3,16773.2,17.9774], [[0.67851,0.734591,0],[0,0,1]], [false, false]],
|
||||
["Land_Sack_F", [14583.1,16777.7,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Sacks_goods_F", [14592.5,16779.1,17.91], [[-0.458231,0.888833,0],[0,0,1]], [false, false]],
|
||||
["Land_Sacks_heap_F", [14590.7,16784.9,17.9559], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_StallWater_F", [14640.4,16843,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["CargoNet_01_barrels_F", [14589.9,16759.6,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Pallet_F", [14594.3,16763.7,18.004], [[-0.96384,0.266481,0],[0,0,1]], [false, false]],
|
||||
["Land_Pallet_vertical_F", [14581.9,16765.9,17.91], [[0.712694,0.701475,0],[0,0,1]], [false, false]],
|
||||
["Land_Pallets_F", [14580.6,16768.9,17.9838], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Pallets_stack_F", [14581.7,16767.2,17.91], [[0.228042,0.973651,0],[0,0,1]], [false, false]],
|
||||
["Land_ToolTrolley_02_F", [14586.3,16760.1,17.9957], [[-0.5865,0.80995,0],[0,0,1]], [false, false]],
|
||||
["Land_WeldingTrolley_01_F", [14587.8,16755.4,17.9847], [[-0.5,0.866025,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_Big_F", [14581.9,16798.9,16.348], [[-0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_Big_F", [14608,16825.5,16.3968], [[-0.506846,-0.862036,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_Big_F", [14615.5,16772.5,17.91], [[0.7127,-0.701469,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_Big_F", [14584.1,16880.5,17.8064], [[0.745264,0.666769,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_Big_F", [14583.7,16745.7,17.8094], [[0.712694,0.701475,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_Big_F", [14625.5,16880.5,17.8933], [[0.666768,0.745265,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_3_F", [14574.1,16796.2,17.7873], [[-0.624384,0.781117,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_3_F", [14601.2,16825.7,17.3493], [[-0.684318,0.729184,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_5_F", [14647.4,16807.7,17.9078], [[-0.936953,-0.349455,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_Big_F", [14570.6,16788,16.327], [[0.899488,0.436945,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_Big_F", [14601.1,16818.8,16.4033], [[0.931287,0.364287,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Aircraft", [14593.7,16753.7,17.8762], [[-0.690074,-0.723738,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Armory", [14567,16763.8,17.91], [[-0.690074,-0.723738,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Equipment", [14573.4,16758.3,17.8331], [[-0.0475771,-0.998868,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Food", [14591.4,16777.4,17.91], [[0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_SpecialOperations", [14565.6,16774,17.6937], [[-0.750526,0.660841,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Hardware", [14588.9,16756.8,17.8212], [[0.984808,-0.173646,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Vehicles", [14610.1,16872.5,18.1622], [[0.745267,-0.666767,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingTable_F", [14567.6,16766.2,17.91], [[0.0554972,0.998459,0],[0,0,1]], [false, false]],
|
||||
["Land_Icebox_F", [14589.6,16776.7,17.91], [[0.660837,0.75053,0],[0,0,1]], [false, false]],
|
||||
["Land_Metal_rack_Tall_F", [14575.7,16759.5,17.9909], [[0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Land_Metal_rack_F", [14564.1,16772.7,17.9716], [[-0.766044,0.642788,0],[0,0,1]], [false, false]],
|
||||
["Fridge_01_closed_F", [14588.9,16775,17.9246], [[0.718236,-0.6958,0],[0,0,1]], [false, false]],
|
||||
["Land_WaterCooler_01_new_F", [14584,16777.7,17.91], [[-0.66084,-0.750526,0],[0,0,1]], [false, false]],
|
||||
["MapBoard_altis_F", [14569.3,16776.3,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_WoodenTable_large_F", [14567.5,16775.3,17.9819], [[-0.750538,-0.660827,0],[0,0,1]], [false, false]],
|
||||
["Land_ShelvesMetal_F", [14593.7,16780.7,17.91], [[0.701469,-0.7127,0],[0,0,1]], [false, false]],
|
||||
["Land_ShelvesMetal_F", [14592.3,16782.2,17.91], [[0.701469,-0.7127,0],[0,0,1]], [false, false]],
|
||||
["Land_Pallet_MilBoxes_F", [14565.7,16767.3,17.91], [[0.605613,-0.795759,0],[0,0,1]], [false, false]],
|
||||
["Land_OfficeChair_01_F", [14598.3,16776.1,22.9791], [[0.266473,0.963842,0],[0,0,1]], [false, false]],
|
||||
["Land_OfficeCabinet_01_F", [14600.3,16776.2,22.9749], [[0.660835,0.750531,0],[0,0,1]], [false, false]],
|
||||
["OfficeTable_01_new_F", [14597.7,16775.2,22.9468], [[-0.678506,-0.734595,0],[0,0,1]], [false, false]],
|
||||
["MapBoard_seismic_F", [14602.1,16773.7,23.005], [[0.980397,0.197035,0],[0,0,1]], [false, false]],
|
||||
["Land_Document_01_F", [14597.9,16775,23.8386], [[-0.755751,-0.654859,0],[0,0,1]], [false, false]],
|
||||
["Land_FlatTV_01_F", [14594,16774,23.9797], [[-0.678506,0.734595,0],[0,0,1]], [false, false]],
|
||||
["Land_GamingSet_01_controller_F", [14594.1,16773.7,23.9649], [[-0.857984,0.513676,0],[0,0,1]], [false, false]],
|
||||
["Land_GamingSet_01_console_F", [14594,16773.9,23.6192], [[-0.745267,0.666767,0],[0,0,1]], [false, false]],
|
||||
["Land_GamingSet_01_camera_F", [14594.2,16774,23.9755], [[-0.701469,0.7127,0],[0,0,1]], [false, false]],
|
||||
["Land_Laptop_device_F", [14597.4,16775.3,23.8317], [[0.828149,0.560507,0],[0,0,1]], [false, false]],
|
||||
["Land_ShelvesWooden_F", [14594.1,16773.9,22.9312], [[0.750531,0.660835,0],[0,0,1]], [false, false]],
|
||||
["Target_PopUp3_Moving_90deg_Acc2_NoPop_F", [14575,16771.4,17.8809], [[0.274112,0.961698,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_04_F", [14573.5,16758.3,17.91], [[-0.65486,-0.755751,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_02_F", [14570.4,16760.9,17.91], [[-0.527223,0.849727,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_03_F", [14576,16760.6,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_01_F", [14570.7,16762.6,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_05_F", [14623.8,16912.5,18.1785], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_DieselGroundPowerUnit_01_F", [14619.6,16885.6,17.8383], [[-0.243463,-0.96991,0],[0,0,1]], [false, false]],
|
||||
["Land_JetEngineStarter_01_F", [14591.7,16755.2,17.834], [[-0.701469,-0.7127,0],[0,0,1]], [false, false]],
|
||||
["CargoNet_01_barrels_F", [14612,16875.3,17.8549], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Shed_Small_F", [14601.9,16918.3,18.0289], [[0.7127,-0.701469,0],[0,0,1]], [false, false]],
|
||||
["Land_Factory_Conv1_Main_F", [14615.2,16905.2,18.3696], [[-0.690074,-0.723738,0],[0,0,1]], [false, false]],
|
||||
["Land_FishingGear_01_F", [14621.9,16912.1,17.9848], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_FishingGear_02_F", [14622.3,16915.5,18.0652], [[-0.836936,-0.547301,0],[0,0,1]], [false, false]],
|
||||
["Land_Garbage_square3_F", [14627.8,16914.7,18.1934], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageBags_F", [14622.5,16909.9,17.979], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbagePallet_F", [14625.1,16910.1,18.1012], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageWashingMachine_F", [14626.6,16912.8,18.2042], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_JunkPile_F", [14619.5,16914.1,17.9703], [[-0.243463,-0.96991,0],[0,0,1]], [false, false]],
|
||||
["Land_Tyres_F", [14625,16914.9,18.1344], [[-0.989821,0.142318,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageContainer_open_F", [14611.5,16911.7,17.8476], [[-0.786051,0.618162,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageContainer_closed_F", [14607.6,16908.4,17.8081], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Wreck_Car3_F", [14626.6,16904.6,18.0411], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Wreck_Offroad_F", [14632.2,16918.2,18.0913], [[-0.866025,0.5,0],[0,0,1]], [false, false]],
|
||||
["Land_Wreck_Hunter_F", [14625,16923.2,18.2756], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo_HQ_V2_F", [14531.5,16758.9,18.5278], [[0.6958,-0.718235,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo_Patrol_V2_F", [14602.6,16702.8,18.07], [[0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_WasteDump", [14609.2,16898.9,18.0966], [[0.690079,0.723734,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Office_Small", [14588.1,16772.5,17.3235], [[0.707107,0.707107,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Office", [14596.3,16776.3,22.9992], [[-0.672664,0.739948,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Office_Small", [14592.6,16773.2,21.9835], [[0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Aircraft_Small", [14595.9,16765.1,17.303], [[0.745267,-0.666767,0],[0,0,1]], [false, false]],
|
||||
["Exile_Cosmetic_MG", [14568,16774.8,18.0358], [[-0.999717,0.0238043,0],[0,0,1]], [false, false]],
|
||||
["Exile_Cosmetic_UAV", [14567.2,16775,18.8145], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingChair_V2_F", [14567.2,16766.9,17.9948], [[-0.755751,0.654859,0],[0,0,1]], [false, false]],
|
||||
["CargoNet_01_barrels_F", [14572.6,16773.2,17.91], [[-0.540637,0.841256,0],[0,0,1]], [false, false]],
|
||||
["Land_PaperBox_closed_F", [14573.8,16772,17.91], [[-0.6958,0.718235,0],[0,0,1]], [false, false]],
|
||||
["Land_PaperBox_open_full_F", [14579.8,16765.3,17.91], [[-0.776145,0.630554,0],[0,0,1]], [false, false]],
|
||||
["Land_PaperBox_open_empty_F", [14578.4,16766.9,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CanisterPlastic_F", [14578.4,16765.7,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Suitcase_F", [14570.1,16763.9,18.0041], [[0.228042,0.973651,0],[0,0,1]], [false, false]],
|
||||
["Land_Bricks_V1_F", [14583.1,16751.1,17.91], [[-0.739948,0.672664,0],[0,0,1]], [false, false]],
|
||||
["Land_Bricks_V2_F", [14582.1,16752.1,17.91], [[0.666769,0.745264,0],[0,0,1]], [false, false]],
|
||||
["Land_Bricks_V3_F", [14581.1,16753.2,17.91], [[-0.849727,0.527223,0],[0,0,1]], [false, false]],
|
||||
["Land_Bricks_V4_F", [14580.1,16754.1,17.91], [[-0.776145,0.630554,0],[0,0,1]], [false, false]],
|
||||
["Land_Pallets_stack_F", [14583.7,16753,17.91], [[0.436945,0.899488,0],[0,0,1]], [false, false]],
|
||||
["Land_ToolTrolley_01_F", [14577.9,16756.1,18.0186], [[0.718236,-0.6958,0],[0,0,1]], [false, false]],
|
||||
["Land_GasTank_02_F", [14579.1,16754.6,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_WheelCart_F", [14583.9,16761.7,18.0116], [[0.776145,-0.630554,0],[0,0,1]], [false, false]],
|
||||
["Land_WoodenBox_F", [14581.8,16754.2,17.91], [[0.624376,0.781124,0],[0,0,1]], [false, false]],
|
||||
["Land_MobileLandingPlatform_01_F", [14597.3,16744.1,17.91], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Tyre_F", [14604.2,16879.2,17.8345], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Tyre_F", [14604.3,16875.8,17.8348], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Tyre_F", [14607.1,16879,17.8408], [[0.408185,0.912899,0],[0,0,1]], [false, false]],
|
||||
["Land_Tyre_F", [14607.2,16876.2,17.8425], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Tyres_F", [14610.8,16871.7,17.7035], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CanisterOil_F", [14604.4,16878.3,17.8351], [[-0.973651,0.228045,0],[0,0,1]], [false, false]],
|
||||
["Land_CarBattery_02_F", [14603.8,16878.7,17.8335], [[-0.493107,0.869969,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_VehicleCustoms", [14619.4,16888.2,17.7657], [[0.999497,-0.0317282,0],[0,0,1]], [false, false]],
|
||||
["Oil_Spill_F", [14616.5,16887.6,17.8505], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_KartTrolly_01_F", [14620.2,16889.6,17.8613], [[0.599278,0.800541,0],[0,0,1]], [false, false]],
|
||||
["Land_BucketNavy_F", [14619.1,16888.6,18.6619], [[-0.96991,0.243463,0],[0,0,1]], [false, false]],
|
||||
["Land_Bucket_painted_F", [14619.1,16889.1,18.6544], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_ButaneCanister_F", [14618.9,16889,18.6736], [[0.971813,-0.235753,0],[0,0,1]], [false, false]],
|
||||
["Land_CanisterFuel_F", [14616.8,16887.3,17.8632], [[-0.853878,0.520473,0],[0,0,1]], [false, false]],
|
||||
["Land_CanisterPlastic_F", [14619,16889.5,17.8661], [[0.0950563,0.995472,0],[0,0,1]], [false, false]],
|
||||
["Land_CarBattery_02_F", [14618.8,16887.6,18.6544], [[-0.513676,0.857984,0],[0,0,1]], [false, false]],
|
||||
["Land_CarBattery_01_F", [14619.1,16887.7,18.6718], [[0.975431,-0.220306,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingTable_F", [14618.9,16888.3,17.8579], [[0.997452,-0.071339,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingChair_V1_folded_F", [14618.8,16886.3,17.8601], [[0.76092,0.648845,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingChair_V1_F", [14617.8,16886.5,17.8559], [[0.281739,-0.959491,0],[0,0,1]], [false, false]],
|
||||
["Land_GasTank_01_yellow_F", [14620.2,16889.6,17.9821], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Garbage_square5_F", [14607.2,16899.9,17.8199], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageBarrel_01_F", [14610,16902.2,17.83], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_WheelieBin_01_F", [14608.6,16899.1,17.8244], [[0.766044,0.642788,0],[0,0,1]], [false, false]],
|
||||
["Land_cargo_house_slum_ruins_F", [14629.2,16910.5,18.1699], [[-0.866025,0.5,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_TraderCity", [14554.8,16906.4,17.6393], [[0.739948,-0.672664,0],[0,0,1]], [false, false]],
|
||||
["Land_FuelStation_Build_F", [14624.3,16894.8,17.8827], [[0.952516,0.304487,0],[0,0,1]], [false, false]],
|
||||
["Land_FuelStation_Sign_F", [14621.4,16898.1,17.8708], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_FuelStation_Feed_F", [14619.2,16895.9,17.8569], [[-0.96991,-0.243463,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_SpecialOperations_Small", [14573,16774.7,17.3007], [[-0.729183,-0.684318,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Equipment_Small", [14579.5,16768.1,17.3113], [[-0.701469,-0.7127,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Armory_Small", [14576.5,16771.2,17.3145], [[-0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Hardware_Small", [14584.4,16763.2,17.3163], [[-0.684318,-0.729184,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_3_F", [14564.3,16928.2,16.9611], [[-0.0792423,0.996855,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_5_F", [14569.5,16924.4,17.0527], [[-0.881452,-0.472274,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_Big_F", [14561.6,16922.1,16.1608], [[0.695799,0.718237,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_1_F", [14560.4,16927.6,16.7264], [[0.684316,0.729186,0],[0,0,1]], [false, false]],
|
||||
["Land_BagFence_Round_F", [14567.3,16928,17.4047], [[-0.422618,-0.906308,0],[0,0,1]], [false, false]],
|
||||
["Land_BagFence_Short_F", [14561.8,16928.2,17.1708], [[0.258819,-0.965926,0],[0,0,1]], [false, false]],
|
||||
["Land_BagFence_Long_F", [14568.6,16921.7,17.3641], [[0.5473,-0.836936,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingTable_small_F", [14567.9,16923.5,17.4895], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingChair_V1_F", [14567.8,16925,17.458], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingChair_V1_folded_F", [14567.4,16922.3,17.5057], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_TentDome_F", [14562.4,16925.7,17.279], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Sleeping_bag_F", [14566.6,16925.9,17.4279], [[0.444066,0.895994,0],[0,0,1]], [false, false]],
|
||||
["Land_WoodPile_F", [14562.7,16923.1,17.3408], [[-0.712699,0.701469,0],[0,0,1]], [false, false]],
|
||||
["Land_Sleeping_bag_folded_F", [14567.1,16926.9,17.414], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_AircraftCustoms", [14634.8,16792.4,17.7303], [[-0.712699,0.701469,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_AircraftCustoms_Small", [14633.2,16800.4,17.2345], [[0.599275,-0.800543,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_AircraftCustoms_Small", [14614.6,16799.5,17.3016], [[0.718238,0.695798,0],[0,0,1]], [false, false]],
|
||||
["Land_DischargeStick_01_F", [14636,16792.6,18.786], [[0.809949,0.586501,0],[0,0,1]], [false, false]],
|
||||
["Land_RotorCoversBag_01_F", [14635.5,16792.5,17.9643], [[-0.37902,0.925388,0],[0,0,1]], [false, false]],
|
||||
["Land_Bucket_clean_F", [14635.3,16792.2,18.8025], [[0.047582,0.998867,0],[0,0,1]], [false, false]],
|
||||
["Land_Bucket_painted_F", [14635.5,16792.6,18.7872], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_FireExtinguisher_F", [14634.8,16792,18.0244], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_FoodContainer_01_F", [14636.3,16793.2,18.0186], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_SatellitePhone_F", [14636.3,16793.1,18.7921], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingChair_V1_F", [14634.3,16791.2,18.0009], [[-0.472274,0.881452,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingTable_F", [14635.8,16792.6,17.9868], [[0.65486,-0.755751,0],[0,0,1]], [false, false]],
|
||||
["Land_AirIntakePlug_01_F", [14633.9,16790.4,18.015], [[-0.592913,0.805266,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_stripes_F", [14576.7,16799.3,17.8796], [[0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_stripes_F", [14570.7,16794.1,17.8947], [[0.750526,-0.66084,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_5_F", [14643.4,16803.9,17.4603], [[-0.00792382,0.999969,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_stripes_F", [14629.2,16793,17.8947], [[0.7127,-0.701469,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_stripes_F", [14602.7,16766.3,17.8947], [[0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_stripes_F", [14588.2,16750.6,17.8947], [[0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Land_Pier_Box_F", [14673.6,16798.4,22.6626], [[0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Land_Pier_Box_F", [14577.1,16723.9,22.6626], [[-0.707107,-0.707107,0],[0,0,1]], [false, false]],
|
||||
["Land_Bunker_F", [14665.2,16788.9,18.5132], [[0.707107,0.707107,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo40_military_green_F", [14584.4,16715.4,17.8215], [[-0.701469,0.7127,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo20_grey_F", [14582.7,16707.1,17.8627], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo10_grey_F", [14576,16704.8,17.8678], [[-0.952518,0.304482,0],[0,0,1]], [false, false]],
|
||||
["Land_CampingTable_F", [2987.45,18180.5,1.21957], [[0.909632,0.415416,0],[0,0,1]], [false, false]],
|
||||
["Land_ToolTrolley_01_F", [2980.77,18144.4,1.13856], [[-0.781129,0.62437,0],[0,0,1]], [false, false]],
|
||||
["CargoNet_01_barrels_F", [2987.87,18182.6,1.26298], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_ShelvesMetal_F", [2979.66,18187.6,1.2162], [[-0.997987,-0.0634173,0],[0,0,1]], [false, false]],
|
||||
["Land_FishingGear_02_F", [2980.34,18124.5,1.2076], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Basket_F", [2979.97,18184,1.26116], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CratesWooden_F", [2992.38,18156.2,1.11772], [[-0.371659,0.928369,0],[0,0,1]], [false, false]],
|
||||
["Land_Sacks_goods_F", [2979.18,18186,1.15971], [[0.999213,-0.0396557,0],[0,0,1]], [false, false]],
|
||||
["Land_Sacks_heap_F", [2985.09,18169.8,1.16568], [[-0.055508,0.998458,0],[0,0,1]], [false, false]],
|
||||
["Land_Cages_F", [2989.92,18190.5,1.14397], [[-0.0634176,0.997987,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageContainer_closed_F", [2997.02,18195.1,1.12749], [[-0.999477,0.0323354,0],[0,0,1]], [false, false]],
|
||||
["Land_CratesPlastic_F", [2979.2,18176.3,1.27247], [[0.690079,0.723734,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_04_F", [2980.07,18194.2,1.24447], [[-0.65486,-0.755751,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_02_F", [2979.48,18192.2,1.35571], [[-0.527223,0.849727,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbagePallet_F", [2978.46,18135.3,1.14171], [[0.356886,0.934148,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo10_orange_F", [2997.76,18202,1.13367], [[0.356886,0.934148,0],[0,0,1]], [false, false]],
|
||||
["Land_LampHarbour_F", [2972.09,18193.3,1.14308], [[0.997987,-0.0634245,0],[0,0,1]], [false, false]],
|
||||
["MapBoard_altis_F", [2988.21,18186.6,1.23654], [[0.869969,-0.493107,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageContainer_closed_F", [2980.93,18135.9,1.13155], [[0.996195,0.0871558,0],[0,0,1]], [false, false]],
|
||||
["Land_Tyres_F", [2982.2,18127.5,1.54287], [[0.805271,0.592907,0],[0,0,1]], [false, false]],
|
||||
["Land_JunkPile_F", [2994.1,18132.6,2.20519], [[-0.0317247,-0.999497,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageWashingMachine_F", [2988.89,18127,2.03828], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Wreck_Car_F", [2987.36,18132.2,1.48652], [[0.998458,-0.0555043,0],[0,0,1]], [false, false]],
|
||||
["Land_Pier_F", [2993.46,18185.8,-1.13638], [[0.999641,-0.0267981,0],[0,0,1]], [false, false]],
|
||||
["Land_Pier_F", [2994.03,18144.2,-1.15465], [[0.999641,-0.0267981,0],[0,0,1]], [false, false]],
|
||||
["Land_Pier_wall_F", [2952.43,18207.7,-1.17864], [[0.00793015,0.999969,0],[0,0,1]], [false, false]],
|
||||
["Land_i_Shed_Ind_F", [2987.11,18179.7,1.23635], [[-0.999968,-0.00794115,0],[0,0,1]], [false, false]],
|
||||
["Land_Pier_F", [2980.88,18182.9,-1.1319], [[0.999641,-0.0267981,0],[0,0,1]], [false, false]],
|
||||
["Land_Pier_F", [2979.73,18141.3,-1.14254], [[0.999641,-0.0267981,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_F", [2981.36,18148.3,1.14752], [[0.047593,0.998867,0],[0,0,1]], [false, false]],
|
||||
["Land_ToolTrolley_02_F", [2983.3,18147.4,1.12305], [[-0.936947,0.349472,0],[0,0,1]], [false, false]],
|
||||
["Land_Box_AmmoOld_F", [2988.01,18178.4,1.22718], [[0.479248,0.87768,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo20_red_F", [2985.06,18150.5,1.04326], [[-0.916104,0.400941,0],[0,0,1]], [false, false]],
|
||||
["Land_ShelvesMetal_F", [2979.71,18182.9,1.24149], [[-0.999968,0.0079407,0],[0,0,1]], [false, false]],
|
||||
["Land_WaterCooler_01_new_F", [2979.31,18177.4,1.27611], [[-0.999497,0.0317244,0],[0,0,1]], [false, false]],
|
||||
["Land_CrabCages_F", [2981.58,18197.4,1.18942], [[0.023804,-0.999717,0],[0,0,1]], [false, false]],
|
||||
["Land_FishingGear_01_F", [2973.53,18184.7,1.18309], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_FishingGear_02_F", [2981.87,18133,1.12165], [[-0.965926,0.258819,0],[0,0,1]], [false, false]],
|
||||
["Land_CratesShabby_F", [2986.12,18166.7,1.16942], [[0.479243,-0.877682,0],[0,0,1]], [false, false]],
|
||||
["Land_PaperBox_open_full_F", [2988.17,18176.8,1.2596], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Pallet_MilBoxes_F", [2986.39,18176.6,1.24124], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CratesWooden_F", [2990,18166.8,1.09873], [[-0.922356,-0.386341,0],[0,0,1]], [false, false]],
|
||||
["Land_FishingGear_01_F", [2959.63,18196.6,1.11124], [[0.928369,-0.371659,0],[0,0,1]], [false, false]],
|
||||
["Land_Sack_F", [2980.24,18186.9,1.13722], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CratesShabby_F", [2979.79,18181.2,1.07005], [[0.624375,0.781125,0],[0,0,1]], [false, false]],
|
||||
["Land_Sacks_heap_F", [2979.31,18178.9,1.26949], [[-0.6958,0.718235,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageBarrel_01_F", [2983.95,18128.1,1.58736], [[0.729186,0.684316,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_03_F", [2982.09,18194.6,1.21513], [[0.922356,-0.386341,0],[0,0,1]], [false, false]],
|
||||
["Land_LampHarbour_F", [2989.9,18173.4,1.20945], [[0.999213,0.0396556,0],[0,0,1]], [false, false]],
|
||||
["Land_LampHarbour_F", [2971.13,18156.8,1.29263], [[0.999969,-0.00793239,0],[0,0,1]], [false, false]],
|
||||
["Land_LampHarbour_F", [2994.19,18129,2.5332], [[-0.0396613,0.999213,0],[0,0,1]], [false, false]],
|
||||
["Land_LampHalogen_F", [2984.64,18196.4,1.03341], [[0.999213,-0.0396574,0],[0,0,1]], [false, false]],
|
||||
["Land_Metal_wooden_rack_F", [2987.86,18188.8,1.19516], [[-0.999874,0.0158642,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [2986.77,18185.7,1.21864], [[-0.899489,0.436943,0],[0,0,1]], [false, false]],
|
||||
["Land_Wreck_Car_F", [23338.3,24207.2,3.82129], [[-0.888833,-0.458231,0],[0,0,1]], [false, false]],
|
||||
["Land_GarbageContainer_closed_F", [23340.2,24212.2,4.38752], [[-0.989821,0.142318,0],[0,0,1]], [false, false]],
|
||||
["Land_Tyres_F", [23335.2,24203.3,4.14816], [[0.999717,-0.0237988,0],[0,0,1]], [false, false]],
|
||||
["Land_JunkPile_F", [23338.1,24210.1,4.12724], [[-0.995471,0.0950635,0],[0,0,1]], [false, false]],
|
||||
["Land_PortableLight_single_F", [23374.3,24181.1,4.86591], [[0.928369,-0.371659,0],[0,0,1]], [false, false]],
|
||||
["Land_WeldingTrolley_01_F", [23380.5,24185.4,4.86897], [[-0.988662,0.150156,0],[0,0,1]], [false, false]],
|
||||
["Land_Workbench_01_F", [23375.1,24185.9,4.84018], [[0.983398,-0.181463,0],[0,0,1]], [false, false]],
|
||||
["Land_i_Shop_01_V1_F", [23377.8,24167.7,3.79129], [[0.885175,-0.465259,0],[0,0,1]], [false, false]],
|
||||
["Land_City_4m_F", [23362.5,24196,4.09203], [[-0.479243,-0.877682,0],[0,0,1]], [false, false]],
|
||||
["Land_City_4m_F", [23369.7,24192.3,3.98921], [[0.465264,0.885172,0],[0,0,1]], [false, false]],
|
||||
["Land_City_Gate_F", [23366.1,24194.1,4.07551], [[0.453482,0.891266,0],[0,0,1]], [false, false]],
|
||||
["Land_City_8m_F", [23378.9,24175.8,3.83947], [[0.936953,-0.349455,0],[0,0,1]], [false, false]],
|
||||
["Land_Kiosk_redburger_F", [23353.2,24168.5,4.4989], [[0.666767,0.745267,0],[0,0,1]], [false, false]],
|
||||
["Land_RattanTable_01_F", [23345.2,24166.1,4.31775], [[-0.134453,0.99092,0],[0,0,1]], [false, false]],
|
||||
["Land_RattanTable_01_F", [23358.7,24163.5,4.26188], [[0.654861,0.755749,0],[0,0,1]], [false, false]],
|
||||
["Land_RattanTable_01_F", [23345.9,24160.5,4.37509], [[0.654861,0.755749,0],[0,0,1]], [false, false]],
|
||||
["Land_RattanTable_01_F", [23350.9,24161.3,4.46815], [[0.444066,0.895994,0],[0,0,1]], [false, false]],
|
||||
["Land_RattanTable_01_F", [23353.3,24157.2,4.54655], [[0.197035,0.980397,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23343.4,24158.5,4.24294], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23360.9,24162.5,4.01765], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23357.6,24163.8,4.33318], [[0.415416,0.909632,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23345.1,24161.3,4.33882], [[0.371663,0.928368,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23346.4,24166.2,4.35115], [[0.181463,-0.983398,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23346.7,24159.8,4.4097], [[-0.553915,-0.832573,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23354.3,24158.9,4.57206], [[0.729184,-0.684318,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23349.9,24161.8,4.44282], [[0.319561,0.947566,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23350.5,24158.9,4.39606], [[-0.922356,0.386341,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23353,24156.2,4.46134], [[-0.999968,0.0079407,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23344.2,24166.5,4.30126], [[0.349463,0.93695,0],[0,0,1]], [false, false]],
|
||||
["Land_Sunshade_04_F", [23345.3,24165.6,4.30477], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Sunshade_04_F", [23354.2,24157.4,4.57845], [[-0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_Sunshade_04_F", [23345.2,24160.1,4.36116], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_CarService_F", [23376.2,24188.7,4.36585], [[-0.165822,-0.986156,0],[0,0,1]], [false, false]],
|
||||
["Land_RattanTable_01_F", [23366.3,24170.3,4.11357], [[0.654861,0.755749,0],[0,0,1]], [false, false]],
|
||||
["Land_RattanTable_01_F", [23362,24173.5,4.2566], [[0.654861,0.755749,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23364.9,24168.6,3.98596], [[0.415416,0.909632,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23362.8,24173.7,4.08876], [[0.415416,0.909632,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23361,24173.6,4.28424], [[0.415416,0.909632,0],[0,0,1]], [false, false]],
|
||||
["Land_ChairPlastic_F", [23367.3,24169.5,4.07351], [[-0.895991,-0.444072,0],[0,0,1]], [false, false]],
|
||||
["Land_LampStreet_small_F", [23368,24174.1,4.19138], [[-0.952359,0.30498,0],[0,0,1]], [false, false]],
|
||||
["Land_LampStreet_small_F", [23342.6,24215.3,4.57967], [[0.800849,0.598866,0],[0,0,1]], [false, false]],
|
||||
["Land_LampStreet_small_F", [23382.2,24190.8,4.00731], [[0.259315,0.965793,0],[0,0,1]], [false, false]],
|
||||
["Land_LampStreet_small_F", [23341.3,24184.7,4.59291], [[0.000515055,1,0],[0,0,1]], [false, false]],
|
||||
["Land_LampStreet_small_F", [23361.5,24197.5,4.18664], [[0.750871,0.660449,0],[0,0,1]], [false, false]],
|
||||
["Land_LampStreet_small_F", [23306.9,24188.8,2.65756], [[0.0718536,0.997415,0],[0,0,1]], [false, false]],
|
||||
["Land_LampStreet_small_F", [23396.1,24199.9,5.02106], [[-0.50641,0.862293,0],[0,0,1]], [false, false]],
|
||||
["Land_LampStreet_small_F", [23320.3,24187,2.64213], [[0.0243121,0.999704,0],[0,0,1]], [false, false]],
|
||||
["Land_Wreck_Offroad2_F", [23368.4,24185.1,3.95543], [[-0.220306,-0.975431,0],[0,0,1]], [false, false]],
|
||||
["Land_WoodenCart_F", [23342.5,24200.2,4.45953], [[0.0475834,0.998867,0],[0,0,1]], [false, false]],
|
||||
["Land_FieldToilet_F", [23341.8,24174.2,4.34077], [[-0.64885,0.760916,0],[0,0,1]], [false, false]],
|
||||
["Land_ToolTrolley_02_F", [23379.4,24180.5,4.85657], [[0.892443,0.451161,0],[0,0,1]], [false, false]],
|
||||
["Land_Pallet_MilBoxes_F", [23378.9,24166.1,7.93425], [[0.605609,0.795762,0],[0,0,1]], [false, false]],
|
||||
["Land_PaperBox_open_full_F", [23376.9,24167.2,7.94106], [[0.547297,0.836938,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_F", [23369.5,24192,3.95235], [[0.458228,0.888835,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_F", [23365.1,24192.5,4.03231], [[0.479248,0.87768,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_F", [23362.8,24195.4,4.0013], [[0.486197,0.873849,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_F", [23378.9,24177.3,3.77195], [[0.939693,-0.34202,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_F", [23377.8,24174.1,3.79705], [[0.934148,-0.356885,0],[0,0,1]], [false, false]],
|
||||
["Land_WaterCooler_01_new_F", [23356,24169.5,4.60965], [[-0.642788,-0.766044,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_03_F", [23378.9,24165.8,4.03437], [[-0.486198,0.873849,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_04_F", [23380.8,24165.3,4.05406], [[-0.65486,-0.755751,0],[0,0,1]], [false, false]],
|
||||
["Land_LuggageHeap_02_F", [23378,24171.1,4.04114], [[-0.472274,0.881452,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo20_military_green_F", [23347.6,24199.7,4.29847], [[0.0158654,0.999874,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_TraderCity", [2989.89,18177.6,2.61365], [[-0.999874,-0.0158642,0],[0,0,1]], [false, false]],
|
||||
["Land_Factory_Conv1_Main_F", [2986.77,18130.1,2.21669], [[0.999874,0.0158662,0],[0,0,1]], [false, false]],
|
||||
["Land_cmp_Shed_F", [2974.8,18129.5,1.13956], [[0.998867,-0.0475825,0],[0,0,1]], [false, false]],
|
||||
["Land_cmp_Hopper_F", [2963.39,18129.7,0.0900025], [[0.0237981,0.999717,0],[0,0,1]], [false, false]],
|
||||
["Land_Tank_rust_F", [2976.74,18173.8,1.16096], [[-0.999717,0.0238043,0],[0,0,1]], [false, false]],
|
||||
["Land_Wreck_Traw_F", [2888.95,18107.6,-6.03909], [[-0.723738,-0.690074,0],[0,0,1]], [false, false]],
|
||||
["Land_Wreck_Traw2_F", [2912.17,18124,-4.86378], [[-0.981929,-0.189249,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo40_grey_F", [2999.03,18191.5,1.14093], [[0.999969,0.00793242,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo40_military_green_F", [2999.4,18179.2,1.1606], [[0.997987,-0.0634245,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo40_white_F", [2989.6,18163,1.04851], [[0.909632,0.415416,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo20_grey_F", [2994.85,18186.4,1.14158], [[-0.952518,0.304482,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo20_military_green_F", [2990.53,18177.6,1.07952], [[-0.999968,-0.00794115,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo20_red_F", [2986.75,18155.3,1.11224], [[-0.00794125,-0.999968,0],[0,0,1]], [false, false]],
|
||||
["Land_Cargo10_grey_F", [2997.12,18187.6,3.70366], [[0.173648,0.984808,0],[0,0,1]], [false, false]],
|
||||
["Land_Pier_Box_F", [2921.94,18197.2,1.15006], [[0.0158659,0.999874,0],[0,0,1]], [false, false]],
|
||||
["Land_Sea_Wall_F", [2989.66,18207.7,-1.04307], [[0.0158643,-0.999874,0],[0,0,1]], [false, false]],
|
||||
["Land_PierLadder_F", [2969.61,18152.9,-1.73874], [[0.998867,0.0475807,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_WasteDump", [2983.77,18132.1,1.31246], [[-0.197041,-0.980395,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Vehicles", [2981.34,18148.4,1.77985], [[0.0475819,0.998867,0],[0,0,1]], [false, false]],
|
||||
["Land_Lighthouse_small_F", [2916.05,18200.4,1.12379], [[-0.999874,0.0158642,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Boat", [2912.81,18194.8,0.945447], [[-0.999717,0.0238043,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Boat_Small", [2971.94,18194.1,0.204013], [[-0.936953,-0.349455,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Armory", [2988.82,18179.1,1.02696], [[0.999717,-0.0237971,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Equipment", [2980.48,18195.6,0.997162], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Food", [2978.52,18178.6,1.16662], [[-1,1.19249e-008,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_F", [2977.99,18148.5,1.14459], [[0.047593,0.998867,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_F", [2974.63,18148.7,1.14333], [[0.047593,0.998867,0],[0,0,1]], [false, false]],
|
||||
["Land_CncBarrier_F", [2971.26,18148.8,1.14587], [[0.047593,0.998867,0],[0,0,1]], [false, false]],
|
||||
["Land_BagFence_Round_F", [2994.5,18166,1.1572], [[-0.877682,0.479243,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_1_F", [2992.75,18164.9,1.06276], [[0.980397,0.197035,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_1_F", [2995.03,18167.9,1.06746], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Land_HBarrier_3_F", [2998.5,18169.9,1.13225], [[-0.931285,0.364292,0],[0,0,1]], [false, false]],
|
||||
["Land_LifeguardTower_01_F", [23338.1,24153.7,4.49763], [[-0.165822,0.986156,0],[0,0,1]], [false, false]],
|
||||
["Land_i_Addon_04_V1_F", [23376.6,24160.4,2.46928], [[0.436945,0.899488,0],[0,0,1]], [false, false]],
|
||||
["Land_Pier_small_F", [23389,24147.6,-0.137567], [[-0.251141,0.967951,0],[0,0,1]], [false, false]],
|
||||
["Land_GH_House_2_F", [23333.5,24196.3,3.91706], [[0.998867,-0.0475825,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_TraderCity", [23329.3,24201.1,3.09842], [[-0.0475771,-0.998868,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Equipment", [23381.4,24170,3.95674], [[0.47925,0.877679,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Armory", [23378.2,24165.2,8.24169], [[-0.458231,-0.888833,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Armory_Small", [23373.2,24165,3.11934], [[0.895991,-0.444072,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Equipment_Small", [23376.4,24172.4,3.04409], [[0.997452,-0.071339,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Hardware_Small", [23370.2,24180.7,3.57548], [[0.158002,0.987439,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Hardware", [23370.9,24187.1,4.57432], [[-0.987439,0.158003,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Vehicles", [23389.4,24185.3,4.46844], [[-0.312037,-0.95007,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_WasteDump", [23340.4,24209.8,4.49615], [[0.997987,-0.0634245,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_WasteDump_Small", [23341.3,24194.2,4.44642], [[-0.5,0.866025,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Food_Small", [23353.6,24171.1,3.37786], [[-0.678506,-0.734595,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Boat_Small", [23333.4,24189.1,3.19471], [[-0.916111,0.400924,0],[0,0,1]], [false, false]],
|
||||
["Exile_Locker", [14618.4,16804.2,17.9974], [[0.69225,-0.721658,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Locker", [14620,16805.8,17.91], [[0.711919,-0.702261,0],[0,0,1]], [false, false]],
|
||||
["Exile_Locker", [23328.7,24200.8,4.52368], [[0,1,0],[0,0,1]], [false, false]],
|
||||
["Exile_Sign_Locker", [23336.1,24199.7,4.37551], [[-1,1.19249e-008,0],[0,0,1]], [false, false]],
|
||||
["Exile_Locker",[2988.82,18173.9,1.35244],[[0.999929,0.011945,0],[0,0,1]],[false,false]],
|
||||
["Exile_Sign_Locker",[2984.21,18173.6,1.35244],[[0.999929,0.0118953,0],[0,0,1]],[false,false]]
|
||||
];
|
||||
|
||||
{
|
||||
private _object = (_x select 0) createVehicle [0,0,0];
|
||||
_object setPosASL (_x select 1);
|
||||
_object setVectorDirAndUp (_x select 2);
|
||||
_object enableSimulationGlobal ((_x select 3) select 0);
|
||||
_object allowDamage ((_x select 3) select 1);
|
||||
} forEach _objects;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Russian Roulette
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_objects =
|
||||
[
|
||||
["Land_WoodenTable_large_F", [14628.171,16826.014,18.467293], 0, false],
|
||||
["Exile_Sign_RussianRoulette", [14623.898,16820.336, 18.950966], 0.77240193, false],
|
||||
["Land_HumanSkull_F", [14621.056, 16821.572, 18.476805], 2.0025947, false],
|
||||
["Land_WheelCart_F", [14621.334,16821.477, 18.355867], 4.9935374, false],
|
||||
["Land_Camping_Light_F", [14628.075,16825.77, 19.00408], 0, true]
|
||||
//["Land_SportGround_fence_F", [14625.692, 16818.945, 18.791378], 0.79693103, false],
|
||||
//["Land_SportGround_fence_F", [14633.911, 16816.904, 17.9177], 5.4953084, false],
|
||||
//["Land_CargoBox_V1_F", [14619.726, 16823.613, 18.75972], 5.4931207, false],
|
||||
];
|
||||
|
||||
{
|
||||
private ["_object"];
|
||||
|
||||
_object = (_x select 0) createVehicle [0,0,0];
|
||||
_object setDir (deg (_x select 2));
|
||||
_object setPosWorld (_x select 1);
|
||||
_object allowDamage false;
|
||||
_object enableSimulation (_x select 3);
|
||||
_object enableSimulationGlobal (_x select 3);; // :)
|
||||
}
|
||||
forEach _objects;
|
||||
|
||||
ExileRouletteChairs = [];
|
||||
|
||||
ExileRouletteChairPositions =
|
||||
[
|
||||
[[14627.052, 16826.611, 18.004343], 4.9010592],
|
||||
[[14629.161, 16826.707, 18.004343], 1.3332222],
|
||||
[[14628.180, 16824.557, 18.004343], 3.1448042],
|
||||
[[14628.123, 16827.488, 18.004343], 0],
|
||||
[[14629.184, 16825.537, 18.034342], 1.7944603],
|
||||
[[14627.175, 16825.453, 18.004343], 4.4050193]
|
||||
];
|
||||
|
||||
{
|
||||
private ["_chair"];
|
||||
|
||||
_chair = "Exile_RussianRouletteChair" createVehicle [0, 0, 0];
|
||||
_chair setDir (deg (_x select 1));
|
||||
_chair setPosWorld (_x select 0);
|
||||
_chair allowDamage false;
|
||||
_chair enableSimulationGlobal true;
|
||||
|
||||
ExileRouletteChairs pushBack _chair;
|
||||
}
|
||||
forEach ExileRouletteChairPositions;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Concrete Mixers
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
_concreteMixers =
|
||||
[
|
||||
[[14354.0, 18960.1, 36.9597], 35], // athira
|
||||
[[18309.4, 15575.0, 48.8194], 90], // charkia
|
||||
[[11391.2, 14259.5, 21.2141], -40] // alikampos
|
||||
];
|
||||
|
||||
{
|
||||
_concreteMixer = "Exile_ConcreteMixer" createVehicle (_x select 0);
|
||||
_concreteMixer setDir (_x select 1);
|
||||
_concreteMixer setPosASL (_x select 0);
|
||||
_concreteMixer allowDamage false;
|
||||
_concreteMixer enableSimulationGlobal true;
|
||||
}
|
||||
forEach _concreteMixers;
|
245
ExileServers/ExileAltis/mpmissions/Exile.Altis/intro.sqf
Normal file
245
ExileServers/ExileAltis/mpmissions/Exile.Altis/intro.sqf
Normal file
@ -0,0 +1,245 @@
|
||||
/**
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private ["_objectStorage", "_staticObjectTemplates"];
|
||||
/*
|
||||
// Preload camery settings
|
||||
waitUntil { preloadCamera [29549.7,1508.77,189.029] };
|
||||
|
||||
// Remember what we have instanciated, so we can clean up a bit
|
||||
_objectStorage = [];
|
||||
|
||||
// Static objects for the scene
|
||||
_staticObjectTemplates =
|
||||
[
|
||||
["Land_Pier_F",[29566.7,1512.72,186.76],182.273,0,0,false],
|
||||
["Land_Pier_wall_F",[29566.6,1560.03,186.705],1.36361,0,0,false],
|
||||
["Land_Pier_Box_F",[29539.6,1550.11,192.115],0,0,0,false],
|
||||
["Land_Pier_F",[29596.6,1533.61,186.95],91.8181,0,0,false],
|
||||
["Land_Bunker_F",[29580.4,1509.79,189.09],95.4545,0,0,false],
|
||||
["Land_MilOffices_V1_F",[29600.1,1534.35,189.543],90.909,0,0,false],
|
||||
["Land_Pier_Box_F",[29591.6,1507.34,200.259],95.0001,0,0,false],
|
||||
["Land_Pier_F",[29562.8,1502.29,186.759],2.27276,0,0,false],
|
||||
["Land_Airport_Tower_F",[29540.2,1549.9,192.079],0,0,0,false],
|
||||
["Land_JetEngineStarter_01_F",[29579.3,1496.5,189.031],18.6364,0,0,false],
|
||||
["Land_Radar_F",[29598.7,1561.89,191.255],8.18185,0,0,false],
|
||||
["Exile_Sign_TraderCity",[29546.8,1517.4,189.039],272,0,0,false],
|
||||
["Land_TTowerBig_1_F",[29592,1507.42,201.014],3.18181,0,0,false],
|
||||
["Submarine_01_F",[29524.1,1476.42,176.398],147.273,0,0,false],
|
||||
["C_Boat_Civil_04_F",[29562.7,1535.25,179.236],271.364,0,0,false]
|
||||
];
|
||||
|
||||
{
|
||||
private ["_staticObject"];
|
||||
|
||||
_staticObject = (_x select 0) createVehicleLocal [0,0,0];
|
||||
_staticObject setDir (_x select 2);
|
||||
_staticObject setPosATL (_x select 1);
|
||||
_staticObject enableSimulation false;
|
||||
|
||||
_objectStorage pushBack _staticObject;
|
||||
}
|
||||
forEach _staticObjectTemplates;
|
||||
|
||||
// Create the chopper and close all doors
|
||||
_chopper = "O_Heli_Transport_04_covered_F" createVehicleLocal [0,0,0];
|
||||
_chopper setDir 326.364;
|
||||
_chopper setPosATL [29549.7,1508.77,189.029];
|
||||
_chopper enableSimulation true;
|
||||
_chopper animateDoor ['Door_1_source', 0, true];
|
||||
_chopper animateDoor ['Door_2_source', 0, true];
|
||||
_chopper animateDoor ['Door_3_source', 0, true];
|
||||
_chopper animateDoor ['Door_4_source', 0, true];
|
||||
_chopper animateDoor ['Door_5_source', 0, true];
|
||||
_chopper animateDoor ['Door_6_source', 0, true];
|
||||
|
||||
_objectStorage pushBack _chopper;
|
||||
|
||||
// Prisoner 1
|
||||
_prisoner01 =
|
||||
[
|
||||
"Exile_Cutscene_Prisoner01",
|
||||
"AfricanHead_01",
|
||||
["Acts_AidlPsitMstpSsurWnonDnon01"],
|
||||
[29552.5,1510.03,189.027],
|
||||
341.323
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_objectStorage pushBack _prisoner01;
|
||||
|
||||
// Prisoner 2
|
||||
_prisoner02 =
|
||||
[
|
||||
"Exile_Cutscene_Prisoner02",
|
||||
"WhiteHead_03",
|
||||
["InBaseMoves_HandsBehindBack1"],
|
||||
[29550.4,1509.77,189.026],
|
||||
45.1028
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_objectStorage pushBack _prisoner02;
|
||||
|
||||
// Pilot, just statnding there
|
||||
_pilot =
|
||||
[
|
||||
"Exile_Cutscene_Pilot",
|
||||
"PersianHead_A3_02",
|
||||
["passendger_flatground_1_Idle_Unarmed"],
|
||||
[29549.5,1512.48,189.031],
|
||||
82.2734
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_objectStorage pushBack _pilot;
|
||||
|
||||
// Boss, treating us
|
||||
_boss =
|
||||
[
|
||||
"Exile_Cutscene_Police01",
|
||||
"GreekHead_A3_08",
|
||||
["Acts_Abuse_abusing"],
|
||||
[29556.3,1513.86,189.033],
|
||||
88.0126
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_objectStorage pushBack _boss;
|
||||
|
||||
// Guard 1
|
||||
_police01 =
|
||||
[
|
||||
"Exile_Cutscene_Police02",
|
||||
"GreekHead_A3_08",
|
||||
["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"],
|
||||
[29549.4,1518,189.04],
|
||||
139.341
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_objectStorage pushBack _police01;
|
||||
|
||||
// Guard 2
|
||||
_police02 =
|
||||
[
|
||||
"Exile_Cutscene_Police01",
|
||||
"GreekHead_A3_08",
|
||||
["InBaseMoves_patrolling1"],
|
||||
[29555.1,1516.7,189.038],
|
||||
205.865
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_objectStorage pushBack _police02;
|
||||
|
||||
// And our small player fale
|
||||
_player =
|
||||
[
|
||||
"Exile_Cutscene_Player",
|
||||
"WhiteHead_01",
|
||||
["Acts_Abuse_abuser"],
|
||||
[29556.3,1513.86,189.033],
|
||||
88.0126
|
||||
]
|
||||
call ExileClient_object_trader_create;
|
||||
|
||||
_objectStorage pushBack _player;
|
||||
|
||||
_player allowDamage false; // It can bleed thou
|
||||
*/
|
||||
// End the loading screen
|
||||
endLoadingScreen;
|
||||
|
||||
/*
|
||||
// Fade in sound
|
||||
3 fadeSound 1;
|
||||
|
||||
cutText ["", "BLACK IN", 3];
|
||||
|
||||
// GOGO ! :)
|
||||
|
||||
_camera = "camera" camCreate (_player modelToWorld [0, 0, 10]);
|
||||
_camera camSetTarget _player;
|
||||
_camera cameraEffect ["EXTERNAL", "BACK TOP"];
|
||||
_camera camSetRelPos [0, 0.7, 1.5];
|
||||
_camera camCommand "inertia on";
|
||||
_camera camCommit 1;
|
||||
|
||||
uiSleep 1;
|
||||
|
||||
_boss say ["ExileIntro01", 5];
|
||||
|
||||
uiSleep 3;
|
||||
|
||||
_boss say ["ExileIntro02", 5];
|
||||
|
||||
uiSleep 5;
|
||||
|
||||
[300] call BIS_fnc_bloodEffect;
|
||||
|
||||
_player setdamage 0.5;
|
||||
_player setBleedingRemaining 3;
|
||||
_player say ["ExileIntro10", 5];
|
||||
|
||||
uiSleep 1;
|
||||
|
||||
_boss say ["ExileIntro03", 5];
|
||||
|
||||
uiSleep 3;
|
||||
|
||||
_boss say ["ExileIntro04", 5];
|
||||
|
||||
uisleep 6;
|
||||
|
||||
_boss say ["ExileIntro05", 5];
|
||||
|
||||
uisleep 5;
|
||||
|
||||
_boss say ["ExileIntro07", 5];
|
||||
_chopper engineOn true;
|
||||
|
||||
uisleep 3;
|
||||
|
||||
_boss say ["ExileIntro08", 5];
|
||||
|
||||
_chopper animateDoor ['Door_1_source', 1, false];
|
||||
_chopper animateDoor ['Door_2_source', 1, false];
|
||||
|
||||
uiSleep 10;
|
||||
|
||||
_boss say ["ExileIntro09", 5];
|
||||
|
||||
// Open chopper doors
|
||||
_chopper animateDoor ['Door_3_source', 1, false];
|
||||
_chopper animateDoor ['Door_4_source', 1, false];
|
||||
_chopper animateDoor ['Door_5_source', 1, false];
|
||||
_chopper animateDoor ['Door_6_source', 1, false];
|
||||
|
||||
uisleep 15;
|
||||
|
||||
// Fade out sound and screen to black/silent
|
||||
5 fadeSound 0;
|
||||
titleText ["", "BLACK OUT", 5];
|
||||
|
||||
// Cleanup after 5 seconds
|
||||
uiSleep 5;
|
||||
|
||||
_camera cameraEffect ["terminate","back"];
|
||||
|
||||
camDestroy _camera;
|
||||
|
||||
{
|
||||
deleteVehicle _x;
|
||||
}
|
||||
forEach _objectStorage;
|
||||
*/
|
||||
ExileClientIntroIsPlaying = false;
|
||||
|
||||
true
|
1422
ExileServers/ExileAltis/mpmissions/Exile.Altis/mission.sqm
Normal file
1422
ExileServers/ExileAltis/mpmissions/Exile.Altis/mission.sqm
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Server</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Dem Server Rulz</h1>
|
||||
<p>Do not talk about Exile.</p>
|
||||
<p>Do not talk about Exile.</p>
|
||||
<p>Do not kill dem bambies.</p>
|
||||
<p>Do not be a dickhead.</p>
|
||||
<p>Teamspeak blah</p>
|
||||
</body>
|
||||
</html>
|
48
ExileServers/ExileAltis/restartserver.bat
Normal file
48
ExileServers/ExileAltis/restartserver.bat
Normal file
@ -0,0 +1,48 @@
|
||||
|
||||
@echo off
|
||||
|
||||
::TURN OFF FIREWALL RULE TO PREVENT NETWORK TRAFFIC
|
||||
echo Disabling firewall rules for this server
|
||||
netsh advfirewall firewall delete rule name="ExileAltis" program="C:\ExileServers\ExileAltis\arma3server_x64.exe"
|
||||
timeout 3
|
||||
|
||||
::MAKE SURE ALL TASKS ARE REALLY STOPPED
|
||||
echo Making sure all instances of this server have stopped
|
||||
taskkill /f /fi "status eq not responding" /im servermonitor.exe
|
||||
taskkill /f /im servermonitor.exe
|
||||
taskkill /f /fi "status eq not responding" /im bec.exe
|
||||
taskkill /f /im bec.exe
|
||||
taskkill /f /fi "status eq not responding" /im arma3server_x64.exe
|
||||
taskkill /f /im arma3server_x64.exe
|
||||
timeout 5
|
||||
|
||||
::RESTARTING THE ARMA 3 SERVER
|
||||
echo Starting ARMA 3 Server...
|
||||
C:\Windows\System32\cmd.exe /C start "arma3" "C:\ExileServers\ExileAltis\arma3server_x64.exe" "-mod=@exile;" "-servermod=@extdb3;@Exileserver;" -config=C:\ExileServers\ExileAltis\DonkeyPunch\config.cfg -port=2302 -profiles=DonkeyPunch -cfg=C:\ExileServers\ExileAltis\DonkeyPunch\basic.cfg -name=DonkeyPunch -BEPath=C:\ExileServers\ExileAltis\battleye -autoINIT -Loadmissiontomemory
|
||||
echo ARMA 3 Server is started
|
||||
timeout 25
|
||||
|
||||
::RESTARTING BATTLEYE
|
||||
echo Start BEC
|
||||
set bec="C:\ExileServers\ExileAltis\battleye\BEC"
|
||||
cd /d %bec%
|
||||
start "" /min "bec.exe" --dsc config.cfg
|
||||
echo Battleye has started..
|
||||
timeout 15
|
||||
|
||||
:: THIS RUNS THE SERVER MONITOR FOR YOU SO YOU DON'T FORGET
|
||||
echo Starting Server Monitor Loop
|
||||
set ServerMonitorPath="C:\ExileServers\ExileAltis"
|
||||
cd /d %ServerMonitorPath%
|
||||
start "" "servermonitor.bat"
|
||||
echo Server Monitor has started. Have Fun
|
||||
timeout 10
|
||||
|
||||
::OPEN UP FIREWALL FOR NETWORK TRAFFIC
|
||||
echo Turning on Firewall Rule to allow server network traffic
|
||||
netsh advfirewall firewall add rule name="ExileAltis" dir=in action=allow program="C:\ExileServers\ExileAltis\arma3server_x64.exe" enable=yes
|
||||
echo Firewall is on and players can join
|
||||
|
||||
::FINISHED
|
||||
timeout 2
|
||||
@exit
|
23
ExileServers/ExileAltis/servermonitor.bat
Normal file
23
ExileServers/ExileAltis/servermonitor.bat
Normal file
@ -0,0 +1,23 @@
|
||||
@echo off
|
||||
::IMPORTANT TO NAME IT SO WE CAN KILL IT
|
||||
title servermonitor.bat
|
||||
:start
|
||||
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3server_x64.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3server_x64.exe">NUL
|
||||
if "%ERRORLEVEL%"=="0" goto loop
|
||||
echo Server is not running, will be started now
|
||||
start "" /min /wait "C:\ExileServers\ExileAltis\restartserver.bat - Shortcut"
|
||||
timeout 30
|
||||
echo Server started succesfully
|
||||
exit
|
||||
goto started
|
||||
:loop
|
||||
cls
|
||||
echo Server is already running, running monitoring loop
|
||||
:started
|
||||
::THE 80 REFERS TO SECONDS AND HOW OFTEN IT WILL CHECK,YOU CAN SET IT TO WHATEVER YOU WANT. I JUST DONT WANT MY SERVER DOWN FOR MUCH LONGER THAN THAT!
|
||||
::New error fault kill, will check for err fault and clear it and hopefully restart, a little more promise but no guarantee :)
|
||||
taskkill /f /im WerFault.exe /fi "WINDOWTITLE eq Arma 3"
|
||||
C:\Windows\System32\timeout /t 150
|
||||
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3server_x64.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3server_x64.exe">NUL
|
||||
if "%ERRORLEVEL%"=="0" goto loop
|
||||
goto start
|
BIN
ExileServers/ExileAltis/tbbmalloc.dll
Normal file
BIN
ExileServers/ExileAltis/tbbmalloc.dll
Normal file
Binary file not shown.
BIN
ExileServers/ExileAltis/tbbmalloc_x64.dll
Normal file
BIN
ExileServers/ExileAltis/tbbmalloc_x64.dll
Normal file
Binary file not shown.
14
license.txt
Normal file
14
license.txt
Normal file
@ -0,0 +1,14 @@
|
||||
Exile Mod 64bit Base Server Layout
|
||||
|
||||
This github repo is for use by new and even experienced server hosts / community owners.
|
||||
You are free to download, fork, edit and put up on your server to enjoy 64bit arma 3 and exile / eXpoch or any exile variant.
|
||||
|
||||
This repo is licensed under APL-SA and is free to use / modify / redistribute
|
||||
Please pay attention and read any included licensing files for the respective addon its with.
|
||||
This repo includes files licensed outside the scope of APL-SA.
|
||||
You must follow the licensing included within the packages,
|
||||
This includes Exile / extDB3 / BattlEye / BEC
|
||||
Please refer to the Floss Exception for concerns with extDB3 licensing.
|
||||
|
||||
|
||||
Arma Public License Share Alike https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
75
readme.md
Normal file
75
readme.md
Normal file
@ -0,0 +1,75 @@
|
||||
# Exile 1.0.2 + 64-bit and Dynamic Simulation
|
||||
|
||||
This repo is licensed under APL-SA and is free to use / modify / redistribute
|
||||
Please pay attention and read any included licensing files for the respective addon its with.
|
||||
This repo includes files licensed outside the scope of APL-SA.
|
||||
You must follow the licensing included within the packages,
|
||||
This includes Exile / extDB3 / BattlEye / BEC
|
||||
Please refer to the Floss Exception for concerns with extDB3 licensing.
|
||||
|
||||
## Details
|
||||
|
||||
1. Provides base for server hosts to get started and started properly
|
||||
|
||||
2. RestartServer.bat file included
|
||||
- Handles all aspects of restart
|
||||
- Turns off firewall rule (no network = no players connected to server)
|
||||
- Makes sure everything has in fact been shut down / stopped
|
||||
- Starts back up Arma 3 server using startupParameters
|
||||
- Starts back up Battleye Extended Controls
|
||||
- Turns back on firewall rule
|
||||
|
||||
3. BattlEye and BEC setup and configured
|
||||
- BattlEye bans.txt and BEServer.cfg with database
|
||||
- Config setup and ready
|
||||
- Scheduler setup and working
|
||||
|
||||
4. 64-bit extDB3 and Server plus Dynamic Simulation
|
||||
- Thanks to @CloudHax and @Torndeco for their public release of their work
|
||||
|
||||
## Installation
|
||||
|
||||
NOTES:
|
||||
This repo is only for file structure
|
||||
This repo does not include any EXILE client or server pbo's
|
||||
|
||||
1. Copy this repo to your C: drive
|
||||
|
||||
2. Copy the Arma 3 Server files from steam into your C: >> ExileServers >> ExileAltis folder
|
||||
|
||||
3. Add your full @Exile client addon and your @ExileServer server addons
|
||||
- Modify as needed C: >> ExileServers >> ExileAltis >> @ExileServer >> exile_server_config >> config.cpp
|
||||
- PBO up the exile_server_config folder
|
||||
|
||||
4. Setup your server name and other settings in the DonkeyPunch >> config.cfg
|
||||
|
||||
5. Add your MYSQL user and pw to the C: >> ExileServers >> ExileAltis >> @extDB3 >> extdb3-conf.ini
|
||||
|
||||
6. Right Click and Create Shortcut for C: >> ExileServers >> ExileAltis >> restartserver.bat
|
||||
- Right Click new shortcut >> click advanced >> click Run as Administrator
|
||||
|
||||
OPTIONAL:
|
||||
|
||||
7. Add your purchased infiStar antihack and configure it for your needs
|
||||
- Locate your passwords in C: >> ExileServers >> ExileAltis >> DonkeyPunch >> config.cfg
|
||||
|
||||
You now have a server setup on your Dedicated or PC environment.
|
||||
You should already have knowledge setting up MySql and the exile database.
|
||||
There are plenty of resources on the web and at exilemod.com for you to read.
|
||||
I will not provide support on setting up mysql servers, read above comment for more info.
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
- ExileMod Development Team
|
||||
- BIS Development Team
|
||||
- Torndeco
|
||||
- CloudHax
|
||||
- DPCG Contributors
|
||||
- and anyone else I might not have listed here!
|
||||
|
||||
## TROUBLESHOOTING
|
||||
|
||||
If you have issues with BEC connecting to your server, edit the IP address for your server in these files below
|
||||
1. C: >> ExileServers >> ExileAltis >> battleye >> beserver_x64.cfg
|
||||
2. C: >> ExileServers >> ExileAltis >> battleye >> BEC >> Config >> config.cfg
|
Loading…
Reference in New Issue
Block a user