139 Commits
gui ... master

Author SHA1 Message Date
Vortrex
588359ef27 Create ECONOMY.md 2023-03-02 05:15:26 -06:00
Vortrex
62a4581c55 Update README.md 2023-02-18 14:20:37 -06:00
Vortrex
0607057f3f Update README.md 2023-02-18 14:18:46 -06:00
Vortrex
ab4cd7a212 Add features list 2023-02-18 14:17:57 -06:00
Vortrex
529a6bb3a0 Remove everybody from vehicle before stopping rent 2023-02-07 15:35:41 -06:00
Vortrex
0593c36a06 Use server ID when creating char server data 2023-02-07 15:35:26 -06:00
Vortrex
280573069c Merge branch 'master' of https://github.com/VortrexFTW/v-roleplay 2023-02-07 15:11:04 -06:00
Vortrex
ebcc79b135 Fix subaccount default server data 2023-02-07 15:10:59 -06:00
Vortrex
b6ffbf0381 Console output prefix 2023-02-07 15:10:49 -06:00
Vortrex
30120d0640 Rename 2023-02-07 15:10:23 -06:00
Vortrex
6a5baf53d4 Fix db defaults 2023-02-07 15:10:17 -06:00
Vortrex
44b625cc29 Update README.md 2023-01-28 10:44:30 -06:00
Vortrex
761e6d00ef Update README.md 2023-01-28 10:39:29 -06:00
Vortrex
053691d195 Merge branch 'nightly' 2023-01-23 14:45:51 -06:00
Vortrex
a5b9840729 Make default server ID 1 2023-01-23 14:44:48 -06:00
Vortrex
e11a5b34ad Create account data based on servers in svr_main 2023-01-23 14:40:11 -06:00
Vortrex
1f31132070 Change default "no account" ID to 1 2023-01-23 14:39:21 -06:00
Vortrex
139bb78064 Create COMMANDS.md 2023-01-23 13:32:20 -06:00
Vortrex
821257db34 Update IDEAS.md 2023-01-23 13:27:57 -06:00
Vortrex
6f04a6e2dd Update IDEAS.md 2023-01-23 13:27:37 -06:00
Vortrex
02678e5654 Reset database auto increments 2023-01-20 00:01:52 -06:00
Vortrex
667dfb2167 Update README.md 2023-01-19 22:19:26 -06:00
Vortrex
4446aab960 Update README.md 2023-01-19 22:17:47 -06:00
Vortrex
17f4a7df24 Update README.md 2023-01-19 22:17:19 -06:00
Vortrex
38cf009e3a Merge branch 'nightly' 2023-01-19 22:12:37 -06:00
Vortrex
b15c611a01 Merge branch 'nightly' of https://github.com/VortrexFTW/v-roleplay into nightly 2023-01-19 22:09:38 -06:00
Vortrex
c5bafd2b2f Add database.sql 2023-01-19 22:09:31 -06:00
Vortrex
1e9dd13730 Merge pull request #7 from Suprise444/patch-1
updated polish locales
2023-01-17 02:45:31 -06:00
Suprise444
e858be2575 updated polish locales
16/01/2023
2023-01-16 22:02:51 +01:00
Vortrex
f63770ba06 Civilian white is a colour type, not name 2023-01-11 00:04:14 -06:00
Vortrex
11853807f6 No need to remove insert keybind (not used anymore) 2023-01-11 00:03:58 -06:00
Vortrex
cda7191fee Use server spawnPlayer for skin setting 2023-01-11 00:03:41 -06:00
Vortrex
7b7ab19a17 Don't allow IV cellphone 2023-01-11 00:03:29 -06:00
Vortrex
c87805a5fe Fix missing indicators for businesses 2023-01-11 00:03:11 -06:00
Vortrex
51e0d63b3d Use ped id for collision util 2023-01-11 00:02:57 -06:00
Vortrex
ae215aa0db Update IDEAS.md 2022-12-28 00:05:24 -06:00
Vortrex
aa3b3b968a Update IDEAS.md 2022-12-28 00:03:43 -06:00
Vortrex
d2a016926d Update IDEAS.md 2022-12-28 00:02:26 -06:00
Vortrex
505132bf3a Update IDEAS.md 2022-12-27 23:56:53 -06:00
Vortrex
b0192b9ce9 Update IDEAS.md 2022-12-27 23:56:06 -06:00
Vortrex
fe945ac56b Delete TODO.md 2022-12-27 23:41:06 -06:00
Vortrex
63811d4b11 Update TRANSLATE.md 2022-12-27 23:39:05 -06:00
Vortrex
104f5a1e1b Add info for providing server translations 2022-12-27 23:38:40 -06:00
Vortrex
66391bcaad Change logos 2022-12-27 23:34:15 -06:00
Vortrex
bacb54423b Add locale files 2022-12-27 23:32:41 -06:00
Vortrex
ea31b69bd3 Update config files 2022-12-27 23:31:54 -06:00
Vortrex
65aacb6389 Remove old database file (will add new soon) 2022-12-27 23:28:17 -06:00
Vortrex
fe92098952 Remove config files from gitignore 2022-12-27 23:27:59 -06:00
Vortrex
9e5e410582 Remove garbage collector stuff 2022-12-21 08:19:05 -06:00
Vortrex
e055bbb128 Reduce log levels to info 2022-12-21 08:18:50 -06:00
Vortrex
4245f3cf02 Merge branch 'master' of https://github.com/VortrexFTW/v-roleplay 2022-12-19 10:38:21 -06:00
Vortrex
0f94714f6e Merge branch 'nightly' 2022-12-19 10:38:05 -06:00
Vortrex
d8f5b04df2 Update README.md 2022-12-19 10:36:10 -06:00
Vortrex
bd29a9f7d5 Change copyright, consts, and net events prefix 2022-12-19 10:11:10 -06:00
Vortrex
df0bf2fdd7 Remove old util 2022-12-18 17:38:02 -06:00
Vortrex
dd30b9c389 Fix for admin buy of biz-owned veh 2022-12-18 17:27:02 -06:00
Vortrex
58b587c0e2 Output message for fixblips and fixpickups 2022-12-18 15:58:47 -06:00
Vortrex
c1fda19473 Delete business after message 2022-12-18 15:53:15 -06:00
Vortrex
2496d569da Wrong locale string for ban cmds 2022-12-18 15:53:00 -06:00
Vortrex
8b94a4160b Only show /admins that are logged in 2022-12-18 15:52:49 -06:00
Vortrex
c53e42ae70 Woops forgot var for fee 2022-12-18 15:43:27 -06:00
Vortrex
dea5e99ed7 Chat list index colour 2022-12-18 15:43:15 -06:00
Vortrex
0b1662eb46 Fix vehrespawn cmd + currency string in vehinfo 2022-12-18 15:43:04 -06:00
Vortrex
5b522e3098 Show error if geoip cmd fails 2022-12-18 15:22:59 -06:00
Vortrex
f8ff02b9be Wrong locale string for GUI window title 2022-12-18 15:22:50 -06:00
Vortrex
dbc200faf6 Wrong info used in plrinfo command 2022-12-18 15:22:36 -06:00
Vortrex
656747de1c Wrong locale name + item display changes 2022-12-18 15:22:24 -06:00
Vortrex
8ee1356680 Set correct job blips on player spawn 2022-12-18 15:22:14 -06:00
Vortrex
20f1dcfd0c Default account settings (unfinished) 2022-12-18 15:21:56 -06:00
Vortrex
e1f6f62ada Don't permasync non-looped anims 2022-12-18 15:21:39 -06:00
Vortrex
59d41f8482 New query system to ease port for RageMP 2022-12-18 14:35:39 -06:00
Vortrex
79eb7e2424 Null error checking 2022-12-18 12:18:17 -06:00
Vortrex
f1e3ece40e Woops wrong delete item func name 2022-12-18 12:18:08 -06:00
Vortrex
dea2765daf Add action tip msg func 2022-12-18 12:17:53 -06:00
Vortrex
35f4143d9b Use radio station database ID for house save 2022-12-18 12:17:45 -06:00
Vortrex
7ed0cc0e26 Make vehicle inline chat colour softer, easier to read 2022-12-17 14:51:14 -06:00
Vortrex
02ae2db0b2 Make nearveh list a bit easier to read 2022-12-17 14:50:52 -06:00
Vortrex
f98f586ecf Job route location types 2022-12-17 14:50:31 -06:00
Vortrex
e31b21d766 Recache item bool 2022-12-17 14:50:17 -06:00
Vortrex
3d23ef5871 Don't recache all items until finished removing 2022-12-17 14:50:06 -06:00
Vortrex
382155a452 Collision state natives 2022-12-17 14:49:40 -06:00
Vortrex
68b6bee79a New automatic login stuff 2022-12-17 14:49:27 -06:00
Vortrex
80795122eb Check null client and data for nametag 2022-12-17 14:48:46 -06:00
Vortrex
913e36449a Fix for gotoloc cmd 2022-12-17 14:48:35 -06:00
Vortrex
b0b99f2086 Move animals to bottom of skins array (GTA V) 2022-12-11 05:05:17 -06:00
Vortrex
6f10426063 Add missing discord event 2022-12-11 05:05:05 -06:00
Vortrex
14b78eb338 Fix config assoc 2022-12-11 05:04:56 -06:00
Vortrex
2f4e72e2a8 Increase log level 2022-12-11 05:04:48 -06:00
Vortrex
c55b850f60 Fix NPC query assoc 2022-12-11 05:04:39 -06:00
Vortrex
a495f70239 New assoc table usage 2022-12-11 04:49:53 -06:00
Vortrex
b10118e1ab Use new fetch assoc stuff 2022-12-11 04:05:24 -06:00
Vortrex
b228981e05 Reset paintball on last player leave + payout 2022-12-11 02:03:30 -06:00
Vortrex
ba624f13c3 New query assoc native 2022-12-11 02:03:13 -06:00
Vortrex
8350edac74 Use new query assoc stuff 2022-12-11 02:02:55 -06:00
Vortrex
4cf72b610e Paintball players array 2022-12-11 02:02:45 -06:00
Vortrex
833f8872e2 Add entrance fee to business labels 2022-12-11 02:02:34 -06:00
Vortrex
0b564d66e8 Rename main.js to core.js for client 2022-12-11 02:01:10 -06:00
Vortrex
700e928bcc Increment script version 2022-12-10 01:54:55 -06:00
Vortrex
5044f6466e Add vehicle seat constants to shared 2022-12-10 01:54:42 -06:00
Vortrex
db40be7577 Use falling snow only 2022-12-10 01:54:11 -06:00
Vortrex
268a3a5f60 Add new script cvars system 2022-12-10 01:54:01 -06:00
Vortrex
df05c18499 Rename client main to core to match server 2022-12-10 01:53:47 -06:00
Vortrex
5862349117 New util for is player owner of vehicle 2022-11-21 11:38:41 -06:00
Vortrex
0703ccb1a3 Use cloudy/foggy weather for snow in SA 2022-11-07 13:37:19 -06:00
Vortrex
f9d1e8c384 Remove old workaround for IV 2022-11-07 13:36:52 -06:00
Vortrex
cab6eace3a Vehicle engine util 2022-11-07 13:36:43 -06:00
Vortrex
e1c82789d7 Unfinished command 2022-11-07 13:36:29 -06:00
Vortrex
eae9e8266b Remove engine workaround 2022-11-07 13:36:22 -06:00
Vortrex
2aefa09340 Fixes for new IV sync 2022-11-07 13:35:49 -06:00
Vortrex
01ba414e9c Fix object model from params 2022-11-02 06:52:11 -05:00
Vortrex
fdf2d4a02f Enable server elements for IV (testing) 2022-11-02 06:52:01 -05:00
Vortrex
b1f9042b96 Fallback country ISO code if GeoIP fails 2022-11-02 06:51:47 -05:00
Vortrex
757df5db86 Don't force snow when starting/stopping 2022-11-02 06:51:34 -05:00
Vortrex
20d8b17099 Use older game char spawn mechanism for IV 2022-11-02 06:51:13 -05:00
Vortrex
39ec134b25 Handle reset keybinds prompt 2022-11-02 06:50:53 -05:00
Vortrex
79812375f1 Remove some extra IV workarounds 2022-11-02 06:50:33 -05:00
Vortrex
95abb20b5e Fallback country ISO code if GeoIP fails 2022-11-02 06:50:03 -05:00
Vortrex
44895aa2d0 Comment keybind combo (unfinished) 2022-11-02 06:49:46 -05:00
Vortrex
cf0c578699 Fix command help 2022-11-02 06:49:29 -05:00
Vortrex
d144ef954d Comment some unused stuff 2022-11-02 06:49:21 -05:00
Vortrex
c091cb249a JSDoc 2022-11-02 06:48:49 -05:00
Vortrex
d7eb7d3e3a Force snow if enabled 2022-11-02 06:48:40 -05:00
Vortrex
160090674a Fix wrong var name in local cash 2022-11-02 06:48:29 -05:00
Vortrex
0e32d8bed8 Add probability bool and weather data util 2022-10-29 10:08:50 -05:00
Vortrex
2e75230d38 Shorten floats in near veh + don't take money for admin cmds 2022-10-29 10:08:32 -05:00
Vortrex
0f49ebfa63 Force ground snow 2022-10-29 10:08:09 -05:00
Vortrex
7f1ab3a3e4 Fix property enter/exit 2022-10-29 10:08:02 -05:00
Vortrex
afed90a2eb Fix DM message + show sent message 2022-10-29 10:07:49 -05:00
Vortrex
3eda3acef7 Set player distance to infinite + fix veh save 2022-10-29 10:07:36 -05:00
Vortrex
c75ef6b89a Reduce default log level 2022-10-29 10:07:06 -05:00
Vortrex
a817db618b Custom weather array 2022-10-29 10:06:57 -05:00
Vortrex
455e87bd87 Set default current pickup to null 2022-10-29 10:05:56 -05:00
Vortrex
98fda983a5 Show reply action tip if not seen 2022-10-29 10:05:43 -05:00
Vortrex
1eac24669f Force ground snow 2022-10-29 10:05:28 -05:00
Vortrex
fb9e55e7e8 Merge branch 'nightly' 2022-08-13 13:09:35 -05:00
Vortrex
49d212b9fd Backup current script state 2022-07-26 02:18:13 -05:00
Vortrex
1022ca4944 Merge branch 'nightly' 2022-05-31 08:36:39 -05:00
Vortrex
75fd982a49 Merge pull request #5 from Suprise444/patch-1
May 2, 2022
2022-05-02 16:01:47 -05:00
Suprise444
1992359c3c May 2, 2022 2022-05-02 22:48:03 +02:00
157 changed files with 18660 additions and 11393 deletions

4
.gitignore vendored
View File

@@ -1,7 +1,3 @@
.vs/
.git/
*.code-workspace
config/database.json
config/email.json
config/discord.json
locale/*

194
COMMANDS.md Normal file
View File

@@ -0,0 +1,194 @@
## Player Commands
### Account
* /login
* /register
* /changepass
* /setemail
* /verifyemail
### Character
* /newchar /usechar /switchchar
* /autolastchar
### Settings
* /logo
* /gui
* /lang
* /notips
* /loginalert
* /scrolllines
* /chatautohide
* /chatfilter
* /chatemoji
* /chattime
### Chat
* /me
* /do
* /s
* /shout
* /talk
* /local
* /l
* /w
* /whisper
* /clanchat
* /clan
* /c
* /m
* /dm
* /reply
### Items
* /i
* /item
* /pickup
* /=--drop
* /put
* /take
* /use
* /inv
* /inventory
* /items
* /houseitems
* /bizstorage
* /bizfloor
* /buylist
* /power
* /freq
* /radio
* /r
### Vehicle
* /nearveh
* /oldveh
* /lastveh
* /oldcar
* /lastcar
* /engine
* /siren
* /lights
* /vehclan
* /vehbiz
* /vehrank
* /vehinfo
* /vehrent
* /vehrentprice
* /vehbuyprice
* /vehstoprent
* /vehbuy
* /vehcolour
* /vehlivery
* /vehrepair
* /passenger
### Business
* /bizbuy
* /bizfee
* /biztill
* /bizbalance
* /bizwithdraw
* /bizdeposit
* /buy
* /bizstock
* /bizstore
* /bizorder
* /bizitemprice
* /bizname
* /bizowner
* /bizrank
* /bizclan
* /bizbuyprice
* /bizinfo
* /bizflooritems
* /bizstorageitems
* /bizdealership
* /bizpaintball
### Clan
* /clans
* /clanchat
* /c
* /clanranks
* /clanflags
* /clanaddrank
* /clandelrank
* /clansetrank
* /clanowner
* /clantag
* /clanranktag
* /clanmembertag
* /clanrankname
* /clanranklevel
* /clanmembertitle
* /clanaddrankflag
* /clanrankflags
* /clandelrankflag
* /clanaddmemberflag
* /clandelmemberflag
### House
* /houseinfo
* /housebuy
* /houseclan
* /houseowner
* /housebuyprice
* /houserentprice
### Keybinds
* /bindkey
* /unbindkey
* /keybinds
### Misc
* /idea
* /bug
* /pos
* /enter
* /cursor
* /yes
* /no
* /help
* /suicide
* /lights
* /lock
* /admins
* /mousecam
* /cursor
* /speak
* /gps
* /stuck
### Job
* /takejob
* /startwork
* /stopwork
* /startjob
* /stopjob
* /quitjob
* /uniform
* /equip
* /department
* /d
* /fare
* /detain
* /drag
* /search
* /startroute
* /stoproute
* /jobinfo
* /joblocinfo
### Animation
* /anim
* /an
* /e
* /anims
* /animlist
* /stopanim
### Radio
* /radiostation
* /radiostations
* /radiovolume

41
ECONOMY.md Normal file
View File

@@ -0,0 +1,41 @@
# Economy Information
### Basic Information
Each server has it's own independent economy with simulated inflation and is designed to slowly self-repair over time, assuming nothing is affecting it too heavily.
---
### Asset Ownership
Any player or clan is allowed to own as many businesses, vehicles, and houses as they want. However, it should be noted that the more you own, the more upkeep (via taxes, insurance, etc) is required. Failure to maintain this upkeep for too long will automatically force you to lose the unmaintained assets. Vehicle owners can park their car anywhere (subject to IC parking laws), store items in the trunk or dash compartment, give anybody access, and set the price if they want to make it available to buy, and more. Business owners can stock their store with any item they want, set what prices they want for any item for sale, close/open the business, keep a stock of items in the business's storage, force people to pay a fee to enter, and more. House owners can store items in their house, purchase a safe, decorate with furniture, give anybody access, and more.
---
### Ordering Items for a Business
Ordering items is simple: just use the /bizorder command.
You'll need to specify which item you want to order and how many.
Remember, the prices will vary depending on certain circumstances.
The formula is as follows:
> Base price * server inflation * demand * risk * amount
**Here's a breakdown on how the above formula works:**
* First, each item has a base price. This value will never change.
* Next, the base price is multiplied by the server's current inflation value. When the servers were first opened, the inflation value is 100%, which means no inflation. Everything cost 100% of it's calculated price. However, the inflation will slowly increase over time, simulating realistic economy inflation.
* Next, the inflated price is then multiplied by the demand factor, which is determined by how much demand there is for the item you want. Every 10 of the item ordered increases the demand value by 10%, and this will slowly go back down over time. If another business just ordered 100 of the item you want, the demand has forced the item's order price to increase by 100%, which means it's now double the original price. This simulates the things involved with increased demand, such as the extra manufacturing and shipping needed to get this item imported to your business.
* Next, the cost is multiplied by a risk value. This value never changes, and varies depending on the item. For illegal items, the risk value will be lower for less-risky items and higher as they get worse. For example, a shotgun versus an AK-47 have different risk levels, as an AK-47 is a far deadlier and a harder to get weapon, and is more difficult to conceal through customs. This simulates the "risk" of ordering items like these. For legal items, there is no risk so the risk price won't increase for those.
* Finally, the order cost is multiplied by the amount you want to order.
**An example of this formula in action is below ... shown for an order for 10 AK-47's with no inflation**
*The demand is increased by 10% since you're ordering 10 of them. 1 = 100% of the normal cost, 1.1 = 110%, and so on.*
> Base price $1000
> x inflation 1 = $1000
> x demand 1.1 = $1100
> x risk 5 = $5500
> x amount 10 = $55000
So as you can see, the total cost to order 10 AK-47's in this scenario is $55,000. Remember, an AK-47 is a deadly and uncommon weapon (and highly illegal!) so it's a very risky and costly thing to do business with.

116
IDEAS.md
View File

@@ -1,8 +1,10 @@
# Ideas
---
**NOTICE: Most of these ideas are totally random and some might be unrealistic. Every time I thought of something, I just immediately threw it into this file. I never checked to see if I had already added it, so there may be duplicates or similar entries spread out and unorganized.**
---
### Businesses (some from GTA Online)
### Businesses
*Inspiration from GTA Online*
* Nightclubs
* Executive Offices
* Warehouses
@@ -11,10 +13,14 @@
* Garages
* Casinos
---
### Interactive peds with each one having a background story, characteristics, certain people or groups they like/dislike.
### Interactive peds with each one having a background story, characteristics, certain people or groups they like/dislike
*Inspiration from Skyrim and many other RPGs*
* Procedurally generated?
---
### Bouncers
*Inspiration from GTA IV clubs*
* Nightclubs, bars, etc can employ "bouncer" peds that either prevent entry to certain people, or kick people out.
---
### Background ambience.
@@ -29,53 +35,73 @@
* Relationship levels with each player and clan. If you piss them off, they won't do business with you.
---
### Firefighter Job
*Inspiration from making this for SA-MP and LU long ago*
* Vehicles catch on fire instead of blowing up.
* Random property fires can occur.
* Firetrucks can "spray" a fire, lowering the damage until it is extinguished (Aim detection).
---
### Streetsweeper Job
*Inspiration from making this for SA-MP long ago*
* Instead of checkpoints, show actual messes on the road.
* Drive over the messes with the right vehicle to "clean" the mess.
* Only show messes if at least one player is on duty.
---
### Garbageman Job
*Inspiration from making this for SA-MP long ago*
* Instead of checkpoints, have trashbag objects outside of properties or wherever.
* Allow the trashtruck drivers to "pickup" the trashbag, then "place" into the truck.
* If the truck is full, deliver the trashbags to the dump.
* Only show trashbags if at least one player is currently doing the job.
---
### Mailman Job
*Inspiration from making this for SA-MP and LU long ago*
* Use a white solid van (Pony maybe) as a mail van.
* Load mail at the post office, and drive a specific route to "deliver" mail.
* Return the truck for payment.
---
### Vehicle Towing
*Inspiration from making this for SA-MP and LU long ago*
* Use a Yankee or something to store the vehicle "inside" (just make the car disappear) until better sync options are built.
* Universal command to tow/release a vehicle ( /tow ).
* Universal command to tow/release a vehicle (/tow).
* Try attach to nearest vehicle.
---
### Item System (FINISHED)
*Inspiration from making this for SA-MP and LU long ago*
* Several item types, including armour, skins, weapons, drugs, materials, and more.
* Items can be dropped and picked up.
* Items can be stored in a vehicle trunk or dash compartment.
* Items can be given, taken, or used.
---
### Payphones
*Inspiration from making this for SA-MP and LHMP long ago*
* Make built in payphones usable (detect position, ring sound, etc)
* Payphones can be called, making them ring to nearby players.
---
### Multiple bed hospital.
*Inspiration from Star Citizen*
* When one is taken, use the next one.
* If all are full, have a waiting list.
* Allow people to go in and lay on a bed to heal (or use a check-in system)
---
### Several NPC's (NEEDS SPAWNED)
### Several NPC's
*Inspiration from singleplayer GTA*
* Paramedics/Doctors at hospitals,
* LC/VC/LS/SF/LV police dept desk clerk and dispatcher.
* Jail guard
* Interactive. Go up and talk to them for responses etc
---
### Use permissions/flag system for everything (FINISHED)
*Inspiration from a SA-MP server I helped with long ago, and making this for LU later on*
* Admin abilities
* Moderation (muted/frozen/etc)
* LEO abilities (skipped for now)
@@ -84,22 +110,32 @@
* etc
---
### Interiors (FINISHED)
*Inspiration from a SA-MP server I helped with long ago*
* For games with interiors, properties inside of properties (possibly make it a sub-property, but using a "type" to define it. May not be necessary) AKA a business inside a business (illegal back room gambling, anyone?)
---
### Stealable skins.
*Inspiration from an idea a friend pitched to me long ago, never saw the light of day*
* When one is stolen, it is replaced by the thief's skin
---
### Black market for anything.
*Inspiration from an idea a friend pitched to me long ago, never saw the light of day. Similar to previous entry*
* Smuggled drugs
* LEO items
* Weapons and weapon upgrades
* Illegal vehicle upgrades like NOS.
---
### Drug houses and weed farms.
*Inspiration from Rhytz's weed farm on GTA Online*
* Make weed only plantable in certain areas.
* Drug houses aren't limited to the type of house, as anybody can deal or use in any place.
---
### Size-based inventories.
*Inspiration from other games with inventory system*
* Items should have a size and inventories can only hold so much.
* Items inside of items. This could be (but not limited to):
* Briefcases
@@ -110,6 +146,8 @@
* Use the item sizes for storage capacity
---
### Weapons like DayZ.
*Inspiration from ... it's in the title, duh*
* Multiple weapon types that issue different damages.
* Ammo clips that only fit a compatible weapon
* Different clip types hold different amounts of ammo in them (and specific ammo types)
@@ -117,6 +155,8 @@
* Modifications. Flashlight, silencer, bigger clip, tracer, scope, etc.
---
### Crime scene investigations.
*Inspiration from an old SA-MP server I made this for long ago*
* Blood
* Fingerprints
* Ballistics/bullets on ground, in objects, walls, etc.
@@ -129,6 +169,8 @@
* Rain washes away blood outside (if not under an object or bridge). Perhaps line of sight check with high up Z at same coord?
---
### Police interiors and garages.
*Inspiration from some SA-MP server I played on long ago*
* Multiple interrogation rooms with blocked sound (chat is localized to that room)
* Multiple offices for ranking members
* Detective squad rooms with a CO office
@@ -138,6 +180,8 @@
* Elevators that can take you to multiple levels of the building (and roof/garage).
---
### Police Computer
*Inspiration from an old SA-MP server I made this for long ago*
* Arrest logs
* Past tickets
* Officer reports
@@ -145,6 +189,8 @@
* APB list
---
### Admin panel.
*Inspiration from LU admin panel by Stoku*
* Reports
* Multiple actions for each
* Viewing info and past reports/actions on the reporter and the situation.
@@ -155,14 +201,20 @@
* Others
---
### Logging
*Inspiration from needing this to solve disputes between players on an old SA-MP server long ago*
* Log everything possible
---
### Injuries
*Inspiration from some old game that dealt with this stuff, can't remember which one*
* Depending on type of injuries, have multiple results occur over time.
* Gunshots lead to bleeding which could lead to passing out for loss of blood.
* Post-treatment effects are also possible including siezures from blunt force trauma.
---
### Interactive Actions
*Inspiration from GTA Chinatown Wars and Among Us*
* Hotwiring a car could be successful or could also fail, depending on vehicle type and variance.
* The user has to go through each step in order to complete the task.
* Hotwiring could have things like splitting and joining wires to make the car start or the alarm stop.
@@ -171,16 +223,22 @@
* Different vehicles have different wires to use to be successful.
---
### Limit weapons per person.
*Inspiration from a SA-MP server I managed long ago. The scripter called them taliban weapons because he stacked AK's on his back*
* Have a visible large weapon if they have one (attached)
* Concealable smaller weapon.
* Officers usually have a utility belt. Allow it to hold equipment as well.
---
### Vehicle Trunks
*Inspiration from GTA Chinatown Wars and Among Us*
* Can hold tied up players/peds
* Can hold items
* Size/capacity depending on vehicle
---
### Vehicle Interiors
*Inspiration from an old server I wanted to make this for before but never did*
* Get "inside" the back of trucks/trailers and store items inside.
* Use an interior for this and allow dropped items (including crates and boxes and etc).
* Shouts and certain speech can be heard outside wherever the truck is at.
@@ -188,17 +246,25 @@
* Also for airplane interiors
---
### Impound Lot
*Inspiration from some SA-MP server I played on long ago*
* Multi space impound lot. When retrieving a car from impound, spawn it in the first empty space that isn't obstructed.
---
### Weapon Wear and Tear
*Inspiration from DayZ*
* Weapons obtain damage from use and time. If not cared for, they can have decreased damage from shots, or even break or malfunction
* Cleaning weapons improves reliability
---
### Weapon Identification
*Inspiration from forensics system I made for a SA-MP server long ago*
* Weapons have identifying parts like barrel bores (for ballistics) and serial numbers.
* Serial numbers can be removed.
---
### Police Behavior
*Inspiration from cops in newer GTA games and an idea to mesh that with player cops working with them*
* Stars
* 1 star for an initial misdemeanor. Traffic violation, pedestrian crime, etc. Police will pursue to fine/ticket.
* 2 stars for any subsequent crimes committed in police presence, after receiving one star and no action taken (if you don't pull over, run on foot, etc). Results in arrest.
@@ -208,9 +274,10 @@
* NPC police will chase you if you have 1+ stars. If you lose them with 2 or less stars, they go away unless you are sighted by another officer before cooldown.
* Any traffic violation that takes place within LOS and range of police will cause them to chase you until you pull over.
* Failure to pull over within a timely manner, or breaking another law before pulling over adds a second star. They won't fine you at this level, only arrest or worse.
```
Player police officers can issue an APB for a player suspect. NPC police drive and walk around as normal in the game but if they spot the player suspect within a certain distance and line of sight, their position is sent to any player police officers via radio and shown as a blip on the radar. If the suspect evades the NPC police, the blip fades out at the last seen suspect location and eventually disappears, no longer available to player police officers. This means that the blip will continue to show other officers at the suspect's updated location until a) all police officers lose line of sight, b) suspect gets too far away or c) enters a house/business (losing line of sight with police unless they enter). All of these will cause the blip to show the suspects last known and seen location while the blip fades out and eventually disappears. Any officer that re-establishes line of sight within a certain distance will cause the suspect's blip to show again for all police. NPC police will NOT use the built-in wanted level system because this causes excessive spawning of police no matter where the suspect is generally completely unfair. Instead, scripting functions like ped.runTo, vehicle.setCarMission, vehicle.setCruiseSpeed, etc will be used to pursue the suspect. The logic in these functions is not perfect. The NPC officer can wreck the police car, get slowed down by traffic or stuck on something altogether, and the ped can be evaded by continously going around corners and such. All of this provides the ability for the suspect to have a chance of getting away. Changing skin/clothes or driving different/unknown vehicles reduces the NPC's line of sight and distance checking and thus reduces their chance of identifying them when near
```
```
Player police officers can issue an APB for a player suspect. NPC police drive and walk around as normal in the game but if they spot the player suspect within a certain distance and line of sight, their position is sent to any player police officers via radio and shown as a blip on the radar. If the suspect evades the NPC police, the blip fades out at the last seen suspect location and eventually disappears, no longer available to player police officers. This means that the blip will continue to show other officers at the suspect's updated location until a) all police officers lose line of sight, b) suspect gets too far away or c) enters a house/business (losing line of sight with police unless they enter). All of these will cause the blip to show the suspects last known and seen location while the blip fades out and eventually disappears. Any officer that re-establishes line of sight within a certain distance will cause the suspect's blip to show again for all police. NPC police will NOT use the built-in wanted level system because this causes excessive spawning of police no matter where the suspect is generally completely unfair. Instead, scripting functions like ped.runTo, vehicle.setCarMission, vehicle.setCruiseSpeed, etc will be used to pursue the suspect. The logic in these functions is not perfect. The NPC officer can wreck the police car, get slowed down by traffic or stuck on something altogether, and the ped can be evaded by continously going around corners and such. All of this provides the ability for the suspect to have a chance of getting away. Changing skin/clothes or driving different/unknown vehicles reduces the NPC's line of sight and distance checking and thus reduces their chance of identifying them when near
```
---
### NPC Types
* Bodyguards
@@ -288,14 +355,16 @@
* Admin functions for each one (ban, kick, delete, set owner, etc)
* Chat log
* Lists of submitted ideas and bug reports
---
### Web API
* REST-like URLs
* Type shortened to database table prefix style (/acct, /veh, etc)
* Auth token header
---
### Newspaper GUI
* Similar to SimCity 2000 ![Image](https://images.gog-statics.com/43b6c3011fbe107e37f397110065d90e8090a15ed9d5a89b749297897881ad9f_product_card_v2_mobile_slider_639.jpg)
*Inspiration from SimCity 2000*
![Image](https://images.gog-statics.com/43b6c3011fbe107e37f397110065d90e8090a15ed9d5a89b749297897881ad9f_product_card_v2_mobile_slider_639.jpg)
---
### Tutorial Stuff
* Two sets of flags for each tutorial. One for "already finished" and "declined tutorial"
@@ -336,10 +405,19 @@
* Use pointing (finger?) animation if available
---
### Multi-command one-liners
Obviously this would still be using slashes for commands still. The way this works is simple: Every command returns a value `{RETURN}`, and provides indexed numerical references to it's args that can be *piped* to another command `{1}`, `{2}`, etc. For example, the /tempveh command adds a vehicle and provides both a reference to the vehicle itself (`{RETURN}`) and a reference to it's only argument (`{1}`). Some commands already implement a final, optional command to override the default chosen entity to act on (for example, `/bizname Some Business 3` will set business ID 3's name instead of the closest business to the player. Only works for staff with the manageBusinesses permission or if the player using it owns or is in the clan that owns business ID 3 and has the ability to set it's name. So this: `/tempveh infernus | /vehrgb 0 0 0 0 {RETURN} | /vehrgb 1 {2} {3} {4} {RETURN}` Would spawn a temporary infernus and immediately set both colours as completely black RGB values.
```
Obviously this would still be using slashes for commands still. The way this works is simple: Every command returns a value {RETURN}, and provides indexed numerical references to it's args that can be piped to another command {1}, {2}, etc. For example, the /tempveh command adds a vehicle and provides both a reference to the vehicle itself (`{RETURN}`) and a reference to it's only argument (`{1}`). Some commands already implement a final, optional command to override the default chosen entity to act on (for example, `/bizname Some Business 3` will set business ID 3's name instead of the closest business to the player. Only works for staff with the ManageBusinesses permission or if the player using it owns or is in the clan that owns business ID 3 and has the ability to set it's name.
So this:
/tempveh infernus | /vehrgb 1 0 0 0 {RETURN} | /vehrgb 2 {2} {3} {4} {RETURN}`
Would spawn a temporary infernus and immediately set both colours as completely black RGB values.
```
---
### Real time display
* Steam has the player's local time on it's overlay. Something like that. Toggleable in account settings of course.
### Real time clock display
*Inspiration from Steam in-game overlay*
---
### New items
*Street Vendors/Fairgrounds
@@ -353,7 +431,7 @@ Obviously this would still be using slashes for commands still. The way this wor
* Misc
* Gas Can
---
### Quick Reply (FINISHED)
### Quick Reply
* When somebody sends a private message, use /reply to quickly reply without having to find their ID to use the private message command
---
### Item management commands (ALMOST FINISHED)
@@ -391,9 +469,13 @@ The inventory system is already planned to use a hotbar/wheel but I don't have a
* Player would be wise to bring a bucket or crate to keep the fish in, using existing /take and /put system like any other item.
**This will need extra stuff added to keybinds system for duration key holding**
---
### GPS indicator like the 3D Fallout games
### Compass
*Inspiration from Hell Let Loose and the 3D Fallout games*
An indicator at the bottom, showing compass direction and a dot or something in the direction of the GPS location. Like an object marker.
In-world indicator too, when player gets close and is in line of sight
---
### Item/Object pickup and move like the 3D Fallout games
Fallout 3 and New Vegas have a neat feature where you can "grab" an object and fling it around while the key is pressed. Could be implemented for items in GTACRP servers
### Item/Object pickup and move
*Inspiration from the 3D Fallout games*
Fallout 3 and New Vegas have a neat feature where you can "grab" an object and fling it around while the key is pressed. Could be implemented for items in GTACRP servers

View File

@@ -1,18 +1,49 @@
# Vortrex's Roleplay Resource
### Description
This is Vortrex's Roleplay Resource
This is Vortrex's Roleplay Resource. Originally created for [GTA Connected](https://gtaconnected.com/) but support for other multiplayer mods coming soon!
### Supported Games and Multiplayer Mods
* GTA III (on [GTA Connected](https://gtaconnected.com/))
* GTA VC (on [GTA Connected](https://gtaconnected.com/))
* GTA SA (on [GTA Connected](https://gtaconnected.com/))
* GTA IV (on [GTA Connected](https://gtaconnected.com/))
* Mafia: The City of Lost Heaven (on [Mafia Connected](https://mafiaconnected.com/))
* **(Coming Soon!)** GTA V (on [RAGEMP](https://rage.mp/))
* **(Coming Soon!)** Mafia Definitive Edition (on MafiaMP)
### Features
*Some features may be disabled on specific multiplayer mods depending on functionality*
* Works on multiple server instances sharing the same database
* Jobs operate as factions but leader can make ranks "public" so anybody can use those if enabled.
* Clans with custom ranks, permissions, pay, titles, and more
* Custom inventory system where everything is an item: food, weapons, devices, etc
* All items can be dropped, given, used, picked up, or stored in certain places (other items, vehicles, etc)
* Ownable vehicles, houses, businesses, and more
* No "hard cap" to how many things you can own, but the more you own the more you pay in tax
* Stock your business with any items you want, and set custom prices
* Extra storage for businesses (floor items for sale, stockroom in back for hidden stuff)
* Security features like two-factor login, email alerts for login attempts, and more
* Animations and ped speech for extra RP goodness
* Players can make aliases for commands
* Choosable levels of GUI: Simple (input, list, message like SA-MP), Full (whole app layouts), or None (commands only)
* Custom keybinds. Server can set defaults, but players can bind/unbind keys for personalization
* *Everything* is dynamically changable in the server using commands and/or GUI
* Community-provided translations for GUI and server messages
* Automatic translator for chat (players can turn it on/off for themselves)
* Way too many other things to list here
## Setup
* Download the server from the [downloads page](https://gtaconnected.com/downloads) of the GTA Connected website.
* Download this resource via git clone or directly from GitHub with the green zip download button.
* Add this resource as-is into a resource folder of your choice inside the resources directory of your server. I named my resource folder "gtac_roleplay"
* Add this resource as-is into a resource folder of your choice inside the resources directory of your server.
* Add the resource to the server config. You should also disable a lot of the cvars in the config too. I only have traffic, civilians, planes, and bigmap enabled.
* Download the required modules and add them to your server config. See list of modules below.
* Import the database to your MySQL server, and edit database.json in the resource's config folder with the info to connect to the database.
* Edit `svr_main` table, and set the `svr_game` and `svr_port` to your server's info. Game ID numbers are [here](https://wiki.gtaconnected.com/GameIdentifiers)
* (Optional) Edit the email SMTP connection info. Without this, the email features will be disabled.
* Start the server and connect. Register your account, make a character, and disconnect.
* Edit your account in the database (get your account ID from the acct_main table and then edit the four entries in acct_svr for your account, changing acct_svr_staff_flags to negative 1 (-1) ... **you must not be connected to the server when doing this**
* Edit your account in the database (get your account ID from the acct_main table and then edit the four entries in acct_svr for your account, changing `acct_svr_staff_flags` to negative 1 (-1) ... **you must not be connected to the server when doing this**
* You now have full admin. Enjoy the resource!
## Modules
@@ -31,20 +62,22 @@ This is Vortrex's Roleplay Resource
* Keep opening curly brackets in-line. Don't linebreak before an opening curly brackets.
* Use sentence case instead of adjacent uppercase letters in class/member names. (i.e. Id instead of ID)
* Use generic, non-specific class member names wherever possible. (i.e. databaseId instead of accountId)
* All communications from server to client are handled in server-side `client.js` script file via utils
* All communications from client to server are handled in client-side `server.js` script file via utils
* All server events are handled in `event.js` script file, sometimes with utils.
* All communications from server <-> client are handled in each side's `netevents.js` script files via utils
* All server and client events are handled in each side's `event.js` script files, sometimes with utils.
### Database Style
* Always use lowercase.
* Shorten prefix names to four characters or less (i.e. acct=account, veh=vehicle)
* Always use lowercase names for tables and fields
* Try to shorten prefix names to four characters or less (i.e. acct=account, veh=vehicle)
* Add an underscore between each word
* Append _main to any tables that store primary data (i.e. acct_main, ban_main, etc)
* Prefix field names with the table name, except for _main tables (i.e. acct_id, job_loc_id)
* Tables use primary index on their ID column.
* Tables use both secondary indexes & cascading foreign key links to any ID that points to another table
* Tables use primary key on their ID column
* Tables use both secondary keys & cascading foreign key links to any ID that points to another table
* Prefix table names with func_ if they are a custom function or procedure
### Notes
* The resource is designed to load the script files first, then initialize after that's done.
* The resource is designed to run on multiple servers. Each server needs a row in `svr_main` table with matching port and [game ID](https://wiki.gtaconnected.com/GameIdentifiers)
* The IDEAS.md file is not a to-do list. It's just a random file to throw ideas into when they come to mind.
* Bitwise values are used for several different aspects related to permissions. The value of -1 is **always** used as "*all flags*" for that set.
* Bitwise values are used for several different aspects, mostly related to permissions.
* Bitwise value of -1 is **always** used as "*all flags*" for that set. For admin permissions, -1 is god-tier admin level

26
TODO.md
View File

@@ -1,26 +0,0 @@
== TODO
* Finish auto-translator
* Add ways to acquire drugs. Pot/coke plants, meth labs, etc
* Finish setting up the persistent NPC system
* Add yes/no prompts for some important things like
* (Business owner) Setting item sell price below order price. Will result in losing money.
* Giving house, biz, or vehicle to clan. Clan leaders can revoke permissions and you may be screwed and not able to change it!
* Deleting character
* Make game messages (big message, small message) into array of types
* Array of message types in shared
* Font, text, duration, etc arrays in client, indexed by type
* Fix the item take/put system for items in vehicle trunks, other items, etc
---
== Planned Features
* Named and scripted NPCs
* Racing
* Fishing
* Stock Market
* Mapped interiors for GTA 3
* Drug growing/manufacturing
---
== Bug Fixes
* Check natives for if player is console (getPlayerPosition, etc)
* Add command to copy account keybinds to other server(s)
* Add command to reset all account keybinds to default

17
TRANSLATE.md Normal file
View File

@@ -0,0 +1,17 @@
# Translating
## Want to provide a translation?
### **Here's some info about how it works:**
* You can submit a pull request with your changes.
* There's no rush. You can translate at your own pace, and you don't need to translate it all right away. There's no errors or anything *"missing"* from an incomplete translation. Anything that you haven't been able to translated yet will show up as English.
* You can move around the {1}, {2}, etc but **please don't delete them**. The server replaces these in real-time with info from the script. These are usually commands or names of things (like vehicle or player names).
* Each line has two parts: key and text. Example: `"ActionTipsToggle": "Action tips are now {1}"`. The "ActionTipsToggle" is the key which the script uses to find the text it needs (the second part of the line) when showing it to the player. **Please do not translate the key names**
* All new strings will be added to the bottom of the file, including any that previously translated but were changed (usually for bug fix or if a server mechanic gets changed). This makes it easy to find the latest stuff that needs translated. Updated grouped translations will also be moved to the bottom, but may contain previously translated texts inside.
* The first two texts aren't translated. They just provide a reference to the name and author(s) of the translation.
* Some strings say DO NOT TRANSLATE ... these are just comment lines. JSON doesn't have a comment system so I had to resort to this method. They're usually to separate new sections when I add a bunch of strings in bulk. Most of them will have a date for when it was addded. As the name says, please don't translate these.

8
config/database.json Normal file
View File

@@ -0,0 +1,8 @@
{
"host": "",
"user": "",
"pass": "",
"name": "",
"port": 3306,
"usePersistentConnection": false
}

View File

@@ -5,9 +5,11 @@
"sendVehicleEvents": false,
"sendDeathEvents": false,
"sendAdmin": false,
"sendClan": false,
"sendAction": false,
"webhook": {
"enabled": false,
"webhookBaseURL": "http://127.0.0.1:8090/discord.php?message={0}&server={1}&type={2}&pass={3}",
"pass": "LWb7T3ZyCam7Nzen"
"webhookBaseURL": "",
"pass": ""
}
}

27
config/email.json Normal file
View File

@@ -0,0 +1,27 @@
{
"enabled": false,
"method": "http",
"smtp": {
"host": "",
"port": 0,
"username": "",
"password": "",
"from": "",
"fromName": "",
"useTLS": true
},
"http": {
"password": "",
"baseURL": ""
},
"bodyContent": {
"confirmEmail": "Welcome to {SERVERNAME}!\nPlease confirm your email by using the command /verifyemail in-game.\n\nYour verification code is: {VERIFICATIONCODE}",
"emailConfirmed": "Your email has been confirmed on {SERVERNAME}!\nYou may now use this email to reset your password, require two-factor authentication on login, receive offline notifications, and more!",
"twoFactorAuthentication": "Please enter the following code to login on {SERVERNAME} for {GAMENAME}: {2FACODE}",
"accountAuthSuccessAlert": "You or someone else has successfully logged in to your account on {SERVERNAME} for {GAMENAME}.\nIP Address: {IPADDRESS}\nLocation: {LOCATION}\nTimestamp: {TIMESTAMP}",
"accountAuthFailAlert": "You or someone else has failed to login to your account on {SERVERNAME} for {GAMENAME}.\nIP Address: {IPADDRESS}\nLocation: {LOCATION}\nTimestamp: {TIMESTAMP}",
"offlineMessageAlert": "You have received a private message on {SERVERNAME} for {GAMENAME}. \nYou are receiving this notification because you enabled email message notifications when you're not connected to the server.\nFrom: {FROMNAME}\nTimestamp: {TIMESTAMP}\nMessage: {MESSAGE}",
"confirmPasswordReset": "You (or someone else) requested to reset your password on {SERVERNAME}!\nPlease confirm this request by entering the code below into the password reset window in-game.\n\nYour verification code is: {VERIFICATIONCODE}\n\n\nIf you did not request a password reset, then there's nothing to worry about since your password can only be reset with the code above.",
"passwordChanged": "Your password on {SERVERNAME} has been changed successfully!"
}
}

10443
database.sql

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

756
locale/arabic.json Normal file
View File

@@ -0,0 +1,756 @@
{
"TranslationProvidedBy": "Kasir",
"LocaleEnglishName": "Arabic",
"LocaleNativeName": "عربى",
"LocaleOffer": ".الخادم متاح باللغة الإنجليزية.استخدم {1} لاستخدامه",
"LocaleChanged1": "لغتك الآن على {1}",
"LocaleChanged2": "سيعرض الخادم الآن الرسائل في {1}",
"LocaleChangedNote": "هذا لا يغير الرسائل من اللاعبين الآخرين",
"AccentsListHeader": "لهجآت",
"HelpMainListHeader": "فئة الدعم",
"AccentNotFound": "اللكنة الحالية غير متوفرة",
"AccentSet": "قمت بتعيين لهجتك على {1}",
"InvalidAnimation": "هذه الرسوم المتحركة غير متوفرة",
"AnimationCommandTip": "استخدم {1} لمشاهدة قائمة الرسوم المتحركة المتاحة",
"InvalidAnimationDistance": "يجب المسافة تكون بين 0 و 3",
"AnimationStopCommandTip": "استخدم {1} لإيقاف الرسوم المتحركة",
"CantBanClient": "لا يمكنك حظر هذا الإعب",
"PlayerAccountBanned": "تم حظر حساب {1}",
"ClanNotFound": "لم يتم العثور على المجموعة",
"ClanNameTaken": "توجد مجموعة بهذا الاسم بالفعل",
"PlayerNotFound": "الاعب غير موجود",
"ClanCantRemoveRanks": "لا يمكنك إزالة رتب المجموعة",
"ClanCantAddRanks": "لأ يمكنك إضافة رتب",
"ClanRankNotFound": "رتبة غير موجودهـ",
"ClanCantChangeMemberTag": "ليس لديك الصلاحيات لتعديل على علامات رتب الاعضاء",
"ClanPlayerNotInSameClan": "الاعب غير موجود بمجموعتك",
"ClanCantChangeRankLevel": "ليس لديك صلاحيات لتغيير مستوى رتبة المجموعة",
"ClanCantChangeRankTag": "لا يمكنك تغيير علامات رتب المجموعة",
"NameNotRegistered": "اسمك غير مسجل! استخدم {1} لإنشاء حساب.",
"AutomaticLoginIPToggle": "IP تم تفعيل {1} تسجيل الدخول التلقائي عن طربق",
"CouldNotRegisterAccount": "حدثت مشكلة في إنشاء حسابك, يرجى التواصل بـ إلاداره.",
"RandomTipsToggle": "النصائح العشوائية{1}",
"ActionTipsToggle": "نصائح العمل{1}",
"AutoSpawnLastCharToggle": "النشر التلقائي كأخر حرف تم استخدامه هو {1}",
"AccountGUISettingToggle": "واجهة المستخدم الرسومية هي الآن {1}",
"On": "تشغيل",
"Off": "إيقاف",
"Yes": "موافق",
"No": "لا",
"True": "صحيح",
"False": "خطأ",
"Locked": "مغلق",
"Unlocked": "مفتوح",
"PasswordNotGoodEnough": "كلمة المرور الجديدة يجب أن تفي بالمتطلبات!",
"PasswordNeedsBase": " {1} يجب أن تحتوي كلمات المرور على الأقل",
"PasswordNeedsCapitals": "{1}من الأحرف الكبيرة",
"PasswordNeedsNumbers": "{1} أرقام",
"PasswordNeedsSymbols": "{1} حروف او رموز",
"PasswordsDontMatch": "كلمة المرور الجديدة وتأكيد كلمة المرور الجديدة ليسا متطابقين!!",
"PasswordChanged": "تم بنجاح تغيير كلمة المرور!",
"AutoLoggedInIP": "IP تم تسجيل دخولك تلقائيًا بواسطة!",
"WelcomeBack": "مرحبًا بك مرة أخرى في {1} ، {2}! من فضلك {3} للمتابعة.",
"WelcomeNewPlayer": "مرحبًا بك في {1} ، {2}! من فضلك {3} للعب.",
"InvalidPlayer": "اللاعب غير موجود!",
"InvalidBusiness": "لم يتم العثور على الأعمال!",
"InvalidHouse": "البيت غير موجود!",
"InvalidVehicle": "لم يتم ايجاد السيارة!",
"InvalidClan": "لم يتم العثور على المجموعة!",
"InvalidClanRank": "رتبة غير موجوده!",
"InvalidJob": "لم يتم العثور على الوظيفة!",
"InvalidItem": "العنصر غير موجود!",
"InvalidItemType": "نوع العنصر غير موجود!",
"InvalidRadioStation": "لم يتم العثور على محطة راديو!",
"InvalidGate": "البوابة غير موجودة!",
"EntersProperty": "({2}) يفتح الباب ويدخل {1}",
"ExitsProperty": "({2}) يفتح الباب ويخرج من {1}",
"EnterExitPropertyDoorLocked": "يحاول فتح الباب {1} ولكنه يفشل لأنه مغلق",
"PropertyNoInterior": "هذا ليس له جزء داخلي {1}، ولكن لا يزال بإمكانك استخدام الأوامر على أيقونة الباب.",
"NoBusinessWithItemType": "لا يوجد عمل مع هذا الخيار متاح",
"HeaderKeyBinds": "مفتاح الروابط",
"HeaderAccountHelp": "مساعدة الحساب",
"HeaderVehicleHelp": "تعليمات السيارة",
"HeaderVehicleDealershipHelp": "مساعدة بيع سيارات",
"HeaderJobHelp": "تعليمات الوظيفة",
"HeaderChatHelp": "تعليمات الدردشة",
"HeaderServerRules": "قوانين سيرفر",
"HeaderWebsiteInfo": "الموقع الرسمي",
"HeaderDiscordInfo": "ديسكورد",
"HeaderAnimationsList": "قائمة الرسوم المتحركة",
"HeaderPayAndSprayHelp": "الدفع ,ورشٌ المساعده",
"HeaderAmmunationHelp": "مساعدة الذخيرة",
"HeaderVehicleTuneupHelp": "مساعدة تعديل السيارة",
"HeaderBindableKeysHelp": "مفاتيح قابلة للربط",
"HeaderSkinHelp": "مساعدة الملابس / الجلد",
"HeaderBusinessHelp": "تعليمات الأعمال",
"HeaderClanHelp": "تعليمات المجموعة",
"HeaderPlayerVehiclesList": "مركبات المشغل ({1})",
"HeaderPlayerBusinessesList": "أعمال اللاعب ({1})",
"HeaderClansList": "قائمة المجموعة",
"HeaderAdminsList": "قائمة الادمن",
"HeaderAccentsList": "قائمة اللغة",
"HeaderPlayerInfo": "معلومات الاعب",
"HeaderWealthandTaxHelp": "معلومات المال",
"HeaderCommandInfo": "معلومات الإوامر ({1})",
"HeaderRadioHelp": "تعليمات راديو",
"HeaderRadioStationsList": "محطات الردايو",
"HeaderKeyBindsList": "قائمة روابط المفاتيح",
"RadioVolumeChanged": "{1} لقد {2} غيرت مستوى صوت البث اللاسلكى إلى٪",
"VolumeLevelNotNumber": "يجب أن يكون مستوى الصوت رقمًا",
"RadioStationLocationInvalid": "يجب أن تكون في سيارة أو منزل أو عمل أو لديك جهاز شخصي لتغيير المحطة!",
"ActionBusinessRadioStationChange": "تغيير محطة راديو الأعمال إلى {1} ({2})",
"ActionHouseRadioStationChange": "تغيير محطة راديو المنزل إلى {1} ({2})",
"ActionVehicleRadioStationChange": "يغير محطة راديو السيارة إلى {1} ({2})",
"ActionItemRadioStationChange": "يغير محطة {1} إلى {2} ({3})",
"RandomVehicleCommandsDisabled": "هذه مركبة مرور عشوائية ولا يمكن استخدام الأوامر لها.",
"HouseDoorLock": "البيت {1} {2}!",
"BusinessDoorLock": "الأعمال {1} {2}!",
"ServerGameModeRestarting": "يتم إعادة تشغيل وضع لعبة الخادم!",
"HeaderSelfItemList": "المخزون الخاص بك",
"HeaderPlayerItemList": "مخزون الاعب ({1})",
"HeaderHouseItemList": "بيت الاعب",
"HeaderBusinessFloorItemList": "جرد الأعمال (للبيع)",
"HeaderBusinessStorageItemList": "جرد الأعمال (التخزين)",
"HeaderItemItemList": "مخزون {1}",
"ItemSlotNotNumber": "يجب أن تكون خانة العنصر رقمًا",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "العنصر الذي تحاول استخدامه به التنصت. تم إرسال تقرير خطأ إلى مطوري الخادم.",
"PickupItemBugged": "العنصر الذي تحاول استلامه به التنصت. تم إرسال تقرير خطأ إلى مطوري الخادم.",
"DropItemBugged": "تم التنصت على العنصر الذي تحاول إسقاطه. تم إرسال تقرير خطأ إلى مطوري الخادم.",
"HandsBusy": "يديك مشغولتان",
"CantUseItemInSkinChange": "لا يمكنك استخدام عنصر أثناء تخصيص مظهرك",
"CantDropItemInSkinChange": "لا يمكنك إسقاط عنصر أثناء تخصيص مظهرك",
"CantPickupItemInSkinChange": "لا يمكنك التقاط عنصر أثناء تخصيص مظهرك",
"CantSwitchItemInSkinChange": "لا يمكنك تبديل عنصر أثناء تخصيص مظهرك",
"CantGiveItemInSkinChange": "لا يمكنك إعطاء عنصر أثناء تخصيص مظهرك",
"CantTakeItemInSkinChange": "لا يمكنك أن تأخذ عنصرًا أثناء تخصيص مظهرك",
"ItemUnequippableNoAmmo": "لا تحتوي الفتحة {1} الموجودة في الفتحة {2} على ذخيرة ، ولا يمكن تجهيزها!",
"NoSpaceSelfInventory": "ليس لديك أي مساحة إضافية في مخزونك",
"Business": "الاعمال",
"House": "البيت",
"Clan": "المجموعة",
"Vehicle": "السيارة",
"Item": "الاغراض",
"ItemType": "نوع العنصر",
"Gate": "بوابة",
"Door": "باب",
"ClanRank": "رتبة المجموعة",
"JobRank": "رتبة الوظيفة",
"RadioStation": "المحطة الإذاعية",
"Months": [
"يناير",
"فبراير",
"مارس",
"أبريل",
"مايو",
"يونيو",
"يوليو",
"أغسطس",
"سبتمبر",
"أكتوبر",
"نوفمبر",
"ديسمبر"
],
"WeekDays": [
"الأحد",
"الإثنين",
"الثلاثاء",
"الاربعاء",
"الخميس",
"الجمعه",
"السبت"
],
"CardinalDirections": {
"North": "شمال",
"Northeast": "الشمال الشرقي",
"East": "شرق",
"Southeast": "الجنوب الشرقي",
"South": "جنوب",
"Southwest": "جنوب غرب",
"West": "غرب",
"Northwest": "الشمال الغربي"
},
"NewPlayerReadyToPlay": [
"لقد حصلت على بعض من المال. استخدم {1} للبحث عن أماكن لشراء العناصر.",
"إذا كنت بحاجة إلى المال،الوظائف هي النقاط الصفراء على الخريطة.",
"للحصول على سيارة ، قم بزيارة وكالة السيارات. يمكنك أيضًا استخدام سيارة مستأجرة بالقرب من السباون أو ركوب القطار",
"تأكد من قراءة {1} واستخدم {2} للحصول على معلومات."
],
"YourCurrentVehicleDeleted": "تم حذف السيارة التي كنت بداخلها.",
"Distance": "مسافة",
"Meters": "أمتار",
"Feet": "قدم",
"Kilometers": "كيلومترات",
"Miles": "اميال",
"MustBeVehicleDriver": "يجب أن تكون سائق السيارة!",
"PlayerJoinedServer": "انضم إلى اللعبة من {1}!",
"PlayerLeftServer": "غادر {1} اللعبة! ({2})",
"TakeItemFromHouse": "يأخذ {1} من المنزل",
"TakeItemFromBusinessStorage": "يأخذ {1} من تخزين الشركة",
"TakeItemFromBusiness": "يأخذ {1} من الأعمال",
"TakeItemFromItem": "يأخذ {1} من {2}",
"TakeItemFromVehicleTrunk": "يأخذ {1} من صندوق السيارة",
"TakeItemFromVehicleDash": "يأخذ {1} من صندوق القفازات",
"AccountHelp": [
"لا تشارك كلمة مرورك مع أي شخص آخر. لن يطالبك فريق عمل {1} بكلمة المرور مطلقًا",
"استخدم {1} لتغيير كلمة المرور الخاصة بك ، و {2} إذا نسيتها",
"بعض الإعدادات التي يمكنك استخدامها: {1}"
],
"VehicleHelp": [
"ستوفر مركباتك الشخصية أينما تتركها أنت أو أي شخص آخر!",
"قم بزيارة المعرض لشراء مركبات جديدة (استخدم {1} لمزيد من المعلومات)",
"Some commands: {1}",
"قم بزيارة مرآب ميكانيكي لإصلاح وتلوين وضبط سيارتك! {1} للحصول على معلومات"
],
"VehicleDealershipHelp": [
"قم بزيارة تاجر سيارات لشراء مركبات جديدة. استخدم {1} للعثور على واحد.",
"عند التاجر ، أدخل السيارة التي تريد شراءها ، وسيظهر لك السعر",
"إذا كنت ترغب في شراء السيارة ، فاستخدم {1} وستحصل على مفاتيح لاختبار قيادتها حول ساحة الانتظار.",
"ابتعد عن الوكالة مع السيارة الجديدة لتأكيد الشراء."
],
"JobHelp": [
"قم بزيارة مواقع العمل للحصول على وظيفة وكسب المال. ابحث عن علامات الصفراء على الخريطة",
"في موقع العمل ، استخدم {1} للحصول على الوظيفة. استخدم {2} لإنهاء عملك",
"استخدم {1} لبدء العمل. يمكنك أيضًا الحصول على وظيفة {2} و {3}",
"يتم تأمين معظم مركبات العمل. استخدم {1} بالقرب من واحد للدخول إليه.",
"عند دخول مركبة عمل ، ستظهر لك معلومات حول كيفية القيام بالمهمة."
],
"ChatHelp": [
"(IC)والشخصية(OOC)هناك نوعان رئيسيان من الدردشة: خارج الطابع الشخصي",
"الخلط بين هذين النوعين ليس لعب الأدوار المناسب. راجع {1} للحصول على معلومات.",
"بعض أوامر الدردشة: {1}",
"يتوفر لبعضها أسماء أقصر ({1} للتحدث ، {2} للصراخ ، إلخ)"
],
"ServerRulesHelp": [
".غير مسموح بها.انت لست سوبر مان(powergaming)الإجراءات غير الواقعية",
"لا يسمح بأدوار إرهابية",
"اتبع دائمًا التعليمات التي قدمها المشرفون والاداره",
"لا تخلط الدردشات (metagaming). لا يمكنك استخدام المعلومات في IC التي تم استلامها OOC",
"حافظ على اللغة الإنجليزية في الدردشات الرئيسية. إذا لم تكن جيدًا في اللغة الإنجليزية ، فاستخدم {1}"
],
"AnimationHelp": [
"تتيح لك الرسوم المتحركة تحسين لعب الأدوار من خلال الإجراءات المرئية",
"استخدم {1} أو {2} مع اسم لاستخدام الرسم المتحرك.",
"لمشاهدة قائمة الرسوم المتحركة ، استخدم {1}"
],
"WeaponHelp": [
"قم بزيارة متجر أسلحة لشراء أسلحة. استخدم {1} للعثور على واحد.",
"شراء سلاح يتطلب رخصة سلاح.",
"يتم إدارة تراخيص الأسلحة من قبل قسم الشرطة. قدم طلبًا للحصول على واحدة ",
"يمكن أيضًا شراء الأسلحة بشكل غير قانوني من بعض الشركات وتجار الأسلحة والعصابات."
],
"SkinHelp": [
"في متجر الملابس ، استخدم {1} لشراء الملابس",
"عندما يكون لديك عنصر من الملابس ، قم بتجهيزه واستخدامه مثل أي عنصر آخر لإظهار اختيار الجلد (حدد {1} لمعرفة كيفية استخدام العناصر)",
"تقتصر بعض الأشكال على الوظائف أو المجموعات أو لأسباب أخرى."
],
"KeyBindHelp": [
"يمكنك تعيين روابط المفاتيح الخاصة بك. استخدم {1} لرؤية المفاتيح التي تم ربطها.",
"استخدم {1} لإضافة رابط مفتاح جديد و {2} لإزالة واحد.",
"المفاتيح الافتراضية هي: {1} لمحرك السيارة و {2} للأضواء و {3} للقفل / فتح القفل",
"اضغط على {1} لمشاهدة عناصرك و {2} لتجهيز عنصر أو {3} لإلغاء تجهيز الكل.",
"اضغط على {1} لاستخدام العنصر الذي تمسكه ، أو اضغط على {2} لإسقاطه ، أو اضغط على {3} لالتقاط عنصر من الأرض."
],
"BusinessHelp": [
"استخدم {1} لشراء العناصر أو {2} لمشاهدة قائمة بما هو معروض للبيع في أي شركة",
"تظهر الشركات بأسماء زرقاء فوق الرمز عند مدخلها.",
"أوامر صاحب العمل: {1}",
"ستظهر سيارة جديدة معروضة للبيع عندما تبتعد عن الوكيل."
],
"ClanHelp": [
"اطلب من الإدارة إنشاء تيم(القبيلة) (على غرار الفصائل / المجموعات / العائلات)",
"يتمتع مالكو التيم(القبيلة) بالسيطرة الكاملة على افراد المجموعة بمجرد إنشائها",
"أوامر القبيلة: {1}",
"أوامر القبيلة: {1}"
],
"RadioStationHelp": [
"استخدم {1} لتعيين المحطة لمركبتك أو منزلك أو عملك",
"استخدم {2} لمشاهدة قائمة المحطات",
"يمكنك تغيير حجم تدفق الراديو باستخدام {1} مع 0-100 كنسبة مئوية"
],
"WealthAndTaxHelp": [
"ضرائبك في يوم الدفع هي {1} بالمائة من ثروتك المحسوبة.",
"ثروتك المحسوبة هي مجموع إجمالي يعتمد على عدد المركبات والمنازل والشركات التي لديك.",
"كل سيارة {1} ، كل منزل {2} ، وكل عمل {3}",
"استخدم {1} لمعرفة ثروتك الحالية ، و {2} لمعرفة المبلغ الذي ستدفعه كضريبة في كل يوم دفع"
],
"MustBeInAVehicle": "يجب أن تكون في مركبة!",
"MustBeInOrNearVehicle": "أنت بحاجة إلى أن تكون في السيارة أو بالقرب منها!",
"MustBeInVehicleFrontSeat": "يجب أن تكون في المقاعد الأمامية للسيارة!",
"MustBeInVehicleDriverSeat": "يجب أن تكون السائق!",
"DontHaveVehicleKey": "ليس لديك مفتاح لهذه السيارة!",
"NoGateAccess": "لا يمكنك الوصول إلى هذه البوابة!",
"GateBroken": "هذه البوابة مكسورة!",
"GateHacked": "البوابة لا تستجيب!",
"RadioJammed": "تسمع صوتًا ثابتًا فقط من الراديو.",
"VehicleNotForSale": "هذه السيارة ليست للبيع!",
"VehicleNotForRent": "هذه السيارة ليست للإيجار!",
"BusinessNotForSale": "هذا العمل ليس للبيع!",
"BusinessNotForRent": "هذا العمل ليس للإيجار!",
"HouseNotForSale": "هذا المنزل ليس للبيع!",
"HouseNotForRent": "هذا المنزل ليس للإيجار!",
"DealershipPurchaseTestDrive": "قم بقيادة السيارة بعيدًا عن الوكالة لشرائها ، أو اخرج للإلغاء.",
"DealershipPurchaseExitedVehicle": "لقد ألغيت شراء السيارة بالخروج من السيارة!",
"VehiclePurchaseComplete": "هذه السيارة الآن لك!",
"VehiclePurchaseNotEnoughMoney": "ليس لديك ما يكفي من المال لشراء هذه السيارة!",
"HousePurchaseNotEnoughMoney": "ليس لديك ما يكفي من المال لشراء هذا المنزل!",
"BusinessPurchaseNotEnoughMoney": "ليس لديك ما يكفي من المال لشراء هذا العمل!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "بيوت اللاعبين ({1})",
"HeaderPlayerStaffFlagsList": "أعلام طاقم العمل ({1})",
"HeaderStaffFlagsList": "أعلام الموظفين",
"NonRPName": "اسم غير RP! اختر واحدة جديدة:",
"InvalidStaffFlag": "لم يتم العثور على علم الموظفين!",
"InvalidClanFlag": "علم القبيلة غير موجود!",
"InvalidLocale": "اللغة غير موجودة!",
"HeaderJobUniformList": "زي العمل ({1})",
"HeaderJobEquipmentList": "معدات العمل ({1})",
"InvalidJobUniform": "زي العمل غير موجود!",
"InvalidJobEquipment": "لم يتم العثور على معدات العمل!",
"HeaderVehiclesInRangeList": "مركبات داخل {1}",
"NoVehiclesWithinRange": "لا توجد مركبات داخل {1}",
"AmountNotNumber": "المبلغ يجب أن يكون رقما!",
"NeedToBeWorking": "يجب أن تعمل! استخدم {1} في موقع العمل أو بالقرب من سيارات العمل.",
"NeedToBeOnJobRoute": "عليك أن تفعل طريق عمل! استخدم {1} في مركبة عمل",
"CurrentJobRouteVehicleColoursChanged": "تم تغيير ألوان السيارة لمسار وظيفتك بواسطة الإدمن",
"NotYourJob": "هذه ليست وظيفتك!",
"JobPoints": "يمكنك الحصول على وظيفة من خلال الذهاب إلى النقاط الصفراء على الخريطة.",
"QuitJobToTakeAnother": "إذا كنت تريد هذه الوظيفة ، فاستخدم {1} لإنهاء وظيفتك الحالية.",
"NotAJobVehicle": "هذه ليست وسيلة عمل!",
"NotYourJobVehicle": "هذه ليست مركبة عملك!",
"HeaderPickupTypes": "أنواع الالتقاط",
"HeaderBlipTypes": "أنواع أيقونات الخريطة",
"InvalidGPSLocation": "لا توجد مواقع بهذا الاسم أو النوع",
"HeaderBusinessList": "الأعمال",
"VehicleForSale": "يمكن شراء {1} مقابل {2}! استخدم {3} إذا كنت ترغب في شرائه",
"VehicleForRent": "هذا {1} قابل للتأجير لـ {2}! استخدم {3} إذا كنت تريد استئجاره",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "رمز مرور خاطئ! عدد المحاولات المتبقية: {1}",
"LoginFailedNoPassword": "يجب عليك إدخال كلمة المرور! ! عدد المحاولات المتبقية: {1}",
"RegistrationFailedNoPassword": "يجب عليك إدخال كلمة المرور!",
"RegistrationFailedNoPasswordConfirm": "يجب عليك تأكيد كلمة المرور!",
"RegistrationFailedNoEmail": "يجب إدخال البريد الإلكتروني!",
"AccountNameAlreadyRegistered": "تم تسجيل اسمك بالفعل!",
"AlreadyLoggedIn": "انت بالفعل بداخل!",
"RegistrationFailedInvalidEmail": "هذا البريد الإلكتروني غير صالح!",
"RegistrationFailedPasswordMismatch": "كلمات المرور غير متطابقة!",
"RegistrationFailedCreateError": "تعذر إنشاء حسابك!",
"RegistrationSuccess": "لقد تم إنشاء حسابك!",
"RegistrationEmailVerifyReminder": "لا تنس التحقق من بريدك الإلكتروني! تم إرسال رمز التحقق لك.",
"RegistrationCreateCharReminder": "للعب على الخادم ، ستحتاج إلى تكوين شخصية.",
"NoCharactersGUIMessage": "ليس لديك أحرف. هل ترغب في صنع واحدة؟",
"NoCharactersGUIWindowTitle": "لا أحرف",
"NoCharactersChatMessage": "ليس لديك أحرف. استخدم {1} لإنشاء واحدة.",
"NeedEmailFor2FA": "تحتاج إلى إضافة بريدك الإلكتروني إلى حسابك لاستخدام المصادقة ذات العاملين.",
"NeedEmailVerifiedFor2FA": "تحتاج إلى التحقق من بريدك الإلكتروني لاستخدام المصادقة ذات العاملين.",
"SetEmailHelpTip": "استخدم {1} لتعيين بريدك الإلكتروني.",
"VerifyEmailHelpTip": "استخدم {1} للتحقق من بريدك الإلكتروني.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "راديو قريب",
"FromRadio": "من الراديو",
"ToRadio": "في الراديو",
"NeedToEnterPropertyCommand": "تحتاج إلى إدخال {1} أولاً! استخدم {2} للدخول والخروج",
"NeedToEnterPropertyKeyPress": "تحتاج إلى إدخال {1} أولاً! اضغط على {2} للدخول والخروج",
"InventoryFullCantCarry": "ليس لديك أي مساحة لحمل هذا (جرد كامل)!",
"NotEnoughCashNeedAmountMore": "ليس لديك ما يكفي من المال! أنت بحاجة إلى {1} أكثر!",
"AmountMustBeMoreThan": "يجب أن يكون المبلغ أكثر من {1}!",
"WeaponBanned": "لا يسمح لك بشراء أو استخدام الأسلحة!",
"TimeNotNumber": "يجب أن يكون الوقت رقمًا",
"HeaderDefaultBusinessItemTypes": "قوالب عناصر الأعمال",
"FixingStuck": "إصلاح موقعك والعالم الافتراضي ...",
"CantUseCommandYet": "يجب أن تنتظر قبل أن تتمكن من استخدام هذا الأمر مرة أخرى!",
"NotATester": "أنت لست مختبرا!",
"AccessDenied": "تم الرفض",
"InvalidSkin": "هذا الجلد غير صالح!",
"HeaderInteriorTypes": "قائمة التصميمات الداخلية",
"ViewInventoryKeyPressTip": "اضغط على {1} لرؤية العناصر الخاصة بك",
"ViewInventoryCommandTip": "استخدم {1} لمشاهدة عناصرك",
"GUIAccountSettingToggle": "لقد قمت بتحويل {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "يمكنك شراء سيارة من خلال زيارة متجر سيارات. استخدم {1} لمزيد من المعلومات.",
"SkinCommandHelp": "يمكنك تغيير بشرتك من خلال زيارة متجر الملابس. استخدم {1} لمزيد من المعلومات.",
"BusinessVehiclesRespawned": "تم تجديد جميع المركبات التجارية من قبل الإدارة!",
"JobVehiclesRespawned": "تم تجديد جميع مركبات العمل من قبل الإدارة!",
"PlayerVehiclesRespawned": "تمت إعادة نشر جميع مركبات اللاعب من قبل الإدارة",
"ClanVehiclesRespawned": "تمت إعادة نشر جميع مركبات العشيرة من قبل الإدارة!",
"PublicVehiclesRespawned": "تمت إعادة نشر كل الجمهور من قبل الإدارة",
"EmptyVehiclesRespawned": "تم إعادة نشر جميع المركبات الفارغة من قبل الإدارة",
"AllVehiclesRespawned": "تم تجديد جميع المركبات من قبل الإدارة",
"AllVehiclesReloaded": "تم إعادة تحميل جميع المركبات من قبل الإدارة",
"YourVehicleRespawned": "تمت إعادة سيارتك",
"PlayerIPBanned": "تم حظر عنوان IP {1}!",
"PlayerCharacterBanned": "تم حظر شخصية {1}!",
"PlayerSubNetBanned": "تم حظر الشبكة الفرعية {1}!",
"CantModifyBusiness": "لا يمكنك إدارة أو تعديل هذا العمل",
"CantModifyHouse": "لا يمكنك إدارة أو تعديل هذا العمل",
"ServerTimeSet": "{1} اضبط الوقت على {2}",
"ServerWeatherSet": "{1} ضبط الطقس على {2}",
"ServerSnowSet": "{1} تحول الثلج المتساقط {2} وثلوجًا على سطح الأرض {3}",
"AllJobsReloaded": "تم إعادة تحميل جميع وظائف الخادم من قبل الإدمن",
"ServerLogoSet": "{1} صورة شعار الخادم {2}",
"ServerGUISet": "{1} شغّل واجهة المستخدم الرسومية لهذا الخادم {2}",
"ServerBusinessBlipsSet": "{1} قلب كل الإشارات المقلدة للأعمال {2}",
"ServerHouseBlipsSet": "{1} قلب كل الصور المظللة بالمنزل {2}",
"ServerJobBlipsSet": "{1} قلب كل إشارات المهام {2}",
"ServerBusinessPickupsSet": "قام {1} بتحويل جميع انتعاش الشركات {2}",
"ServerHousePickupsSet": "{1} قلبت جميع شاحنات المنزل {2}",
"ServerJobPickupsSet": "شغّل {1} كافة عمليات التقاط الوظائف {2}",
"BusinessBuyItemsLabel": "استخدم {1} لشراء العناصر",
"PropertyEnterCommandLabel": "استخدم {1} للدخول",
"PropertyEnterKeyPressLabel": "اضغط على {1} للدخول",
"PropertyForSaleLabel": "للبيع: {1} دولار",
"PropertyForRentLabel": "للإيجار: {1} دولار كل يوم دفع",
"RemainingTaxPaidInMoney": "لقد غطيت الضرائب المتبقية بمبلغ {1} دولار أمريكي نقدًا.",
"LostMoneyFromTaxes": "لقد خسرت المال لأن ضرائبك تزيد عن راتبك!",
"NextPaycheckRepossessionWarning": "إذا لم يكن لديك نقود كافية لتغطية الضرائب على شيك الراتب التالي ، فستفقد أشياء!",
"NotEnoughMoneyForTax": "ليس لديك ما يكفي من المال لتغطية ضرائبك!",
"AssetsRepossessedForTax": "لقد فقدت {1} من المركبات و {2} المنازل و {3} الأنشطة التجارية نظرًا لعدم قدرتك على دفع الضرائب!",
"Closed": "مغلق",
"Open": "فتح",
"VehicleDealershipLabel": "أدخل السيارة كسائق لشرائها",
"TakeJobLabel": "استخدم {1} للعمل هنا",
"StartWorkLabel": "استخدم {1} لبدء العمل",
"JobEquipAndUniformLabel": "استخدم الوظيفة {1} و {2} ، أو {3} للتوقف عن العمل",
"NotYourJobLabel": "لديك بالفعل وظيفة مختلفة. استخدم {1} إذا كنت تريد هذا",
"JobLabel": "{1} وظيفة",
"PaydayBonusSet": "🤑 {1} اضبط مكافأة يوم الدفع على {2} دولار",
"AllHousesReloaded": "🏘️ تم إعادة تحميل جميع المنازل من قبل الإدارة",
"AllRadioStationsReloaded": "📻 تم إعادة تحميل جميع محطات الراديو من قبل الإدارة",
"PlayerKicked": "🦶 تم طرد {1} من الخادم",
"AllBusinessesReloaded": "🏢 تم إعادة تحميل جميع الأعمال من قبل الإدارة",
"UnableToDoThat": "أنت غير قادر على القيام بذلك",
"SetVehicleClanConfirmMessage": "هل أنت متأكد أنك تريد إعطاء هذه السيارة لمجموعتك",
"SetVehicleClanConfirmTitle": "تحذير!",
"SetItemPriceBelowOrderPriceMessage": "هل أنت متأكد أنك تريد تعيين سعر العنصر أسفل سعر الأمر؟ ستخسر {1} دولارًا أمريكيًا في كل عملية شراء!",
"SetItemPriceBelowOrderPriceTitle": "تحذير!",
"MustOwnVehicle": "أنت لا تملك هذه السيارة!",
"RandomTips": [
"ابحث عن النقاط الصفراء على خريطتك لمواقع العمل",
"يمكنك تعيين روابط مفاتيح مخصصة. استخدم {1} للحصول على التفاصيل",
"استخدم {1} إذا كنت لا تريد مشاهدة النصائح والمعلومات الإضافية",
"يمكنك تحرير روابط المفاتيح الخاصة بك باستخدام {1} و {2}",
"اضغط على لرؤية مخزونك ، واستخدم مفاتيح الأرقام لتحديد عنصر",
"استخدم {1} في الشركة لشراء العناصر",
"وجدت خطأ؟ الإبلاغ عن ذلك مع {1}",
"تريد شراء عمل؟ استخدم {1} بسعر واحد للبيع",
"تريد شراء عمل؟ استخدم {1} بسعر واحد للبيع",
"تريد شراء منزل؟ استخدم {1} بسعر واحد للبيع",
"تريد شراء سيارة؟ قم بزيارة أحد الوكلاء وأدخل واحدًا للحصول على معلومات حول كيفية شرائه!",
"التبديل إلى أي من الشخصيات الخاصة بك مع {1}",
"استخدم {1} لتسجيل الدخول تلقائيًا عند الاتصال بنفس عنوان IP",
"استخدم {1} لتشغيل / إطفاء الأنوار في منزلك أو عملك",
"استخدم {1} لتشغيل محطة راديو عبر الإنترنت في سيارتك أو منزلك أو عملك",
"تريد تكوين مجموعة؟ استخدم {1} للحصول على التفاصيل",
"يمكن شراء الأسلحة القانونية بأي ذخيرة"
],
"PromptResponseTip": "استخدم {1} للقبول أو {2} للرفض",
"PlayerConnecting": "👋يتم الاتصال بالخادم {1}",
"GetStartedJobVehicle": "احصل على {1} لتبدأ.",
"VehicleTypes": {
"Car": "سيارة",
"Truck": "شاحنة",
"Van": "سيارة نقل",
"Taxi": "تاكسي",
"Bus": "باص",
"PoliceCar": "سيارة شرطة",
"Ambulance": "سياره اسعاف",
"FireTruck": "سيارة إطفاء",
"Bike": "دراجة",
"Motorbike": "دراجات نارية",
"Boat": "قارب",
"Helicopter": "هليكوبتر",
"Plane": "طائرة",
"Train": "قطار"
},
"AlreadyOnJobRoute": "أنت تقوم بالفعل بطريق عمل!",
"GaveVehicleToClan": "لقد أعطيت هذا {1} لمجموعتك",
"JobDisabled": "تم تعطيل هذه الوظيفة!",
"SetHouseClanConfirmMessage": "هل أنت متأكد أنك تريد إعطاء هذا المنزل لمجموعتك?",
"SetHouseClanConfirmTitle": "تحذير!",
"SetBusinessClanConfirmMessage": "هل أنت متأكد أنك تريد إعطاء هذا العمل لمجموعتك",
"SetBusinessClanConfirmTitle": "تحذير!",
"MustOwnHouse": "أنت لا تملك هذا المنزل!",
"MustOwnBusiness": "أنت لا تملك هذا العمل!",
"GaveHouseToClan": "لقد أعطيت هذا المنزل لمجموعتك",
"GaveBusinessToClan": "لقد أعطيت هذا العمل لمجموعتك",
"BuyBusinessConfirmMessage": "هل أنت متأكد أنك تريد شراء هذا العمل؟",
"BuyBusinessConfirmTitle": "تحذير!",
"BuyHouseConfirmMessage": "هل أنت متأكد أنك تريد شراء هذا المنزل؟",
"BuyHouseConfirmTitle": "تحذير!",
"BuyBusinessLabel": "استخدم {1} لشراء هذا النشاط التجاري",
"BuyHouseLabel": "استخدم {1} لشراء هذا المنزل",
"RentHouseLabel": "استخدم {1} لاستئجار هذا المنزل",
"AccountEmailAlreadyVerified": "لقد قمت بالفعل بتعيين والتحقق من بريدك الإلكتروني!",
"EmailVerificationCodeSent": "تم إرسال رمز التحقق والتعليمات إلى بريدك الإلكتروني.",
"GUIPlayAsCharacterButton": "لعب",
"GUINewCharacterButton": "شخصية جديدة",
"GUIPreviousCharacterButton": "سابق",
"GUINextCharacterButton": "التالي",
"GUICharacterSelectWindowTitle": "حدد شخصية",
"GUICharacterSelectMoneyLabel": "المال: {1} دولار",
"GUICharacterSelectClanLabel": "المجموعة: {1}",
"GUICharacterSelectLastPlayedLabel": "آخر زيارة: قبل {1} يوم و {2} ساعة و {3} دقيقة",
"GUILoginWindowLabelEnterPassword": "من فضلك أدخل كلمة السر",
"GUILoginWindowSubmitButton": "تسجيل الدخول",
"GUILoginWindowResetPasswordButton": "إعادة ضبط",
"GUILoginWindowPasswordPlaceholder": "كلمة المرور",
"GUILoginWindowForgotPasswordLabel": "هل نسيت كلمة المرور ؟",
"GUIRegisterWindowLabelCreateAccount": "انشاء حساب",
"GUIRegisterWindowPasswordPlaceholder": "كلمة المرور",
"GUIRegisterWindowConfirmPasswordPlaceholder": "تأكيد كلمة المرور",
"GUIRegisterWindowEmailPlaceholder": "ايميل",
"GUIRegisterWindowSubmitButton": "انشاء حساب",
"GUINewCharacterMessageLabel": "قم بتسميه شخصيتك",
"GUINewCharacterFirstNamePlaceholder": "الاسم الأول",
"GUINewCharacterLastNamePlaceholder": "الكنية",
"GUINewCharacterSubmitButton": "إنشاء إختصار",
"GUIChangePasswordWindowTitle": "تغيير كلمة المرور",
"GUIChangePasswordPasswordLabel": "أدخل كلمة مرور جديدة",
"GUIChangePasswordPasswordPlaceholder": "كلمة المرور",
"GUIChangePasswordConfirmPasswordPlaceholder": "تأكيد كلمة المرور",
"GUIChangePasswordSubmitButton": "تغيير كلمة المرور",
"GUIResetPasswordWindowMessage": "إعادة تعيين كلمة المرور",
"GUIResetPasswordConfirmEmailLabel": "برجاء تأكيد بريدك الالكترونى",
"GUIResetPasswordEmailPlaceholder": "ايميل",
"GUIResetPasswordSubmitButton": "إعادة تعيين كلمة المرور",
"GUIResetPasswordLoginButton": "تسجيل",
"GUIResetPasswordRememberMessage": "حفظ كلمة المرور الخاصة بك؟",
"HeaderJobList": "وظائف",
"HeaderBusinessInfo": "معلومات العمل",
"HeaderHouseInfo": "معلومات المنزل",
"HeaderClanInfo": "معلومات المجموعة",
"Locales": {
"English": "انجلزي",
"Russian": "روسي",
"Spanish": "الإسبانية",
"German": "الإلمانية",
"Dutch": "الهولندية",
"Polish": "البولندية",
"Chinese": "الصينية",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️لقد قمت بتشغيل المصادقة الثنائية {1}",
"AccountServerLogoSet": "⚙️ شعار الخادم",
"ChatScrollLinesNotNumber": "يجب أن يكون مبلغ البند رقمًا",
"ChatScrollLinesMustBeBetween": "يجب أن يكون مبلغ البند بين {1} و {2}",
"ChatScrollLinesSet": "سيقوم مربع الدردشة الآن بتمرير {1} سطورًا في المرة الواحدة",
"InvalidEmailVerificationCode": "رمز التحقق من البريد الإلكتروني غير صالح! تم إنشاء واحد جديد وإرساله إلى بريدك الإلكتروني.",
"EmailVerified": "تم التحقق من بريدك الالكتروني",
"EmailVerifiedTip": "يمكنك الآن استخدام بريدك الإلكتروني لإعادة تعيين كلمة المرور والمصادقة ذات العاملين وتنبيهات تسجيل الدخول",
"CommandRequiresLogin": "يجب أن تقوم بتسجيل الدخول لاستخدام الأمر {1}",
"CommandDisabled": "تم تعطيل الأمر {1}",
"CommandDisabledOnDiscord": "الأمر {1} غير متاح في الدسكورد",
"CommandNotFoundHelpTip": "الأمر {1} غير موجود! استخدم {2} للأوامر والمعلومات.",
"CommandNotFoundPossibleMatchTip": "الأمر {1} غير موجود! هل تقصد {2}؟",
"CommandNoPermissions": "ليس لديك إذن لاستخدام الأمر {1}",
"GUIResetPasswordCodeInputLabel": "تحقق من بريدك الإلكتروني للحصول على رمز",
"GUIResetPasswordCodePlaceholder": "رمز التحقق",
"GUIErrorTitle": "خطأ",
"GUIWarningTitle": "تحذير",
"GUIInfoTitle": "معلومات",
"GUIOkButton": "موافق",
"GUIErrorResetPasswordFailedInvalidEmail": "بريد إلكتروني خاطئ!",
"HeaderVehicleInfo": "معلومات السيارة",
"HeaderClanRanksList": "رتبة الكلان",
"HeaderNPCInfo": "معلومات الشخصية",
"NPCAnimationSet": "تم تحديد الشخصية {1} على {2}",
"NPCNameSet": "قمت بتعيين اسم الشخصية {1} على {2}",
"VehicleTooFar": "أنت بعيد جدًا عن السيارة!",
"HeaderPropertyTemplateTypes": "أنواع العقارات",
"MustBeLoggedInAndSpawnedToChat": "تحتاج إلى تسجيل الدخول ونشرها قبل أن تتمكن من الدردشة!",
"MutedCantChat": "تم إعطاءك ميوت ولا يمكنك الدردشة!",
"CantUseMegaphone": "يجب عليك تجهيز عنصر مكبر الصوت أو أن تكون في سيارة طوارئ!",
"HeaderAnimationHelp": "معلومات الرسوم المتحركة",
"HeaderBadgeInfo": "معلومات الشارة ({1})",
"NoItemCloseEnough": "لا يوجد عنصر قريب بما فيه الكفاية",
"CantDropJobEquipmentItem": "لا يمكنك إسقاط عناصر العمل",
"CantPutJobEquipmentItem": "لا يمكنك تخزين عناصر العمل",
"NoItemEquipped": "ليس لديك أي عنصر محدد",
"NoItemInActiveSlot": "ليس لديك عنصر في خانة العنصر النشط",
"CantPutItemInSkinChange": "لايمكنك تخزين عنصرأثناء تخصيص مظهرك",
"NothingToTakeItemFrom": "أنت لست بالقرب من أي شيء لأخذ العناصر منه",
"NoAmmoToLoadIntoWeapon": "ليس لديك أي ذخيرة لتحميلها في {1}",
"LoadAmmoIntoWeaponHelpCommand": "لتحميل هذه الذخيرة في سلاح ، جهز السلاح واكتب {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "لتحميل هذه الذخيرة في سلاح ، جهز السلاح واضغط {1}",
"NobodyCloseEnoughToHandcuff": "لا أحد قريب بما يكفي لتقييد يديه",
"NobodyCloseEnoughToTie": "لا أحد قريب بما يكفي لربطه",
"PlayerNotSurrenderedHandcuff": "لا يمكن تقييد {1}! هم إما يحتاجون إلى رفع أيديهم ، أو طردهم ، أو صعقهم",
"PlayerNotSurrenderedTie": "لا يمكن تقييد {1}! هم إما يحتاجون إلى رفع أيديهم ، أو طردهم ، أو صعقهم",
"HeaderCharactersListSelf": "شخصياتك",
"HeaderCharactersListOther": "شخصيات {1}",
"CharacterSelectHelpText": "استخدم {1} لتحديد حرف ، أو {2} لإنشاء شخصية جديدة",
"ItemDoesntDoAnythingOnUse": "لا يفعل {1} أي شيء عند محاولة استخدامه.",
"ItemRadioStationTip": "استخدم {1} لتعيين محطة الراديو",
"VehicleLockedCommandTip": "🔒 تم قفل {1} هذا. استخدم {2} لفتحه",
"VehicleLockedKeyPressTip": "🔒 تم قفل {1} هذا. اضغط على {2} لفتحه",
"VehicleLockedCantUnlock": "🔒 تم قفل هذا {1} وليس لديك المفاتيح لفتحه",
"CurrentlyRentingThisVehicle": "أنت تستأجر {1} مقابل {2} في الدقيقة. استخدم {3} إذا كنت تريد التوقف عن تأجيره.",
"VehicleBelongsTo": "هذا {1} ينتمي إلى {2} ({3})",
"NotOwned": "لا يملكه",
"NotCloseEnoughToItemContainer": "أنت لست قريبًا بدرجة كافية من أي شيء يحتوي على عناصر",
"Job": "وظيفة",
"Player": "لاعب",
"BusinessIsNowPaintBall": "هذا العمل هو الآن ساحة كرات الطلاء",
"JoinedPaintBall": "لقد انضممت إلى لعبة كرات الطلاء.",
"ItemsStoredForPaintBall": "يتم تخزين العناصر الخاصة بك في الخزانة الخاصة بك وسيتم إرجاعها عندما تغادر لعبة كرات الطلاء",
"LeftPaintBall": "لقد غادرت لعبة كرات الطلاء. تم إرجاع العناصر الخاصة بك.",
"PaintBallEnded": "انتهت مباراة كرة الطلاء. تم إرجاع العناصر الخاصة بك.",
"HeaderEventWinners": "الفائزون",
"YourPaintBallResults": "لقد تلقيت {1} عمليات قتل و {2} حالة وفاة في مباراة كرات الطلاء",
"NoPrivateMessageToReply": "لم تتلق رسالة خاصة للرد عليها",
"PrivateMessageReplyCommandTip": "استخدم {1} للرد بسرعة على الرسالة الخاصة",
"WeaponDoesNotUseAmmo": "لا يستخدم {1} الذخيرة",
"ChatBoxTimestampsToggle": "لقد أدرت عرض الوقت {1} في مربع الدردشة",
"ProfanityFilterSet": "لقد قمت بإدخال عامل تصفية الألفاظ النابية في الدردشة {1}",
"ResetAllKeyBindsConfirm": "هل أنت متأكد من أنك تريد إعادة تعيين كافة روابط المفاتيح الخاصة بك إلى الوضع الافتراضي؟",
"NotRentingAVehicle": "أنت لا تستأجر سيارة!",
"StoppedRentingVehicle": "لقد توقفت عن استئجار {1}",
"VehicleEngineStartKeyPressTip": "محرك {1} متوقف. اضغط على {2} لبدء تشغيله.",
"VehicleEngineStartCommandTip": "محرك {1} متوقف. استخدم {2} لبدء تشغيله.",
"StartedRentingVehicle": "أنت الآن تستأجر {1} مقابل {2} في الدقيقة. للتوقف عن الاستئجار ، استخدم {3}",
"VehicleAlreadyRentedByOther": "هذه السيارة مستأجرة بالفعل من قبل شخص آخر",
"VehicleAlreadyRentedBySelf": "أنت تستأجر هذه السيارة بالفعل",
"JobRankTooLow": "أنت لست رتبة عالية بما يكفي!",
"InvalidKeyName": "معرف المفتاح أو الاسم الذي أدخلته غير صالح!",
"KeyBindsReset": "تمت إعادة تعيين جميع روابط المفاتيح إلى الوضع الافتراضي",
"KeyBindNameTip": "أستخدم أسماء مفاتيح أو أحرف أو ارقام.لاتضف مسافات",
"UniversalInlineExamplesList": "أمثلة: {1}",
"KeyBindRemoved": "لقد قمت بإزالة رابط المفتاح للمفتاح {1}",
"KeyBindAdded": "لقد ربطت المفتاح {1} بـ {2}",
"CopyAllKeyBindsToServerConfirm": "هل تريد بالتأكيد نسخ جميع روابط المفاتيح إلى خادم {1}؟",
"CopiedAllKeyBindsToServer": "تم نسخ جميع روابط المفاتيح الخاصة بك إلى خادم {1}",
"MustBeSpawned": "يجب أن تولد!",
"ChatEmojiSet": "لقد قمت بتشغيل الرموز التعبيرية تلقائيًا في الدردشة {1}",
"FishingLineNotCast": "خط الصيد الخاص بك لا يلقي!",
"CantFishHere": "لا يمكنك الصيد هنا! يجب أن تكون بالقرب من الماء أو على متن قارب!",
"NeedFishingRod": "عليك أن تمسك صنارة الصيد!",
"FishingCastCommandHelp": "استخدم {1} لرمي خط الصيد الخاص بك",
"FishingCastKeyBindHelp": "اضغط على {1} لإلقاء خط الصيد الخاص بك",
"Paused": "متوقف مؤقتًا",
"PaintBallAlmostWin": "{1} يحتاج فقط إلى {2} عمليات قتل أخرى للفوز بمباراة كرة الطلاء!",
"HeaderClanFlagsList": "أعلام القبيلة ({1})",
"PleaseWait": "برجاء الإنتظار ...",
"HeaderServerRulesList": "قوانين سيرفر",
"FrequencyChannelChanged": "قمت بتعيين قناة {1} في الفتحة {2} على {3}",
"ItemTurnedOnOff": "لقد أدرت {1} {2} في الفتحة {3}",
"SkinSelectHelpTextSkin": "اضغط على {1} أو {2} لتبديل السطح ، أو {3} للحفظ ، أو {4} للإلغاء",
"SkinSelectHelpTextBodyPart": "اضغط على {1} أو {2} لتبديل جزء من الجسم",
"SkinSelectBodyPartNames": {
"Head": "رأس",
"UpperBody": "الجزء العلوي من الجسم",
"LowerBody": "الجسم السفلي",
"Hair": "شعر",
"Hat": "قبعة",
"Glasses": "نظارات",
"LeftHand": "اليد اليسرى",
"RightHand": "اليد اليمنى",
"LeftWrist": "معصم اليد اليسرى",
"RightWrist": "معصم اليد اليمنى"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "استخدم {1} لتشغيل أو إيقاف تشغيل محرك السيارة",
"VehicleLockedAfterEntryAttempt": "استخدم {1} لقفل أو إلغاء تأمين مركبة",
"ShowItemsAfterPurchase": "استخدم {1} لمشاهدة مخزونك",
"BuyCommandAfterEnterBusiness": "استخدم {1} لشراء عناصر من شركة",
"UseItemKeyAfterEquipping": "استخدم {1} لاستخدام العنصر المجهز الخاص بك",
"UseItemKeyAfterEquippingWalkieTalkie": "استخدم {1} لتشغيل الراديو أو إيقاف تشغيله",
"RadioCommandAfterEnablingWalkieTalkie": "استخدم {1} للتحدث في الراديو الخاص بك",
"ReplyToDirectMessage": "استخدم {1} للرد بسهولة على رسالة خاصة",
"UseItemKeyAmmoAfterEquippingWeapon": "استخدم {1} لتحميل ذخيرة في سلاحك المجهز",
"AnimationStop": "استخدم {1} لإيقاف الرسم المتحرك",
"JobEquipmentInventory": "معدات العمل موجودة في مخزونك. استخدم {1} لمشاهدتها.",
"ViewInventory": "استخدم {1} لمشاهدة عناصرك",
"VehicleRepairItemUsage": "قف بجانب سيارة واستخدم {1} لإصلاحها",
"VehicleColourItemUsage": "قف بجوار سيارة واستخدم {1} لتغيير لونها",
"VehiclePartItemUsage": "قف بجوار سيارة واستخدم {1} للترقية باستخدام {2}",
"AmmoClipItemUsage": "جهز السلاح واستخدم {1} لتحميل الذخيرة فيه",
"GenericItemUsage": "استخدم {1} لاستخدام {2}",
"EnterJobVehicleForRoute": "أدخل سيارة عمل قريبة لبدء مسار عمل",
"JobLocations": "قم بزيارة موقع العمل للحصول على وظيفة. استخدم {1} للعثور على موقع عمل",
"JobRouteStart": "استخدم {1} لبدء مسار عمل بهذه السيارة"
},
"DisconnectReasons": {
"Unknown": "غير معروف",
"LostConnection": "انقطع الإتصال",
"Disconnected": "انقطع الاتصال",
"UnsupportedClient": "عميل غير مدعوم",
"WrongGame": "تحذير اللعبة",
"IncorrectPassword": "كلمة سر خاطئة",
"UnsupportedExecutable": "قابل للتنفيذ غير معتمد",
"Kicked": "انقطع الاتصال",
"Banned": "حظر",
"Failed": "باءت بالفشل",
"InvalidName": "اسم غير صحيح",
"Crashed": "تحطم اداء",
"ModifiedGame": "لعبة معدلة",
"FailedToLogin": "كيك - فشل في تسجيل الدخول",
"NotATester": "كيك - ليس مختبرا",
"ClientScriptVerificationFail": "فشل التحقق من البرنامج النصي للعميل (الاختراقات المحتملة)",
"ServerRestarting": "يتم إعادة تشغيل الخادم",
"Desync": "منبوذ",
"FailedToCreateCharacter": "كيك - لم يخلق شخصية"
},
"DevelopersNotified": "تم إخطار المطورين بالمشكلة",
"NoJobLocationCloseEnough": "لا توجد مواقع عمل قريبة بما فيه الكفاية!",
"NotAllowedToUseJobs": "لا يسمح لك باستخدام أي وظائف!",
"CantUseThisJob": "لا يمكنك استخدام هذه الوظيفة!",
"JobChanged": "💼 لديك الآن وظيفة {1}",
"NeedToBeNearJob": "يجب أن تكون بالقرب من موقع عملك أو من سيارة تنتمي لعملك!",
"DontHaveAJob": "ليس لديك عمل!",
"StartedWorking": "💼 أنت تعمل الآن في وظيفة {1}",
"StoppedWorking": "لقد توقفت عن العمل",
"ItemsStoredForJob": "تم تخزين أغراضك الشخصية في خزانتك أثناء عملك",
"NoJobRoutesForLocation": "عملك ليس له أي طرق لهذا الموقع!",
"CurrentJobRouteDeleted": "تم حذف مسار الوظيفة الذي كنت تعمل فيه أو تعطيله من قبل الإدمن",
"YourTax": "الضريبة الخاصة بك في يوم الدفع هي: {1}. استخدم {2} لمزيد من المعلومات.",
"YourWealth": "ثروتك هي: {1}. استخدم {2} لمزيد من المعلومات.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

754
locale/canadian-french.json Normal file
View File

@@ -0,0 +1,754 @@
{
"TranslationProvidedBy": "BlowMe-Wan Kenobi",
"LocaleEnglishName": "Canadian French",
"LocaleNativeName": "Canadian French",
"LocaleOffer": "This server is available in Canadian French. Use {1} to use it.",
"LocaleChanged1": "Your language is now set to {1}",
"LocaleChanged2": "The server will now display messages in {1}",
"LocaleChangedNote": "This does not change messages from other players",
"AccentsListHeader": "Accents",
"HelpMainListHeader": "Help Categories",
"AccentNotFound": "Accent not found",
"AccentSet": "You set your accent to {1}",
"InvalidAnimation": "That animation doesn't exist",
"AnimationCommandTip": "Use {1} to see a list of valid animations",
"InvalidAnimationDistance": "The distance must be between 0 and 3",
"CantBanClient": "You cannot ban this person",
"PlayerAccountBanned": "{1} has been account banned",
"ClanNotFound": "Clan not found",
"ClanNameTaken": "A clan with that name already exists",
"PlayerNotFound": "Player not found",
"ClanCantRemoveRanks": "You can't remove clan ranks",
"ClanCantAddRanks": "You can't add clan ranks",
"ClanRankNotFound": "Clan rank not found",
"ClanCantChangeMemberTag": "You can not change clan member's tags",
"ClanPlayerNotInSameClan": "That player is not in your clan",
"ClanCantChangeRankLevel": "You can not change clan rank's level",
"ClanCantChangeRankTag": "You can not change clan rank's tags",
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
"RandomTipsToggle": "Random tips are now {1}",
"ActionTipsToggle": "Action tips are now {1}",
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
"AccountGUISettingToggle": "🖥️ GUI is now {1}",
"On": "On",
"Off": "Off",
"Yes": "Yes",
"No": "No",
"True": "True",
"False": "False",
"Locked": "Locked",
"Unlocked": "Unlocked",
"PasswordNotGoodEnough": "The new password must meet the requirements!",
"PasswordNeedsBase": "Passwords must have at least {1}",
"PasswordNeedsCapitals": "{1} capital letters",
"PasswordNeedsNumbers": "{1} numbers",
"PasswordNeedsSymbols": "{1} symbols",
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
"PasswordChanged": "Your password has been changed!",
"AutoLoggedInIP": "You have been automatically logged in by IP!",
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
"InvalidPlayer": "Player not found!",
"InvalidBusiness": "Business not found!",
"InvalidHouse": "House not found!",
"InvalidVehicle": "Vehicle not found!",
"InvalidClan": "Clan not found!",
"InvalidClanRank": "Clan rank not found!",
"InvalidJob": "Job not found!",
"InvalidItem": "Item not found!",
"InvalidItemType": "Item type not found!",
"InvalidRadioStation": "Radio station not found!",
"InvalidGate": "Gate not found!",
"EntersProperty": "opens the door and enters the {1} ({2})",
"ExitsProperty": "opens the door and exits the {1} ({2})",
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
"NoBusinessWithItemType": "There is no business with that item available",
"HeaderKeyBinds": "Key Binds",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
"HeaderJobHelp": "Job Help",
"HeaderChatHelp": "Chat Help",
"HeaderServerRules": "Server Rules",
"HeaderWebsiteInfo": "Website",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animation List",
"HeaderPayAndSprayHelp": "Pay and Spray Help",
"HeaderAmmunationHelp": "Ammunation Help",
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
"HeaderBindableKeysHelp": "Bindable Keys",
"HeaderSkinHelp": "Clothes/Skin Help",
"HeaderBusinessHelp": "Business Help",
"HeaderClanHelp": "Clan Help",
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
"HeaderClansList": "Clan List",
"HeaderAdminsList": "Admin List",
"HeaderAccentsList": "Accent List",
"HeaderPlayerInfo": "Player Information ({1})",
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
"HeaderCommandInfo": "Command Information ({1})",
"HeaderRadioHelp": "Radio Help",
"HeaderRadioStationsList": "Radio Stations",
"HeaderKeyBindsList": "Key Binds List",
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
"VolumeLevelNotNumber": "The volume level must be a number",
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
"HouseDoorLock": "House {1} {2}!",
"BusinessDoorLock": "Business {1} {2}!",
"ServerGameModeRestarting": "The server game mode is restarting!",
"HeaderSelfItemList": "Your Inventory",
"HeaderPlayerItemList": "Player Inventory ({1})",
"HeaderHouseItemList": "House Inventory",
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
"HeaderItemItemList": "{1}'s Inventory",
"ItemSlotNotNumber": "The item slot must be a number",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
"HandsBusy": "Your hands are busy",
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
"Business": "business",
"House": "house",
"Clan": "clan",
"Vehicle": "vehicle",
"Item": "item",
"ItemType": "item type",
"Gate": "gate",
"Door": "door",
"ClanRank": "clan rank",
"JobRank": "job rank",
"RadioStation": "radio station",
"Months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"WeekDays": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"CardinalDirections": {
"North": "North",
"Northeast": "Northeast",
"East": "East",
"Southeast": "Southeast",
"South": "South",
"Southwest": "Southwest",
"West": "West",
"Northwest": "Northwest"
},
"NewPlayerReadyToPlay": [
"You have been given some cash. Use {1} to find places to buy items.",
"If you need money, jobs are the yellow dots on the radar.",
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
"Be sure to read the {1} and use {2} for info."
],
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
"Distance": "Distance",
"Meters": "Meters",
"Feet": "Feet",
"Kilometers": "Kilometers",
"Miles": "Miles",
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
"PlayerJoined": "{1} has joined the game from {2}!",
"PlayerLeftServer": "{1} has left the game! ({2})",
"TakeItemFromHouse": "takes a {1} from the house",
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
"TakeItemFromBusiness": "takes a {1} from the business",
"TakeItemFromItem": "takes a {1} from the {2}",
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
"AccountHelp": [
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
"Use {1} to change your password, and {2} if you forgot it",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Your personal vehicles will save wherever you or somebody else leaves them!",
"Visit dealerships to buy new vehicles (Use {1} for more information)",
"Some commands: {1}",
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
],
"VehicleDealershipHelp": [
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
"At the dealer, enter a car you want to buy, and the price will be shown to you",
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
"Drive away from the dealership with the new vehicle to confirm the purchase."
],
"JobHelp": [
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
"At a job location, use {1} to get the job. Use {2} to quit your job",
"Use {1} to begin working. You can also get a job {2} and {3}",
"Most job vehicles are locked. Use {1} near one to enter it.",
"When entering a job vehicle, information on how to do the job will be shown to you."
],
"ChatHelp": [
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
"Mixing these two types is not proper roleplay. See {1} for info.",
"Some chat commands: {1}",
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
],
"ServerRulesHelp": [
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
"No terrorist or terrorism roleplay is allowed.",
"Always follow instructions given by moderators and admins.",
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
"Keep English in main chats. If you aren't good at English, use {1}"
],
"AnimationHelp": [
"Animations allow you to enhance roleplay with visual actions",
"Use {1} or {2} with a name to use an animation.",
"To see a list of animations, use {1}"
],
"WeaponHelp": [
"Visit an gun store to buy weapons. Use {1} to find one.",
"Buying a weapon requires a weapon license.",
"Weapon licenses are managed by the police department. Apply there to get one.",
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
],
"SkinHelp": [
"At a clothing store, use {1} to purchase clothes",
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
"Some skins are restricted to jobs, clans, or for other reasons."
],
"KeyBindHelp": [
"You can set your own key binds. Use {1} to see your binded keys.",
"Use {1} to add a new keybind and {2} to remove one.",
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
],
"BusinessHelp": [
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
"Businesses are shown with blue names above the icon at their entrance.",
"Business owner commands: {1}",
"A new car for sale will appear when you drive away from the dealer."
],
"ClanHelp": [
"Ask an administrator to create a clan (Similar to factions/groups/families)",
"Clan owners have full control over their clan once it's created",
"Clan commands: {1}",
"More clan commands: {1}"
],
"RadioStationHelp": [
"Use {1} to set the station for your vehicle, house, or business",
"Use {2} to see a list of stations",
"You can change your radio streaming volume using {1} with 0-100 as the percent"
],
"WealthAndTaxHelp": [
"Your taxes on payday are {1} percent of your calculated wealth.",
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
"Each vehicle is {1}, each house is {2}, and each business is {3}",
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
],
"MustBeInAVehicle": "You need to be in a vehicle!",
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
"MustBeInVehicleDriverSeat": "You need to be the driver!",
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
"NoGateAccess": "You don't have access to this gate!",
"GateBroken": "This gate is broken!",
"GateHacked": "The gate does not respond!",
"RadioJammed": "You hear only static from the radio.",
"VehicleNotForSale": "This vehicle is not for sale!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "This business is not for sale!",
"BusinessNotForRent": "This business is not for rent!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "This house is not for rent!",
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Player Houses ({1})",
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
"HeaderStaffFlagsList": "Staff Flags",
"NonRPName": "Non-RP name! Choose a new one:",
"InvalidStaffFlag": "Staff flag not found!",
"InvalidClanFlag": "Clan flag not found!",
"InvalidLocale": "Language not found!",
"HeaderJobUniformList": "Job Uniforms ({1})",
"HeaderJobEquipmentList": "Job Equipment ({1})",
"InvalidJobUniform": "Job uniform not found!",
"InvalidJobEquipment": "Job equipment not found!",
"HeaderVehiclesInRangeList": "Vehicles within {1}",
"NoVehiclesWithinRange": "There are no vehicles within {1}",
"AmountNotNumber": "The amount must be a number!",
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
"NotYourJob": "This is not your job!",
"JobPoints": "You can get a job by going the yellow points on the map.",
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
"NotAJobVehicle": "This is not a job vehicle!",
"NotYourJobVehicle": "This is not your job's vehicle!",
"HeaderPickupTypes": "Pickup Types",
"HeaderBlipTypes": "Map Icon Types",
"InvalidGPSLocation": "There are no locations with that name or type",
"HeaderBusinessList": "Businesses",
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
"RegistrationFailedNoPassword": "You must enter a password!",
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
"RegistrationFailedNoEmail": "You must enter an email!",
"AccountNameAlreadyRegistered": "Your name is already registered!",
"AlreadyLoggedIn": "You are already logged in!",
"RegistrationFailedInvalidEmail": "That email is invalid!",
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
"RegistrationFailedCreateError": "Your account couldn't be created!",
"RegistrationSuccess": "Your account has been created!",
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
"NoCharactersGUIWindowTitle": "No characters",
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
"SetEmailHelpTip": "Use {1} to set your email.",
"VerifyEmailHelpTip": "Use {1} to verify your email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Nearby radio",
"FromRadio": "From radio",
"ToRadio": "To radio",
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
"AmountMustBeMoreThan": "The amount must be more than {1}!",
"WeaponBanned": "You are not allowed to buy or use weapons!",
"TimeNotNumber": "The time must be a number",
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
"FixingStuck": "Fixing your position and virtual world ...",
"CantUseCommandYet": "You must wait before you can use this command again!",
"NotATester": "You are not a tester!",
"AccessDenied": "Access Denied",
"InvalidSkin": "That skin is invalid!",
"HeaderInteriorTypes": "Interiors List",
"GUIAccountSettingToggle": "You have turned {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
"PlayerIPBanned": "💀 {1} has been IP banned!",
"PlayerCharacterBanned": "💀 {1} has been character banned!",
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
"CantModifyBusiness": "You can't manage or modify this business!",
"CantModifyHouse": "You can't manage or modify this house!",
"ServerTimeSet": "⏰ {1} set the time to {2}",
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
"ServerLogoSet": "{1} turned the server logo image {2}",
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
"BusinessBuyItemsLabel": "Use {1} to purchase items",
"PropertyEnterCommandLabel": "Use {1} to enter",
"PropertyEnterKeyPressLabel": "Press {1} to enter",
"PropertyForSaleLabel": "For sale: {1}",
"PropertyForRentLabel": "For rent: {1} every payday",
"RemainingTaxPaidInMoney": "You covered the remaining taxes with {1} in cash.",
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
"Closed": "Closed",
"Open": "Open",
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
"TakeJobLabel": "Use {1} to work here",
"StartWorkLabel": "Use {1} to start working",
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
"JobLabel": "{1} Job",
"PaydayBonusSet": "🤑 {1} set the payday bonus to {2}",
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
"PlayerKicked": "🦶 {1} has been kicked from the server",
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
"UnableToDoThat": "You aren't able to do that",
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
"SetVehicleClanConfirmTitle": "Warning!",
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose {1} every purchase!",
"SetItemPriceBelowOrderPriceTitle": "Warning!",
"MustOwnVehicle": "You don't own this vehicle!",
"RandomTips": [
"Look for yellow dots on your map for job locations",
"You can set custom key binds. Use {1} for details",
"Use {1} if you don't want to see tips and extra information",
"You can edit your keybinds using {1} and {2}",
"Press to see your inventory, and use number keys to select an item",
"Use {1} at a business to purchase items",
"Found a bug? Report it with {1}",
"Have an idea or suggestion for the server? Let the devs know using {1}",
"Want to buy a business? Use {1} at one for sale",
"Want to buy a house? Use {1} at one for sale",
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
"Switch to any of your characters with {1}",
"Use {1} to automatically login when connecting with the same IP",
"Use {1} to turn on/off the lights in your house or business",
"Use {1} to play an internet radio station in your car, house, or business",
"Want to make a clan? Use {1} for details",
"Legal weapons can be purchased at any ammunation"
],
"PromptResponseTip": "Use {1} to accept or {2} to decline",
"PlayerConnecting": "👋 {1} is connecting to the server ...",
"GetStartedJobVehicle": "Get in a {1} to get started.",
"VehicleTypes": {
"Car": "Car",
"Truck": "Truck",
"Van": "Van",
"Taxi": "Taxi",
"Bus": "Bus",
"PoliceCar": "Police Car",
"Ambulance": "Ambulance",
"FireTruck": "Fire Truck",
"Bike": "Bike",
"Motorbike": "Motorbike",
"Boat": "Boat",
"Helicopter": "Helicopter",
"Plane": "Plane",
"Train": "Train"
},
"AlreadyOnJobRoute": "You are already doing a job route! Finish the route or use {1}",
"GaveVehicleToClan": "You gave this {1} to your clan!",
"JobDisabled": "This job is disabled!",
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
"SetHouseClanConfirmTitle": "Warning!",
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
"SetBusinessClanConfirmTitle": "Warning!",
"MustOwnHouse": "You don't own this house!",
"MustOwnBusiness": "You don't own this business!",
"GaveHouseToClan": "You gave this house to your clan!",
"GaveBusinessToClan": "You gave this business to your clan!",
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
"BuyBusinessConfirmTitle": "Attention!",
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
"BuyHouseConfirmTitle": "Attention!",
"BuyBusinessLabel": "Use {1} to buy this business",
"BuyHouseLabel": "Use {1} to buy this house",
"RentHouseLabel": "Use {1} to rent this house",
"AccountEmailAlreadyVerified": "You already set and verified your email!",
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
"GUIPlayAsCharacterButton": "Play",
"GUINewCharacterButton": "New character",
"GUIPreviousCharacterButton": "Previous",
"GUINextCharacterButton": "Next",
"GUICharacterSelectWindowTitle": "Select a character",
"GUICharacterSelectMoneyLabel": "Money: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
"GUILoginWindowLabelEnterPassword": "Please enter your password",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Reset",
"GUILoginWindowPasswordPlaceholder": "Password",
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
"GUIRegisterWindowLabelCreateAccount": "Create an account",
"GUIRegisterWindowPasswordPlaceholder": "Password",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Create account",
"GUINewCharacterMessageLabel": "Name your character",
"GUINewCharacterFirstNamePlaceholder": "First Name",
"GUINewCharacterLastNamePlaceholder": "Last Name",
"GUINewCharacterSubmitButton": "Create Character",
"GUIChangePasswordWindowTitle": "Change Password",
"GUIChangePasswordPasswordLabel": "Enter a new password",
"GUIChangePasswordPasswordPlaceholder": "Password",
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
"GUIChangePasswordSubmitButton": "Change Password",
"GUIResetPasswordWindowMessage": "Reset Password",
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Reset Password",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Remember your password?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "English",
"Russian": "Russian",
"Spanish": "Spanish",
"German": "German",
"Dutch": "Dutch",
"Polish": "Polish",
"Chinese": "Chinese",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️ You have turned two factor authentication {1}",
"AccountServerLogoSet": "⚙️ You turned the server logo {1}",
"ChatScrollLinesNotNumber": "The line amount must be a number",
"ChatScrollLinesMustBeBetween": "The line amount must be between {1} and {2}",
"ChatScrollLinesSet": "The chatbox will now scroll {1} lines at a time",
"InvalidEmailVerificationCode": "Invalid email verification code! A new one has been created and sent to your email.",
"EmailVerified": "Your email has been verified",
"EmailVerifiedTip": "You can now use your email for password resets, two-factor authentication, login alerts, and more",
"CommandRequiresLogin": "You must be logged in to use the {1} command",
"CommandDisabled": "The {1} command is disabled",
"CommandDisabledOnDiscord": "The {1} command isn't available on discord",
"CommandNotFoundHelpTip": "The command {1} does not exist! Use {2} for commands and information.",
"CommandNotFoundPossibleMatchTip": "The command {1} does not exist! Did you mean {2}?",
"CommandNoPermissions": "You don't have permission to use the {1} command",
"GUIResetPasswordCodeInputLabel": "Check your email for a code",
"GUIResetPasswordCodePlaceholder": "Verification code",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Warning",
"GUIInfoTitle": "Info",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Invalid email!",
"HeaderVehicleInfo": "Vehicle Info",
"HeaderClanRanksList": "Clan Ranks ({1})",
"HeaderNPCInfo": "NPC Info",
"NPCAnimationSet": "You set NPC {1} animation to {2}",
"NPCNameSet": "You set NPC {1} name to {2}",
"VehicleTooFar": "You are too far away from the vehicle!",
"HeaderPropertyTemplateTypes": "Property Types",
"MustBeLoggedInAndSpawnedToChat": "You need to be logged in and spawned before you can chat!",
"MutedCantChat": "You are muted and can't chat!",
"CantUseMegaphone": "You must equip a megaphone item or be in an emergency vehicle!",
"HeaderAnimationHelp": "Animation Info",
"HeaderBadgeInfo": "Badge Information ({1})",
"NoItemCloseEnough": "There is no item close enough",
"CantDropJobEquipmentItem": "You can't drop job items",
"CantPutJobEquipmentItem": "You can't store job items",
"NoItemEquipped": "You don't have any item selected",
"NoItemInActiveSlot": "You don't have an item in your active item slot",
"CantPutItemInSkinChange": "You can't store an item while customizing your appearance",
"NothingToTakeItemFrom": "You aren't near anything to take items from",
"NoAmmoToLoadIntoWeapon": "You don't have any ammo to load into the {1}",
"LoadAmmoIntoWeaponHelpCommand": "To load this ammo into a weapon, equip the weapon and type {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "To load this ammo into a weapon, equip the weapon and press {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Nobody is close enough to tie up",
"PlayerNotSurrenderedHandcuff": "{1} can't be handcuffed! They either need to have their hands up, be knocked out, or tazed",
"PlayerNotSurrenderedTie": "{1} can't be tied! They either need to have their hands up, be knocked out, or tazed",
"HeaderCharactersListSelf": "Your Characters",
"HeaderCharactersListOther": "{1}'s Characters",
"CharacterSelectHelpText": "Use {1} to select a character, or {2} to create a new character",
"ItemDoesntDoAnythingOnUse": "The {1} doesn't do anything when you try to use it.",
"ItemRadioStationTip": "Use {1} to set the radio station",
"VehicleLockedCommandTip": "🔒 This {1} is locked. Use {2} to unlock it",
"VehicleLockedKeyPressTip": "🔒 This {1} is locked. Press {2} to unlock it",
"VehicleLockedCantUnlock": "🔒 This {1} is locked and you don't have the keys to unlock it",
"CurrentlyRentingThisVehicle": "You are renting this {1} for {2} per minute. Use {3} if you want to stop renting it.",
"VehicleBelongsTo": "This {1} belongs to {2} ({3})",
"NotOwned": "Not Owned",
"NotCloseEnoughToItemContainer": "You are not close enough to anything that holds items",
"Job": "Job",
"Player": "Player",
"BusinessIsNowPaintBall": "This business is now a paintball arena",
"JoinedPaintBall": "You have joined the paintball game.",
"ItemsStoredForPaintBall": "Your items are stored in your locker and will be returned when you leave the paintball game",
"LeftPaintBall": "You have left the paintball game. Your items have been returned.",
"PaintBallEnded": "The paintball match has ended. Your items have been returned.",
"HeaderEventWinners": "Winners",
"YourPaintBallResults": "You got {1} kills and {2} deaths in the paintball match",
"NoPrivateMessageToReply": "You haven't received a private message to reply to",
"WeaponDoesNotUseAmmo": "The {1} doesn't use ammo",
"ChatBoxTimestampsToggle": "You turned {1} time display in the chatbox",
"ProfanityFilterSet": "You turned chat profanity filter {1}",
"ResetAllKeyBindsConfirm": "Are you sure you want to reset all your keybinds to default?",
"NotRentingAVehicle": "You are not renting a vehicle!",
"StoppedRentingVehicle": "You stopped renting the {1}",
"VehicleEngineStartKeyPressTip": "The {1} engine is off. Press {2} to start it.",
"VehicleEngineStartCommandTip": "The {1} engine is off. Use {2} to start it.",
"StartedRentingVehicle": "You are now renting this {1} for {2} per minute. To stop renting, use {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "You are already renting this vehicle",
"JobRankTooLow": "You are not high enough rank!",
"InvalidKeyName": "The key ID or name you input is invalid!",
"KeyBindsReset": "All your keybinds have been reset to default",
"KeyBindNameTip": "Use simple key names, letters, or numbers. Don't add spaces.",
"UniversalInlineExamplesList": "Examples: {1}",
"KeyBindRemoved": "You removed the keybind for the {1} key",
"KeyBindAdded": "You binded key {1} to {2}",
"CopyAllKeyBindsToServerConfirm": "Are you sure you want to copy all your keybinds to the {1} server?",
"CopiedAllKeyBindsToServer": "All your keybinds have been copied to the {1} server",
"MustBeSpawned": "You must be spawned!",
"ChatEmojiSet": "You turned automatic emoji in chat {1}",
"FishingLineNotCast": "Your fishing line isn't cast!",
"CantFishHere": "You can't fish here! You need to be near water or on a boat!",
"NeedFishingRod": "You need to be holding a fishing rod!",
"FishingCastCommandHelp": "Use {1} to cast your fishing line",
"FishingCastKeyBindHelp": "Press {1} to cast your fishing line",
"Paused": "Paused",
"PaintBallAlmostWin": "{1} only needs {2} more kills to win the paintball match!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOn": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

752
locale/chinese.json Normal file
View File

@@ -0,0 +1,752 @@
{
"TranslationProvidedBy": "Renzuka_Ctone and ARSEnic",
"LocaleEnglishName": "Simplified Chinese",
"LocaleNativeName": "简体中文",
"LocaleOffer": "本服务器有可用的中文翻译版本,使用 {1} 以启用。",
"LocaleChanged1": "语言已设定为 {1}",
"LocaleChanged2": "服务器现将以 {1} 显示所有消息。",
"LocaleChangedNote": "这将不会影响到来自其他玩家的消息",
"AccentsListHeader": "口音",
"HelpMainListHeader": "帮助类别",
"AccentNotFound": "该口音不存在",
"AccentSet": " 口音已设置为 {1}",
"InvalidAnimation": "该动作不存在",
"AnimationCommandTip": "使用 {1} 以查看可用动作列表",
"InvalidAnimationDistance": "范围必须在 0 到 3 之间",
"AnimationStopCommandTip": "使用 {1} 以停止当前动作",
"CantBanClient": "你无法封禁该玩家",
"PlayerAccountBanned": "{1} 的账户已被封禁",
"ClanNotFound": "帮派不存在",
"ClanNameTaken": "该帮派名称已被占用",
"PlayerNotFound": "玩家不存在",
"ClanCantRemoveRanks": "无法清除帮派等级",
"ClanCantAddRanks": "无法增加帮派等级",
"ClanRankNotFound": "帮派等级不存在",
"ClanCantChangeMemberTag": "你无法更改帮派成员的标签",
"ClanPlayerNotInSameClan": "该玩家并不属于你的帮派",
"ClanCantChangeRankLevel": "你无法更改帮派等级",
"ClanCantChangeRankTag": "你无法更改帮派标签",
"NameNotRegistered": "你的游戏名尚未注册!使用 {1} 以创建一个新账户。",
"AutomaticLoginIPToggle": "通过 IP 自动登录功能现已 {1}",
"CouldNotRegisterAccount": "在创建你的账户时遇到一些问题,请与管理员联系。",
"RandomTipsToggle": "随机提示信息现已 {1}",
"ActionTipsToggle": "操作帮助现已 {1}",
"AutoSpawnLastCharToggle": "已自动以上次使用的角色 {1} 进行游戏。",
"AccountGUISettingToggle": "GUI 现已 {1}",
"On": "开启",
"Off": "关闭",
"Yes": "是",
"No": "否",
"True": "真",
"False": "假",
"Locked": "锁定",
"Unlocked": "解锁",
"PasswordNotGoodEnough": "新密码须合乎规范!",
"PasswordNeedsBase": "密码至少需要 {1}",
"PasswordNeedsCapitals": "{1} 个大写字母",
"PasswordNeedsNumbers": "{1} 个数字",
"PasswordNeedsSymbols": "{1} 个符号",
"PasswordsDontMatch": "新密码和确认密码不一致!",
"PasswordChanged": "已成功更改你的密码!",
"AutoLoggedInIP": "已通过 IP 自动登录!",
"WelcomeBack": "欢迎回到 {1}, {2}!请 {3} 以继续。",
"WelcomeNewPlayer": "欢迎来到 {1}, {2}!请 {3} 以开始游戏。",
"InvalidPlayer": "玩家不存在!",
"InvalidBusiness": "企业不存在!",
"InvalidHouse": "住宅不存在!",
"InvalidVehicle": "载具不存在!",
"InvalidClan": "帮派不存在!",
"InvalidClanRank": "帮派等级不存在!",
"InvalidJob": "工作不存在",
"InvalidItem": "物品不存在!",
"InvalidItemType": "物品种类不存在!",
"InvalidRadioStation": "电台不存在!",
"InvalidGate": "大门不存在!",
"EntersProperty": "开门并进入 {1} ({2})",
"ExitsProperty": "开门并退出 {1} ({2})",
"EnterExitPropertyDoorLocked": "试图打开 {1} 之门,却发现已上锁。",
"PropertyNoInterior": "{1} 暂无内部场景,但你仍可以在大门图标上使用相关指令。",
"NoBusinessWithItemType": "暂无可用项目的企业",
"HeaderKeyBinds": "快捷键设置",
"HeaderAccountHelp": "账户帮助",
"HeaderVehicleHelp": "载具帮助",
"HeaderVehicleDealershipHelp": "汽车经销商帮助 ",
"HeaderJobHelp": "工作帮助",
"HeaderChatHelp": "聊天帮助",
"HeaderServerRules": "服务器规则",
"HeaderWebsiteInfo": "官网",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "动作列表",
"HeaderPayAndSprayHelp": "付费喷漆帮助",
"HeaderAmmunationHelp": "弹药帮助",
"HeaderVehicleTuneupHelp": "载具改装帮助",
"HeaderBindableKeysHelp": "可绑定的按键",
"HeaderSkinHelp": "服装/皮肤帮助",
"HeaderBusinessHelp": "企业帮助",
"HeaderClanHelp": "帮派帮助",
"HeaderPlayerVehiclesList": "玩家载具 ({1})",
"HeaderPlayerBusinessesList": "玩家企业 ({1})",
"HeaderClansList": "帮派列表",
"HeaderAdminsList": "管理员列表",
"HeaderAccentsList": "口音列表",
"HeaderPlayerInfo": "玩家信息 ({1})",
"HeaderWealthandTaxHelp": "资产与税收帮助",
"HeaderCommandInfo": "指令帮助 ({1})",
"HeaderRadioHelp": "电台帮助",
"HeaderRadioStationsList": "电台",
"HeaderKeyBindsList": "按键绑定列表",
"RadioVolumeChanged": "{1} 已将电台音量调整为 {2}%",
"VolumeLevelNotNumber": "确保输入的音量大小为有效数值",
"RadioStationLocationInvalid": "你必须在车辆、住宅或企业中,或拥有个人设备才能更改电台!",
"ActionBusinessRadioStationChange": "企业电台已设置为 {1} ({2})",
"ActionHouseRadioStationChange": "住宅电台已设置为 {1} ({2})",
"ActionVehicleRadioStationChange": "载具电台已设置为 {1} ({2})",
"ActionItemRadioStationChange": "{1} 的电台已设置为 {2} ({3})",
"RandomVehicleCommandsDisabled": "这是一辆随机刷出的街车,无法对其使用指令。",
"HouseDoorLock": "住宅 {1} {2}!",
"BusinessDoorLock": "企业 {1} {2}!",
"ServerGameModeRestarting": "游戏模式正在重启!",
"HeaderSelfItemList": "你的库存",
"HeaderPlayerItemList": "玩家库存 ({1})",
"HeaderHouseItemList": "住宅库存",
"HeaderBusinessFloorItemList": "企业库存 (供售)",
"HeaderBusinessStorageItemList": "企业库存 (暂存)",
"HeaderItemItemList": "{1} 的库存",
"ItemSlotNotNumber": "物品槽位必须为整数",
"ItemSlotMustBeBetween": "物品槽位应在 {1} 与 {2} 之间!",
"UseItemBugged": "尝试操作的物品出现错误!错误报告已发送给服务器开发人员。",
"PickupItemBugged": "尝试拾取的物品出现错误!错误报告已发送给服务器开发人员。",
"DropItemBugged": "尝试丢弃的物品出现错误!错误报告已发送给服务器开发人员。",
"HandsBusy": "操作频繁",
"CantUseItemInSkinChange": "自定义外观时无法使用该物品",
"CantDropItemInSkinChange": "自定义外观时无法丢弃该物品",
"CantPickupItemInSkinChange": "自定义外观时无法拾取物品",
"CantSwitchItemInSkinChange": "自定义外观时无法切换物品",
"CantGiveItemInSkinChange": "自定义外观时无法赠送物品",
"CantTakeItemInSkinChange": "自定义外观时无法取出物品",
"ItemUnequippableNoAmmo": "槽位 {2} 中的 {1} 弹药已耗尽,无法装备!",
"NoSpaceSelfInventory": "库存已无更多空间",
"Business": "企业",
"House": "住宅",
"Clan": "帮派",
"Vehicle": "载具",
"Item": "物品",
"ItemType": "物品种类",
"Gate": "大门",
"Door": "门",
"ClanRank": "帮派等级",
"JobRank": "工作等级",
"RadioStation": "电台",
"Months": [
"一月",
"二月",
"三月",
"四月",
"五月",
"六月",
"七月",
"八月",
"九月",
"十月",
"十一月",
"十二月"
],
"WeekDays": [
"周日",
"周一",
"周二",
"周三",
"周四",
"周五",
"周六"
],
"CardinalDirections": {
"North": "北",
"Northeast": "东北",
"East": "东",
"Southeast": "东南",
"South": "南",
"Southwest": "西南",
"West": "西",
"Northwest": "西北"
},
"NewPlayerReadyToPlay": [
"你得到了一些现金,使用 {1} 以找到买东西的地方。",
"赚钱靠劳动,求职请前往雷达上的小黄点。",
"买车可以到汽车经销店,你也可以在出生点附近租车或者直接乘火车。",
"确保已阅读 {1},使用 {2} 以获取相关信息。"
],
"YourCurrentVehicleDeleted": "当前乘坐的车辆已被删除。",
"Distance": "距离",
"Meters": "米",
"Feet": "英尺",
"Kilometers": "公里",
"Miles": "英里",
"MustBeVehicleDriver": "你并不是主驾驶!",
"PlayerJoinedServer": "{1} 加入游戏。来自:{2}",
"PlayerLeftServer": "{1} 退出游戏! ({2})",
"TakeItemFromHouse": "从住宅处拿到 {1}",
"TakeItemFromBusinessStorage": "从企业仓库拿到 {1}",
"TakeItemFromBusiness": "从企业处拿到 {1}",
"TakeItemFromItem": "从 {2} 处拿到 {1}",
"TakeItemFromVehicleTrunk": "从后备箱中取出 {1}",
"TakeItemFromVehicleDash": "从杂物箱中取出 {1}",
"AccountHelp": [
"请不要将密码分享给任何人,且 {1} 工作人员不会询问你的密码。",
"使用 {1} 以更改密码,若遗忘密码请使用 {2} 。",
"可用设定:{1}"
],
"VehicleHelp": [
"你的私人车辆将会在离开车辆时自动保存!",
"前往汽车经销商购买新车 (使用 {1} 以获取更多信息)",
"相关指令:{1}",
"去修理厂修理、喷漆和改装你的汽车! 使用 {1} 以获取相关信息。"
],
"VehicleDealershipHelp": [
"前往汽车经销商购买新车,使用 {1} 可以找一家。",
"在经销商处进入你希望购买的车辆,对应价格将会自动显示。",
"确定车辆后使用 {1},即可开始试驾。",
"驾驶车辆离开经销商以确认购买。"
],
"JobHelp": [
"地图上的黄点为求职处,你可以在那里找工作挣大钱。",
"在求职处使用 {1} 以获得工作,不想干了就使用 {2} 跑路。",
"使用 {1} 即开始工作,你也可以在 {2} 与 {3} 中获得工作。",
"工作专用车一般都是锁着的,在其旁边使用 {1} 即可进入。",
"进入专用车时,将向你显示有关如何执行工作的信息。"
],
"ChatHelp": [
"聊天方式主要有两种:本我意识 (OOC 即 out-of-character) 和 角色意识 (IC 即 in-character)",
"在玩角色扮演的时候最好不要混用两种聊天方式,查看 {1} 以获取更多信息。",
"聊天指令:{1}",
"某些玩家有可用的简称 ({1} 用以正常交流, {2} 用以喊话等)"
],
"ServerRulesHelp": [
"不允许不切实际的行为 (powergaming),世界并不由你主宰。",
"不允许恐怖分子或恐怖主义式角色扮演。",
"请始终遵循版主和管理员的指示。",
"不建议混合式聊天 (metagaming) 你不能在 IC 中使用收到 OOC 的信息。",
"请使用英语与其他玩家进行交流,不大擅长英语的话可以试试 {1}"
],
"AnimationHelp": [
"虚拟动作可以提升你角色扮演的游戏体验。",
"使用 {1} 或 {2} + 动作名称 以做出一个动作。",
"要查看动作列表,使用 {1}"
],
"WeaponHelp": [
"前往枪店购买武器,使用 {1} 可以找一家。",
"购买武器是需要武器许可证的。",
"而武器许可证由警察局管理,在那里申请就可以办到一张。",
"武器也可以从一些企业、武器经销商和帮派那里非法购买。"
],
"SkinHelp": [
"在服装店里使用 {1} 即可买到衣服",
"当你拥有可穿戴式物品时,像其它物品一样直接装备即可。(查看 {1} 以了解如何使用物品)",
"某些服装将因工作、帮派或其它原因而受到限制。"
],
"KeyBindHelp": [
"你可以自定义快捷键,使用 {1} 以查看已绑定的按键。",
"使用 {1} 以新增快捷键,{2} 以移除。",
"默认按键如下: {1} 发动引擎,{2} 车灯开关,{3} 锁车/解锁",
"按下 {1} 查看你的物品,{2} 装备选定物品,{3} 卸下所有物品",
"按下 {1} 使用当前物品,{2} 丢弃当前物品,{3} 拾取地面物品"
],
"BusinessHelp": [
"使用 {1} 以购买物品,或者使用 {2} 以查看任意企业的待售物品列表。",
"企业名称以蓝色字体显示在图标上方。",
"企业主可用的指令:{1}",
"一辆待售的新车会在你开车离开经销商(即确认购买)后出现。"
],
"ClanHelp": [
"请求管理员以创建一个属于你自己的帮派 (类似于派系/团体/家庭)",
"帮派创建成功后,帮主将拥有其所有控制权。",
"帮派指令:{1}",
"更多帮派指令:{1}"
],
"RadioStationHelp": [
"使用 {1} 为你的车辆/住宅/企业设置电台",
"使用 {2} 以查看电台列表",
"你可以使用 {1} 来改变电台音量大小。0-100%"
],
"WealthAndTaxHelp": [
"发薪日那天需要缴税,而税款是你计算财富的 {1}%.",
"计算财富是基于你所拥有的车辆、住宅和企业的总和。",
"计算方式:每辆车 {1},每栋房 {2},每个企业 {3}。",
"使用 {1} 以查看你的当前财富,{2} 以查看发薪日当天你应当缴纳的税款。"
],
"MustBeInAVehicle": "你先得坐在一辆车上!",
"MustBeInOrNearVehicle": "必须要有辆车在你旁边,或者你坐上那辆车!",
"MustBeInVehicleFrontSeat": "你必须坐在车辆前排座椅上!",
"MustBeInVehicleDriverSeat": "你必须是车辆主驾驶!",
"DontHaveVehicleKey": "你并没有这车的钥匙!",
"NoGateAccess": "你无法进入这个大门。",
"GateBroken": "这门已是破烂不堪。",
"GateHacked": "大门没什么反应。",
"RadioJammed": "电台似是被干扰了。",
"VehicleNotForSale": "本车不出售!",
"VehicleNotForRent": "本车不出租!",
"BusinessNotForSale": "本企业不出售!",
"BusinessNotForRent": "本企业不出租!",
"HouseNotForSale": "这处住宅不给卖!",
"HouseNotForRent": "这处住宅不给租!",
"DealershipPurchaseTestDrive": "将车辆驶离经销商处以确认购买,下车以取消。",
"DealershipPurchaseExitedVehicle": "已取消车辆购买。",
"VehiclePurchaseComplete": "这辆车现在是你的了!不管它在哪里都会自动保存。",
"VehiclePurchaseNotEnoughMoney": "你没有足够的钱买这辆车!",
"HousePurchaseNotEnoughMoney": "你没有足够的钱买这处住宅!",
"BusinessPurchaseNotEnoughMoney": "你没有足够的钱来买这家企业!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "玩家住宅 ({1})",
"HeaderPlayerStaffFlagsList": "玩家信号旗 ({1})",
"HeaderStaffFlagsList": "信号旗",
"NonRPName": "非角色扮演名称!请选择新的名称:",
"InvalidStaffFlag": "信号旗帜不存在!",
"InvalidClanFlag": "帮派旗帜不存在!",
"InvalidLocale": "语言不存在!",
"HeaderJobUniformList": "工作制服 ({1})",
"HeaderJobEquipmentList": "工作设备 ({1})",
"InvalidJobUniform": "工作制服不存在!",
"InvalidJobEquipment": "工作设备不存在!",
"HeaderVehiclesInRangeList": "{1} 内的车辆",
"NoVehiclesWithinRange": "{1} 内无任何车辆。",
"AmountNotNumber": "请输入有效数字!",
"NeedToBeWorking": "你得去工作!在求职处或工作专用车旁使用 {1} 。",
"NeedToBeOnJobRoute": "你需要进行一个工作路线!请在工作专用车内使用 {1} 。",
"CurrentJobRouteVehicleColoursChanged": "管理员已更改你的工作路线的车辆颜色",
"NotYourJob": "这不是你的工作!",
"JobPoints": "前往地图上的黄点找到工作。",
"QuitJobToTakeAnother": "要是想干这行,先使用 {1} 离开当前工作。",
"NotAJobVehicle": "这并不是辆工作专用车!",
"NotYourJobVehicle": "这不是你工作用的车!",
"HeaderPickupTypes": "拾取物类型",
"HeaderBlipTypes": "地图图标类型",
"InvalidGPSLocation": "没有具有该名称或类型的位置",
"HeaderBusinessList": "企业",
"VehicleForSale": "此 {1} 可被 {2} 购买到!购买请使用 {3}",
"VehicleForRent": "此 {1} 可被 {2} 租用!租用请使用 {3}",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "密码错误!还有 {1} 次尝试机会。",
"LoginFailedNoPassword": "密码不能为空!还有 {1} 次尝试机会。",
"RegistrationFailedNoPassword": "密码不能为空!",
"RegistrationFailedNoPasswordConfirm": "确认密码不能为空!",
"RegistrationFailedNoEmail": "电子邮件不能为空!",
"AccountNameAlreadyRegistered": "该游戏名已被注册。",
"AlreadyLoggedIn": "你已登录!",
"RegistrationFailedInvalidEmail": "该电子邮件无效!",
"RegistrationFailedPasswordMismatch": "密码不匹配!",
"RegistrationFailedCreateError": "无法创建你的账户!",
"RegistrationSuccess": "账户创建成功!",
"RegistrationEmailVerifyReminder": "验证码已发送至你的电子邮件,请前往并进行验证。",
"RegistrationCreateCharReminder": "在正式游玩之前,你需要创建一个角色。",
"NoCharactersGUIMessage": "暂无角色。要创建一个吗?",
"NoCharactersGUIWindowTitle": "无角色",
"NoCharactersChatMessage": "暂无角色。使用 {1} 新建一个角色。",
"NeedEmailFor2FA": "开启双重验证前,请先添加你的电子邮件。",
"NeedEmailVerifiedFor2FA": "开启双重验证前,请先验证你的电子邮件。",
"SetEmailHelpTip": "使用 {1} 以设置你的电子邮件。",
"VerifyEmailHelpTip": "使用 {1} 以验证你的电子邮件。",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "附近电台",
"FromRadio": "起始电台",
"ToRadio": "终止电台",
"NeedToEnterPropertyCommand": "你得先进入 {1} !使用 {2} 以进入或退出。",
"NeedToEnterPropertyKeyPress": "你得先进入 {1} !使用 {2} 以进入或退出。",
"InventoryFullCantCarry": "库存已满!",
"NotEnoughCashNeedAmountMore": "没有足够现金!你需要多加 {1} ",
"AmountMustBeMoreThan": "数额必须大于 {1}",
"WeaponBanned": "你已被禁止购买及使用武器!",
"TimeNotNumber": "设定的时间非有效数值",
"HeaderDefaultBusinessItemTypes": "企业项目模板",
"FixingStuck": "修复你当前的位置和虚拟世界 ...",
"CantUseCommandYet": "稍后才能再次使用该指令!",
"NotATester": "非测试者",
"AccessDenied": "拒绝访问",
"InvalidSkin": "该皮肤无效!",
"HeaderInteriorTypes": "内部场景列表",
"GUIAccountSettingToggle": "已切换至 {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "前往汽车经销商购买新车,使用 {1} 以获取更多信息。",
"SkinCommandHelp": "前往服装店购买新衣服,使用 {1} 以获取更多信息。",
"BusinessVehiclesRespawned": "管理员已重置所有企业车辆!",
"JobVehiclesRespawned": "管理员已重置所有工作车辆!",
"PlayerVehiclesRespawned": "管理员已重置所有玩家车辆!",
"ClanVehiclesRespawned": "管理员已重置所有帮派车辆!",
"PublicVehiclesRespawned": "管理员已重置所有公众!",
"EmptyVehiclesRespawned": "管理员已重置所有空闲车辆!",
"AllVehiclesRespawned": "管理员已重置所有车辆!",
"AllVehiclesReloaded": "管理员已重载所有车辆!",
"YourVehicleRespawned": "你的车辆已重生!",
"PlayerIPBanned": "{1} 被封禁 IP",
"PlayerCharacterBanned": "{1} 被封禁角色!",
"PlayerSubNetBanned": "{1} 被封禁网段!",
"CantModifyBusiness": "你无法操作或修改这个企业!",
"CantModifyHouse": "你无法操作或修改此住宅!",
"ServerTimeSet": "{1} 已将时间设定为 {2}",
"ServerWeatherSet": "{1} 已将天气设定为 {2}",
"ServerSnowSet": "{1} 已调整:落雪-{2},积雪-{3}",
"AllJobsReloaded": "管理员已重置所有工作!",
"ServerLogoSet": "{1} 已设定:服务器 LOGO 状态-{2}",
"ServerGUISet": "{1} 已设定:服务器 GUI 状态-{2}",
"ServerBusinessBlipsSet": "{1} 已设定:服务器企业图例显示状态-{2}",
"ServerHouseBlipsSet": "{1} 已设定:服务器住宅图例显示状态-{2}",
"ServerJobBlipsSet": "{1} 已设定:服务器工作图例显示状态-{2}",
"ServerBusinessPickupsSet": "{1} 已设定:服务器企业拾取物状态-{2}",
"ServerHousePickupsSet": "{1} 已设定:服务器住宅拾取物状态-{2}",
"ServerJobPickupsSet": "{1} 已设定:服务器工作拾取物状态-{2}",
"BusinessBuyItemsLabel": "使用 {1} 以购买物品",
"PropertyEnterCommandLabel": "使用 {1} 以进入",
"PropertyEnterKeyPressLabel": "按下 {1} 以进入",
"PropertyForSaleLabel": "售价:{1}",
"PropertyForRentLabel": "租价:每个发薪日需 {1}",
"RemainingTaxPaidInMoney": "你以 {1} 现金支付了剩下的税款",
"LostMoneyFromTaxes": "你应缴纳的税款超过了你的薪水!",
"NextPaycheckRepossessionWarning": "若无足够的现金来支付下一份薪水的税款,你将失去一些资产!",
"NotEnoughMoneyForTax": "没有足够的现金来支付税款",
"AssetsRepossessedForTax": "因未缴纳税款,你已失去 {1} 辆车,{2} 处住宅,{3} 处企业!",
"Closed": "关闭",
"Open": "开放",
"VehicleDealershipLabel": "驾驶一辆车以购买",
"TakeJobLabel": "使用 {1} 在此工作",
"StartWorkLabel": "使用 {1} 开始工作",
"JobEquipAndUniformLabel": "使用 {1} 与 {2} 以寻求工作用品,或使用 {3} 以停止工作",
"NotYourJobLabel": "你正进行一份与此不同的工作。若想改行,请使用 {1} ",
"JobLabel": "{1} 工作",
"PaydayBonusSet": "🤑 {1} 将结算奖金设定为 {2}",
"AllHousesReloaded": "🏘️ 所有住宅已刷新",
"AllRadioStationsReloaded": "📻 所有电台已刷新!",
"PlayerKicked": "🦶 {1} 被踢出服务器",
"AllBusinessesReloaded": "🏢 所有企业已刷新!",
"UnableToDoThat": "无法操作",
"SetVehicleClanConfirmMessage": "确定把这辆车送给你的帮派吗?",
"SetVehicleClanConfirmTitle": "警告!",
"SetItemPriceBelowOrderPriceMessage": "确定要将项目价格降到成本价以下吗?你将在每次交易中损失 {1} ",
"SetItemPriceBelowOrderPriceTitle": "警告!",
"MustOwnVehicle": "这辆车不属于你!",
"RandomTips": [
"地图上的黄点代表工作地点",
"你可以绑定自定义键位功能,使用 {1} 以了解详细信息",
"如果不想看到提示和额外信息,请使用 {1} ",
"你可以使用 {1} 与 {2} 来更改键位绑定",
"按下 显示库存,并使用数字键来选择一个项目",
"在商家使用 {1} 购买商品",
"发现错误?请使用 {1} 以报告给我们",
"对服务器有想法或建议?使用 {1} 以告诉开发人员",
"想买下一家企业?在你希望购买的企业中使用 {1} 即可",
"想买房?在你希望购买的住宅中使用 {1} 即可",
"想买车?去汽车销售店里看看吧",
"使用 {1} 以切换角色",
"使用 {1} 开启自动登录",
"在住宅或企业中使用 {1} 以控制灯光",
"使用 {1} 在你的汽车、住宅或企业中播放网络广播电台",
"想创立个帮派?使用 {1} 了解详细信息",
"你可以在任意一家武器店买到合法武器"
],
"PromptResponseTip": "使用 {1} 以接受,{2} 以拒绝",
"PlayerConnecting": "👋 {1} 正在连接至服务器",
"GetStartedJobVehicle": "进入一辆 {1} 以开始。",
"VehicleTypes": {
"Car": "汽车",
"Truck": "卡车",
"Van": "货车",
"Taxi": "出租车",
"Bus": "公交车",
"PoliceCar": "警车",
"Ambulance": "救护车",
"FireTruck": "消防车",
"Bike": "自行车",
"Motorbike": "摩托车",
"Boat": "船",
"Helicopter": "直升机",
"Plane": "飞机",
"Train": "火车"
},
"AlreadyOnJobRoute": "你正在进行工作路线!",
"GaveVehicleToClan": "已将这辆 {1} 送给你的帮派。",
"JobDisabled": "该工作暂时不可用。",
"SetHouseClanConfirmMessage": "确定要把这处住宅送给你的帮派吗?",
"SetHouseClanConfirmTitle": "警告!",
"SetBusinessClanConfirmMessage": "确定要把这家企业送给你的帮派吗?",
"SetBusinessClanConfirmTitle": "警告!",
"MustOwnHouse": "这处住宅并不属于你!",
"MustOwnBusiness": "这家企业并不属于你!",
"GaveHouseToClan": "已将这处住宅送给你的帮派!",
"GaveBusinessToClan": "已将这家企业送给你的帮派!",
"BuyBusinessConfirmMessage": "确定要买下这家企业吗?",
"BuyBusinessConfirmTitle": "注意!",
"BuyHouseConfirmMessage": "确定要买下这处住宅吗?",
"BuyHouseConfirmTitle": "注意!",
"BuyBusinessLabel": "使用 {1} 以买下这家企业",
"BuyHouseLabel": "使用 {1} 以买下这处住宅",
"RentHouseLabel": "使用 {1} 以租用这处住宅",
"AccountEmailAlreadyVerified": "成功设置并验证你的电子邮件!",
"EmailVerificationCodeSent": "验证码与相关说明已发送至你的电子邮件!",
"GUIPlayAsCharacterButton": "开始",
"GUINewCharacterButton": "新的角色",
"GUIPreviousCharacterButton": "上一个",
"GUINextCharacterButton": "下一个",
"GUICharacterSelectWindowTitle": "选择你的角色",
"GUICharacterSelectMoneyLabel": "价格:{1}",
"GUICharacterSelectClanLabel": "帮派:{1}",
"GUICharacterSelectLastPlayedLabel": "最后一次进入游戏:{1} 天, {2} 小时, {3} 分钟前",
"GUILoginWindowLabelEnterPassword": "请输入密码",
"GUILoginWindowSubmitButton": "登录",
"GUILoginWindowResetPasswordButton": "重置",
"GUILoginWindowPasswordPlaceholder": "密码",
"GUILoginWindowForgotPasswordLabel": "忘记密码?",
"GUIRegisterWindowLabelCreateAccount": "创建账户",
"GUIRegisterWindowPasswordPlaceholder": "密码",
"GUIRegisterWindowConfirmPasswordPlaceholder": "确认密码",
"GUIRegisterWindowEmailPlaceholder": "电子邮件",
"GUIRegisterWindowSubmitButton": "创建账户",
"GUINewCharacterMessageLabel": "为你的角色命名",
"GUINewCharacterFirstNamePlaceholder": "名字",
"GUINewCharacterLastNamePlaceholder": "姓氏",
"GUINewCharacterSubmitButton": "创建角色",
"GUIChangePasswordWindowTitle": "更改密码",
"GUIChangePasswordPasswordLabel": "输入新密码",
"GUIChangePasswordPasswordPlaceholder": "密码",
"GUIChangePasswordConfirmPasswordPlaceholder": "确认密码",
"GUIChangePasswordSubmitButton": "更改密码",
"GUIResetPasswordWindowMessage": "重置密码",
"GUIResetPasswordConfirmEmailLabel": "请验证你的电子邮件",
"GUIResetPasswordEmailPlaceholder": "电子邮件",
"GUIResetPasswordSubmitButton": "重置密码",
"GUIResetPasswordLoginButton": "登录",
"GUIResetPasswordRememberMessage": "还记得你的密码吗?",
"HeaderJobList": "工作",
"HeaderBusinessInfo": "企业信息",
"HeaderHouseInfo": "住宅信息",
"HeaderClanInfo": "帮派信息",
"Locales": {
"English": "英文",
"Russian": "俄文",
"Spanish": "西班牙文",
"German": "德文",
"Dutch": "荷兰文",
"Polish": "波兰文",
"Chinese": "中文",
"French": "法文",
"Japanese": "日文",
"Slovak": "斯洛伐克文",
"Arabic": "阿拉伯文"
},
"TwoFactorAuthSet": "⚙️ 你已开启双重验证 {1}",
"AccountServerLogoSet": "⚙️ 已开启服务器 LOGO {1}",
"ChatScrollLinesNotNumber": "行的值必须为整数",
"ChatScrollLinesMustBeBetween": "行的值必须在 {1} 与 {2} 之间",
"ChatScrollLinesSet": "聊天框一次滚动 {1} 行",
"InvalidEmailVerificationCode": "此验证码无效!系统已重新发送新的验证码,请注意查收。",
"EmailVerified": "电子邮件已成功验证",
"EmailVerifiedTip": "你现在可以使用你的电子邮件进行密码重置、双重验证、登录提醒等",
"CommandRequiresLogin": "登录以使用 {1} 指令",
"CommandDisabled": "{1} 指令被禁用",
"CommandDisabledOnDiscord": "{1} 指令在 Discord 上不可用",
"CommandNotFoundHelpTip": "指令 {1} 不存在!使用 {2} 了解可用指令与相关信息。",
"CommandNotFoundPossibleMatchTip": "指令 {1} 不存在!你是否要查找 {2}",
"CommandNoPermissions": "没有权限使用 {1} 指令",
"GUIResetPasswordCodeInputLabel": "验证码已发送,请注意查收",
"GUIResetPasswordCodePlaceholder": "验证码",
"GUIErrorTitle": "错误",
"GUIWarningTitle": "警告",
"GUIInfoTitle": "信息",
"GUIOkButton": "好",
"GUIErrorResetPasswordFailedInvalidEmail": "无效的电子邮件!",
"HeaderVehicleInfo": "载具信息",
"HeaderClanRanksList": "帮派排名",
"HeaderNPCInfo": "NPC 信息",
"NPCAnimationSet": "已将 NPC {1} 的动作设定为 {2}",
"NPCNameSet": "已将 NPC {1} 的名字更改为 {2}",
"VehicleTooFar": "你离那辆车太远了!",
"HeaderPropertyTemplateTypes": "资产类型",
"MustBeLoggedInAndSpawnedToChat": "发送消息前请先登录并进入游戏世界。",
"MutedCantChat": "你已被禁言。",
"CantUseMegaphone": "你没有扩音器,且不在紧急车辆中。",
"HeaderAnimationHelp": "动作信息",
"HeaderBadgeInfo": "徽章信息 ({1})",
"NoItemCloseEnough": "附近没有可用物品",
"CantDropJobEquipmentItem": "无法丢弃工作物品",
"CantPutJobEquipmentItem": "无法储存工作物品",
"NoItemEquipped": "没有选定任何物品",
"NoItemInActiveSlot": "当前物品槽中无任何物品",
"CantPutItemInSkinChange": "自定义皮肤时无法存储物品",
"NothingToTakeItemFrom": "附近没有可用物品",
"NoAmmoToLoadIntoWeapon": "没有装载进 {1} 的弹药",
"LoadAmmoIntoWeaponHelpCommand": "请先装备武器并使用 {1} 以装弹",
"LoadAmmoIntoWeaponHelpKeyPress": "请先装备武器并按下 {1} 以装弹",
"NobodyCloseEnoughToHandcuff": "无法使用手铐,请离目标近一些",
"NobodyCloseEnoughToTie": "无法绑起任何人,请离目标近一些",
"PlayerNotSurrenderedHandcuff": "不能把 {1} 铐起来!你只能让他举手投降,或直接进行暴力执政",
"PlayerNotSurrenderedTie": "不能把 {1} 绑起来!你只能让他举手投降,或直接进行暴力执政",
"HeaderCharactersListSelf": "你的角色",
"HeaderCharactersListOther": "{1} 的角色",
"CharacterSelectHelpText": "使用 {1} 以选择一个角色,或 {2} 以创建一个新角色",
"ItemDoesntDoAnythingOnUse": "你尝试使用 {1} ,但什么都没有发生。",
"ItemRadioStationTip": "使用 {1} 以设定电台",
"VehicleLockedCommandTip": "🔒 {1} 已被锁定。使用 {2} 尝试解锁",
"VehicleLockedKeyPressTip": "🔒 {1} 已被锁定。按下 {2} 尝试解锁",
"VehicleLockedCantUnlock": "🔒 {1} 已被锁定,你没有钥匙以解锁",
"CurrentlyRentingThisVehicle": "你正以每分钟 {2} 的价格租用这辆 {1},使用 {3} 以停止租用。",
"VehicleBelongsTo": "这辆 {1} 属于 {2} ({3})",
"NotOwned": "未获得",
"NotCloseEnoughToItemContainer": "旁边没有持有物品的玩家,请离目标近一些",
"Job": "工作",
"Player": "玩家",
"BusinessIsNowPaintBall": "这家企业现已成为彩弹竞技场",
"JoinedPaintBall": "你加入了彩弹竞技。",
"ItemsStoredForPaintBall": "你的物品已存放于储物柜中,在你离开彩弹竞技时将归还",
"LeftPaintBall": "已离开彩弹竞技,你的物品已归还。",
"PaintBallEnded": "彩弹竞技结束,你的物品已归还。",
"HeaderEventWinners": "获胜者",
"YourPaintBallResults": "你的彩弹竞技成绩:{1} 次击杀,{2} 次死亡",
"NoPrivateMessageToReply": "暂未收到未读私信",
"WeaponDoesNotUseAmmo": "{1} 无需装弹",
"ChatBoxTimestampsToggle": "聊天框时间显示现已 {1} ",
"ProfanityFilterSet": "过滤冒犯性词汇现已 {1}",
"ResetAllKeyBindsConfirm": "确定要恢复所有按键设置吗?",
"NotRentingAVehicle": "你没有在租车",
"StoppedRentingVehicle": "已停止租用 {1}",
"VehicleEngineStartKeyPressTip": "{1} 引擎已关闭。按下 {2} 以开启。",
"VehicleEngineStartCommandTip": "{1} 引擎已关闭。使用 {2} 以开启。",
"StartedRentingVehicle": "你正以每分钟 {2} 的价格租用这辆 {1},使用 {3} 以停止租用。",
"VehicleAlreadyRentedByOther": "这辆车正在被其他人租用",
"VehicleAlreadyRentedBySelf": "你正在租用这辆车",
"JobRankTooLow": "等级未达标!",
"InvalidKeyName": "输入的按键 ID 或名称无效!",
"KeyBindsReset": "所有按键已恢复默认设置",
"KeyBindNameTip": "使用简单的按键名称(字母或数字),且不要使用空格。",
"UniversalInlineExamplesList": "例如:{1}",
"KeyBindRemoved": "{1} 按键已被取消绑定",
"KeyBindAdded": "已将按键 {1} 绑定为 {2}",
"CopyAllKeyBindsToServerConfirm": "确定要将所有按键设置复制至 {1} 服务器吗?",
"CopiedAllKeyBindsToServer": "所有按键设置已复制至 {1} 服务器",
"MustBeSpawned": "请先复活!",
"ChatEmojiSet": "聊天自动贴表情现在 {1}",
"FishingLineNotCast": "先抛竿!",
"CantFishHere": "不能在这里钓鱼!你应在水边或者船上钓鱼。",
"NeedFishingRod": "先找根钓鱼竿!",
"FishingCastCommandHelp": "使用 {1} 以抛竿",
"FishingCastKeyBindHelp": "按下 {1} 以抛竿",
"Paused": "已暂停",
"PaintBallAlmostWin": "{1} 仅剩 {2} 次击杀即可赢得彩弹比赛!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOnOff": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

754
locale/english.json Normal file
View File

@@ -0,0 +1,754 @@
{
"TranslationProvidedBy": "Vortrex",
"LocaleEnglishName": "English",
"LocaleNativeName": "English",
"LocaleOffer": "This server is available in English. Use {1} to use it.",
"LocaleChanged1": "Your language is now set to {1}",
"LocaleChanged2": "The server will now display messages in {1}",
"LocaleChangedNote": "This does not change messages from other players",
"AccentsListHeader": "Accents",
"HelpMainListHeader": "Help Categories",
"AccentNotFound": "Accent not found",
"AccentSet": "You set your accent to {1}",
"InvalidAnimation": "That animation doesn't exist",
"AnimationCommandTip": "Use {1} to see a list of valid animations",
"InvalidAnimationDistance": "The distance must be between 0 and 3",
"CantBanClient": "You cannot ban this person",
"PlayerAccountBanned": "{1} has been account banned",
"ClanNotFound": "Clan not found",
"ClanNameTaken": "A clan with that name already exists",
"PlayerNotFound": "Player not found",
"ClanCantRemoveRanks": "You can't remove clan ranks",
"ClanCantAddRanks": "You can't add clan ranks",
"ClanRankNotFound": "Clan rank not found",
"ClanCantChangeMemberTag": "You can not change clan member's tags",
"ClanPlayerNotInSameClan": "That player is not in your clan",
"ClanCantChangeRankLevel": "You can not change clan rank's level",
"ClanCantChangeRankTag": "You can not change clan rank's tags",
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
"RandomTipsToggle": "Random tips are now {1}",
"ActionTipsToggle": "Action tips are now {1}",
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
"AccountGUISettingToggle": "🖥️ GUI is now {1}",
"On": "On",
"Off": "Off",
"Yes": "Yes",
"No": "No",
"True": "True",
"False": "False",
"Locked": "Locked",
"Unlocked": "Unlocked",
"PasswordNotGoodEnough": "The new password must meet the requirements!",
"PasswordNeedsBase": "Passwords must have at least {1}",
"PasswordNeedsCapitals": "{1} capital letters",
"PasswordNeedsNumbers": "{1} numbers",
"PasswordNeedsSymbols": "{1} symbols",
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
"PasswordChanged": "Your password has been changed!",
"AutoLoggedInIP": "You have been automatically logged in by IP!",
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
"InvalidPlayer": "Player not found!",
"InvalidBusiness": "Business not found!",
"InvalidHouse": "House not found!",
"InvalidVehicle": "Vehicle not found!",
"InvalidClan": "Clan not found!",
"InvalidClanRank": "Clan rank not found!",
"InvalidJob": "Job not found!",
"InvalidItem": "Item not found!",
"InvalidItemType": "Item type not found!",
"InvalidRadioStation": "Radio station not found!",
"InvalidGate": "Gate not found!",
"EntersProperty": "opens the door and enters the {1} ({2})",
"ExitsProperty": "opens the door and exits the {1} ({2})",
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
"NoBusinessWithItemType": "There is no business with that item available",
"HeaderKeyBinds": "Key Binds",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
"HeaderJobHelp": "Job Help",
"HeaderChatHelp": "Chat Help",
"HeaderServerRules": "Server Rules",
"HeaderWebsiteInfo": "Website",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animation List",
"HeaderPayAndSprayHelp": "Pay and Spray Help",
"HeaderAmmunationHelp": "Ammunation Help",
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
"HeaderBindableKeysHelp": "Bindable Keys",
"HeaderSkinHelp": "Clothes/Skin Help",
"HeaderBusinessHelp": "Business Help",
"HeaderClanHelp": "Clan Help",
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
"HeaderClansList": "Clan List",
"HeaderAdminsList": "Admin List",
"HeaderAccentsList": "Accent List",
"HeaderPlayerInfo": "Player Information ({1})",
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
"HeaderCommandInfo": "Command Information ({1})",
"HeaderRadioHelp": "Radio Help",
"HeaderRadioStationsList": "Radio Stations",
"HeaderKeyBindsList": "Key Binds List",
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
"VolumeLevelNotNumber": "The volume level must be a number",
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
"HouseDoorLock": "House {1} {2}!",
"BusinessDoorLock": "Business {1} {2}!",
"ServerGameModeRestarting": "The server game mode is restarting!",
"HeaderSelfItemList": "Your Inventory",
"HeaderPlayerItemList": "Player Inventory ({1})",
"HeaderHouseItemList": "House Inventory",
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
"HeaderItemItemList": "{1}'s Inventory",
"ItemSlotNotNumber": "The item slot must be a number",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
"HandsBusy": "Your hands are busy",
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
"Business": "business",
"House": "house",
"Clan": "clan",
"Vehicle": "vehicle",
"Item": "item",
"ItemType": "item type",
"Gate": "gate",
"Door": "door",
"ClanRank": "clan rank",
"JobRank": "job rank",
"RadioStation": "radio station",
"Months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"WeekDays": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"CardinalDirections": {
"North": "North",
"Northeast": "Northeast",
"East": "East",
"Southeast": "Southeast",
"South": "South",
"Southwest": "Southwest",
"West": "West",
"Northwest": "Northwest"
},
"NewPlayerReadyToPlay": [
"You have been given some cash. Use {1} to find places to buy items.",
"If you need money, jobs are the yellow dots on the radar.",
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
"Be sure to read the {1} and use {2} for info."
],
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
"Distance": "Distance",
"Meters": "Meters",
"Feet": "Feet",
"Kilometers": "Kilometers",
"Miles": "Miles",
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
"PlayerJoined": "{1} has joined the game from {2}!",
"PlayerLeftServer": "{1} has left the game! ({2})",
"TakeItemFromHouse": "takes a {1} from the house",
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
"TakeItemFromBusiness": "takes a {1} from the business",
"TakeItemFromItem": "takes a {1} from the {2}",
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
"AccountHelp": [
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
"Use {1} to change your password, and {2} if you forgot it",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Your personal vehicles will save wherever you or somebody else leaves them!",
"Visit dealerships to buy new vehicles (Use {1} for more information)",
"Some commands: {1}",
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
],
"VehicleDealershipHelp": [
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
"At the dealer, enter a car you want to buy, and the price will be shown to you",
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
"Drive away from the dealership with the new vehicle to confirm the purchase."
],
"JobHelp": [
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
"At a job location, use {1} to get the job. Use {2} to quit your job",
"Use {1} to begin working. You can also get a job {2} and {3}",
"Most job vehicles are locked. Use {1} near one to enter it.",
"When entering a job vehicle, information on how to do the job will be shown to you."
],
"ChatHelp": [
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
"Mixing these two types is not proper roleplay. See {1} for info.",
"Some chat commands: {1}",
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
],
"ServerRulesHelp": [
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
"No terrorist or terrorism roleplay is allowed.",
"Always follow instructions given by moderators and admins.",
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
"Keep English in main chats. If you aren't good at English, use {1}"
],
"AnimationHelp": [
"Animations allow you to enhance roleplay with visual actions",
"Use {1} or {2} with a name to use an animation.",
"To see a list of animations, use {1}"
],
"WeaponHelp": [
"Visit an gun store to buy weapons. Use {1} to find one.",
"Buying a weapon requires a weapon license.",
"Weapon licenses are managed by the police department. Apply there to get one.",
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
],
"SkinHelp": [
"At a clothing store, use {1} to purchase clothes",
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
"Some skins are restricted to jobs, clans, or for other reasons."
],
"KeyBindHelp": [
"You can set your own key binds. Use {1} to see your binded keys.",
"Use {1} to add a new keybind and {2} to remove one.",
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
],
"BusinessHelp": [
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
"Businesses are shown with blue names above the icon at their entrance.",
"Business owner commands: {1}",
"A new car for sale will appear when you drive away from the dealer."
],
"ClanHelp": [
"Ask an administrator to create a clan (Similar to factions/groups/families)",
"Clan owners have full control over their clan once it's created",
"Clan commands: {1}",
"More clan commands: {1}"
],
"RadioStationHelp": [
"Use {1} to set the station for your vehicle, house, or business",
"Use {2} to see a list of stations",
"You can change your radio streaming volume using {1} with 0-100 as the percent"
],
"WealthAndTaxHelp": [
"Your taxes on payday are {1} percent of your calculated wealth.",
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
"Each vehicle is {1}, each house is {2}, and each business is {3}",
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
],
"MustBeInAVehicle": "You need to be in a vehicle!",
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
"MustBeInVehicleDriverSeat": "You need to be the driver!",
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
"NoGateAccess": "You don't have access to this gate!",
"GateBroken": "This gate is broken!",
"GateHacked": "The gate does not respond!",
"RadioJammed": "You hear only static from the radio.",
"VehicleNotForSale": "This vehicle is not for sale!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "This business is not for sale!",
"BusinessNotForRent": "This business is not for rent!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "This house is not for rent!",
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Player Houses ({1})",
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
"HeaderStaffFlagsList": "Staff Flags",
"NonRPName": "Non-RP name! Choose a new one:",
"InvalidStaffFlag": "Staff flag not found!",
"InvalidClanFlag": "Clan flag not found!",
"InvalidLocale": "Language not found!",
"HeaderJobUniformList": "Job Uniforms ({1})",
"HeaderJobEquipmentList": "Job Equipment ({1})",
"InvalidJobUniform": "Job uniform not found!",
"InvalidJobEquipment": "Job equipment not found!",
"HeaderVehiclesInRangeList": "Vehicles within {1}",
"NoVehiclesWithinRange": "There are no vehicles within {1}",
"AmountNotNumber": "The amount must be a number!",
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
"NotYourJob": "This is not your job!",
"JobPoints": "You can get a job by going the yellow points on the map.",
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
"NotAJobVehicle": "This is not a job vehicle!",
"NotYourJobVehicle": "This is not your job's vehicle!",
"HeaderPickupTypes": "Pickup Types",
"HeaderBlipTypes": "Map Icon Types",
"InvalidGPSLocation": "There are no locations with that name or type",
"HeaderBusinessList": "Businesses",
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
"RegistrationFailedNoPassword": "You must enter a password!",
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
"RegistrationFailedNoEmail": "You must enter an email!",
"AccountNameAlreadyRegistered": "Your name is already registered!",
"AlreadyLoggedIn": "You are already logged in!",
"RegistrationFailedInvalidEmail": "That email is invalid!",
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
"RegistrationFailedCreateError": "Your account couldn't be created!",
"RegistrationSuccess": "Your account has been created!",
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
"NoCharactersGUIWindowTitle": "No characters",
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
"SetEmailHelpTip": "Use {1} to set your email.",
"VerifyEmailHelpTip": "Use {1} to verify your email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Nearby radio",
"FromRadio": "From radio",
"ToRadio": "To radio",
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
"AmountMustBeMoreThan": "The amount must be more than {1}!",
"WeaponBanned": "You are not allowed to buy or use weapons!",
"TimeNotNumber": "The time must be a number",
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
"FixingStuck": "Fixing your position and virtual world ...",
"CantUseCommandYet": "You must wait before you can use this command again!",
"NotATester": "You are not a tester!",
"AccessDenied": "Access Denied",
"InvalidSkin": "That skin is invalid!",
"HeaderInteriorTypes": "Interiors List",
"GUIAccountSettingToggle": "You have turned {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
"PlayerIPBanned": "💀 {1} has been IP banned!",
"PlayerCharacterBanned": "💀 {1} has been character banned!",
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
"CantModifyBusiness": "You can't manage or modify this business!",
"CantModifyHouse": "You can't manage or modify this house!",
"ServerTimeSet": "⏰ {1} set the time to {2}",
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
"ServerLogoSet": "{1} turned the server logo image {2}",
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
"BusinessBuyItemsLabel": "Use {1} to purchase items",
"PropertyEnterCommandLabel": "Use {1} to enter",
"PropertyEnterKeyPressLabel": "Press {1} to enter",
"PropertyForSaleLabel": "For sale: {1}",
"PropertyForRentLabel": "For rent: {1} every payday",
"RemainingTaxPaidInMoney": "You covered the remaining taxes with {1} in cash.",
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
"Closed": "Closed",
"Open": "Open",
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
"TakeJobLabel": "Use {1} to work here",
"StartWorkLabel": "Use {1} to start working",
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
"JobLabel": "{1} Job",
"PaydayBonusSet": "🤑 {1} set the payday bonus to {2}",
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
"PlayerKicked": "🦶 {1} has been kicked from the server",
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
"UnableToDoThat": "You aren't able to do that",
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
"SetVehicleClanConfirmTitle": "Warning!",
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose {1} every purchase!",
"SetItemPriceBelowOrderPriceTitle": "Warning!",
"MustOwnVehicle": "You don't own this vehicle!",
"RandomTips": [
"Look for yellow dots on your map for job locations",
"You can set custom key binds. Use {1} for details",
"Use {1} if you don't want to see tips and extra information",
"You can edit your keybinds using {1} and {2}",
"Press to see your inventory, and use number keys to select an item",
"Use {1} at a business to purchase items",
"Found a bug? Report it with {1}",
"Have an idea or suggestion for the server? Let the devs know using {1}",
"Want to buy a business? Use {1} at one for sale",
"Want to buy a house? Use {1} at one for sale",
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
"Switch to any of your characters with {1}",
"Use {1} to automatically login when connecting with the same IP",
"Use {1} to turn on/off the lights in your house or business",
"Use {1} to play an internet radio station in your car, house, or business",
"Want to make a clan? Use {1} for details",
"Legal weapons can be purchased at any ammunation"
],
"PromptResponseTip": "Use {1} to accept or {2} to decline",
"PlayerConnecting": "👋 {1} is connecting to the server ...",
"GetStartedJobVehicle": "Get in a {1} to get started.",
"VehicleTypes": {
"Car": "Car",
"Truck": "Truck",
"Van": "Van",
"Taxi": "Taxi",
"Bus": "Bus",
"PoliceCar": "Police Car",
"Ambulance": "Ambulance",
"FireTruck": "Fire Truck",
"Bike": "Bike",
"Motorbike": "Motorbike",
"Boat": "Boat",
"Helicopter": "Helicopter",
"Plane": "Plane",
"Train": "Train"
},
"AlreadyOnJobRoute": "You are already doing a job route! Finish the route or use {1}",
"GaveVehicleToClan": "You gave this {1} to your clan!",
"JobDisabled": "This job is disabled!",
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
"SetHouseClanConfirmTitle": "Warning!",
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
"SetBusinessClanConfirmTitle": "Warning!",
"MustOwnHouse": "You don't own this house!",
"MustOwnBusiness": "You don't own this business!",
"GaveHouseToClan": "You gave this house to your clan!",
"GaveBusinessToClan": "You gave this business to your clan!",
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
"BuyBusinessConfirmTitle": "Attention!",
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
"BuyHouseConfirmTitle": "Attention!",
"BuyBusinessLabel": "Use {1} to buy this business",
"BuyHouseLabel": "Use {1} to buy this house",
"RentHouseLabel": "Use {1} to rent this house",
"AccountEmailAlreadyVerified": "You already set and verified your email!",
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
"GUIPlayAsCharacterButton": "Play",
"GUINewCharacterButton": "New character",
"GUIPreviousCharacterButton": "Previous",
"GUINextCharacterButton": "Next",
"GUICharacterSelectWindowTitle": "Select a character",
"GUICharacterSelectMoneyLabel": "Money: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
"GUILoginWindowLabelEnterPassword": "Please enter your password",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Reset",
"GUILoginWindowPasswordPlaceholder": "Password",
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
"GUIRegisterWindowLabelCreateAccount": "Create an account",
"GUIRegisterWindowPasswordPlaceholder": "Password",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Create account",
"GUINewCharacterMessageLabel": "Name your character",
"GUINewCharacterFirstNamePlaceholder": "First Name",
"GUINewCharacterLastNamePlaceholder": "Last Name",
"GUINewCharacterSubmitButton": "Create Character",
"GUIChangePasswordWindowTitle": "Change Password",
"GUIChangePasswordPasswordLabel": "Enter a new password",
"GUIChangePasswordPasswordPlaceholder": "Password",
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
"GUIChangePasswordSubmitButton": "Change Password",
"GUIResetPasswordWindowMessage": "Reset Password",
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Reset Password",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Remember your password?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "English",
"Russian": "Russian",
"Spanish": "Spanish",
"German": "German",
"Dutch": "Dutch",
"Polish": "Polish",
"Chinese": "Chinese",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️ You have turned two factor authentication {1}",
"AccountServerLogoSet": "⚙️ You turned the server logo {1}",
"ChatScrollLinesNotNumber": "The line amount must be a number",
"ChatScrollLinesMustBeBetween": "The line amount must be between {1} and {2}",
"ChatScrollLinesSet": "The chatbox will now scroll {1} lines at a time",
"InvalidEmailVerificationCode": "Invalid email verification code! A new one has been created and sent to your email.",
"EmailVerified": "Your email has been verified",
"EmailVerifiedTip": "You can now use your email for password resets, two-factor authentication, login alerts, and more",
"CommandRequiresLogin": "You must be logged in to use the {1} command",
"CommandDisabled": "The {1} command is disabled",
"CommandDisabledOnDiscord": "The {1} command isn't available on discord",
"CommandNotFoundHelpTip": "The command {1} does not exist! Use {2} for commands and information.",
"CommandNotFoundPossibleMatchTip": "The command {1} does not exist! Did you mean {2}?",
"CommandNoPermissions": "You don't have permission to use the {1} command",
"GUIResetPasswordCodeInputLabel": "Check your email for a code",
"GUIResetPasswordCodePlaceholder": "Verification code",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Warning",
"GUIInfoTitle": "Info",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Invalid email!",
"HeaderVehicleInfo": "Vehicle Info",
"HeaderClanRanksList": "Clan Ranks ({1})",
"HeaderNPCInfo": "NPC Info",
"NPCAnimationSet": "You set NPC {1} animation to {2}",
"NPCNameSet": "You set NPC {1} name to {2}",
"VehicleTooFar": "You are too far away from the vehicle!",
"HeaderPropertyTemplateTypes": "Property Types",
"MustBeLoggedInAndSpawnedToChat": "You need to be logged in and spawned before you can chat!",
"MutedCantChat": "You are muted and can't chat!",
"CantUseMegaphone": "You must equip a megaphone item or be in an emergency vehicle!",
"HeaderAnimationHelp": "Animation Info",
"HeaderBadgeInfo": "Badge Information ({1})",
"NoItemCloseEnough": "There is no item close enough",
"CantDropJobEquipmentItem": "You can't drop job items",
"CantPutJobEquipmentItem": "You can't store job items",
"NoItemEquipped": "You don't have any item selected",
"NoItemInActiveSlot": "You don't have an item in your active item slot",
"CantPutItemInSkinChange": "You can't store an item while customizing your appearance",
"NothingToTakeItemFrom": "You aren't near anything to take items from",
"NoAmmoToLoadIntoWeapon": "You don't have any ammo to load into the {1}",
"LoadAmmoIntoWeaponHelpCommand": "To load this ammo into a weapon, equip the weapon and type {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "To load this ammo into a weapon, equip the weapon and press {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Nobody is close enough to tie up",
"PlayerNotSurrenderedHandcuff": "{1} can't be handcuffed! They either need to have their hands up, be knocked out, or tazed",
"PlayerNotSurrenderedTie": "{1} can't be tied! They either need to have their hands up, be knocked out, or tazed",
"HeaderCharactersListSelf": "Your Characters",
"HeaderCharactersListOther": "{1}'s Characters",
"CharacterSelectHelpText": "Use {1} to select a character, or {2} to create a new character",
"ItemDoesntDoAnythingOnUse": "The {1} doesn't do anything when you try to use it.",
"ItemRadioStationTip": "Use {1} to set the radio station",
"VehicleLockedCommandTip": "🔒 This {1} is locked. Use {2} to unlock it",
"VehicleLockedKeyPressTip": "🔒 This {1} is locked. Press {2} to unlock it",
"VehicleLockedCantUnlock": "🔒 This {1} is locked and you don't have the keys to unlock it",
"CurrentlyRentingThisVehicle": "You are renting this {1} for {2} per minute. Use {3} if you want to stop renting it.",
"VehicleBelongsTo": "This {1} belongs to {2} ({3})",
"NotOwned": "Not Owned",
"NotCloseEnoughToItemContainer": "You are not close enough to anything that holds items",
"Job": "Job",
"Player": "Player",
"BusinessIsNowPaintBall": "This business is now a paintball arena",
"JoinedPaintBall": "You have joined the paintball game.",
"ItemsStoredForPaintBall": "Your items are stored in your locker and will be returned when you leave the paintball game",
"LeftPaintBall": "You have left the paintball game. Your items have been returned.",
"PaintBallEnded": "The paintball match has ended. Your items have been returned.",
"HeaderEventWinners": "Winners",
"YourPaintBallResults": "You got {1} kills and {2} deaths in the paintball match",
"NoPrivateMessageToReply": "You haven't received a private message to reply to",
"WeaponDoesNotUseAmmo": "The {1} doesn't use ammo",
"ChatBoxTimestampsToggle": "You turned {1} time display in the chatbox",
"ProfanityFilterSet": "You turned chat profanity filter {1}",
"ResetAllKeyBindsConfirm": "Are you sure you want to reset all your keybinds to default?",
"NotRentingAVehicle": "You are not renting a vehicle!",
"StoppedRentingVehicle": "You stopped renting the {1}",
"VehicleEngineStartKeyPressTip": "The {1} engine is off. Press {2} to start it.",
"VehicleEngineStartCommandTip": "The {1} engine is off. Use {2} to start it.",
"StartedRentingVehicle": "You are now renting this {1} for {2} per minute. To stop renting, use {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "You are already renting this vehicle",
"JobRankTooLow": "You are not high enough rank!",
"InvalidKeyName": "The key ID or name you input is invalid!",
"KeyBindsReset": "All your keybinds have been reset to default",
"KeyBindNameTip": "Use simple key names, letters, or numbers. Don't add spaces.",
"UniversalInlineExamplesList": "Examples: {1}",
"KeyBindRemoved": "You removed the keybind for the {1} key",
"KeyBindAdded": "You binded key {1} to {2}",
"CopyAllKeyBindsToServerConfirm": "Are you sure you want to copy all your keybinds to the {1} server?",
"CopiedAllKeyBindsToServer": "All your keybinds have been copied to the {1} server",
"MustBeSpawned": "You must be spawned!",
"ChatEmojiSet": "You turned automatic emoji in chat {1}",
"FishingLineNotCast": "Your fishing line isn't cast!",
"CantFishHere": "You can't fish here! You need to be near water or on a boat!",
"NeedFishingRod": "You need to be holding a fishing rod!",
"FishingCastCommandHelp": "Use {1} to cast your fishing line",
"FishingCastKeyBindHelp": "Press {1} to cast your fishing line",
"Paused": "Paused",
"PaintBallAlmostWin": "{1} only needs {2} more kills to win the paintball match!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOn": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

751
locale/finnish.json Normal file
View File

@@ -0,0 +1,751 @@
{
"TranslationProvidedBy": "SIMBA_MEOW",
"LocaleEnglishName": "Finnish",
"LocaleNativeName": "Finnish",
"LocaleOffer": "Tämä Serveri on nyt käytettävissä suomen kielellä Käytä {1} jotta voit käyttää sitä",
"LocaleChanged1": "Sinun kieli on nyt vaihdettu suomeen. {1}",
"LocaleChanged2": "Tämä serveri nyt näyttää tekstit suomen kielellä. {1}",
"LocaleChangedNote": "Tämä ei vaihda tekstejä muilta pelaajilta.",
"AccentsListHeader": "Aksentit",
"HelpMainListHeader": "Ohje luokat",
"AccentNotFound": "Aksenttia ei löydetty",
"AccentSet": "Sinä vaihdoit sinun aksentin{1}",
"InvalidAnimation": "Tuo animaatio on väärä.",
"AnimationCommandTip": "Käytä {1} että näet listan toimivia animaatioita.",
"InvalidAnimationDistance": "etäisyyden pitää olla väliin 0 ja 3",
"CantBanClient": "Sinä et voi bannätä tätä pelaajaa",
"PlayerAccountBanned": "{1} Käyttäjä on nyt bannätty",
"ClanNotFound": "Claania ei löydetty",
"ClanNameTaken": "Claani tuolla nimellä on jo otettu",
"PlayerNotFound": "Pelaajaa ei löytynyt ",
"ClanCantRemoveRanks": "Sinä et voi poistaa tämän claanin rankkejä",
"ClanCantAddRanks": "sinä et voi lisätä claani ranksejä",
"ClanRankNotFound": "Claanin nimeä ei loytynyt",
"ClanCantChangeMemberTag": " Sinä et voi vaihtaa claanin jäsenen tagejä",
"ClanPlayerNotInSameClan": "Tuo pelaaja ei ole sinun claanissa.",
"ClanCantChangeRankLevel": "Sinä et voi vaihtaa claanin rankin leveleitä",
"ClanCantChangeRankTag": "Sinä et voi vaihtaa claanin rankin tägeja",
"NameNotRegistered": "Sinun käyttäjä ei ole Rekisteröitu! Käytä {1} että voit tehdä käyttäjän",
"AutomaticLoginIPToggle": "Automaatinen Kirjautuminen IP ltä on nyt päällä {1}",
"CouldNotRegisterAccount": "tässä oli ongelma luodettasi käyttäjää. Ole hyvä ja kysy adminilta.",
"RandomTipsToggle": "Randomi vinkit ovat nyt {1}",
"ActionTipsToggle": "toiminta vinkit ovat nyt {1}",
"AutoSpawnLastCharToggle": "Automaattinen spawni viimeksi käytettynä hahmo on {1}",
"AccountGUISettingToggle": "🖥️ Käyttöliitymä on nyt päällä {1}",
"On": "On",
"Off": "Off",
"Yes": "Kyllä",
"No": "Ei",
"True": "oikea",
"False": "väärin",
"Locked": "Lukittu",
"Unlocked": "Lukitsematon",
"PasswordNotGoodEnough": "Uusi salasana ei täytä vaatimuksia!",
"PasswordNeedsBase": "Salasanallasi pitää olla ainakin yksi {1}",
"PasswordNeedsCapitals": "{1} ISON alku kirjaimen",
"PasswordNeedsNumbers": "{1} Numerot",
"PasswordNeedsSymbols": "{1} Symboolit",
"PasswordsDontMatch": "Uusi salasana ja salasanan vahvistus eivät ole samat!",
"PasswordChanged": "Sinun salasanasi on vaihdettu!",
"AutoLoggedInIP": "Olet kirjautunut automaattisesti sisään IP osoitteella!",
"WelcomeBack": "Tervetuloa takaisin {1}, {2}! ole hyvä {3} jatkaaksesi.",
"WelcomeNewPlayer": "Tervetuloa {1}, {2}! ole hyvä {3} pelataaksesi.",
"InvalidPlayer": "Pelaajaa ei löytynyt!",
"InvalidBusiness": "Bisnestä ei löytynyt!",
"InvalidHouse": "Taloa ei löytynyt!",
"InvalidVehicle": "Ajoneuvoa ei löytynyt!",
"InvalidClan": "Claania ei löytynyt!",
"InvalidClanRank": "Claanin rankkiä ei löytynyt!",
"InvalidJob": "Työtä ei löytynyt!",
"InvalidItem": "kohdetta ei löytynyt!",
"InvalidItemType": "kohteen tyyppiä ei löytynyt!",
"InvalidRadioStation": "Radio kanavaa ei löytynyt!",
"InvalidGate": "porttia ei löytynyt!",
"EntersProperty": "avaa oven ja astuu sisään {1} ({2})",
"ExitsProperty": "avaa oven ja astuu pois {1} ({2})",
"EnterExitPropertyDoorLocked": "yrittää avata oven {1} ovi mutta epäonnistuu koska se on lukittu",
"PropertyNoInterior": "Tämä {1} ei sisällä sisätilaa, mutta voit silti käyttää komentoja ovikuvakkeessa.",
"NoBusinessWithItemType": "täällä ei ole kauppaa kyseisen tuotteen kanssa",
"HeaderKeyBinds": "avain sitoo",
"HeaderAccountHelp": "Käyttäjä apu",
"HeaderVehicleHelp": "ajoneuvo apu",
"HeaderVehicleDealershipHelp": "Ajoneuvo liikkeen apu",
"HeaderJobHelp": "työ apu",
"HeaderChatHelp": "Chatti apu",
"HeaderServerRules": "Serverin säännöt",
"HeaderWebsiteInfo": "Verkkosivusto",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animaatioluettelo",
"HeaderPayAndSprayHelp": "maksa ja suihkuta apu",
"HeaderAmmunationHelp": "Ase kauppa apu",
"HeaderVehicleTuneupHelp": "ajoneuvon sävelmä apu",
"HeaderBindableKeysHelp": "sidottavat avaimet",
"HeaderSkinHelp": "Vaatteet/iho apu",
"HeaderBusinessHelp": "Kauppa/bisnes apu",
"HeaderClanHelp": "Claanin apu",
"HeaderPlayerVehiclesList": "pelaajan ajoneuvot ({1})",
"HeaderPlayerBusinessesList": "pelaajan bisnekset ({1})",
"HeaderClansList": "Claani Lista",
"HeaderAdminsList": "Admini Lista",
"HeaderAccentsList": "Aksentti Lista",
"HeaderPlayerInfo": "Pelaajan Informaatio ({1})",
"HeaderWealthandTaxHelp": "varallisuus and verot Informaatio",
"HeaderCommandInfo": "komennon Informaatio ({1})",
"HeaderRadioHelp": "Radio apu",
"HeaderRadioStationsList": "Radio asemat/kanavat",
"HeaderKeyBindsList": "avain sitomis Lista",
"RadioVolumeChanged": "{1} Sinä vaihdoit sinun radion ääniä to {2}%",
"VolumeLevelNotNumber": "Äänenvoimakkuuden on oltava numero",
"RadioStationLocationInvalid": "Sinun on oltava ajoneuvossa, talossa tai yrityksessä tai sinulla on oltava henkilökohtainen laite vaihtaaksesi radio asemaa!",
"ActionBusinessRadioStationChange": "vaihtaa bisnes radioasemaksi {1} ({2})",
"ActionHouseRadioStationChange": "muuttaa talon radioasemaksi {1} ({2})",
"ActionVehicleRadioStationChange": "vaihtaa ajoneuvon radioasemaksi {1} ({2})",
"ActionItemRadioStationChange": "vaihtaa {1}'s aseman {2} ({3})",
"RandomVehicleCommandsDisabled": "Tämä on satunnainen liikenneajoneuvo, eikä siihen voi käyttää komentoja.",
"HouseDoorLock": "Talo {1} {2}!",
"BusinessDoorLock": "Bisnes {1} {2}!",
"ServerGameModeRestarting": "Palvelinpelitila käynnistyy uudelleen!",
"HeaderSelfItemList": "Sinun inventoori",
"HeaderPlayerItemList": "Pelaajan inventoori ({1})",
"HeaderHouseItemList": "Talon inventoori",
"HeaderBusinessFloorItemList": "Bisnes Inventoori (myyntiin)",
"HeaderBusinessStorageItemList": "Bisnes Inventoori (tila)",
"HeaderItemItemList": "{1}'s Inventoori",
"ItemSlotNotNumber": "Tuotepaikan on oltava numero",
"ItemSlotMustBeBetween": "Tuotepaikan tulee olla välillä {1} ja {2}!",
"UseItemBugged": "Kohde, jota yrität käyttää, on viallinen. Virheraportti on lähetetty palvelimen kehittäjille.",
"PickupItemBugged": "Tuote, jota yrität ottaa, on viallinen. Virheraportti on lähetetty palvelimen kehittäjille.",
"DropItemBugged": "Kohde, jonka yrität pudottaa, on viallinen. Virheraportti on lähetetty palvelimen kehittäjille.",
"HandsBusy": "kätesi ovat vararru",
"CantUseItemInSkinChange": "Et voi käyttää kohdetta muokkaaessasi ulkonäköäsi",
"CantDropItemInSkinChange": "Et voi pudottaa esinettä, kun muokkaat ulkonäköäsi",
"CantPickupItemInSkinChange": "Et voi ottaa tuotetta, kun muokkaat ulkonäköäsi",
"CantSwitchItemInSkinChange": "Et voi vaihtaa kohdetta muokkaaessasi ulkonäköäsi",
"CantGiveItemInSkinChange": "Et voi antaa esinettä, kun muokkaat ulkonäköäsi",
"CantTakeItemInSkinChange": "Et voi ottaa esinettä mukauttaessasi ulkonäköäsi",
"ItemUnequippableNoAmmo": " {1} paikassa {2} ei ole ammuksia, eikä sitä voi varustaa!",
"NoSpaceSelfInventory": "Sinulla ei ole enää tilaa varastossasi",
"Business": "bisnes",
"House": "talo",
"Clan": "claani",
"Vehicle": "ajoneuvo",
"Item": "kohde",
"ItemType": "kohteen tyyppi",
"Gate": "portti",
"Door": "ovi",
"ClanRank": "claan ränkki",
"JobRank": "työ ränkki",
"RadioStation": "radio kanava",
"Months": [
"Tammikuu",
"Helmikuu",
"Maaliskuu",
"Huhtikuu",
"Toukokuu",
"Kesäkuu",
"Heinäkuu",
"Elokuu",
"Syyskuu",
"Lokakuu",
"Marraskuu",
"Joulukuu"
],
"WeekDays": [
"Sunnuntai",
"Maanantai",
"Tiistai",
"Keskiviikko",
"Torstai",
"Perjantai",
"Lauantai"
],
"CardinalDirections": {
"North": "Pohjoinen",
"Northeast": "Koilinen",
"East": "Itä",
"Southeast": "Kaakko",
"South": "Etelä",
"Southwest": "Lounas",
"West": "Länsi",
"Northwest": "Luonteinen"
},
"NewPlayerReadyToPlay": [
"Sinulle on annettu rahaa. Käyttää {1} löytää ostopaikkoja.",
"Jos tarvitset rahaa, työpaikat ovat keltaisia pisteitä tutkassa.",
"Autoa varten käy autoliikkeessä. Voit myös käyttää vuokra-ajoneuvoa spawnin lähellä tai matkustaa junalla",
"Muista lukea tämä{1} Ja käyttää {2} tiedoksi"
],
"YourCurrentVehicleDeleted": "ajoneuvo, jossa olit, poistettiin.",
"Distance": "Etäisyys",
"Meters": "Metrejä",
"Feet": "jalkaa",
"Kilometers": "Kilometrejä",
"Miles": "Maileja",
"MustBeVehicleDriver": "Sinun on oltava ajoneuvon kuljettaja!",
"PlayerJoined": "{1} on liittynyt peliin {2}!",
"PlayerLeftServer": "{1} poistui pelistä! ({2})",
"TakeItemFromHouse": "ottaa {1} talosta",
"TakeItemFromBusinessStorage": "ottaa {1} varastosta",
"TakeItemFromBusiness": "ottaaa {1} bisneksestä",
"TakeItemFromItem": "ottaa {1} {2}",
"TakeItemFromVehicleTrunk": "ottaa {1} tavaratilasta",
"TakeItemFromVehicleDash": "ottaa {1} hansikaslokerosta",
"AccountHelp": [
"ÄLÄ jaa salasanaasi kenenkään muun kanssa. {1} henkilökunta ei koskaan kysy sinulta salasanaasi",
"Käytä {1} vaihtaaksesi salasanasi ja {2} jos unohdit sen",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Henkilökohtaiset ajoneuvosi säästävät minne sinä tai joku muu jättää ne!",
"Vieraile jälleenmyyjissä ostamassa uusia ajoneuvoja (Käytä {1} saadaksesi lisää tietoa)",
"Some commands: {1}",
"Vieraile mekaanikkokorjaamolla korjaamassa, värjäämässä ja virittämässä autosi! {1} saadaaksesi tietoa"
],
"VehicleDealershipHelp": [
"Vieraile ajoneuvoliikkeessä ostamassa uusia ajoneuvoja. Käytä {1} löytääksesi yhden.",
"Jälleenmyyjällä mene auton sisään auto, jonka haluat ostaa, ja hinta näytetään sinulle",
"Jos haluat ostaa ajoneuvon, käytä {1}ja sinulle annetaan avaimet koeajeluun parkkipaikalla.",
"Aja pois jälleenmyyjältä uudella ajoneuvolla vahvistaaksesi oston."
],
"JobHelp": [
"Vieraile työpaikoilla saadaksesi työtä ja ansaitaksesi rahaa. Etsi kartalta keltaisia pisteitä",
"työpaikalla Käytä {1} saadaaksesi työpaikan. Käytä {2} lopettamaan työsi",
"Käytä {1} Aloittaaksesi työn. Sinä voit myös saada työn {2} ja {3}",
"useimmat työajoneuvot ovat lukittuja. Käytä {1} lähdellä yhtä astuaaksesi autoon.",
"Kun astut työajoneuvoon, sinulle näytetään tietoja työn suorittamisesta."
],
"ChatHelp": [
"There are two main types of chat: luonteen vastaisesti (OOC) ja luonteeltaan (IC)",
"Näiden kahden tyypin sekoittaminen ei ole oikea roolileikki. Katso {1} saadaaksesi lisää tietoa.",
"Some chat commands: {1}",
"Joillakin on saatavilla lyhyempiä nimiä ({1} puhua, {2} huutaa jne)"
],
"ServerRulesHelp": [
"Epärealistiset toimet (voimapelaaminen) eivät ole sallittuja. Et ole supermies.",
"Terroristin tai terrorismin roolileikkejä ei sallita.",
"Noudata aina moderaattorien ja järjestelmänvalvojien antamia ohjeita.",
"Älä sekoita keskusteluja (metapelaaminen). Et voi käyttää IC:ssä olevia tietoja, jotka vastaanotettiin OOC",
"Pidä englantia pääkeskusteluissa. Jos sinulla ei ole hyvää englantia, käytä {1}"
],
"AnimationHelp": [
"Animaatioiden avulla voit tehostaa roolipeliä visuaalisilla toimilla",
"Käytä nimeä {1} tai {2}, jos haluat käyttää animaatiota.",
"Näet luettelon animaatioista käyttämällä {1}"
],
"WeaponHelp": [
"Käy aseliikkeessä ostamaan aseita. Käytä {1} löytääksesi sellaisen.",
"Aseen ostaminen vaatii aseluvan.",
"Poliisilaitos hallinnoi aselupia. Hae siellä saadaksesi sellaisen.",
"Aseita voidaan ostaa myös laittomasti joiltakin yrityksiltä, asekauppiailta ja claaneista."
],
"SkinHelp": [
"Käytä vaatekaupassa {1} vaatteiden ostamiseen",
"Kun sinulla on vaate, varusta ja käytä sitä kuten mitä tahansa muuta esinettä näyttääksesi ihovalikoiman (katso {1} saadaksesi lisätietoja vaatteiden käytöstä)",
"Jotkin skinit on rajoitettu töihin, claaneihin tai muista syistä."
],
"KeyBindHelp": [
"Voit asettaa omat näppäinsidokset. Käytä {1} nähdäksesi sidotut avaimet.",
"Käytä {1} lisätäksesi uuden näppäimistön ja {2} poistaaksesi yhden.",
"Default keys are:{1} {1} ajoneuvon moottorille, {2} valoille ja {3} lukitsemiselle/lukituksen avaamiselle",
"Paina {1} nähdäksesi kohteesi ja {2} varustaaksesi kohteita tai {3} poistaaksesi kaikki.",
"Paina {1} käyttääksesi kohdetta, jota pidät, paina {2} pudottaaksesi sen tai paina {3} noutaaksesi esineen maasta."
],
"BusinessHelp": [
"Käytä {1} tuotteiden ostamiseen tai {2} nähdäksesi luettelon myytävistä missä tahansa yrityksessä",
"Yritykset näkyvät sinisillä nimillä sisäänkäynnin kuvakkeen yläpuolella.",
"Yrityksen omistajan komennot: {1}",
"Uusi myytävä auto ilmestyy, kun ajat pois myyjän luota."
],
"ClanHelp": [
"Pyydä järjestelmänvalvojaa luomaan Claani (Samanlainen kuin ryhmät/ryhmät/perheet)",
"Claanin omistajilla on täysi määräysvalta klaaniin, kun se on luotu",
"Clanin komennot: {1}",
"Lisää klaanikomentoja: {1}"
],
"RadioStationHelp": [
"Aseta asema ajoneuvollesi, talollesi tai yrityksellesi käyttämällä {1}-merkkiä",
"Käytä {2} nähdäksesi luettelon asemista",
"Voit muuttaa radion suoratoiston äänenvoimakkuutta käyttämällä {1}-arvoa 0-100 prosentteina"
],
"WealthAndTaxHelp": [
"Palkkapäivän verot ovat {1} prosenttia lasketusta omaisuudestasi.",
"Laskettu varallisuus on kokonaissumma, joka perustuu siihen, kuinka monta ajoneuvoa, taloa ja yritystä sinulla on.",
"Jokainen ajoneuvo on {1}, jokainen talo on {2} ja jokainen yritys on {3}",
"Käytä {1} nähdäksesi nykyisen varallisuutesi ja {2} nähdäksesi kuinka paljon maksat veroja jokaisena palkkapäivänä"
],
"MustBeInAVehicle": "Sinun täytyy olla ajoneuvossa!",
"MustBeInOrNearVehicle": "Sinun on oltava ajoneuvossa tai sen lähellä!",
"MustBeInVehicleFrontSeat": "Sinun tulee istua auton etupenkillä!",
"MustBeInVehicleDriverSeat": "Sinun täytyy olla kuljettaja!",
"DontHaveVehicleKey": "Sinulla ei ole avainta tähän ajoneuvoon!",
"NoGateAccess": "Sinulla ei ole pääsyä tälle portille!",
"GateBroken": "tämä portti on rikki!",
"GateHacked": "Portti ei vastaa!",
"RadioJammed": "Radiosta kuuluu vain staattista ääntä.",
"VehicleNotForSale": "Tämä ajoneuvo ei ole myynnissä!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "Tämä yritys ei ole myytävänä!",
"BusinessNotForRent": "Tämä yritys ei ole vuokrattavissa!",
"HouseNotForSale": "Tämä talo ei ole myynnissä!",
"HouseNotForRent": "Tämä talo ei ole vuokrattavissa!",
"DealershipPurchaseTestDrive": "Aja ajoneuvo pois jälleenmyyjältä ostaaksesi se tai mene ulos peruuttaaksesi.",
"DealershipPurchaseExitedVehicle": "Peruutit ajoneuvon oston poistumalla ajoneuvosta!",
"VehiclePurchaseComplete": "Tämä ajoneuvo on nyt sinun! Se säästyy minne jätätkin sen.",
"VehiclePurchaseNotEnoughMoney": "Sinulla ei ole tarpeeksi rahaa ostaa tätä ajoneuvoa!",
"HousePurchaseNotEnoughMoney": "Sinulla ei ole tarpeeksi rahaa ostaa tätä taloa!",
"BusinessPurchaseNotEnoughMoney": "Sinulla ei ole tarpeeksi rahaa ostaa tätä yritystä",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Pelaajien talot ({1})",
"HeaderPlayerStaffFlagsList": "Pelaajien esikunnan liput ({1})",
"HeaderStaffFlagsList": "Henkilökunnan liput",
"NonRPName": "Ei-RP nimi! Valitse uusi:",
"InvalidStaffFlag": "Henkilökunnan lippua ei löydy!",
"InvalidClanFlag": "Claanin lippua ei löydy!",
"InvalidLocale": "Kieltä ei löytynyt",
"HeaderJobUniformList": "Työasut ({1})",
"HeaderJobEquipmentList": "työvälineet ({1})",
"InvalidJobUniform": "Työpukua ei löydy!",
"InvalidJobEquipment": "työvälineitä ei löydy!",
"HeaderVehiclesInRangeList": "alueella olevia ajoneuvoja {1}",
"NoVehiclesWithinRange": "alueella ei ole ajoneuvoja {1}",
"AmountNotNumber": "Summan tulee olla numero!",
"NeedToBeWorking": "Sinun täytyy tehdä töitä! Käytä {1} työpaikalla tai työajoneuvon lähellä.",
"NeedToBeOnJobRoute": "Sinun täytyy tehdä työreitti! Käytä {1} työajoneuvossa",
"CurrentJobRouteVehicleColoursChanged": "Järjestelmänvalvoja on muuttanut työreittisi ajoneuvon värejä",
"NotYourJob": "Tämä ei ole sinun työsi!",
"JobPoints": "Voit saada työpaikan siirtymällä kartan keltaisiin pisteisiin.",
"QuitJobToTakeAnother": "Jos sinä haluat tämän työn, Käytä {1} poistuaaksesi nykyisestäsi työstäsi.",
"NotAJobVehicle": "Tämä ei ole työ ajoneuvo!",
"NotYourJobVehicle": "Tämä ei ole työsi ajoneuvo!",
"HeaderPickupTypes": "Nouto tyypit",
"HeaderBlipTypes": "Karttakuvake tyypit",
"InvalidGPSLocation": "Tällä nimellä tai tyypillä ei ole sijainteja",
"HeaderBusinessList": "Yritykset",
"VehicleForSale": "Tämä {1} On Ostettavissa {2}! Käytä {3} Jos haluat ostaa sen",
"VehicleForRent": "Tämä {1} On Vuokrattavissa {2}! Use {3} Jos haluat ostaa sen",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Väärä Salasana! {1} Yritystä jäljellä",
"LoginFailedNoPassword": "Sinun on syötettävä salasana! ! {1} Yritystä jäljellä",
"RegistrationFailedNoPassword": "Sinun pitää syöttää salasana!",
"RegistrationFailedNoPasswordConfirm": "Sinun pitää vahvistaa salasana!",
"RegistrationFailedNoEmail": "Sinun pitää syöttää sähköposti!",
"AccountNameAlreadyRegistered": "nimi jota yritit käyttää on jo rekisteröity!",
"AlreadyLoggedIn": "Olet jo kirjautunut sisään!",
"RegistrationFailedInvalidEmail": "Sähköposti on virheellinen!",
"RegistrationFailedPasswordMismatch": "Salasanat eivät täsmää!",
"RegistrationFailedCreateError": "Tiliäsi ei voitu luoda!",
"RegistrationSuccess": "Sinun tilisi on luotu!",
"RegistrationEmailVerifyReminder": "Muista vahvistaa sähköpostiosoitteesi! Vahvistuskoodi on lähetetty sinulle.",
"RegistrationCreateCharReminder": "Jotta voit pelata palvelimella, sinun on luotava hahmo.",
"NoCharactersGUIMessage": "Sinulla ei ole hahmoja. Haluatko tehdä sellaisen",
"NoCharactersGUIWindowTitle": "Ei hahmoja",
"NoCharactersChatMessage": "Sinulla ei ole hahmoja. Käytä {1} hahmon luomiseen.",
"NeedEmailFor2FA": "Sinun on lisättävä sähköpostiosoitteesi tiliisi käyttääksesi kaksivaiheista todennusta.",
"NeedEmailVerifiedFor2FA": "Sinun on vahvistettava sähköpostisi, jotta voit käyttää kaksivaiheista todennusta.",
"SetEmailHelpTip": "Käytä {1} sähköpostiosoitteen määrittämiseen.",
"VerifyEmailHelpTip": "Käytä {1} vahvistaaksesi sähköpostiosoitteesi.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Radio lähellä",
"FromRadio": "Radiosta",
"ToRadio": "Radioon",
"NeedToEnterPropertyCommand": "Sinun on syötettävä {1} ensin! Käytä {2} siirtyäksesi ja poistuaksesi",
"NeedToEnterPropertyKeyPress": "Sinun on syötettävä {1} ensin! Siirry sisään ja poistu painamalla {2}",
"InventoryFullCantCarry": "Sinulla ei ole tilaa kantaa tätä (inventaario täynnä)!",
"NotEnoughCashNeedAmountMore": "Sinulla ei ole tarpeeksi rahaa! Tarvitset {1} lisää!",
"AmountMustBeMoreThan": "Summan on oltava yli {1}!",
"WeaponBanned": "Et saa ostaa tai käyttää aseita!",
"TimeNotNumber": "Ajan on oltava numero",
"HeaderDefaultBusinessItemTypes": "Yrityskohteiden mallit",
"FixingStuck": "Korjaa asemaasi ja virtuaalimaailmaa...",
"CantUseCommandYet": "Sinun on odotettava ennen kuin voit käyttää tätä komentoa uudelleen!",
"NotATester": "Sinä et ole testaaja!",
"AccessDenied": "Käyttö estetty",
"InvalidSkin": "tuo iho on viallinen!",
"HeaderInteriorTypes": "Sisustusluettelo",
"GUIAccountSettingToggle": "laitoit päälle {1} Käyttöliittymän",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "Voit ostaa auton käymällä ajoneuvoliikkeessä. Käytä {1} saadaksesi lisätietoja.",
"SkinCommandHelp": "Voit vaihtaa ihoasi käymällä vaateliikkeessä. Käytä {1} saadaksesi lisätietoja.",
"BusinessVehiclesRespawned": "🚗 Kaikki bisnesajoneuvot ovat järjestelmänvalvojan toimesta syntyneet uudelleen!",
"JobVehiclesRespawned": "🚗 Kaikki työajoneuvot on uudistettu järjestelmänvalvojan toimesta!",
"PlayerVehiclesRespawned": "🚗 Kaikki pelaajaajoneuvot ovat järjestelmänvalvojan luomia uudelleen!",
"ClanVehiclesRespawned": "🚗 Järjestelmänvalvojan on respawnasi kaikki claanin ajoneuvot uudelleen!",
"PublicVehiclesRespawned": "🚗 Järjestelmänvalvojan on respawnasi kaikki julkiset!",
"EmptyVehiclesRespawned": "🚗 Kaikki tyhjät ajoneuvot ovat respawnattu jäjestelmänvalvojalta!",
"AllVehiclesRespawned": "🚗 Järjestelmänvalvojan toimesta on respawnattu kaikki ajoneuvot uudelleen!",
"AllVehiclesReloaded": "🚗 Järjestelmänvalvoja on ladannut kaikki ajoneuvot uudelleen!",
"YourVehicleRespawned": "🚗 Ajoneuvosi on uusittu!",
"PlayerIPBanned": "💀 {1} olet saannut IP-kiellon!",
"PlayerCharacterBanned": "💀 {1} sinun hahmo on kielletty!",
"PlayerSubNetBanned": "💀 {1} sinut on estetty aliverkkoon!",
"CantModifyBusiness": "Et voi hallita tai muokata tätä yritystä!",
"CantModifyHouse": "Et voi hallita tai muokata tätä taloa!",
"ServerTimeSet": "⏰ {1} aseta aika {2}",
"ServerWeatherSet": "☁️ {1} säädä sää {2}",
"ServerSnowSet": "❄️ {1} käänsi lumisateen {2} ja maalunta {3}",
"AllJobsReloaded": "💼 Järjestelmänvalvoja on ladannut kaikki palvelintyöt uudelleen",
"ServerLogoSet": "{1} käänsi palvelimen logokuvan {2}",
"ServerGUISet": "🖥️ {1} laittoi päälle tämän palvelimen käyttöliittymän {2}",
"ServerBusinessBlipsSet": "🏢 {1} laittoi päälle kaikki bisnes blipsit {2}",
"ServerHouseBlipsSet": "🏘️ {1} laittoi päälle kaikki kodin blipsit {2}",
"ServerJobBlipsSet": "💼 {1} laittoi päälle kaikki työ blipsit {2}",
"ServerBusinessPickupsSet": "🏢 {1} laittoi pääkke kaikki yritysnoudot {2}",
"ServerHousePickupsSet": "🏘️ {1} laittoi päälle kaikki talonoudot {2}",
"ServerJobPickupsSet": "💼 {1} lattoi päälle kaikki työnoudot {2}",
"BusinessBuyItemsLabel": "Käytä {1} ostaaksesi tavaroita",
"PropertyEnterCommandLabel": "Käytä {1} astuaaksesi sisään",
"PropertyEnterKeyPressLabel": "Paina {1} astuaaksesi sisään",
"PropertyForSaleLabel": "Myynnissä: {1}",
"PropertyForRentLabel": "Vuokrattavissa: {1} joka palkkapäivänä",
"RemainingTaxPaidInMoney": "maksoit loput verot {1} rahana",
"LostMoneyFromTaxes": "Menetit rahaa, koska verosi ovat enemmän kuin palkkasi!",
"NextPaycheckRepossessionWarning": "Jos sinulla ei ole tarpeeksi rahaa seuraavan palkan verojen kattamiseen, menetät tavaraa!",
"NotEnoughMoneyForTax": "Sinulla ei ole tarpeeksi rahaa maksaaksesi verojasi!",
"AssetsRepossessedForTax": "Sinä menetit {1} ajoneuvoja, {2} taloja, ja {3} bisneksiä/yrityksiä koska et maksanut veroja!",
"Closed": "Suljettu",
"Open": "Auki",
"VehicleDealershipLabel": "mene ajoneuvon sisään kuljettajaksi ostaaksesi sen",
"TakeJobLabel": "Käytä {1} jotta voit mennä tänne töihin",
"StartWorkLabel": "Käytä {1} aloittaaksesi työn",
"JobEquipAndUniformLabel": "Käytä {1} ja {2} työasioihin tai {3} lopettaaksesi työt",
"NotYourJobLabel": "Sinulla on jo eri työpaikka. Käytä {1} Jos haluat tämän",
"JobLabel": "{1} Työ",
"PaydayBonusSet": "🤑 {1} aseta palkkapäiväbonukseksi {2}",
"AllHousesReloaded": "🏘️ Järjestelmänvalvoja on ladannut kaikki talot uudelleen",
"AllRadioStationsReloaded": "📻 Järjestelmänvalvoja on ladannut kaikki radioasemat uudelleen!",
"PlayerKicked": "🦶 {1} on poistettu palvelimelta",
"AllBusinessesReloaded": "🏢 Järjestelmänvalvoja on ladannut kaikki yritykset uudelleen!",
"UnableToDoThat": "Et voi tehdä sitä",
"SetVehicleClanConfirmMessage": "Oletko varma, että haluat antaa tämän ajoneuvon claanillesi?",
"SetVehicleClanConfirmTitle": "Varoitus!",
"SetItemPriceBelowOrderPriceMessage": "Oletko varma, että haluat asettaa tuotteen hinnan tilaushinnan alapuolelle? Menetät {1} jokaisen ostoksen!",
"SetItemPriceBelowOrderPriceTitle": "Varoitus!",
"MustOwnVehicle": "Sinä et omista tätä ajoneuvoa",
"RandomTips": [
"Etsi keltaisia pisteitä kartaltasi työpaikoista",
"Voit asettaa mukautettuja näppäinsidoksia. Käytä {1} lisätietoja varten",
"Käytä {1}, jos et halua nähdä vinkkejä ja lisätietoja",
"Voit muokata näppäinsidoksia käyttämällä {1} ja {2}",
"Paina nähdäksesi varastosi ja käytä numeronäppäimiä valitaksesi tuotteen",
"Käytä {1}:a yrityksessä tuotteiden ostamiseen",
"Löysitkö virheen? Ilmoita siitä osoitteella {1}",
"Onko sinulla idea tai ehdotus palvelimelle? Kerro siitä kehittäjille käyttämällä {1}",
"Haluatko ostaa yrityksen? Käytä {1} myytävänä",
"Haluatko ostaa talon? Käytä {1} myytävänä",
"Haluatko ostaa ajoneuvon? Vieraile jälleenmyyjällä ja syötä se saadaksesi tietoa sen ostamisesta!",
"Vaihda mihin tahansa hahmoihisi käyttämällä {1}",
"Käytä {1}-kirjautumista automaattisesti, kun muodostat yhteyden samaan IP-osoitteeseen",
"Käytä {1}:a kytkeäksesi valot päälle/pois päältä talossasi tai yrityksessäsi",
"Käytä palvelua {1} toistaaksesi Internet-radioasemaa autossasi, talossasi tai yrityksessäsi",
"Haluatko tehdä claanin? Käytä {1} lisätietoja varten",
"Laillisia aseita voi ostaa millä tahansa ase kaupasta"
],
"PromptResponseTip": "Käytä {1} hyväksyäksesi tai {2} hylkäämiseen",
"PlayerConnecting": "👋 {1} muodostaa yhteyttä palvelimeen...",
"GetStartedJobVehicle": "Aloita kirjautumalla {1}-palveluun.",
"VehicleTypes": {
"Car": "Auto",
"Truck": "Rekka",
"Van": "Pakettiauto",
"Taxi": "Taksi",
"Bus": "Bussi",
"PoliceCar": "Poliisi auto",
"Ambulance": "Ambulanssi",
"FireTruck": "Paloauto",
"Bike": "Pyörä",
"Motorbike": "Moottoripyörä",
"Boat": "Vene",
"Helicopter": "Helikopteri",
"Plane": "Lentokone",
"Train": "Juna"
},
"AlreadyOnJobRoute": "Olet jo tekemässä työreittiä!",
"GaveVehicleToClan": "Annoit tämän {1} klaanillesi!",
"JobDisabled": "Tämä työ on poistettu käytöstä",
"SetHouseClanConfirmMessage": "Oletko varma, että haluat antaa tämän talon claanillesi?",
"SetHouseClanConfirmTitle": "Varoitus!",
"SetBusinessClanConfirmMessage": "Oletko varma, että haluat antaa tämän yrityksen claanille?",
"SetBusinessClanConfirmTitle": "Varoitus!",
"MustOwnHouse": "Et omista tätä taloa!",
"MustOwnBusiness": "Et omista tätä yritystä!",
"GaveHouseToClan": "Annoit tämän talon claanillesi!",
"GaveBusinessToClan": "Annoit tämän yrityksen claanille!",
"BuyBusinessConfirmMessage": "Oletko varma, että haluat ostaa tämän yrityksen?",
"BuyBusinessConfirmTitle": "Huomio!",
"BuyHouseConfirmMessage": "Oletko varma, että haluat ostaa tämän talon?",
"BuyHouseConfirmTitle": "Huomio!",
"BuyBusinessLabel": "Käytä {1} tämän yrityksen ostamiseen",
"BuyHouseLabel": "Käytä {1} tämän talon ostamiseen",
"RentHouseLabel": "Käytä {1} vuokrataksesi tämän talon",
"AccountEmailAlreadyVerified": "Olet jo määrittänyt ja vahvistanut sähköpostiosoitteesi!",
"EmailVerificationCodeSent": "Vahvistuskoodi ja ohjeet on lähetetty sähköpostiisi.",
"GUIPlayAsCharacterButton": "Pelaa",
"GUINewCharacterButton": "Uusi Hahmo",
"GUIPreviousCharacterButton": "Edellinen",
"GUINextCharacterButton": "Seuraava",
"GUICharacterSelectWindowTitle": "Valitse hahmo",
"GUICharacterSelectMoneyLabel": "Raha: {1}",
"GUICharacterSelectClanLabel": "Claani: {1}",
"GUICharacterSelectLastPlayedLabel": "Viimeksi pelattu: {1} päivää, {2} tuntia, {3} minuuttia sitten",
"GUILoginWindowLabelEnterPassword": "Syötä salasana",
"GUILoginWindowSubmitButton": "Kirjaudu",
"GUILoginWindowResetPasswordButton": "Nollaa",
"GUILoginWindowPasswordPlaceholder": "salasana",
"GUILoginWindowForgotPasswordLabel": "Unohditko salasanasi?",
"GUIRegisterWindowLabelCreateAccount": "Luo Käyttäjä",
"GUIRegisterWindowPasswordPlaceholder": "Salasana",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Vahvista salasana!",
"GUIRegisterWindowEmailPlaceholder": "Sähköposti",
"GUIRegisterWindowSubmitButton": "Luo käyttäjä",
"GUINewCharacterMessageLabel": "Nimeta sinun hahmo ",
"GUINewCharacterFirstNamePlaceholder": "Ensimmäinen nimi",
"GUINewCharacterLastNamePlaceholder": "Viimeinen Nimi",
"GUIChangePasswordWindowTitle": "Vaihda Salasana",
"GUIChangePasswordPasswordLabel": "Syötä Uusi salasna",
"GUIChangePasswordPasswordPlaceholder": "Salasana",
"GUIChangePasswordConfirmPasswordPlaceholder": "Vahvista salasana",
"GUIChangePasswordSubmitButton": "Vaihda Salasana",
"GUIResetPasswordWindowMessage": "Nollaa Salasana",
"GUIResetPasswordConfirmEmailLabel": "Vahvista sinun sähköposti",
"GUIResetPasswordEmailPlaceholder": "Sähköposti",
"GUIResetPasswordSubmitButton": "Nollaa salasana",
"GUIResetPasswordLoginButton": "Kirjaudu",
"GUIResetPasswordRememberMessage": "Muistatko salsanasi?",
"HeaderJobList": "Työt",
"HeaderBusinessInfo": "Yritys tiedot",
"HeaderHouseInfo": "Talo tiedot",
"HeaderClanInfo": "Claani tiedot",
"Locales": {
"English": "Englanti",
"Russian": "Venäjä",
"Spanish": "Espanja",
"German": "Saksa",
"Dutch": "Hollanti",
"Polish": "Puola",
"Chinese": "Kiina",
"French": "Ranska",
"Japanese": "Japani",
"Slovak": "Slovakia",
"Arabic": "Arabia"
},
"TwoFactorAuthSet": "⚙️ Olet laittanut päälle kaksivaiheisen todennuksen {1}",
"AccountServerLogoSet": "⚙️ Laitoit serverin logon päälle {1}",
"ChatScrollLinesNotNumber": "Rivin määrä on oltava numero!",
"ChatScrollLinesMustBeBetween": "Rivin määrän on oltava välillä {1} ja {2}",
"ChatScrollLinesSet": "Chattiboxi rullaa nyt {1} Riviä",
"InvalidEmailVerificationCode": "Virheellinen sähköpostin vahvistuskoodi! Uusi on nyt lähetetty sähköpostiisi.",
"EmailVerified": "Sähköpostisi on vahvistettu!",
"EmailVerifiedTip": "Voit nyt käyttää sähköpostiasi salasanan nollaukseen, kaksivaiheiseen todentamiseen, hälytyksiin ja moneen muuhun",
"CommandRequiresLogin": "Sinun pitää olla kirjautuneena ennen käyttämällä {1} komentoa",
"CommandDisabled": " {1} Komento on poistettu käytöstä!",
"CommandDisabledOnDiscord": " {1} Komento ei ole saatavilla discordissa",
"CommandNotFoundHelpTip": "Komento {1} Ei ole olemassa , Käytä {2} Komennoille ja tietoa.",
"CommandNotFoundPossibleMatchTip": "Komentoa {1} Ei löydy! Tarkoititko? {2}?",
"CommandNoPermissions": "Sinulla ei ole käyttöoikeutta käyttääksesi {1} komentoa",
"GUIResetPasswordCodeInputLabel": "Katso sähköpostisi koodille.",
"GUIResetPasswordCodePlaceholder": "Vahvistuskoodi",
"GUIErrorTitle": "Virhe",
"GUIWarningTitle": "Varoitus!",
"GUIInfoTitle": "Tietoa",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Väärä sähköposti!",
"HeaderVehicleInfo": "Ajoneuvon tiedot",
"HeaderClanRanksList": "Claanin Ränkki",
"HeaderNPCInfo": "NPCn tiedot",
"NPCAnimationSet": "laitoit NPCn {1} Animaation {2}",
"NPCNameSet": "Laitoit NPCn {1} Nimen {2}",
"VehicleTooFar": "Olet liian kaukana ajoneuvosta!",
"HeaderPropertyTemplateTypes": "Omaisuuden tyypit",
"MustBeLoggedInAndSpawnedToChat": "Sinun on kirjauduttava sisään ja spawnattu ennen kuin voit keskustella!",
"MutedCantChat": "Sinä olet mykistetty , et voi keskustella!",
"CantUseMegaphone": "Sinun on varustettava megafoni tai oltava hätäajoneuvossa!",
"HeaderAnimationHelp": "Animaation Tieto",
"HeaderBadgeInfo": "Merkin tieto ({1})",
"NoItemCloseEnough": "Kohde ei ole tarpeeksi lähellä",
"CantDropJobEquipmentItem": "Et voi pudottaa työ kohteita",
"CantPutJobEquipmentItem": "Et voi säästää työ kohteita",
"NoItemEquipped": "Et ole valinnut yhtään kohdetta",
"NoItemInActiveSlot": "Sinulla ei ole kohdetta aktiivisessa kohdepaikassasi",
"CantPutItemInSkinChange": "Et voi tallentaa esinettä kun muokkaat ulkonäköäsi",
"NothingToTakeItemFrom": "Sinun lähellä ei ole yhtään itemejä josta ottaa tavaroita",
"NoAmmoToLoadIntoWeapon": "Sinulla ei ole ammuksia ladattavaksi {1}",
"LoadAmmoIntoWeaponHelpCommand": "Lataa ase aseeseen varustamalla ase ja ota se käyttöön {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "Lataa ase aseeseen varustamalla ase ja painamalla {1}",
"NobodyCloseEnoughToHandcuff": "Kukaan ei ole lähelläsi käsirautojasi",
"NobodyCloseEnoughToTie": "Kukaan ei ole lähelläsi sitoakseen",
"PlayerNotSurrenderedHandcuff": "{1} ei saa laittaa vielä käsirautoja! Heidän on joko nostettava kätensä ylhäällä, tyrmätty tai sähköistetty",
"PlayerNotSurrenderedTie": "{1} et voi sitoa häntä! Heidän on joko nostettava kätensä ylhäällä, tyrmätty tai sähköistetty",
"HeaderCharactersListSelf": "Sinun Hahmot",
"HeaderCharactersListOther": "{1} Hahmot",
"CharacterSelectHelpText": "Käytä {1} Valitaaksesi hahmon, tai {2} tekeäksesi uuden hahmon",
"ItemDoesntDoAnythingOnUse": " {1} se ei tee mitään, yrität käyttää sitä.",
"ItemRadioStationTip": "Käytä {1} Laittaaksesi radio kanavan",
"VehicleLockedCommandTip": "🔒 Tämä {1} On lukossa! , käytä {2} Aukaaksesi sen",
"VehicleLockedKeyPressTip": "🔒 Tämä {1} On lukossa! Paina {2} Aukaaksesi sen",
"VehicleLockedCantUnlock": "🔒 Tämä {1} on lukossa! ja sinulla ei ole avaimia sen avaamiseen",
"CurrentlyRentingThisVehicle": "Olet vuokraamassa tätä {1} {2} per minuutti. Käytä {3} Jos haluat lopettaa sen vuokraamisen.",
"VehicleBelongsTo": "Tämä {1} Kuuluu {2} ({3})",
"NotOwned": "Ei omistettu!",
"NotCloseEnoughToItemContainer": "Et ole tarpeeksi lähellä, jossa on esineitä",
"Job": "Työ",
"Player": "Pelaaja",
"BusinessIsNowPaintBall": "Tämä bisnes on nyt värikuula peli ",
"JoinedPaintBall": "Sinä olet liittynyt värikuulapeliin.",
"ItemsStoredForPaintBall": "Tavarasi säilytetään kaapissasi ja palautetaan, kun poistut värikuulapeli-ottelusta",
"LeftPaintBall": "Olet jättänyt värikuulapelista-ottelun. esineesi on palautettu.",
"PaintBallEnded": "Paintball-ottelu on päättynyt. esineesi on palautettu.",
"HeaderEventWinners": "Voittajat",
"YourPaintBallResults": "Sinä sait {1} Tapot ja {2} deaths in the paintball match",
"NoPrivateMessageToReply": "Et ole saanut yksityisviestiä, johon voit vastata",
"WeaponDoesNotUseAmmo": " {1} Ei käytä panoksia",
"ChatBoxTimestampsToggle": "Sinä kytkit päälle {1} ajan näytön chatboxissa",
"ProfanityFilterSet": "Otit käyttöön chatin kirosana suodattimen {1}",
"ResetAllKeyBindsConfirm": "Haluatko varmasti palauttaa kaikki näppäimet oletusasetuksiin?",
"NotRentingAVehicle": "Et ole vuokraamassa tätä ajoneuvoa!",
"StoppedRentingVehicle": "Sinä lopetit vuokraamasta {1}",
"VehicleEngineStartKeyPressTip": " {1} Moottori on sammutettu. Käytä {2} Käynnistääksesi sen.",
"VehicleEngineStartCommandTip": " {1} Moottori on kiinni. Käytä {2} Käynnistääksesi sen.",
"StartedRentingVehicle": "Vuokraat nyt tämän {1} {2} per minuutti. Lopettaaksesi vuokraamisen, Käytä {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "Olet jo vuokraamassa tätä ajoneuvoa",
"JobRankTooLow": "Sinulla ei ole riitävän iso Työ Ränkki!",
"InvalidKeyName": "Syöttämäsi avaimen tunnus tai nimi on virheellinen!",
"KeyBindsReset": "Kaikki näppäinyhdistelmäsi on palautettu oletuksiin",
"KeyBindNameTip": "Käytä yksinkertaisia kirjaimia, nimejä tai numeroita. Älä lisää välilyöntejä.",
"UniversalInlineExamplesList": "Esimerkkisi: {1}",
"KeyBindRemoved": "Poistit näppäinsidoksen {1} Avain",
"KeyBindAdded": "Sidotit avaimen {1} {2}",
"CopyAllKeyBindsToServerConfirm": "Oletko varma, että haluat kopioida kaikki näppäinyhdistelmäsi {1} serveriin?",
"CopiedAllKeyBindsToServer": "Kaikki näppäinsidoksesi on kopioitu {1} serveriin",
"MustBeSpawned": "Sinun pitää olla spawnattu!",
"ChatEmojiSet": "Otit automaattisen emojin käyttöön chatissa{1}",
"FishingLineNotCast": "Sinun Siimasi ei ole heitetty!",
"CantFishHere": "Täällä ei pysty kalastaa! Sinun tulee olla lähellä vettä tai veneessä!",
"NeedFishingRod": "Sinun täytyy pitää onki!",
"FishingCastCommandHelp": "Käytä {1} heittääksesi siimaa",
"FishingCastKeyBindHelp": "Paina {1} heittääksesi siimaa",
"Paused": "Keskeytetty",
"PaintBallAlmostWin": "{1} Tarvii vain {2} lisää tappoja voittaaksesi Värikuulapeli-ottelun!",
"HeaderClanFlagsList": "Claanin Liput ({1})",
"PleaseWait": "Ole hyvä ja odota...",
"HeaderServerRulesList": "Serverin Säännöt",
"FrequencyChannelChanged": "Asetat kanavasi {1} Paikkaan {2} {3}",
"ItemTurnedOnOff": "Sinä kytkit {1} Sinun {2} paikkaan {3}",
"SkinSelectHelpTextSkin": "Paina {1} tai {2} vaihtaaksesi hahmosi skinin, {3} savettaaksesi, tai {4} peruttaaksesi",
"SkinSelectHelpTextBodyPart": "Paina {1} tai {2} Vaihtaaksesi kehon osan",
"SkinSelectBodyPartNames": {
"Head": "Pää",
"UpperBody": "Ylävartalo",
"LowerBody": "Alavartalo",
"Hair": "Tukka",
"Hat": "Hattu",
"Glasses": "Lasit",
"LeftHand": "Vasempi käsi",
"RightHand": "Oikeampi käsi",
"LeftWrist": "Vasempi Ranne",
"RightWrist": "Oikeampi Ranne"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Käytä {1} laittaksesi päälle tai kiinni ajoneuvon moottori",
"VehicleLockedAfterEntryAttempt": "Käytä {1} Lukitaaksesi tai aukaaksesi ajoneuvosi",
"ShowItemsAfterPurchase": "Käytä {1} Nähdääksesi Tavarasi",
"BuyCommandAfterEnterBusiness": "Käytä {1} tuotteiden ostamiseen yrityksestä",
"UseItemKeyAfterEquipping": "Käytä {1} käyttääksesi varustetasi",
"UseItemKeyAfterEquippingWalkieTalkie": "Käytä {1} kytkeäksesi radion päälle tai pois",
"RadioCommandAfterEnablingWalkieTalkie": "Käytä {1} puhuaksesi radiossasi",
"ReplyToDirectMessage": "Käytä {1} vastataksesi helposti yksityisviestiin",
"UseItemKeyAmmoAfterEquippingWeapon": "Käytä {1} ladataksesi ammuksia varustetulle aseesesi",
"AnimationStop": "Pysäytä animaatio painamalla {1}",
"JobEquipmentInventory": "Työvälineet ovat varastossasi. Käytä {1} nähdäksesi ne.",
"ViewInventory": "Käytä {1} nähdäksesi kohteesi",
"VehicleRepairItemUsage": "Seiso ajoneuvon vieressä ja käytä {1} Korjaaksesi sen",
"VehicleColourItemUsage": "Seiso ajoneuvon vieressä ja käytä {1} Vaihtaaksesi sen väriä",
"VehiclePartItemUsage": "Seiso ajoneuvon vieressä ja käytä {1} tuunatakseen {2}",
"AmmoClipItemUsage": "Varusta ase ja käytä {1} ladataaksesi panoksia",
"GenericItemUsage": "Käytä {1} käyttääksesi {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Tuntematon",
"LostConnection": "Yhteys menetetty",
"Disconnected": "Yhteys katkaistu",
"UnsupportedClient": "Ei tuettu Clientti",
"WrongGame": "Väärä peli",
"IncorrectPassword": "Väärä salasana",
"UnsupportedExecutable": "Ei tuettu Suoritettava Tiedosto",
"Kicked": "Kickattu",
"Banned": "Bannätty",
"Failed": "Epäonnistunut",
"InvalidName": "Virheellinen Nimi",
"Crashed": "Kaatui",
"ModifiedGame": "Muokattu Peli",
"FailedToLogin": "Kickattu - Kirjautuminen epäonnistui",
"NotATester": "Kickattu - Et ole testaaja!",
"ClientScriptVerificationFail": "asiakas ohjelma vahvistus epäonnistui (mahdolliset huijauskoodit)",
"ServerRestarting": "Serveri käynnistyy uudelleen.",
"Desync": "Synknorointi poistettu.",
"FailedToCreateCharacter": "Kickattu - Et tehnyt hahmoa"
},
"DevelopersNotified": "Kehittäjät ovat huomanneet ongelman",
"NoJobLocationCloseEnough": "Työpaikkoja ei ole tarpeeksi lähellä!",
"NotAllowedToUseJobs": "Et saa käyttää mitään töitä!",
"CantUseThisJob": "Et voi käyttää tätä työtä!",
"JobChanged": "💼 Nyt sinulla on {1} työ",
"NeedToBeNearJob": "Sinun tulee olla lähellä työpaikkaasi tai työhösi kuuluvaa ajoneuvoa!",
"DontHaveAJob": "Sinulla ei ole työpaikkaa!",
"StartedWorking": "💼 Työskentelet nyt {1} työlle",
"StoppedWorking": "Olet lopettanut työsi",
"ItemsStoredForJob": "Henkilökohtaisia esineitäsi on säilytetty kaapissasi työskennellessäsi",
"NoJobRoutesForLocation": "Työpaikallasi ei ole reittejä tähän paikkaan!",
"CurrentJobRouteDeleted": "Järjestelmänvalvoja on poistanut tai poistanut käytöstä työreitin, jolla olit menossa",
"YourTax": "Verosi palkkapäivänä on: {1}. Käytä {2} Saadaaksesi lisätietoja.",
"YourWealth": "Sinun rikkautesi on: {1}. Käytä {2} Saadaaksesi lisätietoja.",
"InvalidKeyBindName": "Avain nimeä ei löytynyt!",
"BusinessPurchased": "🏢 Olet nyt yrityksen omistaja {1}",
"HousePurchased": "🏘️ Olet nyt tämän talon omistaja {1}",
"CopyAllKeyBindsConfirm": "Oletko varma, että haluat kopioida näppäinsidoksiasi {1} Palvelimelle?",
"CopyAllKeyBindsOverwriteWarning": "Tämä korvaa kaikki toisen palvelimen näppäimet",
"NoPromptAccept": "Sinulla ei ole mitään hyväksyttävää",
"NoPromptReject": "Sinulla ei ole mitään hylättävää",
"NotOrderingAnyBusinessItems": "Et tilaa mitään tuotteita yritykselle!",
"BusinessOrderCanceled": "Peruutit yritystuotetilauksen",
"DidNotCreateCharacter": "Sinulla ei ole hahmoa pelattavana. Moikka!",
"BusinessOrderNotEnoughMoney": "Tällä yrityksellä ei ole tarpeeksi rahaa tilata sitä! Talleta vähän käyttämällä {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

752
locale/french.json Normal file
View File

@@ -0,0 +1,752 @@
{
"TranslationProvidedBy": "Cocam",
"LocaleEnglishName": "French",
"LocaleNativeName": "Français",
"LocaleOffer": "Ce serveur est disponible en Français. Appuie sur {1} pour changer la langue.",
"LocaleChanged1": "La langue est maintenant paramétrée sur {1}",
"LocaleChanged2": "Le serveur va maintenant afficher les messages en {1}",
"LocaleChangedNote": "Cela ne change pas les messages des autres joueurs",
"AccentsListHeader": "Accents",
"HelpMainListHeader": "Aide Catégorie",
"AccentNotFound": "Accent non trouvé",
"AccentSet": "Vous avez paramétré votre accent sur {1}",
"InvalidAnimation": "L'animation n'existe pas",
"AnimationCommandTip": "Utilise la commande {1} pour voir la liste des animations valides",
"InvalidAnimationDistance": "La distance doit être entre 0 et 3",
"CantBanClient": "Vous ne pouvez pas bannir cette personne",
"PlayerAccountBanned": "le compte {1} a été banni",
"ClanNotFound": "Clan non trouvé",
"ClanNameTaken": "Un clan avec ce nom existe déjà",
"PlayerNotFound": "Joueur non trouvé",
"ClanCantRemoveRanks": "Vous ne pouvez pas retirer le rang du clan",
"ClanCantAddRanks": "Vous ne pouvez pas ajouter de rang au clan",
"ClanRankNotFound": "Le rang du clan est introuvable",
"ClanCantChangeMemberTag": "Vous ne pouvez pas modifier les tags des membres du clan",
"ClanPlayerNotInSameClan": "Ce joueur n'est pas dans votre clan",
"ClanCantChangeRankLevel": "Vous ne pouvez pas modifier le niveau du rang du clan",
"ClanCantChangeRankTag": "Vous ne pouvez pas modifier les tags du rang du clan",
"NameNotRegistered": "Votre nom n'est pas enregistré ! Utilise {1} pour créer un compte.",
"AutomaticLoginIPToggle": "La connexion automatique par IP est maintenant {1}",
"CouldNotRegisterAccount": "Un problème est survenue lors de la création de votre compte. Merci de bien vouloir contacter le staff.",
"RandomTipsToggle": "Les conseils aléatoires sont maintenant {1}",
"ActionTipsToggle": "Les conseils d'action sont maintenant {1}",
"AutoSpawnLastCharToggle": "Réapparition automatique du dernier personnage utilisé est {1}",
"AccountGUISettingToggle": "🖥️ la GUI est {1}",
"On": "On",
"Off": "Off",
"Yes": "Oui",
"No": "Non",
"True": "Vrai",
"False": "Faux",
"Locked": "Verrouillé",
"Unlocked": "Déverrouillé",
"PasswordNotGoodEnough": "Le nouveau mot de passe doit répondre aux exigences !",
"PasswordNeedsBase": "Le mot de passe doit au moins avoir : {1}",
"PasswordNeedsCapitals": "{1} Une majuscule",
"PasswordNeedsNumbers": "{1} Un nombre",
"PasswordNeedsSymbols": "{1} Un caractère spécial",
"PasswordsDontMatch": "Le mot de passe et la confirmation ne sont pas identiques !",
"PasswordChanged": "Your password has been changed!",
"AutoLoggedInIP": "You have been automatically logged in by IP!",
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
"InvalidPlayer": "Player not found!",
"InvalidBusiness": "Business not found!",
"InvalidHouse": "House not found!",
"InvalidVehicle": "Vehicle not found!",
"InvalidClan": "Clan not found!",
"InvalidClanRank": "Clan rank not found!",
"InvalidJob": "Job not found!",
"InvalidItem": "Item not found!",
"InvalidItemType": "Item type not found!",
"InvalidRadioStation": "Radio station not found!",
"InvalidGate": "Gate not found!",
"EntersProperty": "opens the door and enters the {1} ({2})",
"ExitsProperty": "opens the door and exits the {1} ({2})",
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
"NoBusinessWithItemType": "There is no business with that item available",
"HeaderKeyBinds": "Key Binds",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
"HeaderJobHelp": "Job Help",
"HeaderChatHelp": "Chat Help",
"HeaderServerRules": "Server Rules",
"HeaderWebsiteInfo": "Website",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animation List",
"HeaderPayAndSprayHelp": "Pay and Spray Help",
"HeaderAmmunationHelp": "Ammunation Help",
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
"HeaderBindableKeysHelp": "Bindable Keys",
"HeaderSkinHelp": "Clothes/Skin Help",
"HeaderBusinessHelp": "Business Help",
"HeaderClanHelp": "Clan Help",
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
"HeaderClansList": "Clan List",
"HeaderAdminsList": "Admin List",
"HeaderAccentsList": "Accent List",
"HeaderPlayerInfo": "Player Information ({1})",
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
"HeaderCommandInfo": "Command Information ({1})",
"HeaderRadioHelp": "Radio Help",
"HeaderRadioStationsList": "Radio Stations",
"HeaderKeyBindsList": "Key Binds List",
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
"VolumeLevelNotNumber": "The volume level must be a number",
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
"HouseDoorLock": "House {1} {2}!",
"BusinessDoorLock": "Business {1} {2}!",
"ServerGameModeRestarting": "The server game mode is restarting!",
"HeaderSelfItemList": "Your Inventory",
"HeaderPlayerItemList": "Player Inventory ({1})",
"HeaderHouseItemList": "House Inventory",
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
"HeaderItemItemList": "{1}'s Inventory",
"ItemSlotNotNumber": "The item slot must be a number",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
"HandsBusy": "Your hands are busy",
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
"Business": "business",
"House": "house",
"Clan": "clan",
"Vehicle": "vehicle",
"Item": "item",
"ItemType": "item type",
"Gate": "gate",
"Door": "door",
"ClanRank": "clan rank",
"JobRank": "job rank",
"RadioStation": "radio station",
"Months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"WeekDays": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"CardinalDirections": {
"North": "North",
"Northeast": "Northeast",
"East": "East",
"Southeast": "Southeast",
"South": "South",
"Southwest": "Southwest",
"West": "West",
"Northwest": "Northwest"
},
"NewPlayerReadyToPlay": [
"You have been given some cash. Use {1} to find places to buy items.",
"If you need money, jobs are the yellow dots on the radar.",
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
"Be sure to read the {1} and use {2} for info."
],
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
"Distance": "Distance",
"Meters": "Meters",
"Feet": "Feet",
"Kilometers": "Kilometers",
"Miles": "Miles",
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
"PlayerJoined": "{1} has joined the game from {2}!",
"PlayerLeftServer": "{1} has left the game! ({2})",
"TakeItemFromHouse": "takes a {1} from the house",
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
"TakeItemFromBusiness": "takes a {1} from the business",
"TakeItemFromItem": "takes a {1} from the {2}",
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
"AccountHelp": [
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
"Use {1} to change your password, and {2} if you forgot it",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Your personal vehicles will save wherever you or somebody else leaves them!",
"Visit dealerships to buy new vehicles (Use {1} for more information)",
"Some commands: {1}",
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
],
"VehicleDealershipHelp": [
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
"At the dealer, enter a car you want to buy, and the price will be shown to you",
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
"Drive away from the dealership with the new vehicle to confirm the purchase."
],
"JobHelp": [
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
"At a job location, use {1} to get the job. Use {2} to quit your job",
"Use {1} to begin working. You can also get a job {2} and {3}",
"Most job vehicles are locked. Use {1} near one to enter it.",
"When entering a job vehicle, information on how to do the job will be shown to you."
],
"ChatHelp": [
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
"Mixing these two types is not proper roleplay. See {1} for info.",
"Some chat commands: {1}",
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
],
"ServerRulesHelp": [
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
"No terrorist or terrorism roleplay is allowed.",
"Always follow instructions given by moderators and admins.",
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
"Keep English in main chats. If you aren't good at English, use {1}"
],
"AnimationHelp": [
"Animations allow you to enhance roleplay with visual actions",
"Use {1} or {2} with a name to use an animation.",
"To see a list of animations, use {1}"
],
"WeaponHelp": [
"Visit an gun store to buy weapons. Use {1} to find one.",
"Buying a weapon requires a weapon license.",
"Weapon licenses are managed by the police department. Apply there to get one.",
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
],
"SkinHelp": [
"At a clothing store, use {1} to purchase clothes",
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
"Some skins are restricted to jobs, clans, or for other reasons."
],
"KeyBindHelp": [
"You can set your own key binds. Use {1} to see your binded keys.",
"Use {1} to add a new keybind and {2} to remove one.",
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
],
"BusinessHelp": [
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
"Businesses are shown with blue names above the icon at their entrance.",
"Business owner commands: {1}",
"A new car for sale will appear when you drive away from the dealer."
],
"ClanHelp": [
"Ask an administrator to create a clan (Similar to factions/groups/families)",
"Clan owners have full control over their clan once it's created",
"Clan commands: {1}",
"More clan commands: {1}"
],
"RadioStationHelp": [
"Use {1} to set the station for your vehicle, house, or business",
"Use {2} to see a list of stations",
"You can change your radio streaming volume using {1} with 0-100 as the percent"
],
"WealthAndTaxHelp": [
"Your taxes on payday are {1} percent of your calculated wealth.",
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
"Each vehicle is {1}, each house is {2}, and each business is {3}",
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
],
"MustBeInAVehicle": "You need to be in a vehicle!",
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
"MustBeInVehicleDriverSeat": "You need to be the driver!",
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
"NoGateAccess": "You don't have access to this gate!",
"GateBroken": "This gate is broken!",
"GateHacked": "The gate does not respond!",
"RadioJammed": "You hear only static from the radio.",
"VehicleNotForSale": "This vehicle is not for sale!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "This business is not for sale!",
"BusinessNotForRent": "This business is not for rent!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "This house is not for rent!",
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Player Houses ({1})",
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
"HeaderStaffFlagsList": "Staff Flags",
"NonRPName": "Non-RP name! Choose a new one:",
"InvalidStaffFlag": "Staff flag not found!",
"InvalidClanFlag": "Clan flag not found!",
"InvalidLocale": "Language not found!",
"HeaderJobUniformList": "Job Uniforms ({1})",
"HeaderJobEquipmentList": "Job Equipment ({1})",
"InvalidJobUniform": "Job uniform not found!",
"InvalidJobEquipment": "Job equipment not found!",
"HeaderVehiclesInRangeList": "Vehicles within {1}",
"NoVehiclesWithinRange": "There are no vehicles within {1}",
"AmountNotNumber": "The amount must be a number!",
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
"NotYourJob": "This is not your job!",
"JobPoints": "You can get a job by going the yellow points on the map.",
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
"NotAJobVehicle": "This is not a job vehicle!",
"NotYourJobVehicle": "This is not your job's vehicle!",
"HeaderPickupTypes": "Pickup Types",
"HeaderBlipTypes": "Map Icon Types",
"InvalidGPSLocation": "There are no locations with that name or type",
"HeaderBusinessList": "Businesses",
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
"RegistrationFailedNoPassword": "You must enter a password!",
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
"RegistrationFailedNoEmail": "You must enter an email!",
"AccountNameAlreadyRegistered": "Your name is already registered!",
"AlreadyLoggedIn": "You are already logged in!",
"RegistrationFailedInvalidEmail": "That email is invalid!",
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
"RegistrationFailedCreateError": "Your account couldn't be created!",
"RegistrationSuccess": "Your account has been created!",
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
"NoCharactersGUIWindowTitle": "No characters",
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
"SetEmailHelpTip": "Use {1} to set your email.",
"VerifyEmailHelpTip": "Use {1} to verify your email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Nearby radio",
"FromRadio": "From radio",
"ToRadio": "To radio",
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
"AmountMustBeMoreThan": "The amount must be more than {1}!",
"WeaponBanned": "You are not allowed to buy or use weapons!",
"TimeNotNumber": "The time must be a number",
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
"FixingStuck": "Fixing your position and virtual world ...",
"CantUseCommandYet": "You must wait before you can use this command again!",
"NotATester": "You are not a tester!",
"AccessDenied": "AccessDenied",
"InvalidSkin": "That skin is invalid!",
"HeaderInteriorTypes": "Interiors List",
"GUIAccountSettingToggle": "You have turned {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
"PlayerIPBanned": "💀 {1} has been IP banned!",
"PlayerCharacterBanned": "💀 {1} has been character banned!",
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
"CantModifyBusiness": "You can't manage or modify this business!",
"CantModifyHouse": "You can't manage or modify this house!",
"ServerTimeSet": "⏰ {1} set the time to {2}",
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
"ServerLogoSet": "{1} turned the server logo image {2}",
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
"BusinessBuyItemsLabel": "Use {1} to purchase items",
"PropertyEnterCommandLabel": "Use {1} to enter",
"PropertyEnterKeyPressLabel": "Press {1} to enter",
"PropertyForSaleLabel": "For sale: {1}",
"PropertyForRentLabel": "For rent: {1} every payday",
"RemainingTaxPaidInMoney": "You covered the remaining taxes with {1} in cash.",
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
"Closed": "Closed",
"Open": "Open",
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
"TakeJobLabel": "Use {1} to work here",
"StartWorkLabel": "Use {1} to start working",
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
"JobLabel": "{1} Job",
"PaydayBonusSet": "🤑 {1} set the payday bonus to {2}",
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
"PlayerKicked": "🦶 {1} has been kicked from the server",
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
"UnableToDoThat": "You aren't able to do that",
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
"SetVehicleClanConfirmTitle": "Warning!",
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose {1} every purchase!",
"SetItemPriceBelowOrderPriceTitle": "Warning!",
"MustOwnVehicle": "You don't own this vehicle!",
"RandomTips": [
"Look for yellow dots on your map for job locations",
"You can set custom key binds. Use {1} for details",
"Use {1} if you don't want to see tips and extra information",
"You can edit your keybinds using {1} and {2}",
"Press to see your inventory, and use number keys to select an item",
"Use {1} at a business to purchase items",
"Found a bug? Report it with {1}",
"Have an idea or suggestion for the server? Let the devs know using {1}",
"Want to buy a business? Use {1} at one for sale",
"Want to buy a house? Use {1} at one for sale",
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
"Switch to any of your characters with {1}",
"Use {1} to automatically login when connecting with the same IP",
"Use {1} to turn on/off the lights in your house or business",
"Use {1} to play an internet radio station in your car, house, or business",
"Want to make a clan? Use {1} for details",
"Legal weapons can be purchased at any ammunation"
],
"PromptResponseTip": "Use {1} to accept or {2} to decline",
"PlayerConnecting": "👋 {1} is connecting to the server ...",
"GetStartedJobVehicle": "Get in a {1} to get started.",
"VehicleTypes": {
"Car": "Car",
"Truck": "Truck",
"Van": "Van",
"Taxi": "Taxi",
"Bus": "Bus",
"PoliceCar": "Police Car",
"Ambulance": "Ambulance",
"FireTruck": "Fire Truck",
"Bike": "Bike",
"Motorbike": "Motorbike",
"Boat": "Boat",
"Helicopter": "Helicopter",
"Plane": "Plane",
"Train": "Train"
},
"AlreadyOnJobRoute": "You are already doing a job route!",
"GaveVehicleToClan": "You gave this {1} to your clan!",
"JobDisabled": "This job is disabled!",
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
"SetHouseClanConfirmTitle": "Warning!",
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
"SetBusinessClanConfirmTitle": "Warning!",
"MustOwnHouse": "You don't own this house!",
"MustOwnBusiness": "You don't own this business!",
"GaveHouseToClan": "You gave this house to your clan!",
"GaveBusinessToClan": "You gave this business to your clan!",
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
"BuyBusinessConfirmTitle": "Attention!",
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
"BuyHouseConfirmTitle": "Attention!",
"BuyBusinessLabel": "Use {1} to buy this business",
"BuyHouseLabel": "Use {1} to buy this house",
"RentHouseLabel": "Use {1} to rent this house",
"AccountEmailAlreadyVerified": "You already set and verified your email!",
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
"GUIPlayAsCharacterButton": "Play",
"GUINewCharacterButton": "New character",
"GUIPreviousCharacterButton": "Previous",
"GUINextCharacterButton": "Next",
"GUICharacterSelectWindowTitle": "Select a character",
"GUICharacterSelectMoneyLabel": "Money: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
"GUILoginWindowLabelEnterPassword": "Please enter your password",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Reset",
"GUILoginWindowPasswordPlaceholder": "Password",
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
"GUIRegisterWindowLabelCreateAccount": "Create an account",
"GUIRegisterWindowPasswordPlaceholder": "Password",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Create account",
"GUINewCharacterMessageLabel": "Name your character",
"GUINewCharacterFirstNamePlaceholder": "First Name",
"GUINewCharacterLastNamePlaceholder": "Last Name",
"GUINewCharacterSubmitButton": "Create Character",
"GUIChangePasswordWindowTitle": "Change Password",
"GUIChangePasswordPasswordLabel": "Enter a new password",
"GUIChangePasswordPasswordPlaceholder": "Password",
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
"GUIChangePasswordSubmitButton": "Change Password",
"GUIResetPasswordWindowMessage": "Reset Password",
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Reset Password",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Remember your password?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "English",
"Russian": "Russian",
"Spanish": "Spanish",
"German": "German",
"Dutch": "Dutch",
"Polish": "Polish",
"Chinese": "Chinese",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️ You have turned two factor authentication {1}",
"AccountServerLogoSet": "⚙️ You turned the server logo {1}",
"ChatScrollLinesNotNumber": "The line amount must be a number",
"ChatScrollLinesMustBeBetween": "The line amount must be between {1} and {2}",
"ChatScrollLinesSet": "The chatbox will now scroll {1} lines at a time",
"InvalidEmailVerificationCode": "Invalid email verification code! A new one has been created and sent to your email.",
"EmailVerified": "Your email has been verified",
"EmailVerifiedTip": "You can now use your email for password resets, two-factor authentication, login alerts, and more",
"CommandRequiresLogin": "You must be logged in to use the {1} command",
"CommandDisabled": "The {1} command is disabled",
"CommandDisabledOnDiscord": "The {1} command isn't available on discord",
"CommandNotFoundHelpTip": "The command {1} does not exist! Use {2} for commands and information.",
"CommandNotFoundPossibleMatchTip": "The command {1} does not exist! Did you mean {2}?",
"CommandNoPermissions": "You don't have permission to use the {1} command",
"GUIResetPasswordCodeInputLabel": "Check your email for a code",
"GUIResetPasswordCodePlaceholder": "Verification code",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Warning",
"GUIInfoTitle": "Info",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Invalid email!",
"HeaderVehicleInfo": "Vehicle Info",
"HeaderClanRanksList": "Clan Rank",
"HeaderNPCInfo": "NPC Info",
"NPCAnimationSet": "You set NPC {1} animation to {2}",
"NPCNameSet": "You set NPC {1} name to {2}",
"VehicleTooFar": "You are too far away from the vehicle!",
"HeaderPropertyTemplateTypes": "Property Types",
"MustBeLoggedInAndSpawnedToChat": "You need to be logged in and spawned before you can chat!",
"MutedCantChat": "You are muted and can't chat!",
"CantUseMegaphone": "You must equip a megaphone item or be in an emergency vehicle!",
"HeaderAnimationHelp": "Animation Info",
"HeaderBadgeInfo": "Badge Information ({1})",
"NoItemCloseEnough": "There is no item close enough",
"CantDropJobEquipmentItem": "You can't drop job items",
"CantPutJobEquipmentItem": "You can't store job items",
"NoItemEquipped": "You don't have any item selected",
"NoItemInActiveSlot": "You don't have an item in your active item slot",
"CantPutItemInSkinChange": "You can't store an item while customizing your appearance",
"NothingToTakeItemFrom": "You aren't near anything to take items from",
"NoAmmoToLoadIntoWeapon": "You don't have any ammo to load into the {1}",
"LoadAmmoIntoWeaponHelpCommand": "To load this ammo into a weapon, equip the weapon and type {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "To load this ammo into a weapon, equip the weapon and press {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Nobody is close enough to tie up",
"PlayerNotSurrenderedHandcuff": "{1} can't be handcuffed! They either need to have their hands up, be knocked out, or tazed",
"PlayerNotSurrenderedTie": "{1} can't be tied! They either need to have their hands up, be knocked out, or tazed",
"HeaderCharactersListSelf": "Your Characters",
"HeaderCharactersListOther": "{1}'s Characters",
"CharacterSelectHelpText": "Use {1} to select a character, or {2} to create a new character",
"ItemDoesntDoAnythingOnUse": "The {1} doesn't do anything when you try to use it.",
"ItemRadioStationTip": "Use {1} to set the radio station",
"VehicleLockedCommandTip": "🔒 This {1} is locked. Use {2} to unlock it",
"VehicleLockedKeyPressTip": "🔒 This {1} is locked. Press {2} to unlock it",
"VehicleLockedCantUnlock": "🔒 This {1} is locked and you don't have the keys to unlock it",
"CurrentlyRentingThisVehicle": "You are renting this {1} for {2} per minute. Use {3} if you want to stop renting it.",
"VehicleBelongsTo": "This {1} belongs to {2} ({3})",
"NotOwned": "Not Owned",
"NotCloseEnoughToItemContainer": "You are not close enough to anything that holds items",
"Job": "Job",
"Player": "Player",
"BusinessIsNowPaintBall": "This business is now a paintball arena",
"JoinedPaintBall": "You have joined the paintball game.",
"ItemsStoredForPaintBall": "Your items are stored in your locker and will be returned when you leave the paintball game",
"LeftPaintBall": "You have left the paintball game. Your items have been returned.",
"PaintBallEnded": "The paintball match has ended. Your items have been returned.",
"HeaderEventWinners": "Winners",
"YourPaintBallResults": "You got {1} kills and {2} deaths in the paintball match",
"NoPrivateMessageToReply": "You haven't received a private message to reply to",
"WeaponDoesNotUseAmmo": "The {1} doesn't use ammo",
"ChatBoxTimestampsToggle": "You turned {1} time display in the chatbox",
"ProfanityFilterSet": "You turned chat profanity filter {1}",
"ResetAllKeyBindsConfirm": "Are you sure you want to reset all your keybinds to default?",
"NotRentingAVehicle": "You are not renting a vehicle!",
"StoppedRentingVehicle": "You stopped renting the {1}",
"VehicleEngineStartKeyPressTip": "The {1} engine is off. Press {2} to start it.",
"VehicleEngineStartCommandTip": "The {1} engine is off. Use {2} to start it.",
"StartedRentingVehicle": "You are now renting this {1} for {2} per minute. To stop renting, use {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "You are already renting this vehicle",
"JobRankTooLow": "You are not high enough rank!",
"InvalidKeyName": "The key ID or name you input is invalid!",
"KeyBindsReset": "All your keybinds have been reset to default",
"KeyBindNameTip": "Use simple key names, letters, or numbers. Don't add spaces.",
"UniversalInlineExamplesList": "Examples: {1}",
"KeyBindRemoved": "You removed the keybind for the {1} key",
"KeyBindAdded": "You binded key {1} to {2}",
"CopyAllKeyBindsToServerConfirm": "Are you sure you want to copy all your keybinds to the {1} server?",
"CopiedAllKeyBindsToServer": "All your keybinds have been copied to the {1} server",
"MustBeSpawned": "You must be spawned!",
"ChatEmojiSet": "You turned automatic emoji in chat {1}",
"FishingLineNotCast": "Your fishing line isn't cast!",
"CantFishHere": "You can't fish here! You need to be near water or on a boat!",
"NeedFishingRod": "You need to be holding a fishing rod!",
"FishingCastCommandHelp": "Use {1} to cast your fishing line",
"FishingCastKeyBindHelp": "Press {1} to cast your fishing line",
"Paused": "Paused",
"PaintBallAlmostWin": "{1} only needs {2} more kills to win the paintball match!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOnOff": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

751
locale/german.json Normal file
View File

@@ -0,0 +1,751 @@
{
"TranslationProvidedBy": "Sladernimo",
"LocaleEnglishName": "German",
"LocaleNativeName": "German",
"LocaleOffer": "This server is available in German. Use {1} to use it.",
"LocaleChanged1": "Your language is now set to {1}",
"LocaleChanged2": "The server will now display messages in {1}",
"LocaleChangedNote": "This does not change messages from other players",
"AccentsListHeader": "Accents",
"HelpMainListHeader": "Help Categories",
"AccentNotFound": "Accent not found",
"AccentSet": "You set your accent to {1}",
"InvalidAnimation": "That animation doesn't exist",
"AnimationCommandTip": "Use {1} to see a list of valid animations",
"InvalidAnimationDistance": "The distance must be between 0 and 3",
"CantBanClient": "You cannot ban this person",
"PlayerAccountBanned": "{1} has been account banned",
"ClanNotFound": "Clan not found",
"ClanNameTaken": "A clan with that name already exists",
"PlayerNotFound": "Player not found",
"ClanCantRemoveRanks": "You can't remove clan ranks",
"ClanCantAddRanks": "You can't add clan ranks",
"ClanRankNotFound": "Clan rank not found",
"ClanCantChangeMemberTag": "You can not change clan member's tags",
"ClanPlayerNotInSameClan": "That player is not in your clan",
"ClanCantChangeRankLevel": "You can not change clan rank's level",
"ClanCantChangeRankTag": "You can not change clan rank's tags",
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
"RandomTipsToggle": "Random tips are now {1}",
"ActionTipsToggle": "Action tips are now {1}",
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
"AccountGUISettingToggle": "🖥️ GUI is now {1}",
"On": "On",
"Off": "Off",
"Yes": "Yes",
"No": "No",
"True": "True",
"False": "False",
"Locked": "Locked",
"Unlocked": "Unlocked",
"PasswordNotGoodEnough": "The new password must meet the requirements!",
"PasswordNeedsBase": "Passwords must have at least {1}",
"PasswordNeedsCapitals": "{1} capital letters",
"PasswordNeedsNumbers": "{1} numbers",
"PasswordNeedsSymbols": "{1} symbols",
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
"PasswordChanged": "Your password has been changed!",
"AutoLoggedInIP": "You have been automatically logged in by IP!",
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
"InvalidPlayer": "Player not found!",
"InvalidBusiness": "Business not found!",
"InvalidHouse": "House not found!",
"InvalidVehicle": "Vehicle not found!",
"InvalidClan": "Clan not found!",
"InvalidClanRank": "Clan rank not found!",
"InvalidJob": "Job not found!",
"InvalidItem": "Item not found!",
"InvalidItemType": "Item type not found!",
"InvalidRadioStation": "Radio station not found!",
"InvalidGate": "Gate not found!",
"EntersProperty": "opens the door and enters the {1} ({2})",
"ExitsProperty": "opens the door and exits the {1} ({2})",
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
"NoBusinessWithItemType": "There is no business with that item available",
"HeaderKeyBinds": "Key Binds",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
"HeaderJobHelp": "Job Help",
"HeaderChatHelp": "Chat Help",
"HeaderServerRules": "Server Rules",
"HeaderWebsiteInfo": "Website",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animation List",
"HeaderPayAndSprayHelp": "Pay and Spray Help",
"HeaderAmmunationHelp": "Ammunation Help",
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
"HeaderBindableKeysHelp": "Bindable Keys",
"HeaderSkinHelp": "Clothes/Skin Help",
"HeaderBusinessHelp": "Business Help",
"HeaderClanHelp": "Clan Help",
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
"HeaderClansList": "Clan List",
"HeaderAdminsList": "Admin List",
"HeaderAccentsList": "Accent List",
"HeaderPlayerInfo": "Player Information ({1})",
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
"HeaderCommandInfo": "Command Information ({1})",
"HeaderRadioHelp": "Radio Help",
"HeaderRadioStationsList": "Radio Stations",
"HeaderKeyBindsList": "Key Binds List",
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
"VolumeLevelNotNumber": "The volume level must be a number",
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
"HouseDoorLock": "House {1} {2}!",
"BusinessDoorLock": "Business {1} {2}!",
"ServerGameModeRestarting": "The server game mode is restarting!",
"HeaderSelfItemList": "Your Inventory",
"HeaderPlayerItemList": "Player Inventory ({1})",
"HeaderHouseItemList": "House Inventory",
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
"HeaderItemItemList": "{1}'s Inventory",
"ItemSlotNotNumber": "The item slot must be a number",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
"HandsBusy": "Your hands are busy",
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
"Business": "business",
"House": "house",
"Clan": "clan",
"Vehicle": "vehicle",
"Item": "item",
"ItemType": "item type",
"Gate": "gate",
"Door": "door",
"ClanRank": "clan rank",
"JobRank": "job rank",
"RadioStation": "radio station",
"Months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"WeekDays": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"CardinalDirections": {
"North": "North",
"Northeast": "Northeast",
"East": "East",
"Southeast": "Southeast",
"South": "South",
"Southwest": "Southwest",
"West": "West",
"Northwest": "Northwest"
},
"NewPlayerReadyToPlay": [
"You have been given some cash. Use {1} to find places to buy items.",
"If you need money, jobs are the yellow dots on the radar.",
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
"Be sure to read the {1} and use {2} for info."
],
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
"Distance": "Distance",
"Meters": "Meters",
"Feet": "Feet",
"Kilometers": "Kilometers",
"Miles": "Miles",
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
"PlayerJoined": "{1} has joined the game from {2}!",
"PlayerLeftServer": "{1} has left the game! ({2})",
"TakeItemFromHouse": "takes a {1} from the house",
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
"TakeItemFromBusiness": "takes a {1} from the business",
"TakeItemFromItem": "takes a {1} from the {2}",
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
"AccountHelp": [
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
"Use {1} to change your password, and {2} if you forgot it",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Your personal vehicles will save wherever you or somebody else leaves them!",
"Visit dealerships to buy new vehicles (Use {1} for more information)",
"Some commands: {1}",
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
],
"VehicleDealershipHelp": [
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
"At the dealer, enter a car you want to buy, and the price will be shown to you",
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
"Drive away from the dealership with the new vehicle to confirm the purchase."
],
"JobHelp": [
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
"At a job location, use {1} to get the job. Use {2} to quit your job",
"Use {1} to begin working. You can also get a job {2} and {3}",
"Most job vehicles are locked. Use {1} near one to enter it.",
"When entering a job vehicle, information on how to do the job will be shown to you."
],
"ChatHelp": [
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
"Mixing these two types is not proper roleplay. See {1} for info.",
"Some chat commands: {1}",
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
],
"ServerRulesHelp": [
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
"No terrorist or terrorism roleplay is allowed.",
"Always follow instructions given by moderators and admins.",
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
"Keep English in main chats. If you aren't good at English, use {1}"
],
"AnimationHelp": [
"Animations allow you to enhance roleplay with visual actions",
"Use {1} or {2} with a name to use an animation.",
"To see a list of animations, use {1}"
],
"WeaponHelp": [
"Visit an gun store to buy weapons. Use {1} to find one.",
"Buying a weapon requires a weapon license.",
"Weapon licenses are managed by the police department. Apply there to get one.",
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
],
"SkinHelp": [
"At a clothing store, use {1} to purchase clothes",
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
"Some skins are restricted to jobs, clans, or for other reasons."
],
"KeyBindHelp": [
"You can set your own key binds. Use {1} to see your binded keys.",
"Use {1} to add a new keybind and {2} to remove one.",
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
],
"BusinessHelp": [
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
"Businesses are shown with blue names above the icon at their entrance.",
"Business owner commands: {1}",
"A new car for sale will appear when you drive away from the dealer."
],
"ClanHelp": [
"Ask an administrator to create a clan (Similar to factions/groups/families)",
"Clan owners have full control over their clan once it's created",
"Clan commands: {1}",
"More clan commands: {1}"
],
"RadioStationHelp": [
"Use {1} to set the station for your vehicle, house, or business",
"Use {2} to see a list of stations",
"You can change your radio streaming volume using {1} with 0-100 as the percent"
],
"WealthAndTaxHelp": [
"Your taxes on payday are {1} percent of your calculated wealth.",
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
"Each vehicle is {1}, each house is {2}, and each business is {3}",
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
],
"MustBeInAVehicle": "You need to be in a vehicle!",
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
"MustBeInVehicleDriverSeat": "You need to be the driver!",
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
"NoGateAccess": "You don't have access to this gate!",
"GateBroken": "This gate is broken!",
"GateHacked": "The gate does not respond!",
"RadioJammed": "You hear only static from the radio.",
"VehicleNotForSale": "This vehicle is not for sale!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "This business is not for sale!",
"BusinessNotForRent": "This business is not for rent!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "This house is not for rent!",
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Player Houses ({1})",
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
"HeaderStaffFlagsList": "Staff Flags",
"NonRPName": "Non-RP name! Choose a new one:",
"InvalidStaffFlag": "Staff flag not found!",
"InvalidClanFlag": "Clan flag not found!",
"InvalidLocale": "Language not found!",
"HeaderJobUniformList": "Job Uniforms ({1})",
"HeaderJobEquipmentList": "Job Equipment ({1})",
"InvalidJobUniform": "Job uniform not found!",
"InvalidJobEquipment": "Job equipment not found!",
"HeaderVehiclesInRangeList": "Vehicles within {1}",
"NoVehiclesWithinRange": "There are no vehicles within {1}",
"AmountNotNumber": "The amount must be a number!",
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
"NotYourJob": "This is not your job!",
"JobPoints": "You can get a job by going the yellow points on the map.",
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
"NotAJobVehicle": "This is not a job vehicle!",
"NotYourJobVehicle": "This is not your job's vehicle!",
"HeaderPickupTypes": "Pickup Types",
"HeaderBlipTypes": "Map Icon Types",
"InvalidGPSLocation": "There are no locations with that name or type",
"HeaderBusinessList": "Businesses",
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
"RegistrationFailedNoPassword": "You must enter a password!",
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
"RegistrationFailedNoEmail": "You must enter an email!",
"AccountNameAlreadyRegistered": "Your name is already registered!",
"AlreadyLoggedIn": "You are already logged in!",
"RegistrationFailedInvalidEmail": "That email is invalid!",
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
"RegistrationFailedCreateError": "Your account couldn't be created!",
"RegistrationSuccess": "Your account has been created!",
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
"NoCharactersGUIWindowTitle": "No characters",
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
"SetEmailHelpTip": "Use {1} to set your email.",
"VerifyEmailHelpTip": "Use {1} to verify your email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Nearby radio",
"FromRadio": "From radio",
"ToRadio": "To radio",
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
"AmountMustBeMoreThan": "The amount must be more than {1}!",
"WeaponBanned": "You are not allowed to buy or use weapons!",
"TimeNotNumber": "The time must be a number",
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
"FixingStuck": "Fixing your position and virtual world ...",
"CantUseCommandYet": "You must wait before you can use this command again!",
"NotATester": "You are not a tester!",
"AccessDenied": "AccessDenied",
"InvalidSkin": "That skin is invalid!",
"HeaderInteriorTypes": "Interiors List",
"GUIAccountSettingToggle": "You have turned {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
"PlayerIPBanned": "💀 {1} has been IP banned!",
"PlayerCharacterBanned": "💀 {1} has been character banned!",
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
"CantModifyBusiness": "You can't manage or modify this business!",
"CantModifyHouse": "You can't manage or modify this house!",
"ServerTimeSet": "⏰ {1} set the time to {2}",
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
"ServerLogoSet": "{1} turned the server logo image {2}",
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
"BusinessBuyItemsLabel": "Use {1} to purchase items",
"PropertyEnterCommandLabel": "Use {1} to enter",
"PropertyEnterKeyPressLabel": "Press {1} to enter",
"PropertyForSaleLabel": "For sale: {1}",
"PropertyForRentLabel": "For rent: {1} every payday",
"RemainingTaxPaidInMoney": "You covered the remaining taxes with {1} in cash.",
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
"Closed": "Closed",
"Open": "Open",
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
"TakeJobLabel": "Use {1} to work here",
"StartWorkLabel": "Use {1} to start working",
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
"JobLabel": "{1} Job",
"PaydayBonusSet": "🤑 {1} set the payday bonus to {2}",
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
"PlayerKicked": "🦶 {1} has been kicked from the server",
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
"UnableToDoThat": "You aren't able to do that",
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
"SetVehicleClanConfirmTitle": "Warning!",
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose {1} every purchase!",
"SetItemPriceBelowOrderPriceTitle": "Warning!",
"MustOwnVehicle": "You don't own this vehicle!",
"RandomTips": [
"Look for yellow dots on your map for job locations",
"You can set custom key binds. Use {1} for details",
"Use {1} if you don't want to see tips and extra information",
"You can edit your keybinds using {1} and {2}",
"Press to see your inventory, and use number keys to select an item",
"Use {1} at a business to purchase items",
"Found a bug? Report it with {1}",
"Have an idea or suggestion for the server? Let the devs know using {1}",
"Want to buy a business? Use {1} at one for sale",
"Want to buy a house? Use {1} at one for sale",
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
"Switch to any of your characters with {1}",
"Use {1} to automatically login when connecting with the same IP",
"Use {1} to turn on/off the lights in your house or business",
"Use {1} to play an internet radio station in your car, house, or business",
"Want to make a clan? Use {1} for details",
"Legal weapons can be purchased at any ammunation"
],
"PromptResponseTip": "Use {1} to accept or {2} to decline",
"PlayerConnecting": "👋 {1} is connecting to the server ...",
"GetStartedJobVehicle": "Get in a {1} to get started.",
"VehicleTypes": {
"Car": "Car",
"Truck": "Truck",
"Van": "Van",
"Taxi": "Taxi",
"Bus": "Bus",
"PoliceCar": "Police Car",
"Ambulance": "Ambulance",
"FireTruck": "Fire Truck",
"Bike": "Bike",
"Motorbike": "Motorbike",
"Boat": "Boat",
"Helicopter": "Helicopter",
"Plane": "Plane",
"Train": "Train"
},
"AlreadyOnJobRoute": "You are already doing a job route!",
"GaveVehicleToClan": "You gave this {1} to your clan!",
"JobDisabled": "This job is disabled!",
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
"SetHouseClanConfirmTitle": "Warning!",
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
"SetBusinessClanConfirmTitle": "Warning!",
"MustOwnHouse": "You don't own this house!",
"MustOwnBusiness": "You don't own this business!",
"GaveHouseToClan": "You gave this house to your clan!",
"GaveBusinessToClan": "You gave this business to your clan!",
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
"BuyBusinessConfirmTitle": "Attention!",
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
"BuyHouseConfirmTitle": "Attention!",
"BuyBusinessLabel": "Use {1} to buy this business",
"BuyHouseLabel": "Use {1} to buy this house",
"RentHouseLabel": "Use {1} to rent this house",
"AccountEmailAlreadyVerified": "You already set and verified your email!",
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
"GUIPlayAsCharacterButton": "Spielen",
"GUINewCharacterButton": "Neuer Charakter",
"GUIPreviousCharacterButton": "Zurück",
"GUINextCharacterButton": "Weiter",
"GUICharacterSelectWindowTitle": "Wähle einen Charakter",
"GUICharacterSelectMoneyLabel": "Geld: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Zuletzt gespielt vor: {1} Tagen, {2} Stunden, {3} Minuten",
"GUILoginWindowLabelEnterPassword": "Bitte Passwort eingeben",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Zurücksetzen",
"GUILoginWindowPasswordPlaceholder": "Passwort",
"GUILoginWindowForgotPasswordLabel": "Passwort vergessen?",
"GUIRegisterWindowLabelCreateAccount": "Profil erstellen",
"GUIRegisterWindowPasswordPlaceholder": "Passwort",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Passwort bestätigen",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Profil erstellen",
"GUINewCharacterMessageLabel": "Charakter Name",
"GUINewCharacterFirstNamePlaceholder": "Vorname",
"GUINewCharacterLastNamePlaceholder": "Nachname",
"GUIChangePasswordWindowTitle": "Passwort ändern",
"GUIChangePasswordPasswordLabel": "Neues Passwort eingeben",
"GUIChangePasswordPasswordPlaceholder": "Passwort",
"GUIChangePasswordConfirmPasswordPlaceholder": "Passwort bestätigen",
"GUIChangePasswordSubmitButton": "Passwort ändern",
"GUIResetPasswordWindowMessage": "Passwort zurücksetzen",
"GUIResetPasswordConfirmEmailLabel": "Bitte bestätige deine Email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Passwort zurücksetzen",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Passwort bekannt?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "English",
"Russian": "Russian",
"Spanish": "Spanish",
"German": "German",
"Dutch": "Dutch",
"Polish": "Polish",
"Chinese": "Chinese",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️ You have turned two factor authentication {1}",
"AccountServerLogoSet": "⚙️ You turned the server logo {1}",
"ChatScrollLinesNotNumber": "The line amount must be a number",
"ChatScrollLinesMustBeBetween": "The line amount must be between {1} and {2}",
"ChatScrollLinesSet": "The chatbox will now scroll {1} lines at a time",
"InvalidEmailVerificationCode": "Invalid email verification code! A new one has been created and sent to your email.",
"EmailVerified": "Your email has been verified",
"EmailVerifiedTip": "You can now use your email for password resets, two-factor authentication, login alerts, and more",
"CommandRequiresLogin": "You must be logged in to use the {1} command",
"CommandDisabled": "The {1} command is disabled",
"CommandDisabledOnDiscord": "The {1} command isn't available on discord",
"CommandNotFoundHelpTip": "The command {1} does not exist! Use {2} for commands and information.",
"CommandNotFoundPossibleMatchTip": "The command {1} does not exist! Did you mean {2}?",
"CommandNoPermissions": "You don't have permission to use the {1} command",
"GUIResetPasswordCodeInputLabel": "Check your email for a code",
"GUIResetPasswordCodePlaceholder": "Verification code",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Warning",
"GUIInfoTitle": "Info",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Invalid email!",
"HeaderVehicleInfo": "Vehicle Info",
"HeaderClanRanksList": "Clan Rank",
"HeaderNPCInfo": "NPC Info",
"NPCAnimationSet": "You set NPC {1} animation to {2}",
"NPCNameSet": "You set NPC {1} name to {2}",
"VehicleTooFar": "You are too far away from the vehicle!",
"HeaderPropertyTemplateTypes": "Property Types",
"MustBeLoggedInAndSpawnedToChat": "You need to be logged in and spawned before you can chat!",
"MutedCantChat": "You are muted and can't chat!",
"CantUseMegaphone": "You must equip a megaphone item or be in an emergency vehicle!",
"HeaderAnimationHelp": "Animation Info",
"HeaderBadgeInfo": "Badge Information ({1})",
"NoItemCloseEnough": "There is no item close enough",
"CantDropJobEquipmentItem": "You can't drop job items",
"CantPutJobEquipmentItem": "You can't store job items",
"NoItemEquipped": "You don't have any item selected",
"NoItemInActiveSlot": "You don't have an item in your active item slot",
"CantPutItemInSkinChange": "You can't store an item while customizing your appearance",
"NothingToTakeItemFrom": "You aren't near anything to take items from",
"NoAmmoToLoadIntoWeapon": "You don't have any ammo to load into the {1}",
"LoadAmmoIntoWeaponHelpCommand": "To load this ammo into a weapon, equip the weapon and type {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "To load this ammo into a weapon, equip the weapon and press {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Nobody is close enough to tie up",
"PlayerNotSurrenderedHandcuff": "{1} can't be handcuffed! They either need to have their hands up, be knocked out, or tazed",
"PlayerNotSurrenderedTie": "{1} can't be tied! They either need to have their hands up, be knocked out, or tazed",
"HeaderCharactersListSelf": "Your Characters",
"HeaderCharactersListOther": "{1}'s Characters",
"CharacterSelectHelpText": "Use {1} to select a character, or {2} to create a new character",
"ItemDoesntDoAnythingOnUse": "The {1} doesn't do anything when you try to use it.",
"ItemRadioStationTip": "Use {1} to set the radio station",
"VehicleLockedCommandTip": "🔒 This {1} is locked. Use {2} to unlock it",
"VehicleLockedKeyPressTip": "🔒 This {1} is locked. Press {2} to unlock it",
"VehicleLockedCantUnlock": "🔒 This {1} is locked and you don't have the keys to unlock it",
"CurrentlyRentingThisVehicle": "You are renting this {1} for {2} per minute. Use {3} if you want to stop renting it.",
"VehicleBelongsTo": "This {1} belongs to {2} ({3})",
"NotOwned": "Not Owned",
"NotCloseEnoughToItemContainer": "You are not close enough to anything that holds items",
"Job": "Job",
"Player": "Player",
"BusinessIsNowPaintBall": "This business is now a paintball arena",
"JoinedPaintBall": "You have joined the paintball game.",
"ItemsStoredForPaintBall": "Your items are stored in your locker and will be returned when you leave the paintball game",
"LeftPaintBall": "You have left the paintball game. Your items have been returned.",
"PaintBallEnded": "The paintball match has ended. Your items have been returned.",
"HeaderEventWinners": "Winners",
"YourPaintBallResults": "You got {1} kills and {2} deaths in the paintball match",
"NoPrivateMessageToReply": "You haven't received a private message to reply to",
"WeaponDoesNotUseAmmo": "The {1} doesn't use ammo",
"ChatBoxTimestampsToggle": "You turned {1} time display in the chatbox",
"ProfanityFilterSet": "You turned chat profanity filter {1}",
"ResetAllKeyBindsConfirm": "Are you sure you want to reset all your keybinds to default?",
"NotRentingAVehicle": "You are not renting a vehicle!",
"StoppedRentingVehicle": "You stopped renting the {1}",
"VehicleEngineStartKeyPressTip": "The {1} engine is off. Press {2} to start it.",
"VehicleEngineStartCommandTip": "The {1} engine is off. Use {2} to start it.",
"StartedRentingVehicle": "You are now renting this {1} for {2} per minute. To stop renting, use {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "You are already renting this vehicle",
"JobRankTooLow": "You are not high enough rank!",
"InvalidKeyName": "The key ID or name you input is invalid!",
"KeyBindsReset": "All your keybinds have been reset to default",
"KeyBindNameTip": "Use simple key names, letters, or numbers. Don't add spaces.",
"UniversalInlineExamplesList": "Examples: {1}",
"KeyBindRemoved": "You removed the keybind for the {1} key",
"KeyBindAdded": "You binded key {1} to {2}",
"CopyAllKeyBindsToServerConfirm": "Are you sure you want to copy all your keybinds to the {1} server?",
"CopiedAllKeyBindsToServer": "All your keybinds have been copied to the {1} server",
"MustBeSpawned": "You must be spawned!",
"ChatEmojiSet": "You turned automatic emoji in chat {1}",
"FishingLineNotCast": "Your fishing line isn't cast!",
"CantFishHere": "You can't fish here! You need to be near water or on a boat!",
"NeedFishingRod": "You need to be holding a fishing rod!",
"FishingCastCommandHelp": "Use {1} to cast your fishing line",
"FishingCastKeyBindHelp": "Press {1} to cast your fishing line",
"Paused": "Paused",
"PaintBallAlmostWin": "{1} only needs {2} more kills to win the paintball match!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOnOff": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

752
locale/japanese.json Normal file
View File

@@ -0,0 +1,752 @@
{
"TranslationProvidedBy": "Cocam",
"LocaleEnglishName": "Japanese",
"LocaleNativeName": "Japanese (Translate this to your native language)",
"LocaleOffer": "This server is available in Japanese. Use {1} to use it.",
"LocaleChanged1": "Your language is now set to {1}",
"LocaleChanged2": "The server will now display messages in {1}",
"LocaleChangedNote": "This does not change messages from other players",
"AccentsListHeader": "Accents",
"HelpMainListHeader": "Help Categories",
"AccentNotFound": "Accent not found",
"AccentSet": "You set your accent to {1}",
"InvalidAnimation": "That animation doesn't exist",
"AnimationCommandTip": "Use {1} to see a list of valid animations",
"InvalidAnimationDistance": "The distance must be between 0 and 3",
"CantBanClient": "You cannot ban this person",
"PlayerAccountBanned": "{1} has been account banned",
"ClanNotFound": "Clan not found",
"ClanNameTaken": "A clan with that name already exists",
"PlayerNotFound": "Player not found",
"ClanCantRemoveRanks": "You can't remove clan ranks",
"ClanCantAddRanks": "You can't add clan ranks",
"ClanRankNotFound": "Clan rank not found",
"ClanCantChangeMemberTag": "You can not change clan member's tags",
"ClanPlayerNotInSameClan": "That player is not in your clan",
"ClanCantChangeRankLevel": "You can not change clan rank's level",
"ClanCantChangeRankTag": "You can not change clan rank's tags",
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
"RandomTipsToggle": "Random tips are now {1}",
"ActionTipsToggle": "Action tips are now {1}",
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
"AccountGUISettingToggle": "🖥️ GUI is now {1}",
"On": "On",
"Off": "Off",
"Yes": "Yes",
"No": "No",
"True": "True",
"False": "False",
"Locked": "Locked",
"Unlocked": "Unlocked",
"PasswordNotGoodEnough": "The new password must meet the requirements!",
"PasswordNeedsBase": "Passwords must have at least {1}",
"PasswordNeedsCapitals": "{1} capital letters",
"PasswordNeedsNumbers": "{1} numbers",
"PasswordNeedsSymbols": "{1} symbols",
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
"PasswordChanged": "Your password has been changed!",
"AutoLoggedInIP": "You have been automatically logged in by IP!",
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
"InvalidPlayer": "Player not found!",
"InvalidBusiness": "Business not found!",
"InvalidHouse": "House not found!",
"InvalidVehicle": "Vehicle not found!",
"InvalidClan": "Clan not found!",
"InvalidClanRank": "Clan rank not found!",
"InvalidJob": "Job not found!",
"InvalidItem": "Item not found!",
"InvalidItemType": "Item type not found!",
"InvalidRadioStation": "Radio station not found!",
"InvalidGate": "Gate not found!",
"EntersProperty": "opens the door and enters the {1} ({2})",
"ExitsProperty": "opens the door and exits the {1} ({2})",
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
"NoBusinessWithItemType": "There is no business with that item available",
"HeaderKeyBinds": "Key Binds",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
"HeaderJobHelp": "Job Help",
"HeaderChatHelp": "Chat Help",
"HeaderServerRules": "Server Rules",
"HeaderWebsiteInfo": "Website",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animation List",
"HeaderPayAndSprayHelp": "Pay and Spray Help",
"HeaderAmmunationHelp": "Ammunation Help",
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
"HeaderBindableKeysHelp": "Bindable Keys",
"HeaderSkinHelp": "Clothes/Skin Help",
"HeaderBusinessHelp": "Business Help",
"HeaderClanHelp": "Clan Help",
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
"HeaderClansList": "Clan List",
"HeaderAdminsList": "Admin List",
"HeaderAccentsList": "Accent List",
"HeaderPlayerInfo": "Player Information ({1})",
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
"HeaderCommandInfo": "Command Information ({1})",
"HeaderRadioHelp": "Radio Help",
"HeaderRadioStationsList": "Radio Stations",
"HeaderKeyBindsList": "Key Binds List",
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
"VolumeLevelNotNumber": "The volume level must be a number",
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
"HouseDoorLock": "House {1} {2}!",
"BusinessDoorLock": "Business {1} {2}!",
"ServerGameModeRestarting": "The server game mode is restarting!",
"HeaderSelfItemList": "Your Inventory",
"HeaderPlayerItemList": "Player Inventory ({1})",
"HeaderHouseItemList": "House Inventory",
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
"HeaderItemItemList": "{1}'s Inventory",
"ItemSlotNotNumber": "The item slot must be a number",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
"HandsBusy": "Your hands are busy",
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
"Business": "business",
"House": "house",
"Clan": "clan",
"Vehicle": "vehicle",
"Item": "item",
"ItemType": "item type",
"Gate": "gate",
"Door": "door",
"ClanRank": "clan rank",
"JobRank": "job rank",
"RadioStation": "radio station",
"Months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"WeekDays": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"CardinalDirections": {
"North": "North",
"Northeast": "Northeast",
"East": "East",
"Southeast": "Southeast",
"South": "South",
"Southwest": "Southwest",
"West": "West",
"Northwest": "Northwest"
},
"NewPlayerReadyToPlay": [
"You have been given some cash. Use {1} to find places to buy items.",
"If you need money, jobs are the yellow dots on the radar.",
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
"Be sure to read the {1} and use {2} for info."
],
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
"Distance": "Distance",
"Meters": "Meters",
"Feet": "Feet",
"Kilometers": "Kilometers",
"Miles": "Miles",
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
"PlayerJoined": "{1} has joined the game from {2}!",
"PlayerLeftServer": "{1} has left the game! ({2})",
"TakeItemFromHouse": "takes a {1} from the house",
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
"TakeItemFromBusiness": "takes a {1} from the business",
"TakeItemFromItem": "takes a {1} from the {2}",
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
"AccountHelp": [
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
"Use {1} to change your password, and {2} if you forgot it",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Your personal vehicles will save wherever you or somebody else leaves them!",
"Visit dealerships to buy new vehicles (Use {1} for more information)",
"Some commands: {1}",
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
],
"VehicleDealershipHelp": [
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
"At the dealer, enter a car you want to buy, and the price will be shown to you",
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
"Drive away from the dealership with the new vehicle to confirm the purchase."
],
"JobHelp": [
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
"At a job location, use {1} to get the job. Use {2} to quit your job",
"Use {1} to begin working. You can also get a job {2} and {3}",
"Most job vehicles are locked. Use {1} near one to enter it.",
"When entering a job vehicle, information on how to do the job will be shown to you."
],
"ChatHelp": [
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
"Mixing these two types is not proper roleplay. See {1} for info.",
"Some chat commands: {1}",
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
],
"ServerRulesHelp": [
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
"No terrorist or terrorism roleplay is allowed.",
"Always follow instructions given by moderators and admins.",
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
"Keep English in main chats. If you aren't good at English, use {1}"
],
"AnimationHelp": [
"Animations allow you to enhance roleplay with visual actions",
"Use {1} or {2} with a name to use an animation.",
"To see a list of animations, use {1}"
],
"WeaponHelp": [
"Visit an gun store to buy weapons. Use {1} to find one.",
"Buying a weapon requires a weapon license.",
"Weapon licenses are managed by the police department. Apply there to get one.",
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
],
"SkinHelp": [
"At a clothing store, use {1} to purchase clothes",
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
"Some skins are restricted to jobs, clans, or for other reasons."
],
"KeyBindHelp": [
"You can set your own key binds. Use {1} to see your binded keys.",
"Use {1} to add a new keybind and {2} to remove one.",
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
],
"BusinessHelp": [
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
"Businesses are shown with blue names above the icon at their entrance.",
"Business owner commands: {1}",
"A new car for sale will appear when you drive away from the dealer."
],
"ClanHelp": [
"Ask an administrator to create a clan (Similar to factions/groups/families)",
"Clan owners have full control over their clan once it's created",
"Clan commands: {1}",
"More clan commands: {1}"
],
"RadioStationHelp": [
"Use {1} to set the station for your vehicle, house, or business",
"Use {2} to see a list of stations",
"You can change your radio streaming volume using {1} with 0-100 as the percent"
],
"WealthAndTaxHelp": [
"Your taxes on payday are {1} percent of your calculated wealth.",
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
"Each vehicle is {1}, each house is {2}, and each business is {3}",
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
],
"MustBeInAVehicle": "You need to be in a vehicle!",
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
"MustBeInVehicleDriverSeat": "You need to be the driver!",
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
"NoGateAccess": "You don't have access to this gate!",
"GateBroken": "This gate is broken!",
"GateHacked": "The gate does not respond!",
"RadioJammed": "You hear only static from the radio.",
"VehicleNotForSale": "This vehicle is not for sale!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "This business is not for sale!",
"BusinessNotForRent": "This business is not for rent!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "This house is not for rent!",
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Player Houses ({1})",
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
"HeaderStaffFlagsList": "Staff Flags",
"NonRPName": "Non-RP name! Choose a new one:",
"InvalidStaffFlag": "Staff flag not found!",
"InvalidClanFlag": "Clan flag not found!",
"InvalidLocale": "Language not found!",
"HeaderJobUniformList": "Job Uniforms ({1})",
"HeaderJobEquipmentList": "Job Equipment ({1})",
"InvalidJobUniform": "Job uniform not found!",
"InvalidJobEquipment": "Job equipment not found!",
"HeaderVehiclesInRangeList": "Vehicles within {1}",
"NoVehiclesWithinRange": "There are no vehicles within {1}",
"AmountNotNumber": "The amount must be a number!",
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
"NotYourJob": "This is not your job!",
"JobPoints": "You can get a job by going the yellow points on the map.",
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
"NotAJobVehicle": "This is not a job vehicle!",
"NotYourJobVehicle": "This is not your job's vehicle!",
"HeaderPickupTypes": "Pickup Types",
"HeaderBlipTypes": "Map Icon Types",
"InvalidGPSLocation": "There are no locations with that name or type",
"HeaderBusinessList": "Businesses",
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
"RegistrationFailedNoPassword": "You must enter a password!",
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
"RegistrationFailedNoEmail": "You must enter an email!",
"AccountNameAlreadyRegistered": "Your name is already registered!",
"AlreadyLoggedIn": "You are already logged in!",
"RegistrationFailedInvalidEmail": "That email is invalid!",
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
"RegistrationFailedCreateError": "Your account couldn't be created!",
"RegistrationSuccess": "Your account has been created!",
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
"NoCharactersGUIWindowTitle": "No characters",
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
"SetEmailHelpTip": "Use {1} to set your email.",
"VerifyEmailHelpTip": "Use {1} to verify your email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Nearby radio",
"FromRadio": "From radio",
"ToRadio": "To radio",
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
"AmountMustBeMoreThan": "The amount must be more than {1}!",
"WeaponBanned": "You are not allowed to buy or use weapons!",
"TimeNotNumber": "The time must be a number",
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
"FixingStuck": "Fixing your position and virtual world ...",
"CantUseCommandYet": "You must wait before you can use this command again!",
"NotATester": "You are not a tester!",
"AccessDenied": "AccessDenied",
"InvalidSkin": "That skin is invalid!",
"HeaderInteriorTypes": "Interiors List",
"GUIAccountSettingToggle": "You have turned {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
"PlayerIPBanned": "💀 {1} has been IP banned!",
"PlayerCharacterBanned": "💀 {1} has been character banned!",
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
"CantModifyBusiness": "You can't manage or modify this business!",
"CantModifyHouse": "You can't manage or modify this house!",
"ServerTimeSet": "⏰ {1} set the time to {2}",
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
"ServerLogoSet": "{1} turned the server logo image {2}",
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
"BusinessBuyItemsLabel": "Use {1} to purchase items",
"PropertyEnterCommandLabel": "Use {1} to enter",
"PropertyEnterKeyPressLabel": "Press {1} to enter",
"PropertyForSaleLabel": "For sale: {1}",
"PropertyForRentLabel": "For rent: {1} every payday",
"RemainingTaxPaidInMoney": "You covered the remaining taxes with {1} in cash.",
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
"Closed": "Closed",
"Open": "Open",
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
"TakeJobLabel": "Use {1} to work here",
"StartWorkLabel": "Use {1} to start working",
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
"JobLabel": "{1} Job",
"PaydayBonusSet": "🤑 {1} set the payday bonus to {2}",
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
"PlayerKicked": "🦶 {1} has been kicked from the server",
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
"UnableToDoThat": "You aren't able to do that",
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
"SetVehicleClanConfirmTitle": "Warning!",
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose {1} every purchase!",
"SetItemPriceBelowOrderPriceTitle": "Warning!",
"MustOwnVehicle": "You don't own this vehicle!",
"RandomTips": [
"Look for yellow dots on your map for job locations",
"You can set custom key binds. Use {1} for details",
"Use {1} if you don't want to see tips and extra information",
"You can edit your keybinds using {1} and {2}",
"Press to see your inventory, and use number keys to select an item",
"Use {1} at a business to purchase items",
"Found a bug? Report it with {1}",
"Have an idea or suggestion for the server? Let the devs know using {1}",
"Want to buy a business? Use {1} at one for sale",
"Want to buy a house? Use {1} at one for sale",
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
"Switch to any of your characters with {1}",
"Use {1} to automatically login when connecting with the same IP",
"Use {1} to turn on/off the lights in your house or business",
"Use {1} to play an internet radio station in your car, house, or business",
"Want to make a clan? Use {1} for details",
"Legal weapons can be purchased at any ammunation"
],
"PromptResponseTip": "Use {1} to accept or {2} to decline",
"PlayerConnecting": "👋 {1} is connecting to the server ...",
"GetStartedJobVehicle": "Get in a {1} to get started.",
"VehicleTypes": {
"Car": "Car",
"Truck": "Truck",
"Van": "Van",
"Taxi": "Taxi",
"Bus": "Bus",
"PoliceCar": "Police Car",
"Ambulance": "Ambulance",
"FireTruck": "Fire Truck",
"Bike": "Bike",
"Motorbike": "Motorbike",
"Boat": "Boat",
"Helicopter": "Helicopter",
"Plane": "Plane",
"Train": "Train"
},
"AlreadyOnJobRoute": "You are already doing a job route!",
"GaveVehicleToClan": "You gave this {1} to your clan!",
"JobDisabled": "This job is disabled!",
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
"SetHouseClanConfirmTitle": "Warning!",
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
"SetBusinessClanConfirmTitle": "Warning!",
"MustOwnHouse": "You don't own this house!",
"MustOwnBusiness": "You don't own this business!",
"GaveHouseToClan": "You gave this house to your clan!",
"GaveBusinessToClan": "You gave this business to your clan!",
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
"BuyBusinessConfirmTitle": "Attention!",
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
"BuyHouseConfirmTitle": "Attention!",
"BuyBusinessLabel": "Use {1} to buy this business",
"BuyHouseLabel": "Use {1} to buy this house",
"RentHouseLabel": "Use {1} to rent this house",
"AccountEmailAlreadyVerified": "You already set and verified your email!",
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
"GUIPlayAsCharacterButton": "Play",
"GUINewCharacterButton": "New character",
"GUIPreviousCharacterButton": "Previous",
"GUINextCharacterButton": "Next",
"GUICharacterSelectWindowTitle": "Select a character",
"GUICharacterSelectMoneyLabel": "Money: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
"GUILoginWindowLabelEnterPassword": "Please enter your password",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Reset",
"GUILoginWindowPasswordPlaceholder": "Password",
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
"GUIRegisterWindowLabelCreateAccount": "Create an account",
"GUIRegisterWindowPasswordPlaceholder": "Password",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Create account",
"GUINewCharacterMessageLabel": "Name your character",
"GUINewCharacterFirstNamePlaceholder": "First Name",
"GUINewCharacterLastNamePlaceholder": "Last Name",
"GUINewCharacterSubmitButton": "Create Character",
"GUIChangePasswordWindowTitle": "Change Password",
"GUIChangePasswordPasswordLabel": "Enter a new password",
"GUIChangePasswordPasswordPlaceholder": "Password",
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
"GUIChangePasswordSubmitButton": "Change Password",
"GUIResetPasswordWindowMessage": "Reset Password",
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Reset Password",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Remember your password?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "English",
"Russian": "Russian",
"Spanish": "Spanish",
"German": "German",
"Dutch": "Dutch",
"Polish": "Polish",
"Chinese": "Chinese",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️ You have turned two factor authentication {1}",
"AccountServerLogoSet": "⚙️ You turned the server logo {1}",
"ChatScrollLinesNotNumber": "The line amount must be a number",
"ChatScrollLinesMustBeBetween": "The line amount must be between {1} and {2}",
"ChatScrollLinesSet": "The chatbox will now scroll {1} lines at a time",
"InvalidEmailVerificationCode": "Invalid email verification code! A new one has been created and sent to your email.",
"EmailVerified": "Your email has been verified",
"EmailVerifiedTip": "You can now use your email for password resets, two-factor authentication, login alerts, and more",
"CommandRequiresLogin": "You must be logged in to use the {1} command",
"CommandDisabled": "The {1} command is disabled",
"CommandDisabledOnDiscord": "The {1} command isn't available on discord",
"CommandNotFoundHelpTip": "The command {1} does not exist! Use {2} for commands and information.",
"CommandNotFoundPossibleMatchTip": "The command {1} does not exist! Did you mean {2}?",
"CommandNoPermissions": "You don't have permission to use the {1} command",
"GUIResetPasswordCodeInputLabel": "Check your email for a code",
"GUIResetPasswordCodePlaceholder": "Verification code",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Warning",
"GUIInfoTitle": "Info",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Invalid email!",
"HeaderVehicleInfo": "Vehicle Info",
"HeaderClanRanksList": "Clan Rank",
"HeaderNPCInfo": "NPC Info",
"NPCAnimationSet": "You set NPC {1} animation to {2}",
"NPCNameSet": "You set NPC {1} name to {2}",
"VehicleTooFar": "You are too far away from the vehicle!",
"HeaderPropertyTemplateTypes": "Property Types",
"MustBeLoggedInAndSpawnedToChat": "You need to be logged in and spawned before you can chat!",
"MutedCantChat": "You are muted and can't chat!",
"CantUseMegaphone": "You must equip a megaphone item or be in an emergency vehicle!",
"HeaderAnimationHelp": "Animation Info",
"HeaderBadgeInfo": "Badge Information ({1})",
"NoItemCloseEnough": "There is no item close enough",
"CantDropJobEquipmentItem": "You can't drop job items",
"CantPutJobEquipmentItem": "You can't store job items",
"NoItemEquipped": "You don't have any item selected",
"NoItemInActiveSlot": "You don't have an item in your active item slot",
"CantPutItemInSkinChange": "You can't store an item while customizing your appearance",
"NothingToTakeItemFrom": "You aren't near anything to take items from",
"NoAmmoToLoadIntoWeapon": "You don't have any ammo to load into the {1}",
"LoadAmmoIntoWeaponHelpCommand": "To load this ammo into a weapon, equip the weapon and type {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "To load this ammo into a weapon, equip the weapon and press {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Nobody is close enough to tie up",
"PlayerNotSurrenderedHandcuff": "{1} can't be handcuffed! They either need to have their hands up, be knocked out, or tazed",
"PlayerNotSurrenderedTie": "{1} can't be tied! They either need to have their hands up, be knocked out, or tazed",
"HeaderCharactersListSelf": "Your Characters",
"HeaderCharactersListOther": "{1}'s Characters",
"CharacterSelectHelpText": "Use {1} to select a character, or {2} to create a new character",
"ItemDoesntDoAnythingOnUse": "The {1} doesn't do anything when you try to use it.",
"ItemRadioStationTip": "Use {1} to set the radio station",
"VehicleLockedCommandTip": "🔒 This {1} is locked. Use {2} to unlock it",
"VehicleLockedKeyPressTip": "🔒 This {1} is locked. Press {2} to unlock it",
"VehicleLockedCantUnlock": "🔒 This {1} is locked and you don't have the keys to unlock it",
"CurrentlyRentingThisVehicle": "You are renting this {1} for {2} per minute. Use {3} if you want to stop renting it.",
"VehicleBelongsTo": "This {1} belongs to {2} ({3})",
"NotOwned": "Not Owned",
"NotCloseEnoughToItemContainer": "You are not close enough to anything that holds items",
"Job": "Job",
"Player": "Player",
"BusinessIsNowPaintBall": "This business is now a paintball arena",
"JoinedPaintBall": "You have joined the paintball game.",
"ItemsStoredForPaintBall": "Your items are stored in your locker and will be returned when you leave the paintball game",
"LeftPaintBall": "You have left the paintball game. Your items have been returned.",
"PaintBallEnded": "The paintball match has ended. Your items have been returned.",
"HeaderEventWinners": "Winners",
"YourPaintBallResults": "You got {1} kills and {2} deaths in the paintball match",
"NoPrivateMessageToReply": "You haven't received a private message to reply to",
"WeaponDoesNotUseAmmo": "The {1} doesn't use ammo",
"ChatBoxTimestampsToggle": "You turned {1} time display in the chatbox",
"ProfanityFilterSet": "You turned chat profanity filter {1}",
"ResetAllKeyBindsConfirm": "Are you sure you want to reset all your keybinds to default?",
"NotRentingAVehicle": "You are not renting a vehicle!",
"StoppedRentingVehicle": "You stopped renting the {1}",
"VehicleEngineStartKeyPressTip": "The {1} engine is off. Press {2} to start it.",
"VehicleEngineStartCommandTip": "The {1} engine is off. Use {2} to start it.",
"StartedRentingVehicle": "You are now renting this {1} for {2} per minute. To stop renting, use {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "You are already renting this vehicle",
"JobRankTooLow": "You are not high enough rank!",
"InvalidKeyName": "The key ID or name you input is invalid!",
"KeyBindsReset": "All your keybinds have been reset to default",
"KeyBindNameTip": "Use simple key names, letters, or numbers. Don't add spaces.",
"UniversalInlineExamplesList": "Examples: {1}",
"KeyBindRemoved": "You removed the keybind for the {1} key",
"KeyBindAdded": "You binded key {1} to {2}",
"CopyAllKeyBindsToServerConfirm": "Are you sure you want to copy all your keybinds to the {1} server?",
"CopiedAllKeyBindsToServer": "All your keybinds have been copied to the {1} server",
"MustBeSpawned": "You must be spawned!",
"ChatEmojiSet": "You turned automatic emoji in chat {1}",
"FishingLineNotCast": "Your fishing line isn't cast!",
"CantFishHere": "You can't fish here! You need to be near water or on a boat!",
"NeedFishingRod": "You need to be holding a fishing rod!",
"FishingCastCommandHelp": "Use {1} to cast your fishing line",
"FishingCastKeyBindHelp": "Press {1} to cast your fishing line",
"Paused": "Paused",
"PaintBallAlmostWin": "{1} only needs {2} more kills to win the paintball match!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOnOff": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

754
locale/latvian.json Normal file
View File

@@ -0,0 +1,754 @@
{
"TranslationProvidedBy": "YuOn",
"LocaleEnglishName": "Latvian",
"LocaleNativeName": "Latvian",
"LocaleOffer": "This server is available in Latvian. Use {1} to use it.",
"LocaleChanged1": "Your language is now set to {1}",
"LocaleChanged2": "The server will now display messages in {1}",
"LocaleChangedNote": "This does not change messages from other players",
"AccentsListHeader": "Accents",
"HelpMainListHeader": "Help Categories",
"AccentNotFound": "Accent not found",
"AccentSet": "You set your accent to {1}",
"InvalidAnimation": "That animation doesn't exist",
"AnimationCommandTip": "Use {1} to see a list of valid animations",
"InvalidAnimationDistance": "The distance must be between 0 and 3",
"CantBanClient": "You cannot ban this person",
"PlayerAccountBanned": "{1} has been account banned",
"ClanNotFound": "Clan not found",
"ClanNameTaken": "A clan with that name already exists",
"PlayerNotFound": "Player not found",
"ClanCantRemoveRanks": "You can't remove clan ranks",
"ClanCantAddRanks": "You can't add clan ranks",
"ClanRankNotFound": "Clan rank not found",
"ClanCantChangeMemberTag": "You can not change clan member's tags",
"ClanPlayerNotInSameClan": "That player is not in your clan",
"ClanCantChangeRankLevel": "You can not change clan rank's level",
"ClanCantChangeRankTag": "You can not change clan rank's tags",
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
"RandomTipsToggle": "Random tips are now {1}",
"ActionTipsToggle": "Action tips are now {1}",
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
"AccountGUISettingToggle": "🖥️ GUI is now {1}",
"On": "On",
"Off": "Off",
"Yes": "Yes",
"No": "No",
"True": "True",
"False": "False",
"Locked": "Locked",
"Unlocked": "Unlocked",
"PasswordNotGoodEnough": "The new password must meet the requirements!",
"PasswordNeedsBase": "Passwords must have at least {1}",
"PasswordNeedsCapitals": "{1} capital letters",
"PasswordNeedsNumbers": "{1} numbers",
"PasswordNeedsSymbols": "{1} symbols",
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
"PasswordChanged": "Your password has been changed!",
"AutoLoggedInIP": "You have been automatically logged in by IP!",
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
"InvalidPlayer": "Player not found!",
"InvalidBusiness": "Business not found!",
"InvalidHouse": "House not found!",
"InvalidVehicle": "Vehicle not found!",
"InvalidClan": "Clan not found!",
"InvalidClanRank": "Clan rank not found!",
"InvalidJob": "Job not found!",
"InvalidItem": "Item not found!",
"InvalidItemType": "Item type not found!",
"InvalidRadioStation": "Radio station not found!",
"InvalidGate": "Gate not found!",
"EntersProperty": "opens the door and enters the {1} ({2})",
"ExitsProperty": "opens the door and exits the {1} ({2})",
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
"NoBusinessWithItemType": "There is no business with that item available",
"HeaderKeyBinds": "Key Binds",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
"HeaderJobHelp": "Job Help",
"HeaderChatHelp": "Chat Help",
"HeaderServerRules": "Server Rules",
"HeaderWebsiteInfo": "Website",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animation List",
"HeaderPayAndSprayHelp": "Pay and Spray Help",
"HeaderAmmunationHelp": "Ammunation Help",
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
"HeaderBindableKeysHelp": "Bindable Keys",
"HeaderSkinHelp": "Clothes/Skin Help",
"HeaderBusinessHelp": "Business Help",
"HeaderClanHelp": "Clan Help",
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
"HeaderClansList": "Clan List",
"HeaderAdminsList": "Admin List",
"HeaderAccentsList": "Accent List",
"HeaderPlayerInfo": "Player Information ({1})",
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
"HeaderCommandInfo": "Command Information ({1})",
"HeaderRadioHelp": "Radio Help",
"HeaderRadioStationsList": "Radio Stations",
"HeaderKeyBindsList": "Key Binds List",
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
"VolumeLevelNotNumber": "The volume level must be a number",
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
"HouseDoorLock": "House {1} {2}!",
"BusinessDoorLock": "Business {1} {2}!",
"ServerGameModeRestarting": "The server game mode is restarting!",
"HeaderSelfItemList": "Your Inventory",
"HeaderPlayerItemList": "Player Inventory ({1})",
"HeaderHouseItemList": "House Inventory",
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
"HeaderItemItemList": "{1}'s Inventory",
"ItemSlotNotNumber": "The item slot must be a number",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
"HandsBusy": "Your hands are busy",
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
"Business": "business",
"House": "house",
"Clan": "clan",
"Vehicle": "vehicle",
"Item": "item",
"ItemType": "item type",
"Gate": "gate",
"Door": "door",
"ClanRank": "clan rank",
"JobRank": "job rank",
"RadioStation": "radio station",
"Months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"WeekDays": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"CardinalDirections": {
"North": "North",
"Northeast": "Northeast",
"East": "East",
"Southeast": "Southeast",
"South": "South",
"Southwest": "Southwest",
"West": "West",
"Northwest": "Northwest"
},
"NewPlayerReadyToPlay": [
"You have been given some cash. Use {1} to find places to buy items.",
"If you need money, jobs are the yellow dots on the radar.",
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
"Be sure to read the {1} and use {2} for info."
],
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
"Distance": "Distance",
"Meters": "Meters",
"Feet": "Feet",
"Kilometers": "Kilometers",
"Miles": "Miles",
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
"PlayerJoined": "{1} has joined the game from {2}!",
"PlayerLeftServer": "{1} has left the game! ({2})",
"TakeItemFromHouse": "takes a {1} from the house",
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
"TakeItemFromBusiness": "takes a {1} from the business",
"TakeItemFromItem": "takes a {1} from the {2}",
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
"AccountHelp": [
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
"Use {1} to change your password, and {2} if you forgot it",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Your personal vehicles will save wherever you or somebody else leaves them!",
"Visit dealerships to buy new vehicles (Use {1} for more information)",
"Some commands: {1}",
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
],
"VehicleDealershipHelp": [
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
"At the dealer, enter a car you want to buy, and the price will be shown to you",
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
"Drive away from the dealership with the new vehicle to confirm the purchase."
],
"JobHelp": [
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
"At a job location, use {1} to get the job. Use {2} to quit your job",
"Use {1} to begin working. You can also get a job {2} and {3}",
"Most job vehicles are locked. Use {1} near one to enter it.",
"When entering a job vehicle, information on how to do the job will be shown to you."
],
"ChatHelp": [
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
"Mixing these two types is not proper roleplay. See {1} for info.",
"Some chat commands: {1}",
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
],
"ServerRulesHelp": [
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
"No terrorist or terrorism roleplay is allowed.",
"Always follow instructions given by moderators and admins.",
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
"Keep English in main chats. If you aren't good at English, use {1}"
],
"AnimationHelp": [
"Animations allow you to enhance roleplay with visual actions",
"Use {1} or {2} with a name to use an animation.",
"To see a list of animations, use {1}"
],
"WeaponHelp": [
"Visit an gun store to buy weapons. Use {1} to find one.",
"Buying a weapon requires a weapon license.",
"Weapon licenses are managed by the police department. Apply there to get one.",
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
],
"SkinHelp": [
"At a clothing store, use {1} to purchase clothes",
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
"Some skins are restricted to jobs, clans, or for other reasons."
],
"KeyBindHelp": [
"You can set your own key binds. Use {1} to see your binded keys.",
"Use {1} to add a new keybind and {2} to remove one.",
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
],
"BusinessHelp": [
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
"Businesses are shown with blue names above the icon at their entrance.",
"Business owner commands: {1}",
"A new car for sale will appear when you drive away from the dealer."
],
"ClanHelp": [
"Ask an administrator to create a clan (Similar to factions/groups/families)",
"Clan owners have full control over their clan once it's created",
"Clan commands: {1}",
"More clan commands: {1}"
],
"RadioStationHelp": [
"Use {1} to set the station for your vehicle, house, or business",
"Use {2} to see a list of stations",
"You can change your radio streaming volume using {1} with 0-100 as the percent"
],
"WealthAndTaxHelp": [
"Your taxes on payday are {1} percent of your calculated wealth.",
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
"Each vehicle is {1}, each house is {2}, and each business is {3}",
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
],
"MustBeInAVehicle": "You need to be in a vehicle!",
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
"MustBeInVehicleDriverSeat": "You need to be the driver!",
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
"NoGateAccess": "You don't have access to this gate!",
"GateBroken": "This gate is broken!",
"GateHacked": "The gate does not respond!",
"RadioJammed": "You hear only static from the radio.",
"VehicleNotForSale": "This vehicle is not for sale!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "This business is not for sale!",
"BusinessNotForRent": "This business is not for rent!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "This house is not for rent!",
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Player Houses ({1})",
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
"HeaderStaffFlagsList": "Staff Flags",
"NonRPName": "Non-RP name! Choose a new one:",
"InvalidStaffFlag": "Staff flag not found!",
"InvalidClanFlag": "Clan flag not found!",
"InvalidLocale": "Language not found!",
"HeaderJobUniformList": "Job Uniforms ({1})",
"HeaderJobEquipmentList": "Job Equipment ({1})",
"InvalidJobUniform": "Job uniform not found!",
"InvalidJobEquipment": "Job equipment not found!",
"HeaderVehiclesInRangeList": "Vehicles within {1}",
"NoVehiclesWithinRange": "There are no vehicles within {1}",
"AmountNotNumber": "The amount must be a number!",
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
"NotYourJob": "This is not your job!",
"JobPoints": "You can get a job by going the yellow points on the map.",
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
"NotAJobVehicle": "This is not a job vehicle!",
"NotYourJobVehicle": "This is not your job's vehicle!",
"HeaderPickupTypes": "Pickup Types",
"HeaderBlipTypes": "Map Icon Types",
"InvalidGPSLocation": "There are no locations with that name or type",
"HeaderBusinessList": "Businesses",
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
"RegistrationFailedNoPassword": "You must enter a password!",
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
"RegistrationFailedNoEmail": "You must enter an email!",
"AccountNameAlreadyRegistered": "Your name is already registered!",
"AlreadyLoggedIn": "You are already logged in!",
"RegistrationFailedInvalidEmail": "That email is invalid!",
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
"RegistrationFailedCreateError": "Your account couldn't be created!",
"RegistrationSuccess": "Your account has been created!",
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
"NoCharactersGUIWindowTitle": "No characters",
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
"SetEmailHelpTip": "Use {1} to set your email.",
"VerifyEmailHelpTip": "Use {1} to verify your email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Nearby radio",
"FromRadio": "From radio",
"ToRadio": "To radio",
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
"AmountMustBeMoreThan": "The amount must be more than {1}!",
"WeaponBanned": "You are not allowed to buy or use weapons!",
"TimeNotNumber": "The time must be a number",
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
"FixingStuck": "Fixing your position and virtual world ...",
"CantUseCommandYet": "You must wait before you can use this command again!",
"NotATester": "You are not a tester!",
"AccessDenied": "Access Denied",
"InvalidSkin": "That skin is invalid!",
"HeaderInteriorTypes": "Interiors List",
"GUIAccountSettingToggle": "You have turned {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
"PlayerIPBanned": "💀 {1} has been IP banned!",
"PlayerCharacterBanned": "💀 {1} has been character banned!",
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
"CantModifyBusiness": "You can't manage or modify this business!",
"CantModifyHouse": "You can't manage or modify this house!",
"ServerTimeSet": "⏰ {1} set the time to {2}",
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
"ServerLogoSet": "{1} turned the server logo image {2}",
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
"BusinessBuyItemsLabel": "Use {1} to purchase items",
"PropertyEnterCommandLabel": "Use {1} to enter",
"PropertyEnterKeyPressLabel": "Press {1} to enter",
"PropertyForSaleLabel": "For sale: {1}",
"PropertyForRentLabel": "For rent: {1} every payday",
"RemainingTaxPaidInMoney": "You covered the remaining taxes with {1} in cash.",
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
"Closed": "Closed",
"Open": "Open",
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
"TakeJobLabel": "Use {1} to work here",
"StartWorkLabel": "Use {1} to start working",
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
"JobLabel": "{1} Job",
"PaydayBonusSet": "🤑 {1} set the payday bonus to {2}",
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
"PlayerKicked": "🦶 {1} has been kicked from the server",
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
"UnableToDoThat": "You aren't able to do that",
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
"SetVehicleClanConfirmTitle": "Warning!",
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose {1} every purchase!",
"SetItemPriceBelowOrderPriceTitle": "Warning!",
"MustOwnVehicle": "You don't own this vehicle!",
"RandomTips": [
"Look for yellow dots on your map for job locations",
"You can set custom key binds. Use {1} for details",
"Use {1} if you don't want to see tips and extra information",
"You can edit your keybinds using {1} and {2}",
"Press to see your inventory, and use number keys to select an item",
"Use {1} at a business to purchase items",
"Found a bug? Report it with {1}",
"Have an idea or suggestion for the server? Let the devs know using {1}",
"Want to buy a business? Use {1} at one for sale",
"Want to buy a house? Use {1} at one for sale",
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
"Switch to any of your characters with {1}",
"Use {1} to automatically login when connecting with the same IP",
"Use {1} to turn on/off the lights in your house or business",
"Use {1} to play an internet radio station in your car, house, or business",
"Want to make a clan? Use {1} for details",
"Legal weapons can be purchased at any ammunation"
],
"PromptResponseTip": "Use {1} to accept or {2} to decline",
"PlayerConnecting": "👋 {1} is connecting to the server ...",
"GetStartedJobVehicle": "Get in a {1} to get started.",
"VehicleTypes": {
"Car": "Car",
"Truck": "Truck",
"Van": "Van",
"Taxi": "Taxi",
"Bus": "Bus",
"PoliceCar": "Police Car",
"Ambulance": "Ambulance",
"FireTruck": "Fire Truck",
"Bike": "Bike",
"Motorbike": "Motorbike",
"Boat": "Boat",
"Helicopter": "Helicopter",
"Plane": "Plane",
"Train": "Train"
},
"AlreadyOnJobRoute": "You are already doing a job route!",
"GaveVehicleToClan": "You gave this {1} to your clan!",
"JobDisabled": "This job is disabled!",
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
"SetHouseClanConfirmTitle": "Warning!",
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
"SetBusinessClanConfirmTitle": "Warning!",
"MustOwnHouse": "You don't own this house!",
"MustOwnBusiness": "You don't own this business!",
"GaveHouseToClan": "You gave this house to your clan!",
"GaveBusinessToClan": "You gave this business to your clan!",
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
"BuyBusinessConfirmTitle": "Attention!",
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
"BuyHouseConfirmTitle": "Attention!",
"BuyBusinessLabel": "Use {1} to buy this business",
"BuyHouseLabel": "Use {1} to buy this house",
"RentHouseLabel": "Use {1} to rent this house",
"AccountEmailAlreadyVerified": "You already set and verified your email!",
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
"GUIPlayAsCharacterButton": "Play",
"GUINewCharacterButton": "New character",
"GUIPreviousCharacterButton": "Previous",
"GUINextCharacterButton": "Next",
"GUICharacterSelectWindowTitle": "Select a character",
"GUICharacterSelectMoneyLabel": "Money: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
"GUILoginWindowLabelEnterPassword": "Please enter your password",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Reset",
"GUILoginWindowPasswordPlaceholder": "Password",
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
"GUIRegisterWindowLabelCreateAccount": "Create an account",
"GUIRegisterWindowPasswordPlaceholder": "Password",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Create account",
"GUINewCharacterMessageLabel": "Name your character",
"GUINewCharacterFirstNamePlaceholder": "First Name",
"GUINewCharacterLastNamePlaceholder": "Last Name",
"GUINewCharacterSubmitButton": "Create Character",
"GUIChangePasswordWindowTitle": "Change Password",
"GUIChangePasswordPasswordLabel": "Enter a new password",
"GUIChangePasswordPasswordPlaceholder": "Password",
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
"GUIChangePasswordSubmitButton": "Change Password",
"GUIResetPasswordWindowMessage": "Reset Password",
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Reset Password",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Remember your password?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "English",
"Russian": "Russian",
"Spanish": "Spanish",
"German": "German",
"Dutch": "Dutch",
"Polish": "Polish",
"Chinese": "Chinese",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️ You have turned two factor authentication {1}",
"AccountServerLogoSet": "⚙️ You turned the server logo {1}",
"ChatScrollLinesNotNumber": "The line amount must be a number",
"ChatScrollLinesMustBeBetween": "The line amount must be between {1} and {2}",
"ChatScrollLinesSet": "The chatbox will now scroll {1} lines at a time",
"InvalidEmailVerificationCode": "Invalid email verification code! A new one has been created and sent to your email.",
"EmailVerified": "Your email has been verified",
"EmailVerifiedTip": "You can now use your email for password resets, two-factor authentication, login alerts, and more",
"CommandRequiresLogin": "You must be logged in to use the {1} command",
"CommandDisabled": "The {1} command is disabled",
"CommandDisabledOnDiscord": "The {1} command isn't available on discord",
"CommandNotFoundHelpTip": "The command {1} does not exist! Use {2} for commands and information.",
"CommandNotFoundPossibleMatchTip": "The command {1} does not exist! Did you mean {2}?",
"CommandNoPermissions": "You don't have permission to use the {1} command",
"GUIResetPasswordCodeInputLabel": "Check your email for a code",
"GUIResetPasswordCodePlaceholder": "Verification code",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Warning",
"GUIInfoTitle": "Info",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Invalid email!",
"HeaderVehicleInfo": "Vehicle Info",
"HeaderClanRanksList": "Clan Ranks ({1})",
"HeaderNPCInfo": "NPC Info",
"NPCAnimationSet": "You set NPC {1} animation to {2}",
"NPCNameSet": "You set NPC {1} name to {2}",
"VehicleTooFar": "You are too far away from the vehicle!",
"HeaderPropertyTemplateTypes": "Property Types",
"MustBeLoggedInAndSpawnedToChat": "You need to be logged in and spawned before you can chat!",
"MutedCantChat": "You are muted and can't chat!",
"CantUseMegaphone": "You must equip a megaphone item or be in an emergency vehicle!",
"HeaderAnimationHelp": "Animation Info",
"HeaderBadgeInfo": "Badge Information ({1})",
"NoItemCloseEnough": "There is no item close enough",
"CantDropJobEquipmentItem": "You can't drop job items",
"CantPutJobEquipmentItem": "You can't store job items",
"NoItemEquipped": "You don't have any item selected",
"NoItemInActiveSlot": "You don't have an item in your active item slot",
"CantPutItemInSkinChange": "You can't store an item while customizing your appearance",
"NothingToTakeItemFrom": "You aren't near anything to take items from",
"NoAmmoToLoadIntoWeapon": "You don't have any ammo to load into the {1}",
"LoadAmmoIntoWeaponHelpCommand": "To load this ammo into a weapon, equip the weapon and type {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "To load this ammo into a weapon, equip the weapon and press {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Nobody is close enough to tie up",
"PlayerNotSurrenderedHandcuff": "{1} can't be handcuffed! They either need to have their hands up, be knocked out, or tazed",
"PlayerNotSurrenderedTie": "{1} can't be tied! They either need to have their hands up, be knocked out, or tazed",
"HeaderCharactersListSelf": "Your Characters",
"HeaderCharactersListOther": "{1}'s Characters",
"CharacterSelectHelpText": "Use {1} to select a character, or {2} to create a new character",
"ItemDoesntDoAnythingOnUse": "The {1} doesn't do anything when you try to use it.",
"ItemRadioStationTip": "Use {1} to set the radio station",
"VehicleLockedCommandTip": "🔒 This {1} is locked. Use {2} to unlock it",
"VehicleLockedKeyPressTip": "🔒 This {1} is locked. Press {2} to unlock it",
"VehicleLockedCantUnlock": "🔒 This {1} is locked and you don't have the keys to unlock it",
"CurrentlyRentingThisVehicle": "You are renting this {1} for {2} per minute. Use {3} if you want to stop renting it.",
"VehicleBelongsTo": "This {1} belongs to {2} ({3})",
"NotOwned": "Not Owned",
"NotCloseEnoughToItemContainer": "You are not close enough to anything that holds items",
"Job": "Job",
"Player": "Player",
"BusinessIsNowPaintBall": "This business is now a paintball arena",
"JoinedPaintBall": "You have joined the paintball game.",
"ItemsStoredForPaintBall": "Your items are stored in your locker and will be returned when you leave the paintball game",
"LeftPaintBall": "You have left the paintball game. Your items have been returned.",
"PaintBallEnded": "The paintball match has ended. Your items have been returned.",
"HeaderEventWinners": "Winners",
"YourPaintBallResults": "You got {1} kills and {2} deaths in the paintball match",
"NoPrivateMessageToReply": "You haven't received a private message to reply to",
"WeaponDoesNotUseAmmo": "The {1} doesn't use ammo",
"ChatBoxTimestampsToggle": "You turned {1} time display in the chatbox",
"ProfanityFilterSet": "You turned chat profanity filter {1}",
"ResetAllKeyBindsConfirm": "Are you sure you want to reset all your keybinds to default?",
"NotRentingAVehicle": "You are not renting a vehicle!",
"StoppedRentingVehicle": "You stopped renting the {1}",
"VehicleEngineStartKeyPressTip": "The {1} engine is off. Press {2} to start it.",
"VehicleEngineStartCommandTip": "The {1} engine is off. Use {2} to start it.",
"StartedRentingVehicle": "You are now renting this {1} for {2} per minute. To stop renting, use {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "You are already renting this vehicle",
"JobRankTooLow": "You are not high enough rank!",
"InvalidKeyName": "The key ID or name you input is invalid!",
"KeyBindsReset": "All your keybinds have been reset to default",
"KeyBindNameTip": "Use simple key names, letters, or numbers. Don't add spaces.",
"UniversalInlineExamplesList": "Examples: {1}",
"KeyBindRemoved": "You removed the keybind for the {1} key",
"KeyBindAdded": "You binded key {1} to {2}",
"CopyAllKeyBindsToServerConfirm": "Are you sure you want to copy all your keybinds to the {1} server?",
"CopiedAllKeyBindsToServer": "All your keybinds have been copied to the {1} server",
"MustBeSpawned": "You must be spawned!",
"ChatEmojiSet": "You turned automatic emoji in chat {1}",
"FishingLineNotCast": "Your fishing line isn't cast!",
"CantFishHere": "You can't fish here! You need to be near water or on a boat!",
"NeedFishingRod": "You need to be holding a fishing rod!",
"FishingCastCommandHelp": "Use {1} to cast your fishing line",
"FishingCastKeyBindHelp": "Press {1} to cast your fishing line",
"Paused": "Paused",
"PaintBallAlmostWin": "{1} only needs {2} more kills to win the paintball match!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOn": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

753
locale/lithuanian.json Normal file
View File

@@ -0,0 +1,753 @@
{
"TranslationProvidedBy": "dovis",
"LocaleEnglishName": "Lithuanian",
"LocaleNativeName": "Lithuanian",
"LocaleOffer": "This server is available in Lithuanian. Use {1} to use it.",
"LocaleChanged1": "Your language is now set to {1}",
"LocaleChanged2": "The server will now display messages in {1}",
"LocaleChangedNote": "This does not change messages from other players",
"AccentsListHeader": "Accents",
"HelpMainListHeader": "Help Categories",
"AccentNotFound": "Accent not found",
"AccentSet": "You set your accent to {1}",
"InvalidAnimation": "That animation doesn't exist",
"AnimationCommandTip": "Use {1} to see a list of valid animations",
"InvalidAnimationDistance": "The distance must be between 0 and 3",
"CantBanClient": "You cannot ban this person",
"PlayerAccountBanned": "{1} has been account banned",
"ClanNotFound": "Clan not found",
"ClanNameTaken": "A clan with that name already exists",
"PlayerNotFound": "Player not found",
"ClanCantRemoveRanks": "You can't remove clan ranks",
"ClanCantAddRanks": "You can't add clan ranks",
"ClanRankNotFound": "Clan rank not found",
"ClanCantChangeMemberTag": "You can not change clan member's tags",
"ClanPlayerNotInSameClan": "That player is not in your clan",
"ClanCantChangeRankLevel": "You can not change clan rank's level",
"ClanCantChangeRankTag": "You can not change clan rank's tags",
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
"RandomTipsToggle": "Random tips are now {1}",
"ActionTipsToggle": "Action tips are now {1}",
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
"AccountGUISettingToggle": "🖥️ GUI is now {1}",
"On": "On",
"Off": "Off",
"Yes": "Yes",
"No": "No",
"True": "True",
"False": "False",
"Locked": "Locked",
"Unlocked": "Unlocked",
"PasswordNotGoodEnough": "The new password must meet the requirements!",
"PasswordNeedsBase": "Passwords must have at least {1}",
"PasswordNeedsCapitals": "{1} capital letters",
"PasswordNeedsNumbers": "{1} numbers",
"PasswordNeedsSymbols": "{1} symbols",
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
"PasswordChanged": "Your password has been changed!",
"AutoLoggedInIP": "You have been automatically logged in by IP!",
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
"InvalidPlayer": "Player not found!",
"InvalidBusiness": "Business not found!",
"InvalidHouse": "House not found!",
"InvalidVehicle": "Vehicle not found!",
"InvalidClan": "Clan not found!",
"InvalidClanRank": "Clan rank not found!",
"InvalidJob": "Job not found!",
"InvalidItem": "Item not found!",
"InvalidItemType": "Item type not found!",
"InvalidRadioStation": "Radio station not found!",
"InvalidGate": "Gate not found!",
"EntersProperty": "opens the door and enters the {1} ({2})",
"ExitsProperty": "opens the door and exits the {1} ({2})",
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
"NoBusinessWithItemType": "There is no business with that item available",
"HeaderKeyBinds": "Key Binds",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
"HeaderJobHelp": "Job Help",
"HeaderChatHelp": "Chat Help",
"HeaderServerRules": "Server Rules",
"HeaderWebsiteInfo": "Website",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animation List",
"HeaderPayAndSprayHelp": "Pay and Spray Help",
"HeaderAmmunationHelp": "Ammunation Help",
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
"HeaderBindableKeysHelp": "Bindable Keys",
"HeaderSkinHelp": "Clothes/Skin Help",
"HeaderBusinessHelp": "Business Help",
"HeaderClanHelp": "Clan Help",
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
"HeaderClansList": "Clan List",
"HeaderAdminsList": "Admin List",
"HeaderAccentsList": "Accent List",
"HeaderPlayerInfo": "Player Information ({1})",
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
"HeaderCommandInfo": "Command Information ({1})",
"HeaderRadioHelp": "Radio Help",
"HeaderRadioStationsList": "Radio Stations",
"HeaderKeyBindsList": "Key Binds List",
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
"VolumeLevelNotNumber": "The volume level must be a number",
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
"HouseDoorLock": "House {1} {2}!",
"BusinessDoorLock": "Business {1} {2}!",
"ServerGameModeRestarting": "The server game mode is restarting!",
"HeaderSelfItemList": "Your Inventory",
"HeaderPlayerItemList": "Player Inventory ({1})",
"HeaderHouseItemList": "House Inventory",
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
"HeaderItemItemList": "{1}'s Inventory",
"ItemSlotNotNumber": "The item slot must be a number",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
"HandsBusy": "Your hands are busy",
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
"Business": "business",
"House": "house",
"Clan": "clan",
"Vehicle": "vehicle",
"Item": "item",
"ItemType": "item type",
"Gate": "gate",
"Door": "door",
"ClanRank": "clan rank",
"JobRank": "job rank",
"RadioStation": "radio station",
"Months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"WeekDays": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"CardinalDirections": {
"North": "North",
"Northeast": "Northeast",
"East": "East",
"Southeast": "Southeast",
"South": "South",
"Southwest": "Southwest",
"West": "West",
"Northwest": "Northwest"
},
"NewPlayerReadyToPlay": [
"You have been given some cash. Use {1} to find places to buy items.",
"If you need money, jobs are the yellow dots on the radar.",
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
"Be sure to read the {1} and use {2} for info."
],
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
"Distance": "Distance",
"Meters": "Meters",
"Feet": "Feet",
"Kilometers": "Kilometers",
"Miles": "Miles",
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
"PlayerJoined": "{1} has joined the game from {2}!",
"PlayerLeftServer": "{1} has left the game! ({2})",
"TakeItemFromHouse": "takes a {1} from the house",
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
"TakeItemFromBusiness": "takes a {1} from the business",
"TakeItemFromItem": "takes a {1} from the {2}",
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
"AccountHelp": [
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
"Use {1} to change your password, and {2} if you forgot it",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Your personal vehicles will save wherever you or somebody else leaves them!",
"Visit dealerships to buy new vehicles (Use {1} for more information)",
"Some commands: {1}",
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
],
"VehicleDealershipHelp": [
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
"At the dealer, enter a car you want to buy, and the price will be shown to you",
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
"Drive away from the dealership with the new vehicle to confirm the purchase."
],
"JobHelp": [
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
"At a job location, use {1} to get the job. Use {2} to quit your job",
"Use {1} to begin working. You can also get a job {2} and {3}",
"Most job vehicles are locked. Use {1} near one to enter it.",
"When entering a job vehicle, information on how to do the job will be shown to you."
],
"ChatHelp": [
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
"Mixing these two types is not proper roleplay. See {1} for info.",
"Some chat commands: {1}",
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
],
"ServerRulesHelp": [
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
"No terrorist or terrorism roleplay is allowed.",
"Always follow instructions given by moderators and admins.",
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
"Keep English in main chats. If you aren't good at English, use {1}"
],
"AnimationHelp": [
"Animations allow you to enhance roleplay with visual actions",
"Use {1} or {2} with a name to use an animation.",
"To see a list of animations, use {1}"
],
"WeaponHelp": [
"Visit an gun store to buy weapons. Use {1} to find one.",
"Buying a weapon requires a weapon license.",
"Weapon licenses are managed by the police department. Apply there to get one.",
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
],
"SkinHelp": [
"At a clothing store, use {1} to purchase clothes",
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
"Some skins are restricted to jobs, clans, or for other reasons."
],
"KeyBindHelp": [
"You can set your own key binds. Use {1} to see your binded keys.",
"Use {1} to add a new keybind and {2} to remove one.",
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
],
"BusinessHelp": [
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
"Businesses are shown with blue names above the icon at their entrance.",
"Business owner commands: {1}",
"A new car for sale will appear when you drive away from the dealer."
],
"ClanHelp": [
"Ask an administrator to create a clan (Similar to factions/groups/families)",
"Clan owners have full control over their clan once it's created",
"Clan commands: {1}",
"More clan commands: {1}"
],
"RadioStationHelp": [
"Use {1} to set the station for your vehicle, house, or business",
"Use {2} to see a list of stations",
"You can change your radio streaming volume using {1} with 0-100 as the percent"
],
"WealthAndTaxHelp": [
"Your taxes on payday are {1} percent of your calculated wealth.",
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
"Each vehicle is {1}, each house is {2}, and each business is {3}",
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
],
"MustBeInAVehicle": "You need to be in a vehicle!",
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
"MustBeInVehicleDriverSeat": "You need to be the driver!",
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
"NoGateAccess": "You don't have access to this gate!",
"GateBroken": "This gate is broken!",
"GateHacked": "The gate does not respond!",
"RadioJammed": "You hear only static from the radio.",
"VehicleNotForSale": "This vehicle is not for sale!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "This business is not for sale!",
"BusinessNotForRent": "This business is not for rent!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "This house is not for rent!",
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Player Houses ({1})",
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
"HeaderStaffFlagsList": "Staff Flags",
"NonRPName": "Non-RP name! Choose a new one:",
"InvalidStaffFlag": "Staff flag not found!",
"InvalidClanFlag": "Clan flag not found!",
"InvalidLocale": "Language not found!",
"HeaderJobUniformList": "Job Uniforms ({1})",
"HeaderJobEquipmentList": "Job Equipment ({1})",
"InvalidJobUniform": "Job uniform not found!",
"InvalidJobEquipment": "Job equipment not found!",
"HeaderVehiclesInRangeList": "Vehicles within {1}",
"NoVehiclesWithinRange": "There are no vehicles within {1}",
"AmountNotNumber": "The amount must be a number!",
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
"NotYourJob": "This is not your job!",
"JobPoints": "You can get a job by going the yellow points on the map.",
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
"NotAJobVehicle": "This is not a job vehicle!",
"NotYourJobVehicle": "This is not your job's vehicle!",
"HeaderPickupTypes": "Pickup Types",
"HeaderBlipTypes": "Map Icon Types",
"InvalidGPSLocation": "There are no locations with that name or type",
"HeaderBusinessList": "Businesses",
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
"RegistrationFailedNoPassword": "You must enter a password!",
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
"RegistrationFailedNoEmail": "You must enter an email!",
"AccountNameAlreadyRegistered": "Your name is already registered!",
"AlreadyLoggedIn": "You are already logged in!",
"RegistrationFailedInvalidEmail": "That email is invalid!",
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
"RegistrationFailedCreateError": "Your account couldn't be created!",
"RegistrationSuccess": "Your account has been created!",
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
"NoCharactersGUIWindowTitle": "No characters",
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
"SetEmailHelpTip": "Use {1} to set your email.",
"VerifyEmailHelpTip": "Use {1} to verify your email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Nearby radio",
"FromRadio": "From radio",
"ToRadio": "To radio",
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
"AmountMustBeMoreThan": "The amount must be more than {1}!",
"WeaponBanned": "You are not allowed to buy or use weapons!",
"TimeNotNumber": "The time must be a number",
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
"FixingStuck": "Fixing your position and virtual world ...",
"CantUseCommandYet": "You must wait before you can use this command again!",
"NotATester": "You are not a tester!",
"AccessDenied": "AccessDenied",
"InvalidSkin": "That skin is invalid!",
"HeaderInteriorTypes": "Interiors List",
"GUIAccountSettingToggle": "You have turned {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
"PlayerIPBanned": "💀 {1} has been IP banned!",
"PlayerCharacterBanned": "💀 {1} has been character banned!",
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
"CantModifyBusiness": "You can't manage or modify this business!",
"CantModifyHouse": "You can't manage or modify this house!",
"ServerTimeSet": "⏰ {1} set the time to {2}",
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
"ServerLogoSet": "{1} turned the server logo image {2}",
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
"BusinessBuyItemsLabel": "Use {1} to purchase items",
"PropertyEnterCommandLabel": "Use {1} to enter",
"PropertyEnterKeyPressLabel": "Press {1} to enter",
"PropertyForSaleLabel": "For sale: {1}",
"PropertyForRentLabel": "For rent: {1} every payday",
"RemainingTaxPaidInMoney": "You covered the remaining taxes with {1} in cash.",
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
"Closed": "Closed",
"Open": "Open",
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
"TakeJobLabel": "Use {1} to work here",
"StartWorkLabel": "Use {1} to start working",
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
"JobLabel": "{1} Job",
"PaydayBonusSet": "🤑 {1} set the payday bonus to {2}",
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
"PlayerKicked": "🦶 {1} has been kicked from the server",
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
"UnableToDoThat": "You aren't able to do that",
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
"SetVehicleClanConfirmTitle": "Warning!",
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose {1} every purchase!",
"SetItemPriceBelowOrderPriceTitle": "Warning!",
"MustOwnVehicle": "You don't own this vehicle!",
"RandomTips": [
"Look for yellow dots on your map for job locations",
"You can set custom key binds. Use {1} for details",
"Use {1} if you don't want to see tips and extra information",
"You can edit your keybinds using {1} and {2}",
"Press to see your inventory, and use number keys to select an item",
"Use {1} at a business to purchase items",
"Found a bug? Report it with {1}",
"Have an idea or suggestion for the server? Let the devs know using {1}",
"Want to buy a business? Use {1} at one for sale",
"Want to buy a house? Use {1} at one for sale",
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
"Switch to any of your characters with {1}",
"Use {1} to automatically login when connecting with the same IP",
"Use {1} to turn on/off the lights in your house or business",
"Use {1} to play an internet radio station in your car, house, or business",
"Want to make a clan? Use {1} for details",
"Legal weapons can be purchased at any ammunation"
],
"PromptResponseTip": "Use {1} to accept or {2} to decline",
"PlayerConnecting": "👋 {1} is connecting to the server ...",
"GetStartedJobVehicle": "Get in a {1} to get started.",
"VehicleTypes": {
"Car": "Car",
"Truck": "Truck",
"Van": "Van",
"Taxi": "Taxi",
"Bus": "Bus",
"PoliceCar": "Police Car",
"Ambulance": "Ambulance",
"FireTruck": "Fire Truck",
"Bike": "Bike",
"Motorbike": "Motorbike",
"Boat": "Boat",
"Helicopter": "Helicopter",
"Plane": "Plane",
"Train": "Train"
},
"AlreadyOnJobRoute": "You are already doing a job route!",
"GaveVehicleToClan": "You gave this {1} to your clan!",
"JobDisabled": "This job is disabled!",
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
"SetHouseClanConfirmTitle": "Warning!",
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
"SetBusinessClanConfirmTitle": "Warning!",
"MustOwnHouse": "You don't own this house!",
"MustOwnBusiness": "You don't own this business!",
"GaveHouseToClan": "You gave this house to your clan!",
"GaveBusinessToClan": "You gave this business to your clan!",
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
"BuyBusinessConfirmTitle": "Attention!",
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
"BuyHouseConfirmTitle": "Attention!",
"BuyBusinessLabel": "Use {1} to buy this business",
"BuyHouseLabel": "Use {1} to buy this house",
"RentHouseLabel": "Use {1} to rent this house",
"AccountEmailAlreadyVerified": "You already set and verified your email!",
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
"GUIPlayAsCharacterButton": "Play",
"GUINewCharacterButton": "New character",
"GUIPreviousCharacterButton": "Previous",
"GUINextCharacterButton": "Next",
"GUICharacterSelectWindowTitle": "Select a character",
"GUICharacterSelectMoneyLabel": "Money: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
"GUILoginWindowLabelEnterPassword": "Please enter your password",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Reset",
"GUILoginWindowPasswordPlaceholder": "Password",
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
"GUIRegisterWindowLabelCreateAccount": "Create an account",
"GUIRegisterWindowPasswordPlaceholder": "Password",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Create account",
"GUINewCharacterMessageLabel": "Name your character",
"GUINewCharacterFirstNamePlaceholder": "First Name",
"GUINewCharacterLastNamePlaceholder": "Last Name",
"GUINewCharacterSubmitButton": "Create Character",
"GUIChangePasswordWindowTitle": "Change Password",
"GUIChangePasswordPasswordLabel": "Enter a new password",
"GUIChangePasswordPasswordPlaceholder": "Password",
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
"GUIChangePasswordSubmitButton": "Change Password",
"GUIResetPasswordWindowMessage": "Reset Password",
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Reset Password",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Remember your password?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "English",
"Russian": "Russian",
"Spanish": "Spanish",
"German": "German",
"Dutch": "Dutch",
"Polish": "Polish",
"Chinese": "Chinese",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️ You have turned two factor authentication {1}",
"AccountServerLogoSet": "⚙️ You turned the server logo {1}",
"ChatScrollLinesNotNumber": "The line amount must be a number",
"ChatScrollLinesMustBeBetween": "The line amount must be between {1} and {2}",
"ChatScrollLinesSet": "The chatbox will now scroll {1} lines at a time",
"InvalidEmailVerificationCode": "Invalid email verification code! A new one has been created and sent to your email.",
"EmailVerified": "Your email has been verified",
"EmailVerifiedTip": "You can now use your email for password resets, two-factor authentication, login alerts, and more",
"CommandRequiresLogin": "You must be logged in to use the {1} command",
"CommandDisabled": "The {1} command is disabled",
"CommandDisabledOnDiscord": "The {1} command isn't available on discord",
"CommandNotFoundHelpTip": "The command {1} does not exist! Use {2} for commands and information.",
"CommandNotFoundPossibleMatchTip": "The command {1} does not exist! Did you mean {2}?",
"CommandNoPermissions": "You don't have permission to use the {1} command",
"GUIResetPasswordCodeInputLabel": "Check your email for a code",
"GUIResetPasswordCodePlaceholder": "Verification code",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Warning",
"GUIInfoTitle": "Info",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Invalid email!",
"HeaderVehicleInfo": "Vehicle Info",
"HeaderClanRanksList": "Clan Rank",
"HeaderNPCInfo": "NPC Info",
"NPCAnimationSet": "You set NPC {1} animation to {2}",
"NPCNameSet": "You set NPC {1} name to {2}",
"VehicleTooFar": "You are too far away from the vehicle!",
"HeaderPropertyTemplateTypes": "Property Types",
"MustBeLoggedInAndSpawnedToChat": "You need to be logged in and spawned before you can chat!",
"MutedCantChat": "You are muted and can't chat!",
"CantUseMegaphone": "You must equip a megaphone item or be in an emergency vehicle!",
"HeaderAnimationHelp": "Animation Info",
"HeaderBadgeInfo": "Badge Information ({1})",
"NoItemCloseEnough": "There is no item close enough",
"CantDropJobEquipmentItem": "You can't drop job items",
"CantPutJobEquipmentItem": "You can't store job items",
"NoItemEquipped": "You don't have any item selected",
"NoItemInActiveSlot": "You don't have an item in your active item slot",
"CantPutItemInSkinChange": "You can't store an item while customizing your appearance",
"NothingToTakeItemFrom": "You aren't near anything to take items from",
"NoAmmoToLoadIntoWeapon": "You don't have any ammo to load into the {1}",
"LoadAmmoIntoWeaponHelpCommand": "To load this ammo into a weapon, equip the weapon and type {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "To load this ammo into a weapon, equip the weapon and press {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Nobody is close enough to tie up",
"PlayerNotSurrenderedHandcuff": "{1} can't be handcuffed! They either need to have their hands up, be knocked out, or tazed",
"PlayerNotSurrenderedTie": "{1} can't be tied! They either need to have their hands up, be knocked out, or tazed",
"HeaderCharactersListSelf": "Your Characters",
"HeaderCharactersListOther": "{1}'s Characters",
"CharacterSelectHelpText": "Use {1} to select a character, or {2} to create a new character",
"ItemDoesntDoAnythingOnUse": "The {1} doesn't do anything when you try to use it.",
"ItemRadioStationTip": "Use {1} to set the radio station",
"VehicleLockedCommandTip": "🔒 This {1} is locked. Use {2} to unlock it",
"VehicleLockedKeyPressTip": "🔒 This {1} is locked. Press {2} to unlock it",
"VehicleLockedCantUnlock": "🔒 This {1} is locked and you don't have the keys to unlock it",
"CurrentlyRentingThisVehicle": "You are renting this {1} for {2} per minute. Use {3} if you want to stop renting it.",
"VehicleBelongsTo": "This {1} belongs to {2} ({3})",
"NotOwned": "Not Owned",
"NotCloseEnoughToItemContainer": "You are not close enough to anything that holds items",
"Job": "Job",
"Player": "Player",
"BusinessIsNowPaintBall": "This business is now a paintball arena",
"JoinedPaintBall": "You have joined the paintball game.",
"ItemsStoredForPaintBall": "Your items are stored in your locker and will be returned when you leave the paintball game",
"LeftPaintBall": "You have left the paintball game. Your items have been returned.",
"PaintBallEnded": "The paintball match has ended. Your items have been returned.",
"HeaderEventWinners": "Winners",
"YourPaintBallResults": "You got {1} kills and {2} deaths in the paintball match",
"NoPrivateMessageToReply": "You haven't received a private message to reply to",
"WeaponDoesNotUseAmmo": "The {1} doesn't use ammo",
"ChatBoxTimestampsToggle": "You turned {1} time display in the chatbox",
"ProfanityFilterSet": "You turned chat profanity filter {1}",
"ResetAllKeyBindsConfirm": "Are you sure you want to reset all your keybinds to default?",
"NotRentingAVehicle": "You are not renting a vehicle!",
"StoppedRentingVehicle": "You stopped renting the {1}",
"VehicleEngineStartKeyPressTip": "The {1} engine is off. Press {2} to start it.",
"VehicleEngineStartCommandTip": "The {1} engine is off. Use {2} to start it.",
"StartedRentingVehicle": "You are now renting this {1} for {2} per minute. To stop renting, use {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "You are already renting this vehicle",
"JobRankTooLow": "You are not high enough rank!",
"InvalidKeyName": "The key ID or name you input is invalid!",
"KeyBindsReset": "All your keybinds have been reset to default",
"KeyBindNameTip": "Use simple key names, letters, or numbers. Don't add spaces.",
"UniversalInlineExamplesList": "Examples: {1}",
"KeyBindRemoved": "You removed the keybind for the {1} key",
"KeyBindAdded": "You binded key {1} to {2}",
"CopyAllKeyBindsToServerConfirm": "Are you sure you want to copy all your keybinds to the {1} server?",
"CopiedAllKeyBindsToServer": "All your keybinds have been copied to the {1} server",
"MustBeSpawned": "You must be spawned!",
"ChatEmojiSet": "You turned automatic emoji in chat {1}",
"FishingLineNotCast": "Your fishing line isn't cast!",
"CantFishHere": "You can't fish here! You need to be near water or on a boat!",
"NeedFishingRod": "You need to be holding a fishing rod!",
"FishingCastCommandHelp": "Use {1} to cast your fishing line",
"FishingCastKeyBindHelp": "Press {1} to cast your fishing line",
"Paused": "Paused",
"PaintBallAlmostWin": "{1} only needs {2} more kills to win the paintball match!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOnOff": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

753
locale/persian.json Normal file
View File

@@ -0,0 +1,753 @@
{
"TranslationProvidedBy": "bigmohammad",
"LocaleEnglishName": "Persian",
"LocaleNativeName": "Persian",
"LocaleOffer": "This server is available in Persian. Use {1} to use it.",
"LocaleChanged1": "Your language is now set to {1}",
"LocaleChanged2": "The server will now display messages in {1}",
"LocaleChangedNote": "This does not change messages from other players",
"AccentsListHeader": "Accents",
"HelpMainListHeader": "Help Categories",
"AccentNotFound": "Accent not found",
"AccentSet": "You set your accent to {1}",
"InvalidAnimation": "That animation doesn't exist",
"AnimationCommandTip": "Use {1} to see a list of valid animations",
"InvalidAnimationDistance": "The distance must be between 0 and 3",
"CantBanClient": "You cannot ban this person",
"PlayerAccountBanned": "{1} has been account banned",
"ClanNotFound": "Clan not found",
"ClanNameTaken": "A clan with that name already exists",
"PlayerNotFound": "Player not found",
"ClanCantRemoveRanks": "You can't remove clan ranks",
"ClanCantAddRanks": "You can't add clan ranks",
"ClanRankNotFound": "Clan rank not found",
"ClanCantChangeMemberTag": "You can not change clan member's tags",
"ClanPlayerNotInSameClan": "That player is not in your clan",
"ClanCantChangeRankLevel": "You can not change clan rank's level",
"ClanCantChangeRankTag": "You can not change clan rank's tags",
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
"RandomTipsToggle": "Random tips are now {1}",
"ActionTipsToggle": "Action tips are now {1}",
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
"AccountGUISettingToggle": "🖥️ GUI is now {1}",
"On": "On",
"Off": "Off",
"Yes": "Yes",
"No": "No",
"True": "True",
"False": "False",
"Locked": "Locked",
"Unlocked": "Unlocked",
"PasswordNotGoodEnough": "The new password must meet the requirements!",
"PasswordNeedsBase": "Passwords must have at least {1}",
"PasswordNeedsCapitals": "{1} capital letters",
"PasswordNeedsNumbers": "{1} numbers",
"PasswordNeedsSymbols": "{1} symbols",
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
"PasswordChanged": "Your password has been changed!",
"AutoLoggedInIP": "You have been automatically logged in by IP!",
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
"InvalidPlayer": "Player not found!",
"InvalidBusiness": "Business not found!",
"InvalidHouse": "House not found!",
"InvalidVehicle": "Vehicle not found!",
"InvalidClan": "Clan not found!",
"InvalidClanRank": "Clan rank not found!",
"InvalidJob": "Job not found!",
"InvalidItem": "Item not found!",
"InvalidItemType": "Item type not found!",
"InvalidRadioStation": "Radio station not found!",
"InvalidGate": "Gate not found!",
"EntersProperty": "opens the door and enters the {1} ({2})",
"ExitsProperty": "opens the door and exits the {1} ({2})",
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
"NoBusinessWithItemType": "There is no business with that item available",
"HeaderKeyBinds": "Key Binds",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
"HeaderJobHelp": "Job Help",
"HeaderChatHelp": "Chat Help",
"HeaderServerRules": "Server Rules",
"HeaderWebsiteInfo": "Website",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animation List",
"HeaderPayAndSprayHelp": "Pay and Spray Help",
"HeaderAmmunationHelp": "Ammunation Help",
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
"HeaderBindableKeysHelp": "Bindable Keys",
"HeaderSkinHelp": "Clothes/Skin Help",
"HeaderBusinessHelp": "Business Help",
"HeaderClanHelp": "Clan Help",
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
"HeaderClansList": "Clan List",
"HeaderAdminsList": "Admin List",
"HeaderAccentsList": "Accent List",
"HeaderPlayerInfo": "Player Information ({1})",
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
"HeaderCommandInfo": "Command Information ({1})",
"HeaderRadioHelp": "Radio Help",
"HeaderRadioStationsList": "Radio Stations",
"HeaderKeyBindsList": "Key Binds List",
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
"VolumeLevelNotNumber": "The volume level must be a number",
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
"HouseDoorLock": "House {1} {2}!",
"BusinessDoorLock": "Business {1} {2}!",
"ServerGameModeRestarting": "The server game mode is restarting!",
"HeaderSelfItemList": "Your Inventory",
"HeaderPlayerItemList": "Player Inventory ({1})",
"HeaderHouseItemList": "House Inventory",
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
"HeaderItemItemList": "{1}'s Inventory",
"ItemSlotNotNumber": "The item slot must be a number",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
"HandsBusy": "Your hands are busy",
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
"Business": "business",
"House": "house",
"Clan": "clan",
"Vehicle": "vehicle",
"Item": "item",
"ItemType": "item type",
"Gate": "gate",
"Door": "door",
"ClanRank": "clan rank",
"JobRank": "job rank",
"RadioStation": "radio station",
"Months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"WeekDays": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"CardinalDirections": {
"North": "North",
"Northeast": "Northeast",
"East": "East",
"Southeast": "Southeast",
"South": "South",
"Southwest": "Southwest",
"West": "West",
"Northwest": "Northwest"
},
"NewPlayerReadyToPlay": [
"You have been given some cash. Use {1} to find places to buy items.",
"If you need money, jobs are the yellow dots on the radar.",
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
"Be sure to read the {1} and use {2} for info."
],
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
"Distance": "Distance",
"Meters": "Meters",
"Feet": "Feet",
"Kilometers": "Kilometers",
"Miles": "Miles",
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
"PlayerJoined": "{1} has joined the game from {2}!",
"PlayerLeftServer": "{1} has left the game! ({2})",
"TakeItemFromHouse": "takes a {1} from the house",
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
"TakeItemFromBusiness": "takes a {1} from the business",
"TakeItemFromItem": "takes a {1} from the {2}",
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
"AccountHelp": [
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
"Use {1} to change your password, and {2} if you forgot it",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Your personal vehicles will save wherever you or somebody else leaves them!",
"Visit dealerships to buy new vehicles (Use {1} for more information)",
"Some commands: {1}",
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
],
"VehicleDealershipHelp": [
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
"At the dealer, enter a car you want to buy, and the price will be shown to you",
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
"Drive away from the dealership with the new vehicle to confirm the purchase."
],
"JobHelp": [
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
"At a job location, use {1} to get the job. Use {2} to quit your job",
"Use {1} to begin working. You can also get a job {2} and {3}",
"Most job vehicles are locked. Use {1} near one to enter it.",
"When entering a job vehicle, information on how to do the job will be shown to you."
],
"ChatHelp": [
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
"Mixing these two types is not proper roleplay. See {1} for info.",
"Some chat commands: {1}",
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
],
"ServerRulesHelp": [
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
"No terrorist or terrorism roleplay is allowed.",
"Always follow instructions given by moderators and admins.",
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
"Keep English in main chats. If you aren't good at English, use {1}"
],
"AnimationHelp": [
"Animations allow you to enhance roleplay with visual actions",
"Use {1} or {2} with a name to use an animation.",
"To see a list of animations, use {1}"
],
"WeaponHelp": [
"Visit an gun store to buy weapons. Use {1} to find one.",
"Buying a weapon requires a weapon license.",
"Weapon licenses are managed by the police department. Apply there to get one.",
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
],
"SkinHelp": [
"At a clothing store, use {1} to purchase clothes",
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
"Some skins are restricted to jobs, clans, or for other reasons."
],
"KeyBindHelp": [
"You can set your own key binds. Use {1} to see your binded keys.",
"Use {1} to add a new keybind and {2} to remove one.",
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
],
"BusinessHelp": [
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
"Businesses are shown with blue names above the icon at their entrance.",
"Business owner commands: {1}",
"A new car for sale will appear when you drive away from the dealer."
],
"ClanHelp": [
"Ask an administrator to create a clan (Similar to factions/groups/families)",
"Clan owners have full control over their clan once it's created",
"Clan commands: {1}",
"More clan commands: {1}"
],
"RadioStationHelp": [
"Use {1} to set the station for your vehicle, house, or business",
"Use {2} to see a list of stations",
"You can change your radio streaming volume using {1} with 0-100 as the percent"
],
"WealthAndTaxHelp": [
"Your taxes on payday are {1} percent of your calculated wealth.",
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
"Each vehicle is {1}, each house is {2}, and each business is {3}",
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
],
"MustBeInAVehicle": "You need to be in a vehicle!",
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
"MustBeInVehicleDriverSeat": "You need to be the driver!",
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
"NoGateAccess": "You don't have access to this gate!",
"GateBroken": "This gate is broken!",
"GateHacked": "The gate does not respond!",
"RadioJammed": "You hear only static from the radio.",
"VehicleNotForSale": "This vehicle is not for sale!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "This business is not for sale!",
"BusinessNotForRent": "This business is not for rent!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "This house is not for rent!",
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Player Houses ({1})",
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
"HeaderStaffFlagsList": "Staff Flags",
"NonRPName": "Non-RP name! Choose a new one:",
"InvalidStaffFlag": "Staff flag not found!",
"InvalidClanFlag": "Clan flag not found!",
"InvalidLocale": "Language not found!",
"HeaderJobUniformList": "Job Uniforms ({1})",
"HeaderJobEquipmentList": "Job Equipment ({1})",
"InvalidJobUniform": "Job uniform not found!",
"InvalidJobEquipment": "Job equipment not found!",
"HeaderVehiclesInRangeList": "Vehicles within {1}",
"NoVehiclesWithinRange": "There are no vehicles within {1}",
"AmountNotNumber": "The amount must be a number!",
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
"NotYourJob": "This is not your job!",
"JobPoints": "You can get a job by going the yellow points on the map.",
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
"NotAJobVehicle": "This is not a job vehicle!",
"NotYourJobVehicle": "This is not your job's vehicle!",
"HeaderPickupTypes": "Pickup Types",
"HeaderBlipTypes": "Map Icon Types",
"InvalidGPSLocation": "There are no locations with that name or type",
"HeaderBusinessList": "Businesses",
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
"RegistrationFailedNoPassword": "You must enter a password!",
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
"RegistrationFailedNoEmail": "You must enter an email!",
"AccountNameAlreadyRegistered": "Your name is already registered!",
"AlreadyLoggedIn": "You are already logged in!",
"RegistrationFailedInvalidEmail": "That email is invalid!",
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
"RegistrationFailedCreateError": "Your account couldn't be created!",
"RegistrationSuccess": "Your account has been created!",
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
"NoCharactersGUIWindowTitle": "No characters",
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
"SetEmailHelpTip": "Use {1} to set your email.",
"VerifyEmailHelpTip": "Use {1} to verify your email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Nearby radio",
"FromRadio": "From radio",
"ToRadio": "To radio",
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
"AmountMustBeMoreThan": "The amount must be more than {1}!",
"WeaponBanned": "You are not allowed to buy or use weapons!",
"TimeNotNumber": "The time must be a number",
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
"FixingStuck": "Fixing your position and virtual world ...",
"CantUseCommandYet": "You must wait before you can use this command again!",
"NotATester": "You are not a tester!",
"AccessDenied": "AccessDenied",
"InvalidSkin": "That skin is invalid!",
"HeaderInteriorTypes": "Interiors List",
"GUIAccountSettingToggle": "You have turned {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
"PlayerIPBanned": "💀 {1} has been IP banned!",
"PlayerCharacterBanned": "💀 {1} has been character banned!",
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
"CantModifyBusiness": "You can't manage or modify this business!",
"CantModifyHouse": "You can't manage or modify this house!",
"ServerTimeSet": "⏰ {1} set the time to {2}",
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
"ServerLogoSet": "{1} turned the server logo image {2}",
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
"BusinessBuyItemsLabel": "Use {1} to purchase items",
"PropertyEnterCommandLabel": "Use {1} to enter",
"PropertyEnterKeyPressLabel": "Press {1} to enter",
"PropertyForSaleLabel": "For sale: {1}",
"PropertyForRentLabel": "For rent: {1} every payday",
"RemainingTaxPaidInMoney": "You covered the remaining taxes with {1} in cash.",
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
"Closed": "Closed",
"Open": "Open",
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
"TakeJobLabel": "Use {1} to work here",
"StartWorkLabel": "Use {1} to start working",
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
"JobLabel": "{1} Job",
"PaydayBonusSet": "🤑 {1} set the payday bonus to {2}",
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
"PlayerKicked": "🦶 {1} has been kicked from the server",
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
"UnableToDoThat": "You aren't able to do that",
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
"SetVehicleClanConfirmTitle": "Warning!",
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose {1} every purchase!",
"SetItemPriceBelowOrderPriceTitle": "Warning!",
"MustOwnVehicle": "You don't own this vehicle!",
"RandomTips": [
"Look for yellow dots on your map for job locations",
"You can set custom key binds. Use {1} for details",
"Use {1} if you don't want to see tips and extra information",
"You can edit your keybinds using {1} and {2}",
"Press to see your inventory, and use number keys to select an item",
"Use {1} at a business to purchase items",
"Found a bug? Report it with {1}",
"Have an idea or suggestion for the server? Let the devs know using {1}",
"Want to buy a business? Use {1} at one for sale",
"Want to buy a house? Use {1} at one for sale",
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
"Switch to any of your characters with {1}",
"Use {1} to automatically login when connecting with the same IP",
"Use {1} to turn on/off the lights in your house or business",
"Use {1} to play an internet radio station in your car, house, or business",
"Want to make a clan? Use {1} for details",
"Legal weapons can be purchased at any ammunation"
],
"PromptResponseTip": "Use {1} to accept or {2} to decline",
"PlayerConnecting": "👋 {1} is connecting to the server ...",
"GetStartedJobVehicle": "Get in a {1} to get started.",
"VehicleTypes": {
"Car": "Car",
"Truck": "Truck",
"Van": "Van",
"Taxi": "Taxi",
"Bus": "Bus",
"PoliceCar": "Police Car",
"Ambulance": "Ambulance",
"FireTruck": "Fire Truck",
"Bike": "Bike",
"Motorbike": "Motorbike",
"Boat": "Boat",
"Helicopter": "Helicopter",
"Plane": "Plane",
"Train": "Train"
},
"AlreadyOnJobRoute": "You are already doing a job route!",
"GaveVehicleToClan": "You gave this {1} to your clan!",
"JobDisabled": "This job is disabled!",
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
"SetHouseClanConfirmTitle": "Warning!",
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
"SetBusinessClanConfirmTitle": "Warning!",
"MustOwnHouse": "You don't own this house!",
"MustOwnBusiness": "You don't own this business!",
"GaveHouseToClan": "You gave this house to your clan!",
"GaveBusinessToClan": "You gave this business to your clan!",
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
"BuyBusinessConfirmTitle": "Attention!",
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
"BuyHouseConfirmTitle": "Attention!",
"BuyBusinessLabel": "Use {1} to buy this business",
"BuyHouseLabel": "Use {1} to buy this house",
"RentHouseLabel": "Use {1} to rent this house",
"AccountEmailAlreadyVerified": "You already set and verified your email!",
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
"GUIPlayAsCharacterButton": "Play",
"GUINewCharacterButton": "New character",
"GUIPreviousCharacterButton": "Previous",
"GUINextCharacterButton": "Next",
"GUICharacterSelectWindowTitle": "Select a character",
"GUICharacterSelectMoneyLabel": "Money: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
"GUILoginWindowLabelEnterPassword": "Please enter your password",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Reset",
"GUILoginWindowPasswordPlaceholder": "Password",
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
"GUIRegisterWindowLabelCreateAccount": "Create an account",
"GUIRegisterWindowPasswordPlaceholder": "Password",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Create account",
"GUINewCharacterMessageLabel": "Name your character",
"GUINewCharacterFirstNamePlaceholder": "First Name",
"GUINewCharacterLastNamePlaceholder": "Last Name",
"GUINewCharacterSubmitButton": "Create Character",
"GUIChangePasswordWindowTitle": "Change Password",
"GUIChangePasswordPasswordLabel": "Enter a new password",
"GUIChangePasswordPasswordPlaceholder": "Password",
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
"GUIChangePasswordSubmitButton": "Change Password",
"GUIResetPasswordWindowMessage": "Reset Password",
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Reset Password",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Remember your password?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "English",
"Russian": "Russian",
"Spanish": "Spanish",
"German": "German",
"Dutch": "Dutch",
"Polish": "Polish",
"Chinese": "Chinese",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️ You have turned two factor authentication {1}",
"AccountServerLogoSet": "⚙️ You turned the server logo {1}",
"ChatScrollLinesNotNumber": "The line amount must be a number",
"ChatScrollLinesMustBeBetween": "The line amount must be between {1} and {2}",
"ChatScrollLinesSet": "The chatbox will now scroll {1} lines at a time",
"InvalidEmailVerificationCode": "Invalid email verification code! A new one has been created and sent to your email.",
"EmailVerified": "Your email has been verified",
"EmailVerifiedTip": "You can now use your email for password resets, two-factor authentication, login alerts, and more",
"CommandRequiresLogin": "You must be logged in to use the {1} command",
"CommandDisabled": "The {1} command is disabled",
"CommandDisabledOnDiscord": "The {1} command isn't available on discord",
"CommandNotFoundHelpTip": "The command {1} does not exist! Use {2} for commands and information.",
"CommandNotFoundPossibleMatchTip": "The command {1} does not exist! Did you mean {2}?",
"CommandNoPermissions": "You don't have permission to use the {1} command",
"GUIResetPasswordCodeInputLabel": "Check your email for a code",
"GUIResetPasswordCodePlaceholder": "Verification code",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Warning",
"GUIInfoTitle": "Info",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Invalid email!",
"HeaderVehicleInfo": "Vehicle Info",
"HeaderClanRanksList": "Clan Rank",
"HeaderNPCInfo": "NPC Info",
"NPCAnimationSet": "You set NPC {1} animation to {2}",
"NPCNameSet": "You set NPC {1} name to {2}",
"VehicleTooFar": "You are too far away from the vehicle!",
"HeaderPropertyTemplateTypes": "Property Types",
"MustBeLoggedInAndSpawnedToChat": "You need to be logged in and spawned before you can chat!",
"MutedCantChat": "You are muted and can't chat!",
"CantUseMegaphone": "You must equip a megaphone item or be in an emergency vehicle!",
"HeaderAnimationHelp": "Animation Info",
"HeaderBadgeInfo": "Badge Information ({1})",
"NoItemCloseEnough": "There is no item close enough",
"CantDropJobEquipmentItem": "You can't drop job items",
"CantPutJobEquipmentItem": "You can't store job items",
"NoItemEquipped": "You don't have any item selected",
"NoItemInActiveSlot": "You don't have an item in your active item slot",
"CantPutItemInSkinChange": "You can't store an item while customizing your appearance",
"NothingToTakeItemFrom": "You aren't near anything to take items from",
"NoAmmoToLoadIntoWeapon": "You don't have any ammo to load into the {1}",
"LoadAmmoIntoWeaponHelpCommand": "To load this ammo into a weapon, equip the weapon and type {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "To load this ammo into a weapon, equip the weapon and press {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Nobody is close enough to tie up",
"PlayerNotSurrenderedHandcuff": "{1} can't be handcuffed! They either need to have their hands up, be knocked out, or tazed",
"PlayerNotSurrenderedTie": "{1} can't be tied! They either need to have their hands up, be knocked out, or tazed",
"HeaderCharactersListSelf": "Your Characters",
"HeaderCharactersListOther": "{1}'s Characters",
"CharacterSelectHelpText": "Use {1} to select a character, or {2} to create a new character",
"ItemDoesntDoAnythingOnUse": "The {1} doesn't do anything when you try to use it.",
"ItemRadioStationTip": "Use {1} to set the radio station",
"VehicleLockedCommandTip": "🔒 This {1} is locked. Use {2} to unlock it",
"VehicleLockedKeyPressTip": "🔒 This {1} is locked. Press {2} to unlock it",
"VehicleLockedCantUnlock": "🔒 This {1} is locked and you don't have the keys to unlock it",
"CurrentlyRentingThisVehicle": "You are renting this {1} for {2} per minute. Use {3} if you want to stop renting it.",
"VehicleBelongsTo": "This {1} belongs to {2} ({3})",
"NotOwned": "Not Owned",
"NotCloseEnoughToItemContainer": "You are not close enough to anything that holds items",
"Job": "Job",
"Player": "Player",
"BusinessIsNowPaintBall": "This business is now a paintball arena",
"JoinedPaintBall": "You have joined the paintball game.",
"ItemsStoredForPaintBall": "Your items are stored in your locker and will be returned when you leave the paintball game",
"LeftPaintBall": "You have left the paintball game. Your items have been returned.",
"PaintBallEnded": "The paintball match has ended. Your items have been returned.",
"HeaderEventWinners": "Winners",
"YourPaintBallResults": "You got {1} kills and {2} deaths in the paintball match",
"NoPrivateMessageToReply": "You haven't received a private message to reply to",
"WeaponDoesNotUseAmmo": "The {1} doesn't use ammo",
"ChatBoxTimestampsToggle": "You turned {1} time display in the chatbox",
"ProfanityFilterSet": "You turned chat profanity filter {1}",
"ResetAllKeyBindsConfirm": "Are you sure you want to reset all your keybinds to default?",
"NotRentingAVehicle": "You are not renting a vehicle!",
"StoppedRentingVehicle": "You stopped renting the {1}",
"VehicleEngineStartKeyPressTip": "The {1} engine is off. Press {2} to start it.",
"VehicleEngineStartCommandTip": "The {1} engine is off. Use {2} to start it.",
"StartedRentingVehicle": "You are now renting this {1} for {2} per minute. To stop renting, use {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "You are already renting this vehicle",
"JobRankTooLow": "You are not high enough rank!",
"InvalidKeyName": "The key ID or name you input is invalid!",
"KeyBindsReset": "All your keybinds have been reset to default",
"KeyBindNameTip": "Use simple key names, letters, or numbers. Don't add spaces.",
"UniversalInlineExamplesList": "Examples: {1}",
"KeyBindRemoved": "You removed the keybind for the {1} key",
"KeyBindAdded": "You binded key {1} to {2}",
"CopyAllKeyBindsToServerConfirm": "Are you sure you want to copy all your keybinds to the {1} server?",
"CopiedAllKeyBindsToServer": "All your keybinds have been copied to the {1} server",
"MustBeSpawned": "You must be spawned!",
"ChatEmojiSet": "You turned automatic emoji in chat {1}",
"FishingLineNotCast": "Your fishing line isn't cast!",
"CantFishHere": "You can't fish here! You need to be near water or on a boat!",
"NeedFishingRod": "You need to be holding a fishing rod!",
"FishingCastCommandHelp": "Use {1} to cast your fishing line",
"FishingCastKeyBindHelp": "Press {1} to cast your fishing line",
"Paused": "Paused",
"PaintBallAlmostWin": "{1} only needs {2} more kills to win the paintball match!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOnOff": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

751
locale/polish.json Normal file
View File

@@ -0,0 +1,751 @@
{
"TranslationProvidedBy": "Suprise444",
"LocaleEnglishName": "Polish",
"LocaleNativeName": "Polski",
"LocaleOffer": "Ten serwer jest dostępny w języku Polskim. Użyj {1} aby go użyć.",
"LocaleChanged1": "Twój język jest ustawiony na {1}",
"LocaleChanged2": "Serwer będzie teraz pokazywał wiadomości w języku {1}",
"LocaleChangedNote": "To nie zmienia wiadomości od innych graczy",
"AccentsListHeader": "Akcenty",
"HelpMainListHeader": "Pomoc - Kategorie",
"AccentNotFound": "Akcent nie znaleziony",
"AccentSet": "Ustawiłeś swój akcent na {1}",
"InvalidAnimation": "Ta animcja nie istnieje",
"AnimationCommandTip": "Użyj {1} aby zobaczyć listę działających animacji",
"AnimationInvalidDistance": "Dystans musi być między 0 i 3",
"CantBanClient": "Nie możesz zbanować tej osoby",
"PlayerAccountBanned": "{1} został zbanowany",
"ClanNotFound": "Nie znaleziono klanu",
"ClanNameTaken": "Klan z taką nazwą już istnieje",
"PlayerNotFound": "Nie znaleziono gracza",
"ClanCantRemoveRanks": "Nie możesz usuwać rang klanu",
"ClanCantAddRanks": "Nie możesz dodawać rang klanu",
"ClanRankNotFound": "Nie znaleziono rangi klanu",
"ClanCantChangeMemberTag": "Nie możesz zmienić tagu członka klanu",
"ClanPlayerNotInSameClan": "Ten gracz nie jest w twoim klanie",
"ClanCantChangeRankLevel": "Nie możesz zmienić poziomu rangi klanu",
"ClanCantChangeRankTag": "Nie możesz zmienić tagu rangi klanu",
"NameNotRegistered": "Twoja nazwa nie jest zarejestrowana! Użyj {1} aby stworzyć konto.",
"AutomaticLoginIPToggle": "Automatyczny login przez IP jest teraz {1}",
"CouldNotRegisterAccount": "Napotkano problem podczas tworzenia twojego konta. Proszę skontaktuj się z administratorem.",
"RandomTipsToggle": "Losowe wskazówki są teraz {1}",
"ActionTipsToggle": "Wskazówki akcji są teraz {1}",
"AutoSpawnLastCharToggle": "Automatyczny spawn jako ostatnia postać jest teraz {1}",
"AccountGUISettingToggle": "GUI jest teraz {1}",
"On": "Włączony",
"Off": "Wyłączony",
"Yes": "Tak",
"No": "Nie",
"True": "Prawda",
"False": "Fałsz",
"Locked": "Zamknięty",
"Unlocked": "Otwarty",
"PasswordNotGoodEnough": "Nowe hasło musi spełniać wymagania!",
"PasswordNeedsBase": "Hasło musi mieć przynajmniej {1}",
"PasswordNeedsCapitals": "{1} dużych liter",
"PasswordNeedsNumbers": "{1} numerów",
"PasswordNeedsSymbols": "{1} symboli",
"PasswordsDontMatch": "Hasła nie są takie same!",
"PasswordChanged": "Twoje hasło zostało zmienione!",
"AutoLoggedInIP": "Zostałeś automatycznie zalogowany przez IP!",
"WelcomeBack": "Witaj ponownie w {1}, {2}! Użyj {3} aby kontynuować.",
"WelcomeNewPlayer": "Witaj w {1}, {2}! Użyj {3} aby zagrać.",
"InvalidPlayer": "Praca nie znaleziona!",
"InvalidBusiness": "Biznes nie znaleziony!",
"InvalidHouse": "Mieszkanie nie znalezione!",
"InvalidVehicle": "Pojazd nie znaleziony!",
"InvalidClan": "Klan nie znaleziony!",
"InvalidClanRank": "Ranga klanu nie znaleziona!",
"InvalidJob": "Gracz nie znaleziony!",
"InvalidItem": "Przedmiot nie znaleziony!",
"InvalidItemType": "Rodzaj przedmiot nie znaleziony!",
"InvalidRadioStation": "Stacja radiowa nie znaleziona!",
"InvalidGate": "Brama nie znaleziona!",
"EntersProperty": "otwiera drzwi i wchodzi do {1} ({2})",
"ExitsProperty": "otwiera drzwi i wychodzi z {1} ({2})",
"EnterExitPropertyDoorLocked": "próbuje otworzyć {1} drzwi, ale nie udaje się, ponieważ są zamknięte",
"PropertyNoInterior": "Ten {1} nie ma wnętrza, ale dalej możesz używaj komend przy ikonie drzwi.",
"NoBusinessWithItemType": "Nie ma biznesu, który posiada ten przedmiot",
"HeaderKeyBinds": "Przypisania klawiszy",
"HeaderAccountHelp": "Pomoc - Konto",
"HeaderVehicleHelp": "Pomoc - Pojazd",
"HeaderVehicleDealershipHelp": "Pomoc - Dealer Samochodów",
"HeaderJobHelp": "Pomoc - Praca",
"HeaderChatHelp": "Pomoc - Czat",
"HeaderServerRules": "Zasady serwera",
"HeaderWebsiteInfo": "Strona",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Lista Animacji",
"HeaderPayAndSprayHelp": "Pomoc - Pay and Spray",
"HeaderAmmunationHelp": "Pomoc - Ammunation",
"HeaderVehicleTuneupHelp": "Pomoc - Ulepszanie Aut",
"HeaderBindableKeysHelp": "Przypisywalne klawisze",
"HeaderSkinHelp": "Pomoc - Ubrania/Skóra",
"HeaderBusinessHelp": "Pomoc - Biznes",
"HeaderClanHelp": "Pomoc - Klan",
"HeaderPlayerVehiclesList": "Pojazdy Gracza ({1})",
"HeaderPlayerBusinessesList": "Biznesy Gracza ({1})",
"HeaderClansList": "Lista Klanów",
"HeaderAdminsList": "Lista Administracji",
"HeaderAccentsList": "Lista Akcentów",
"HeaderPlayerInfo": "Informacje o Graczu ({1})",
"HeaderWealthandTaxHelp": "Informacje o Bogactwach i Podatkach",
"HeaderCommandInfo": "Informacje o Komendzie ({1})",
"HeaderRadioHelp": "Pomoc - Radio",
"HeaderRadioStationsList": "Stacje Radiowe",
"HeaderKeyBindsList": "Lista przypisań klawiszy",
"RadioVolumeChanged": "{1} Zmieniłeś głośność swojego radia na {2}%",
"VolumeLevelNotNumber": "Poziom głośności musi być liczbą",
"RadioStationLocationInvalid": "Musisz być w aucie, domu, biznesie lub mieć osobite urządzenie by zmienić stacje radiową!",
"ActionBusinessRadioStationChange": "zmienia biznesową stacje radiową na {1} ({2})",
"ActionHouseRadioStationChange": "zmienia domową stacje radiową na {1} ({2})",
"ActionVehicleRadioStationChange": "zmienia samochodową stacje radiową na {1} ({2})",
"ActionItemRadioStationChange": "zmienia stacje {1} na {2} ({3})",
"RandomVehicleCommandsDisabled": "To losowy pojazd uliczny i komendy nie mogą być na nim użyte.",
"HouseDoorLock": "Mieszkanie {1} {2}!",
"BusinessDoorLock": "Biznes {1} {2}!",
"ServerGameModeRestarting": "Tryb gry serwera się restartuje!",
"HeaderSelfItemList": "Twój ekwipunek",
"HeaderPlayerItemList": "Ekwipunek gracza ({1})",
"HeaderHouseItemList": "Ekwipunek mieszkania",
"HeaderBusinessFloorItemList": "Ekwipunek Bizneus (Na sprzedaż)",
"HeaderBusinessStorageItemList": "Ekwipunek Bizenus (Magazyn)",
"HeaderItemItemList": "Ekwipunek {1}",
"ItemSlotNotNumber": "Slot przedmiotu musi być liczbą",
"ItemSlotMustBeBetween": "Slot itemu musi być liczbą między {1} i {2}!",
"UseItemBugged": "Przedmiot, który próbujesz użyć jest popsuty. Zgłoszenie zostało wysłane do deweloperów serwera.",
"PickupItemBugged": "Przedmiot, który próbujesz podnieść jest popsuty. Zgłoszenie zostało wysłane do deweloperów serwera.",
"DropItemBugged": "Przedmiot, który próbujesz upuścić jest popsuty. Zgłoszenie zostało wysłane do deweloperów serwera.",
"HandsBusy": "Twoje ręce są zajęte",
"CantUseItemInSkinChange": "Nie możesz użyć przedmiotu podczas zmieniania swojego wizerunku",
"CantDropItemInSkinChange": "Nie możesz upuścić przedmiotu podczas zmieniania swojego wizerunku",
"CantPickupItemInSkinChange": "Nie możesz podnieść przedmiotu podczas zmieniania swojego wizerunku",
"CantSwitchItemInSkinChange": "Nie możesz zmienić przedmiotu podczas zmieniania swojego wizerunku",
"CantGiveItemInSkinChange": "Nie możesz dać przedmiotu podczas zmieniania swojego wizerunku",
"CantTakeItemInSkinChange": "Nie możesz wziąć przedmiotu podczas zmieniania swojego wizerunku",
"ItemUnequippableNoAmmo": "{1} w slocie {2} nie ma amunicji i nie może zostać użyty!",
"NoSpaceSelfInventory": "Nie masz już miesca w ekwipunku",
"Business": "biznes",
"House": "mieszkanie",
"Clan": "klan",
"Vehicle": "pojazd",
"Item": "przedmiot",
"ItemType": "rodzaj przedmiotu",
"Gate": "brama",
"Door": "drzwi",
"ClanRank": "ranga klanu",
"JobRank": "praca rangi",
"RadioStation": "stacja radiowa",
"Months": [
"Styczeń",
"Luty",
"Marzec",
"Kwiecień",
"Maj",
"Czerwiec",
"Lipiec",
"Sierpień",
"Wrzesień",
"Październik",
"Listopad",
"Grudzień"
],
"WeekDays": [
"Niedziela",
"Poniedziałek",
"Wtorek",
"Środa",
"Czwartek",
"Piątek",
"Sobota"
],
"CardinalDirections": {
"North": "Północ",
"Northeast": "Północny wschód",
"East": "Wschód",
"Southeast": "Południowy zachód",
"South": "Południe",
"Southwest": "Południowy wschód",
"West": "Zachód",
"Northwest": "Północny zachód"
},
"NewPlayerReadyToPlay": [
"Dostałeś trochę pieniędzy. Użyj {1} aby znaleść miejsca do kupowania przedmiotów.",
"Jeżeli potrzebujesz pieniędzy, żółte kropki na mapie to miejsca pracy.",
"Aby zdobyć auto musisz odwiedzić dealera samochodów. Możesz też wypożyczyć samochód przy spawnie lub użyć pociągu",
"Pamiętaj aby przeczytać {1} i użyć {2} aby zdobyć więcej informacji."
],
"YourCurrentVehicleDeleted": "Samochód w którym przebywałeś został usunięty.",
"Distance": "Odległość",
"Meters": "Metry",
"Feet": "Stopy",
"Kilometers": "Kilometry",
"Miles": "Mile",
"MustBeVehicleDriver": "Musisz być kierowcą tego pojazdu!",
"PlayerJoinedServer": "{1} dołączył do gry z {2}!",
"PlayerLeftServer": "{1} wyszedł z gry! ({2})",
"TakeItemFromHouse": "bierze {1} z mieszkania",
"TakeItemFromBusinessStorage": "bierze {1} z magazynu biznesu",
"TakeItemFromBusiness": "bierze {1} z biznesu",
"TakeItemFromItem": "bierze {1} z {2}",
"TakeItemFromVehicleTrunk": "bierze {1} z bagażnika",
"TakeItemFromVehicleDash": "bierze {1} ze schowka",
"AccountHelp": [
"NIE PODAWAJ nikomu swojego hasła. {1} nigdy nie zapyta cię o twoje hasło",
"Użyj {1} aby zmienić swoje hasło i {2} jeżeli je zapomniałeś",
"Kilka ustawień które możesz użyć: {1}"
],
"VehicleHelp": [
"Twoje osobiste auta zapisują się za każdym razem jak ktoś wyjdzie z gry!",
"Odwiedź dealera samochodów, aby zakupić pojazd (Użyj {1} po więcej informacji)",
"Kilka komend: {1}",
"Odwiedź warsztat mechanika aby naprawić, pokolorować i/lub ulepszyć swój pojazd! {1} po więcej informacji"
],
"VehicleDealershipHelp": [
"Odwiedź dealera samochodów, aby zakupić nowy pojazd. Użyj {1} aby jednego zlokalizować.",
"Przy dealerze samochodów, wejdź do auta, które chcesz kupić i ukaże ci się jego cena.",
"Jeśli chcesz kupić pojazd, użyj {1} i dostanie kluczyki by przetestować je na parkingu.",
"Odjedź od dealera samochodów, aby potwierdzić zakup pojazdu."
],
"JobHelp": [
"Odwiedzaj miejsca pracy aby zarabiać pieniądze. Szkuaj zółtych punktów na mapie",
"Przy miejscu pracy, użyj {1} aby zdobyć prace. Użyj {2} by opuścić swoją pracę",
"Użyj {1} aby zacząć pracę. Możesz też dostać pracę {2} i {3}",
"Większość pojazdów służbowych jest zamknięta. Użyj {1} obok niego aby do niego wsiąść.",
"Przy wsiadaniu do pojazdu służbowego, dostaniesz informacje jak wykonać podjętą pracę."
],
"ChatHelp": [
"Są 2 główne rodzaje chatów: Poza postacią (OOC) i w postaci (IC)",
"Mieszanie tych 2 rodzajów jest nieprawidłowym roleplay'em. Zobacz {1} po więcej informacji.",
"Kilka komend na chacie: {1}",
"Niektóre mają dostępne krótsze nazwy ({1} by rozmawiać, {2} by krzyczeć, itp.)"
],
"ServerRulesHelp": [
"Nierealistyczne akcje (powergaming) są niedozwolone. Nie jesteś superman'em.",
"Roleplay na tle terrorystycznym jest niedozowolony.",
"Zawszę słuchaj się administracji.",
"Nie mieszaj czatów (metagaming). Nie możesz używać informacji w postaci, jeżeli uzyskałeś je poza nią.",
"Używaj języka angielskiego na głównych chatach. Jeżeli nie jestes dobry z angielskiego, użyj {1}"
],
"AnimationHelp": [
"Animacje pozwalają ci bardziej wczuć się w swoją role.",
"Używaj {1} lub {2} z nazwą by użyć animacji.",
"By zobaczyć liste animacji, użyj {1}"
],
"WeaponHelp": [
"Odwiedź sklep z bronią, aby kupić nową broń. Użyj {1} by znaleźć taki sklep.",
"Musisz posiadać licenje na broń, aby takową kupić.",
"Licencje broni są wydawanie przez policję. Zaaplikuj się tam, aby taką zdobyć.",
"Bronie mogą być też kupowane nielegalnie od niektórych bizensów, dealerów broni i klanów."
],
"SkinHelp": [
"W sklepie z ubraniami, użyj {1} aby kupić ubrania.",
"Kiedy masz ubrania, wyposaż się w nie i użyj je jak każdy inny przedmiot by ukazać modyfikacje postaci (sprawdź {1} aby zobaczyć jak używać itemy)",
"Niektóre skiny są dostępne tylko dla niektórych osób, klanów lub z innych powodów."
],
"KeyBindHelp": [
"Możesz zmienić przypisania klawiszy. Użyj {1} aby zobaczyć twoje przypisane klawisze.",
"Użyj {1} aby dodać nowe przypisanie i {2} aby je usunąć.",
"Domyślnymi przyciskami są: {1} aby uruchomić pojazd, {2} aby użyć świateł, and {3} aby otworzyć/zamknąć pojazd",
"Naciśnij {1} aby zobaczyć swoje itemy i {2} aby wyposażyć się w jakiś przedmiot lub {3} aby go schować.",
"Naciśnij {1} aby użyć przedmiot, który trzymasz, naciśnij {2} aby go upuścić lub naciśnij {3} aby podnieść jakiś przedmiot z ziemi."
],
"BusinessHelp": [
"Użyj {1} aby kupować przedmioty lub {2} aby zobaczyć listę co jest na sprzedaż w jakimkolwiek bizensie.",
"Biznesy mają niebieskie nazwy nad ikoną przy ich wejściu.",
"Komendy właściciela biznesu: {1}",
"Nowe auto na sprzedaż pojawi się po odjechaniu od dealera samochodów."
],
"ClanHelp": [
"Zapytaj administratora o stworzenie klanu (Podobne do fakcji/grup/rodzin)",
"Właściciele klanu mają pełną kontrole over nad ich klanem od momentu gdy jest stworzony",
"Komendy klanu: {1}",
"Więcej komend klanu: {1}"
],
"RadioStationHelp": [
"Użyj {1} by ustawić stację twojego auta, mieszkania lub biznesu",
"Użyj {2} by zobaczyć listę stacji",
"Możesz zmienić głośność swojego radia używając {1} i liczbą od 0 do 100 jako procenty"
],
"WealthAndTaxHelp": [
"Twoje podatki przy wypłacie są {1} procentami twojego przeliczonego bogactwa.",
"Twoja przeliczone bogactwo jest obliczone wliczając twoje pojazdy, mieszkania i biznesy, które posiadasz.",
"Każdy pojazd jest {1}, każde mieszkanie jest {2} i każdy biznes jest {3}",
"Użyj {1} aby zobaczyć swoje bogactow i {2} zobaczyć ile będziesz musiał zapłacić przy następnej wypłacie"
],
"MustBeInAVehicle": "Musisz być w pojeździe!",
"MustBeInOrNearVehicle": "Musisz być w lub obok pojazdu!",
"MustBeInVehicleFrontSeat": "Musisz być w przednim siedzeniu pojazdu!",
"MustBeInVehicleDriverSeat": "Musisz być kierowcą pojazdu!",
"DontHaveVehicleKey": "Nie masz klucza do tego pojazdu!",
"NoGateAccess": "Nie masz dostępu do tej bramy!",
"GateBroken": "Ta brama jest popsuta!",
"GateHacked": "Ta brama nie odpowiada!",
"RadioJammed": "Słysysz tylko szumy z radia.",
"VehicleNotForSale": "To auto nie jest na sprzedaż!",
"VehicleNotForRent": "Tego pojazdu nie można wypożyczyć!",
"BusinessNotForSale": "Ten biznes nie jest na sprzedaż!",
"BusinessNotForRent": "Tego biznesu nie można wypożyczyć!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "Tego biznesu nie można wypożyczyć!",
"DealershipPurchaseTestDrive": "Odjedź pojazdem od dealera samochodów aby go kupić, lub wysiądź aby anulować zakup.",
"DealershipPurchaseExitedVehicle": "Anulowałeś kupno pojazdu, ponieważ wysiadłeś z pojazdu!",
"VehiclePurchaseComplete": "Ten pojazd jest teraz twój, zapiszę się nieważne gdzie jest.",
"VehiclePurchaseNotEnoughMoney": "Nie masz wystarczająco dużo funduszy aby kupić to auto!",
"HousePurchaseNotEnoughMoney": "Nie masz wystarczająco dużo funduszy aby kupić to mieszkanie!",
"BusinessPurchaseNotEnoughMoney": "Nie masz wystarczająco dużo funduszy aby kupić ten biznes!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Mieszkania Gracza ({1})",
"HeaderPlayerStaffFlagsList": "Flagi Administracji ({1})",
"HeaderStaffFlagsList": "Flagi Administracji",
"NonRPName": "Nieprawidłowa nazwa roleplay! Wybierz nową:",
"InvalidStaffFlag": "Flaga administracji nie znaleziona!",
"InvalidClanFlag": "Flaga klanu nie znaleziona!",
"InvalidLocale": "Język nie znaleziony!",
"HeaderJobUniformList": "Mundury robocze ({1})",
"HeaderJobEquipmentList": "Wyposażenie robocze ({1})",
"InvalidJobUniform": "Mundur roboczy nie znaleziony!",
"InvalidJobEquipment": "Wyposażenie robocze nie znalezione!",
"HeaderVehiclesInRangeList": "Pojazdy w {1}",
"NoVehiclesWithinRange": "Nie ma pojazdów w {1}",
"AmountNotNumber": "Ilość musi być liczbą!",
"NeedToBeWorking": "Musisz być w pracy! Użyj {1} w punkcie pracy lub obok pojazdu służbowego.",
"NeedToBeOnJobRoute": "Musisz być w trasie! Użyj {1} w pojeździe służbowym",
"CurrentJobRouteVehicleColoursChanged": "Kolory pojazdów na twojej trasie zostały zmienione przez Administratora.",
"NotYourJob": "To nie twoja praca!",
"JobPoints": "Możesz zdobyć pracę udając się do żółtych punktów na mapie.",
"QuitJobToTakeAnother": "Jeżeli chcesz tą prace, użyj {1} aby opuścić swoją dotychczasową pracę.",
"NotAJobVehicle": "To nie jest pojazd służbowy!",
"NotYourJobVehicle": "To nie jest twój pojazd służbowy!",
"HeaderPickupTypes": "Rodzaję Pickup'ów",
"HeaderBlipTypes": "Rodzaje Ikon Mapy",
"InvalidGPSLocation": "Nie ma lokalizacji z taką nazwą lub rodzajem",
"HeaderBusinessList": "Biznesy",
"VehicleForSale": "Ten {1} jest do kupienia za {2}! Użyj {3} jeżeli chcesz go kupić",
"VehicleForRent": "Ten {1} jest do wynajęcia za {2}! Użyj {3} jeżeli chcesz go wynająć",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Nieprawidłowe hasło! Pozostało {1} prób",
"LoginFailedNoPassword": "Musisz podać hasło! ! Pozostało {1} prób",
"RegistrationFailedNoPassword": "Musisz podać hasło!",
"RegistrationFailedNoPasswordConfirm": "Musisz potwierdzić hasło!",
"RegistrationFailedNoEmail": "Musisz podać adres email!",
"AccountNameAlreadyRegistered": "Twoja nazwa jest już zarejestrowana!",
"AlreadyLoggedIn": "Jesteś już zalogowany!",
"RegistrationFailedInvalidEmail": "Nieprawidłowy adres email!",
"RegistrationFailedPasswordMismatch": "Hasła się nie zgadzają!",
"RegistrationFailedCreateError": "Nie udało się stworzyć twojego konta!",
"RegistrationSuccess": "Twoje konto zostało utworzone!",
"RegistrationEmailVerifyReminder": "Nie zapomnij zweryfikować swojego adresu email! Kod werifikacyjny został wysłany na twój adres email.",
"RegistrationCreateCharReminder": "Aby zagrać na serwerze, musisz stworzyć postać.",
"NoCharactersGUIMessage": "Nie masz postaci. Czy chciałbyś ją stworzyć?",
"NoCharactersGUIWindowTitle": "Brak postaci",
"NoCharactersChatMessage": "Nie masz postaci. Użyj {1} aby ją stworzyć.",
"NeedEmailFor2FA": "Musisz przypisać adres email do swojego konta, aby używać weryfikacji dwuetapowej.",
"NeedEmailVerifiedFor2FA": "Musisz zweryfikować swój adres email, aby używać weryfikacji dwuetapowej",
"SetEmailHelpTip": "Użyj {1} aby ustawić swój adres email.",
"VerifyEmailHelpTip": "Użyj {1} aby zweryfikować swój adres email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Pobliskie radio",
"FromRadio": "Z radia",
"ToRadio": "Do radia",
"NeedToEnterPropertyCommand": "Musisz najpierw wejść do {1}! Użyj {2} aby wejść lub wyjść",
"NeedToEnterPropertyKeyPress": "Musisz najpierw wejść do {1}! Naciśnij {2} aby wejść lub wyjść",
"InventoryFullCantCarry": "Nie masz miejsca aby to podnieść (pełny ekwipunek)!",
"NotEnoughCashNeedAmountMore": "Nie masz wystarczająco miejsca! Potrzebujesz jeszcze {1}!",
"AmountMustBeMoreThan": "Wartość musi być większa od {1}!",
"WeaponBanned": "Nie możesz używać ani kupować broni!",
"TimeNotNumber": "Czas musi być numerem",
"HeaderDefaultBusinessItemTypes": "Wzory przedmiotów biznesowych",
"FixingStuck": "Naprawianie twojej pozycji i świata wirtualnego ...",
"CantUseCommandYet": "Musisz poczekać zanim znowu użyjesz tej komendy!",
"NotATester": "Nie jesteś testerem!",
"AccessDenied": "OdmowaDostępu",
"InvalidSkin": "Ta skórka jest nieprawidłowa!",
"HeaderInteriorTypes": "Wnętrza",
"GUIAccountSettingToggle": "Przełączyłeś {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "Możesz kupić pojazd poprzez odwiedzenie salonu samochodowego. Użyj {1} aby uzyskać więcej informacji.",
"SkinCommandHelp": "Możesz zmienić swój wygląd poprzez odwiedzenie sklepu odzieżowego. Użyj {1} aby uzyskać więcej informacji.",
"BusinessVehiclesRespawned": "Wszystkie pojazdy biznesowe zostały zrespione przez admina!",
"JobVehiclesRespawned": "Wszystkie pojazdy firmowe zostały zrespione przez admina!",
"PlayerVehiclesRespawned": "Wszystkie pojazdy gracza zostały zrespione przez admina!",
"ClanVehiclesRespawned": "Wszystkie pojazdy klanowe zostały zrespione przez admina!",
"PublicVehiclesRespawned": "Wszystkie pojazdy publiczne zostały zrespione przez admina!",
"EmptyVehiclesRespawned": "Wszystkie puste pojazdy zostały zrespione przez admina!",
"AllVehiclesRespawned": "Wszystkie pojazdy zostały zrespione przez admina!",
"AllVehiclesReloaded": "Wszystkie pojazdy biznesowe zostały ponownie załadowane przez admina!",
"YourVehicleRespawned": "Twój pojazd został zrespiony",
"PlayerIPBanned": "{1} został zbanowany poprzez IP!",
"PlayerCharacterBanned": "{1} został zbanowany poprzez postać!",
"PlayerSubNetBanned": "{1} został zbanowany poprzez podsieć!",
"CantModifyBusiness": "Nie możesz zarządzać ani modyfikować tego biznesu",
"CantModifyHouse": "Nie możesz zarządzać ani modyfikować tego mieszkania",
"ServerTimeSet": "{1} ustawił czas na {2}",
"ServerWeatherSet": "{1} ustawił pogodę na {2}",
"ServerSnowSet": "{1} ustawił spadający śnieg na {2} i śnieg na podłożu na {3}",
"AllJobsReloaded": "Wszystkie prace zostały ponownie załadowane przed admina",
"ServerLogoSet": "{1} ustawił logo serwera na {2}",
"ServerGUISet": "{1} ustawił interfejs tego serwera na {2}",
"ServerBusinessBlipsSet": "{1} ustawił wszystkie punkty biznesowe na {2}",
"ServerHouseBlipsSet": "{1} ustawił wszystkie punkty mieszkaniowe na {2}",
"ServerJobBlipsSet": "{1} ustawił wszystkie punkty pracy na {2}",
"ServerBusinessPickupsSet": "{1} ustawił wszystkie interakcje biznesowe na {2}",
"ServerHousePickupsSet": "{1} ustawił wszystkie interakcje mieszkaniowe na {2}",
"ServerJobPickupsSet": "{1} ustawił wszystkie interakcje pracy na {2}",
"BusinessBuyItemsLabel": "Użyj {1} aby kupić przedmioty",
"PropertyEnterCommandLabel": "Użyj {1} aby wejść",
"PropertyEnterKeyPressLabel": "Naciśnij {1} aby wejść",
"PropertyForSaleLabel": "Na sprzedaż: {1}",
"PropertyForRentLabel": "Wynajem: {1} dziennie",
"RemainingTaxPaidInMoney": "Pokryłeś pozostałe podatki za {1}.",
"LostMoneyFromTaxes": "Straciłeś trochę pieniędzy ponieważ twoję podatky przewyższają twoją wypłatę!",
"NextPaycheckRepossessionWarning": "Jeżeli nie będziesz miał wystarczającej sumy aby pokryć podatki, stracisz swoje przedmioty przy kolejnej wypłacie!",
"NotEnoughMoneyForTax": "Nie masz wystarczająco dużo pieniędzy aby zapłacić podatki!",
"AssetsRepossessedForTax": "Straciłeś {1} pojazdów, {2} mieszkania, and {3} biznesów, ponieważ nie byłeś w stanie zapłacić za podatki!",
"Closed": "Zakmnięte",
"Open": "Otwarte",
"VehicleDealershipLabel": "Wsiądz do pojazdu jako kierowca aby go kupić",
"TakeJobLabel": "Użyj /takejob aby tu pracować",
"StartWorkLabel": "Uzyj /startwork aby zacząć prace",
"JobEquipAndUniformLabel": "Użyj /uniform i /equip po przedmioty firmowe, albo /stopwork aby przestać pracować",
"NotYourJobLabel": "Masz już inną pracę. Użyj /quitjob jeżeli wolisz tą",
"JobLabel": "{1} Praca",
"PaydayBonusSet": "🤑 {1} ustawił bonus wypłaty na {2}",
"AllHousesReloaded": "🏘️ Wszystkie mieszkania zostały ponownie załadowane przez admina!",
"AllRadioStationsReloaded": "📻 Wszystkie stacje radiowe zostały ponownie załadowane przez admina!",
"PlayerKicked": "🦶 {1} został wyrzucony z serwera",
"AllBusinessesReloaded": "🏢 Wszystkie biznesy zostały ponownie załadowane przez admina!",
"UnableToDoThat": "Nie jesteś w stanie tego zrobić",
"SetVehicleClanConfirmMessage": "Czy na pewno chcesz oddać ten pojazd na rzecz twojego klanu?",
"SetVehicleClanConfirmTitle": "Uwaga!",
"SetItemPriceBelowOrderPriceMessage": "Czy na pewno chcesz ustawić cenę tego przedmiotu, poniżej jego rzeczywistej ceny? Będziesz tracił {1} za każdy zakup!",
"SetItemPriceBelowOrderPriceTitle": "Uwaga!",
"MustOwnVehicle": "Nie jesteś właścicielem tego pojazdu!",
"RandomTips": [
"Zółte kropki na mapie oznaczają miejsca pracy",
"Możesz przypisywać klawisze. Użyj {1} aby uzyskać więcej szczegółów",
"Użyj {1} jeżeli nie chcesz uzyskiwać więcej wskazówek",
"Możesz edytować swoje przypisane klawisze używając {1} i {2}",
"Naciśnij aby zobaczyć swój ekwipunek oraz klawiszy z numerami aby wybrać przedmiot",
"Użyj {1} przy biznesie aby kupować przedmioty",
"Znalazłeś błąd? Zgłoś go przy użyciu {1}",
"Masz pomysł albo jakąś sugestje? Podziel się nią z nami przy użyciu {1}",
"Chcesz kupić biznes? Użyj {1} przy biznesie na sprzedaż",
"Chcesz kupić mieszkanie? Użyj {1} przy mieszkaniu na sprzedaż",
"Chcesz kupić pojazd? Odwiedź salon samochodowy aby uzyskać więcej informacji!",
"Zmień się w inna postać przy użyciu {1}",
"Użyj {1} aby automatycznie zalogować się w przypadku połączenia się z identycznego IP",
"Użyj {1} aby włączyć/wyłączyć światła w twoim mieszkaniu/biznesie",
"Użyj {1} aby włączyć radio w twoim pojezdzie, mieszkaniu albo biznesie",
"Chcesz utworzyć klan? Użyj {1} po więcej informacji",
"Legalne bronie mogą zostać kupione w każdym sklepie Ammunation"
],
"PromptResponseTip": "Użyj {1} aby zaakceptować lub {2} aby odrzucić",
"PlayerConnecting": "👋 {1} łączy się z serwerem",
"GetStartedJobVehicle": "Wejdź do {1} aby rozpocząć.",
"VehicleTypes": {
"Car": "Samochód",
"Truck": "Cieżarówka",
"Van": "Van",
"Taxi": "Taksówka",
"Bus": "Autobus",
"PoliceCar": "Samochód Policyjny",
"Ambulance": "Ambulans",
"FireTruck": "Pojazd pożarowy",
"Bike": "Rower",
"Motorbike": "Skuter",
"Boat": "Łódka",
"Helicopter": "Śmigłowiec",
"Plane": "Samolot",
"Train": "Pociąg"
},
"AlreadyOnJobRoute": "Jesteś już w trakcie drogi!",
"GaveVehicleToClan": "Oddałeś to {1} na rzecz swojego klanu!",
"JobDisabled": "Ta praca jest wyłączona!",
"SetHouseClanConfirmMessage": "Czy na pewno chcesz oddać to mieszkanie na rzecz twojego klanu?",
"SetHouseClanConfirmTitle": "Uwaga!",
"SetBusinessClanConfirmMessage": "Czy na pewno chcesz oddać ten biznes na rzecz twojego klanu?",
"SetBusinessClanConfirmTitle": "Uwaga!",
"MustOwnHouse": "Nie jesteś właścicielem tego mieszkania!",
"MustOwnBusiness": "Nie jesteś właścicielem tego biznesu!",
"GaveHouseToClan": "Oddałeś to mieszkanie na rzecz twojego klanu!",
"GaveBusinessToClan": "Oddałeś ten biznes na rzecz twojego klanu!",
"BuyBusinessConfirmMessage": "Czy na pewno chcesz kupić tą firmę?",
"BuyBusinessConfirmTitle": "Uwaga!",
"BuyHouseConfirmMessage": "Czy na pewno chcesz kupić to mieszkanie?",
"BuyHouseConfirmTitle": "Uwaga!",
"BuyBusinessLabel": "Użyj {1} aby kupić tą firmę",
"BuyHouseLabel": "Użyj {1} aby kupić to mieszkanie",
"RentHouseLabel": "Użyj {1} aby wynająć to mieszkanie",
"AccountEmailAlreadyVerified": "Już ustawiłeś oraz zweryfikowałeś swój email!",
"EmailVerificationCodeSent": "Kod weryfikacyjny wraz z instrukcjami został wysłany na twój email.",
"GUIPlayAsCharacterButton": "Graj",
"GUINewCharacterButton": "Nowa postać",
"GUIPreviousCharacterButton": "Poprzednie",
"GUINextCharacterButton": "Następne",
"GUICharacterSelectWindowTitle": "Wybierz postać",
"GUICharacterSelectMoneyLabel": "Pieniądze: {1}",
"GUICharacterSelectClanLabel": "Klan: {1}",
"GUICharacterSelectLastPlayedLabel": "Ostation grano: {1} dni, {2} godzin, {3} minut temu",
"GUILoginWindowLabelEnterPassword": "Proszę podać swoje hasło",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Reset",
"GUILoginWindowPasswordPlaceholder": "Hasło",
"GUILoginWindowForgotPasswordLabel": "Zapomniałeś hasła?",
"GUIRegisterWindowLabelCreateAccount": "Stwórz konto",
"GUIRegisterWindowPasswordPlaceholder": "Hasło",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Potwierdz hasło",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Stwórz konto",
"GUINewCharacterMessageLabel": "Nazwij swoją postać",
"GUINewCharacterFirstNamePlaceholder": "Imię",
"GUINewCharacterLastNamePlaceholder": "Nazwisko",
"GUINewCharacterSubmitButton": "Stwórz postać",
"GUIChangePasswordWindowTitle": "Zmień hasło",
"GUIChangePasswordPasswordLabel": "Podaj nowe hasło",
"GUIChangePasswordPasswordPlaceholder": "Hasło",
"GUIChangePasswordConfirmPasswordPlaceholder": "Potwierdz hasło",
"GUIChangePasswordSubmitButton": "Zmień hasło",
"GUIResetPasswordWindowMessage": "Zresetuj hasło",
"GUIResetPasswordConfirmEmailLabel": "Proszę potwierdz swój email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Zresetuj hasło",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Pamiętasz swoje hasło?",
"HeaderJobList": "Prace",
"HeaderBusinessInfo": "Informacje o biznesie",
"HeaderHouseInfo": "Informacje o mieszkaniu",
"HeaderClanInfo": "Informacje o klanie",
"Locales": {
"English": "Angielski",
"Russian": "Rosyjski",
"Spanish": "Hiszpański",
"German": "Niemiecki",
"Dutch": "Holenderski",
"Polish": "Polski",
"Chinese": "Chiński",
"French": "Francuski",
"Japanese": "Japoński",
"Slovak": "Słowacki",
"Arabic": "Arabski"
},
"TwoFactorAuthSet": "⚙️ Włączyłeś weryfikacje dwu-etapową {1}",
"AccountServerLogoSet": "⚙️ Zmieniłeś logo serwera {1}",
"ChatScrollLinesNotNumber": "Ilość linijek musi być numerem",
"ChatScrollLinesMustBeBetween": "Iloś linijek musi być pomiędzy {1} i {2}",
"ChatScrollLinesSet": "Czat będzie teraz scrollował {1} linijek na raz",
"InvalidEmailVerificationCode": "Nieprawidłowy kod weryfikacyjny! Nowy kod został stworzony i wysłany na twojego email'a.",
"EmailVerified": "Twój email został zweryfikowany",
"EmailVerifiedTip": "Możesz teraz używać email'a do resetowania hasła, weryfikacji dwu-etapowej, logowaniu z nowego urządzenia itp.",
"CommandRequiresLogin": "Musisz być zalogowany, aby użyć komendy {1}",
"CommandDisabled": "Komenda {1} jest wyłączona",
"CommandDisabledOnDiscord": "Komenda {1} nie jest dostępna na discordzie",
"CommandNotFoundHelpTip": "Komenda {1} nie istnieje! Użyj {2} aby zobaczyć komendy i informacje.",
"CommandNotFoundPossibleMatchTip": "Komenda {1} nie istnieje! Czy miałeś na myśli {2}?",
"CommandNoPermissions": "Nie masz uprawnień aby użyć komendy {1}",
"GUIResetPasswordCodeInputLabel": "Sprawdź swój email, aby uzyskać kod",
"GUIResetPasswordCodePlaceholder": "Kod weryfikacyjny",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Uwaga",
"GUIInfoTitle": "Informacje",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Nieprawidłowy email!",
"HeaderVehicleInfo": "Informacje o pojeździe",
"HeaderClanRanksList": "Ranga w klanie",
"HeaderNPCInfo": "Informacje o NPC",
"NPCAnimationSet": "Ustawiłeś animacje NPC {1} na animacje {2}",
"NPCNameSet": "Ustawiłeś nazwę NPC {1} na {2}",
"VehicleTooFar": "Jesteś za daleko od pojazdu!",
"HeaderPropertyTemplateTypes": "Rodzaje posesji",
"MustBeLoggedInAndSpawnedToChat": "Musisz być zalogowany oraz zrespiony aby rozmawiać na czacie!",
"MutedCantChat": "Jesteś wyciszony i nie możesz rozmawiać na czacie!",
"CantUseMegaphone": "Musisz posiadać megafon albo siedzieć w pojeździe w uprzywilejowanym!",
"HeaderAnimationHelp": "Info o Animacjach",
"HeaderBadgeInfo": "Informacje o odznace ({1})",
"NoItemCloseEnough": "W pobliżu nie ma przedmiotu",
"CantDropJobEquipmentItem": "Nie możesz wyrzucać przedmiotów służbowych",
"CantPutJobEquipmentItem": "Nie możesz przechowywać przedmiotów służbowych",
"NoItemEquipped": "Nie masz żadnego wybranego przedmiotu",
"NoItemInActiveSlot": "Nie masz żadnego przedmiotu w twoim aktywnym slocie przedmiotów",
"CantPutItemInSkinChange": "Nie możesz przechowywać przedmiotów while podczas zmieniania swojego wyglądu",
"NothingToTakeItemFrom": "W pobliżu nie ma żadnego pojemnika, z którego można wziąć przedmioty",
"NoAmmoToLoadIntoWeapon": "Nie masz żadnej amunicji do {1}",
"LoadAmmoIntoWeaponHelpCommand": "Aby wprowadzić ten pocisk do broni, weź broń i wpisz {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "Aby wprowadzić ten pocisk do broni, weź broń i wciśnij {1}",
"NobodyCloseEnoughToHandcuff": "Nie ma nikogo w pobliżu do zakucia",
"NobodyCloseEnoughToTie": "Nie ma nikogo w pobliżu do związania",
"PlayerNotSurrenderedHandcuff": "{1} nie może być zakuty! Muszą się poddać, być nieprzytomni albo dostać z paralizatora",
"PlayerNotSurrenderedTie": "{1} nie może być związany! Muszą się poddać, być nieprzytomni albo dostać z paralizatora",
"HeaderCharactersListSelf": "Twoje postacie",
"HeaderCharactersListOther": "Postacie {1}",
"CharacterSelectHelpText": "Użyj {1} aby wybrać postać albo {2} aby stworzyć nową postać",
"ItemDoesntDoAnythingOnUse": "{1} nic nie robi kiedy próbujesz go użyć.",
"ItemRadioStationTip": "Użyj {1} aby wybrać stacje radiową",
"VehicleLockedCommandTip": "🔒 Ten {1} jest zamknięty. Użyj {2} aby go otworzyć",
"VehicleLockedKeyPressTip": "🔒 Ten {1} jest zamknięty. Press {2} aby go otworzyć",
"VehicleLockedCantUnlock": "🔒 Ten {1} jest zamknięty i nie masz do niego kluczy",
"CurrentlyRentingThisVehicle": "Wypożyczasz ten {1} za {2} co minute. Użyj {3} jeżeli chcesz przestać go wypożyczać.",
"VehicleBelongsTo": "Ten {1} należy do {2} ({3})",
"NotOwned": "Bez właściciela",
"NotCloseEnoughToItemContainer": "Nie jesteś wystarczająco blisko czegokolwiek co może pomieścić przedmioty",
"Job": "Praca",
"Player": "Gracz",
"BusinessIsNowPaintBall": "Ten biznes jest teraz areną paintball",
"JoinedPaintBall": "Dołączyłeś do gry w paintball'a.",
"ItemsStoredForPaintBall": "Twoje przedmioty zostały umieszczone w szafce i zostaną do ciebie zwrócone jak opuścisz grę w paintball'a",
"LeftPaintBall": "Opusciłeś grę w paintball'a. Twoje itemy zostały zwrócone.",
"PaintBallEnded": "Gra w paintball'a się zakończyła. Twoje itemy zostały zwrócone.",
"HeaderEventWinners": "Zwycięzcy",
"YourPaintBallResults": "Masz {1} zabójstwo i {2} śmierci w tym meczu",
"NoPrivateMessageToReply": "Nie dostałeś żadnej prywatnej wiadomości na którą mogłbyś odpowiedzieć",
"WeaponDoesNotUseAmmo": "{1} nie używa amunicji",
"ChatBoxTimestampsToggle": "{1} zegar na czacie",
"ProfanityFilterSet": "{1} system cenzury na czacie",
"ResetAllKeyBindsConfirm": "Czy jesteś pewnien, że chcesz zresetować wszystkie przypisane klawisze na domyślne?",
"NotRentingAVehicle": "Nie wypożyczasz żadnego pojazdu!",
"StoppedRentingVehicle": "Przestałeś wypożyczać {1}",
"VehicleEngineStartKeyPressTip": "Silnik {1} jest wyłączony. Naciśnij {2} aby go włączyć.",
"VehicleEngineStartCommandTip": "Silnik {1} jest wyłączony. Użyj {2} aby go włączyć.",
"StartedRentingVehicle": "Wypożyczasz teraz ten {1} za {2} co minute. Aby przestać wypożyczać, użyj {3}",
"VehicleAlreadyRentedByOther": "Ten pojazd jest już wypożyczony przez kogoś innego",
"VehicleAlreadyRentedBySelf": "Już wypożyczasz ten pojazd",
"JobRankTooLow": "Nie jesteś wystarczająco wysoką rangą!",
"InvalidKeyName": "Wprowadzone ID klawisza lub nazwa jest błędna!",
"KeyBindsReset": "Wszystkie twoje przypisania klawiszy zostały zresetowane",
"KeyBindNameTip": "Używaj ID klawiszy, liter lub numerów. Nie używaj spacji.",
"UniversalInlineExamplesList": "Przykłady: {1}",
"KeyBindRemoved": "Usunąłeś przypisanie dla klawisza {1}",
"KeyBindAdded": "Przypisałeś klawisz {1} do {2}",
"CopyAllKeyBindsToServerConfirm": "Czy jesteś pewien, że chcesz skopowiać swoje wszystkie przypisania na serwer {1}?",
"CopiedAllKeyBindsToServer": "Wszystkie twoje przypisania zostały skopiowane na serwer {1}",
"MustBeSpawned": "Musisz być zrespiony!",
"ChatEmojiSet": "Włączyłeś automatyczne emoji na czacie {1}",
"FishingLineNotCast": "Nie zarzuciłeś wędki!",
"CantFishHere": "Nie możesz tutaj łowić! Musisz być blisko wody lub na łódce!",
"NeedFishingRod": "Musisz trzymać wędke!",
"FishingCastCommandHelp": "Użyj {1} aby zarzucić swoją wędke",
"FishingCastKeyBindHelp": "Naciśnij {1} aby zarzucić swoją wędke",
"Paused": "Pauza",
"PaintBallAlmostWin": "{1} potrzebuje tylko {2} zabójstw aby wygrać mecz!",
"HeaderClanFlagsList": "Flagi klanu ({1})",
"PleaseWait": "Prosze czekać...",
"HeaderServerRulesList": "Zasady serwera",
"FrequencyChannelChanged": "Ustawiłeś kanał swojego {1} w slocie {2} na {3}",
"ItemTurnedOnOff": "{1} twoje {2} w slocie {3}",
"SkinSelectHelpTextSkin": "Naciśnij {1} lub {2} aby zmienić skin, {3} aby zapisać lub {4} aby anulować",
"SkinSelectHelpTextBodyPart": "Naciśnij {1} lub {2} by zmienić części ciała",
"SkinSelectBodyPartNames": {
"Head": "Głowa",
"UpperBody": "Górna część ciała",
"LowerBody": "Dolna część ciała",
"Hair": "Włosy",
"Hat": "Kapelusz",
"Glasses": "Okulary",
"LeftHand": "Lewa Ręka",
"RightHand": "Prawa Ręka",
"LeftWrist": "Lewy Nadgarstek",
"RightWrist": "Prawy Nadgarstek"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Użyj {1} aby włączyć/wyłączyć silnik pojazdu",
"VehicleLockedAfterEntryAttempt": "Użyj {1} aby otworzyć/zamknąć pojazd",
"ShowItemsAfterPurchase": "Użyj {1} aby zobaczyć swoje inventory",
"BuyCommandAfterEnterBusiness": "Użyj {1} aby kupić przedmioty od biznesu",
"UseItemKeyAfterEquipping": "Użyj {1} aby użyć wyjęty przedmiot",
"UseItemKeyAfterEquippingWalkieTalkie": "Użyj {1} aby włączyć/wyłączyć radio",
"RadioCommandAfterEnablingWalkieTalkie": "Użyj {1} aby użyć radia",
"ReplyToDirectMessage": "Użyj {1} aby odpowiedzieć na prywatną wiadomość",
"UseItemKeyAmmoAfterEquippingWeapon": "Użyj {1} aby załadować amunicje do wyjętej broni",
"AnimationStop": "Użyj {1} aby zatrzymać swoją animacje",
"JobEquipmentInventory": "Sprzęt do pracy jest w twoim inventory. Użyj {1} aby go zobaczyć.",
"ViewInventory": "Użyj {1} aby zobaczyć swoje przedmioty",
"VehicleRepairItemUsage": "Stań obok pojazdu i użyj {1} aby go naprawić",
"VehicleColourItemUsage": "Stań obok pojazdu i użyj {1} aby zmienić jego kolor",
"VehiclePartItemUsage": "Stań obok pojazdu i użyj {1} aby ulepszyć go z {2}",
"AmmoClipItemUsage": "Wyjmnij broń i użyj {1} aby załadować amunicje",
"GenericItemUsage": "Użyj {1} aby użyć {2}",
"EnterJobVehicleForRoute": "Wejdź do pobliskiego pojazdu służbowego aby rozpocząć trasę",
"JobLocations": "Odwiedź zakład pracy aby zdobyć pracę. Użyj {1} aby znaleźć zakład pracy",
"JobRouteStart": "Użyj {1} aby rozpocząć trasę z tym pojazdem"
},
"DisconnectReasons": {
"Unknown": "Nieznane",
"LostConnection": "Stracono Połączenie",
"Disconnected": "Odłączony",
"UnsupportedClient": "Niewspierany Client",
"WrongGame": "Zła Wersja Gry",
"IncorrectPassword": "Niepoprawne Hasło",
"UnsupportedExecutable": "Niewspierany Plik Wykonalny",
"Kicked": "Wyrzucony",
"Banned": "Zbanowany",
"Failed": "Nieudane",
"InvalidName": "Niepoprawna Nazwa",
"Crashed": "Crashed",
"ModifiedGame": "Zmodyfikowana Gra",
"FailedToLogin": "Wyrzucony - Nieudało się zalogować",
"NotATester": "Wyrzucony - Nie jest testerem",
"ClientScriptVerificationFail": "Weryfikacja skryptów klienta nieudana (możliwe cheaty)",
"ServerRestarting": "Serwer się restartuje",
"Desync": "Desynced",
"FailedToCreateCharacter": "Wyrzucony - Nie stworzył postaci"
},
"DevelopersNotified": "Developerzy zostali poinformowani o problemie",
"NoJobLocationCloseEnough": "Nie ma żadnych lokacji pracy w pobliżu!",
"NotAllowedToUseJobs": "Nie możesz użyć żadnej pracy!",
"CantUseThisJob": "Nie możesz użyć tej pracy!",
"JobChanged": "💼 Teraz pracujesz jako {1}",
"NeedToBeNearJob": "Musisz być blisko lokacji pracy lub pojazdu, który do niej należy!",
"DontHaveAJob": "Nie masz pracy!",
"StartedWorking": "💼 Zacząłeś prace jako {1}",
"StoppedWorking": "Przestałeś pracować",
"ItemsStoredForJob": "Twoje przedmioty zostały schowane do szafy na czas twojej pracy",
"NoJobRoutesForLocation": "Twoja praca nie ma trasy do tej lokacji!",
"CurrentJobRouteDeleted": "Trasa na której było została usunięta lub wyłączona przez Admina",
"YourTax": "Twoje podaki na wypłacie to: {1}. Użyj {2} aby uzyskać więcej informacji.",
"YourWealth": "Twój majątek to: {1}. Użyj {2} aby uzyskać więcej informacji.",
"InvalidKeyBindName": "Nie znaleziono klawisza!",
"BusinessPurchased": "🏢Jesteś teraz włascicielem biznesu {1}",
"HousePurchased": "🏘️ Jesteś teraz włascicielem mieszkania {1}",
"CopyAllKeyBindsConfirm": "Czy jesteś pewien że chcesz przenieść swoją konfiguracje klawiszy na serwer {1}?",
"CopyAllKeyBindsOverwriteWarning": "To podmieni wszystkie twoje klawisze na innym serwerze",
"NoPromptAccept": "Nie masz niczego do przyjęcia",
"NoPromptReject": "Nie masz niczego do odrzucenia",
"NotOrderingAnyBusinessItems": "Nie zamawiasz nic dla bizensu!",
"BusinessOrderCanceled": "Anulowałeś zamówienie przedmiotu dla biznesu",
"DidNotCreateCharacter": "Nie masz żadnej postaci za grania. Do zobaczenia!",
"BusinessOrderNotEnoughMoney": "Ten biznes nie ma wystarczają dużo pieniędzy żeby to zamówić! Wypłac trochę używając {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "Zamówiłeś {1} {2} za {4}!",
"AccountSettings": {
"UseWhiteList": "Używaj białej listy",
"UseBlackList": "Używaj czarnej listy",
"TwoStepAuth": "Wymagaj weryfikacji dwustepowej podczas logowania",
"AuthAttemptAlert": "Powiadomienia email przy logowaniu",
"NoGUI": "Brak Interfejsu",
"AutoLoginIP": "Automatyczny login poprzez IP",
"NoServerLogo": "Brak loga serwera",
"AutoSelectLastCharacter": "Automatyczny spawn jako ostatnia postać",
"ShowRealTimeClock": "Pokaż zegar w czasie rzeczywistym",
"UseGUIForItems": "Używaj interfejsu jako ekwipunku",
"UseRadialWheelItems": "Używaj menu kołowego jako ekwipunku (tak jak w GTA V)",
"NoKeyBinds": "Wyłącz przypisania klawiszy",
"NoRandomTips": "Wyłącz losowe podpowiedzi",
"NoActionTips": "Wyłącz podpowiedzi akcji",
"ChatBoxTimestamps": "Pokazuj czas na czacie",
"ProfanityFilter": "Filtr wulgaryzmów",
"ChatAutoHide": "Automatycznie ukrywaj nieaktywny czat",
"NoPlayerContent": "Wyłącz customowe loga (logo clanu/spray)",
"ChatEmoji": "Pokazuj emoji na czacie"
},
"SaveSettings": "Zapisz ustawienia",
"Cancel": "Anuluj",
"AlreadyOwnVehicle": "Już posiadasz ten pojazd!",
"PropertyEntranceFeeLabel": "Opłata wejściowa: {1}",
"NeedToBeInJobVehicle": "Musisz być w firmowym pojeździe!"
}

752
locale/russian.json Normal file
View File

@@ -0,0 +1,752 @@
{
"TranslationProvidedBy": "VNDTTS(Vende)",
"LocaleEnglishName": "Russian",
"LocaleNativeName": "Русский",
"LocaleOffer": "Этот сервер доступен на русском. Используйте {1} чтобы его использовать.",
"LocaleChanged1": "Ваш язык был установлен на {1}",
"LocaleChanged2": "Этот сервер теперь будет показывать сообщения в {1}",
"LocaleChangedNote": "Это не влияет на сообщения других игроков",
"AccentsListHeader": "Акценты",
"HelpMainListHeader": "Помощь Категории",
"AccentNotFound": "Не удалось найти акцент",
"AccentSet": "Вы установили свой акцент на {1}",
"InvalidAnimation": "Такой анимации не существует",
"AnimationCommandTip": "Используйте {1} чтобы просмотреть список доступных анимаций",
"InvalidAnimationDistance": "Дистанция должна быть между 0 и 3",
"CantBanClient": "Вы не можете забанить этого игрока",
"PlayerAccountBanned": "Аккаунт {1} был заблокирован ",
"ClanNotFound": "Не удалось найти клан",
"ClanNameTaken": "Клан с таким именем уже существует",
"PlayerNotFound": "Не удалось найти игрока",
"ClanCantRemoveRanks": "Вы не можете убрать ранги клана",
"ClanCantAddRanks": "Вы не можете добавить новые ранги клана",
"ClanRankNotFound": "Не удалось найти ранг клана",
"ClanCantChangeMemberTag": "Вы не можете изменить теги членов клана",
"ClanPlayerNotInSameClan": "Игрок не в вашем клане",
"ClanCantChangeRankLevel": "Вы не можете изменить уровень ранга клана",
"ClanCantChangeRankTag": "Вы не можете изменить теги ранга клана",
"NameNotRegistered": "Ваше имя не зарегестрировано! Используйте {1} чтобы создать аккаунт.",
"AutomaticLoginIPToggle": "Автоматический вход по IP теперь {1}",
"CouldNotRegisterAccount": "Возникла проблема при создании аккаунта. Пожалуйста свяжитесь с администратором.",
"RandomTipsToggle": "Случайные подсказки теперь {1}",
"ActionTipsToggle": "Местные подсказки теперь {1}",
"AutoSpawnLastCharToggle": "Автоматическое возрождение как последний выбраный персонаж теперь {1}",
"AccountGUISettingToggle": "GUI теперь установлен на {1}",
"On": "Включен",
"Off": "Выключен",
"Yes": "Да",
"No": "Нет",
"True": "Верно",
"False": "Неверно",
"Locked": "Закрыто",
"Unlocked": "Открыто",
"PasswordNotGoodEnough": "Новый пароль должен соответсвовать требованиям !",
"PasswordNeedsBase": "Пароль должен местить не меншьше {1}",
"PasswordNeedsCapitals": "{1} Заглавные буквы",
"PasswordNeedsNumbers": "{1} цифры",
"PasswordNeedsSymbols": "{1} символы",
"PasswordsDontMatch": "Новый пароль и его подтверджение не совпадают!",
"PasswordChanged": "Ваш пароль был изменен!",
"AutoLoggedInIP": "Вы автоматически войшли через IP!",
"WelcomeBack": "Добро пожаловать {1}, {2}! Используйте {3} чтобы продолжить.",
"WelcomeNewPlayer": "Добро пожаловать в {1}, {2}! Используйте {3} чтобы начать играть.",
"InvalidPlayer": "Не удалось найти игрока!",
"InvalidBusiness": "Не удалось найти бизнес!",
"InvalidHouse": "Не удалось найти дом!",
"InvalidVehicle": "Не удалось найти транспорт!",
"InvalidClan": "Не удалось найти клан!",
"InvalidClanRank": "Не удалось найти ранг клана!",
"InvalidJob": "Не удалось найти работу!",
"InvalidItem": "Не удалось найти предмет!",
"InvalidItemType": "Не удалось найти предмет!",
"InvalidRadioStation": "Не удалось найти радиостанцию!",
"InvalidGate": "Не удалось найти ворота!",
"EntersProperty": "открывает дверь и входит в {1} ({2})",
"ExitsProperty": "открывает дверь и покидает {1} ({2})",
"EnterExitPropertyDoorLocked": "пытаеться открыть двери {1} но у него не выходить потому-что двери закрыты",
"PropertyNoInterior": "У {1} нет доступного интерьера, но вы все еще можете использовать комманды стоя на значке возле входа.",
"NoBusinessWithItemType": "Нет бизнесов в которых этот предмет доступен",
"HeaderKeyBinds": "Привязки",
"HeaderAccountHelp": "Помощь Аккаунт",
"HeaderVehicleHelp": "Помощь Транспорт",
"HeaderVehicleDealershipHelp": "Помощь Автосалон",
"HeaderJobHelp": "Помощь Работа",
"HeaderChatHelp": "Помощь Чат",
"HeaderServerRules": "Правила Сервера",
"HeaderWebsiteInfo": "Сайт",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Список Анимаций",
"HeaderPayAndSprayHelp": "Помощь Pay 'n' Spray",
"HeaderAmmunationHelp": "Помощь Аммунация",
"HeaderVehicleTuneupHelp": "Помощь Тюнинг Автомобиля",
"HeaderBindableKeysHelp": "Кнопки которые можно привязать",
"HeaderSkinHelp": "Помощь Одежда/Облик",
"HeaderBusinessHelp": "Помощь ",
"HeaderClanHelp": "Помощь Клан",
"HeaderPlayerVehiclesList": "Транспорт Игрока ({1})",
"HeaderPlayerBusinessesList": "Бизнес Игрока ({1})",
"HeaderClansList": "Список кланов",
"HeaderAdminsList": "Список администраторов",
"HeaderAccentsList": "Список акцентов",
"HeaderPlayerInfo": "Информация об игроке ({1})",
"HeaderWealthandTaxHelp": "Информация о достатке и налогах",
"HeaderCommandInfo": "Информация о команде ({1})",
"HeaderRadioHelp": "Помощь Радио",
"HeaderRadioStationsList": "Радиостанции",
"HeaderKeyBindsList": "Список привязок",
"RadioVolumeChanged": "{1} Вы изменили громкость звука на {2}%",
"VolumeLevelNotNumber": "Уровень звука должен быть в цифрах",
"RadioStationLocationInvalid": "Вы должны находится в транспорте, доме, или бизнесе или иметь устройство чтобы сменить радиостанцию!",
"ActionBusinessRadioStationChange": "меняет радиостанцию бизнеса на {1} ({2})",
"ActionHouseRadioStationChange": "меняет радиостанцию дома на {1} ({2})",
"ActionVehicleRadioStationChange": "меняет радиостанцию транспорта на {1} ({2})",
"ActionItemRadioStationChange": "переключает станцию {1} на станцию {2} ({3})",
"RandomVehicleCommandsDisabled": "Это случайная машина трафика, команды на нее не работают.",
"HouseDoorLock": "Дом {1} {2}!",
"BusinessDoorLock": "Бизнес {1} {2}!",
"ServerGameModeRestarting": "Режим игры сервера перезапускается!",
"HeaderSelfItemList": "Ваш инвентарь",
"HeaderPlayerItemList": "Инвентарь игрока ({1})",
"HeaderHouseItemList": "Инвентарь дома",
"HeaderBusinessFloorItemList": "Инвентарь бизнеса (Продажа)",
"HeaderBusinessStorageItemList": "Инвертарь бизнеса (Хранилище)",
"HeaderItemItemList": "Инвентарь {1}",
"ItemSlotNotNumber": "Слот предмета должен быть цифрой",
"ItemSlotMustBeBetween": "Слот этого предмета должен находиться между {1} и {2}!",
"UseItemBugged": "Предмет который вы пытаетесь использовать забагован. Баг репорт был послан разработчикам сервера.",
"PickupItemBugged": "Предмет который вы пытаетесь поднять забагован. Баг репорт был послан разработчикам сервера.",
"DropItemBugged": "Предмет который вы пытаетесь выкинуть забагован. Баг репорт был послан разработчикам сервера.",
"HandsBusy": "Ваши руки заняты",
"CantUseItemInSkinChange": "Вы не можете использовать предметы когда вы меняете свой облик",
"CantDropItemInSkinChange": "Вы не можете кидать предметы когда вы меняете свой облик",
"CantPickupItemInSkinChange": "Вы не можете подбирать предметы когда вы меняете свой облик",
"CantSwitchItemInSkinChange": "Вы не можете переключать предметы когда вы меняете свой облик",
"CantGiveItemInSkinChange": "Вы не можете давать предметы когда вы меняете свой облик",
"CantTakeItemInSkinChange": "Вы не можете брать предметы когда вы меняете свой облик",
"ItemUnequippableNoAmmo": "{1} на слоте {2} не имеет патронов и не может быть экипирован!",
"NoSpaceSelfInventory": "У вас не осталось места в инвентаре",
"Business": "бизнес",
"House": "дом",
"Clan": "клан",
"Vehicle": "транспорт",
"Item": "предмет",
"ItemType": "тип предмета",
"Gate": "ворота",
"Door": "двери",
"ClanRank": "Ранг клана",
"JobRank": "Ранг работы",
"RadioStation": "радиостанция",
"Months": [
"Январь",
"Февраль",
"Март",
"Апрель",
"Май",
"Июнь",
"Июль",
"Август",
"Сентябрь",
"Октябрь",
"Ноябрь",
"Декабрь"
],
"WeekDays": [
"Воскресенье",
"Понедельник",
"Вторник",
"Среда",
"Четверг",
"Пятница",
"Субота"
],
"CardinalDirections": {
"North": "Север",
"Northeast": "Северо-восток",
"East": "Восток",
"Southeast": "Юго-восток",
"South": "Юг",
"Southwest": "Юго-запад",
"West": "Запад",
"Northwest": "Северо-запад"
},
"NewPlayerReadyToPlay": [
"Вам было надано немного денег. Используйте {1} чтобы найти места в которых можно купить предметы.",
"Если вам нужны деньги, желтые точки это места работы на карте.",
"Если вам нужен транспорт, посетите автосалон. Вы также можете использовать орендовочный транспорт возле начальной зоны или сесть на поезд",
"Не забудьте ознакомиться с {1} и использовать {2} для информации."
],
"YourCurrentVehicleDeleted": "Транспорт в котором вы находились было удалено.",
"Distance": "Дистанция",
"Meters": "Метров",
"Feet": "Футов",
"Kilometers": "Километры",
"Miles": "Мили",
"MustBeVehicleDriver": "Вы можете быть только водителем!",
"PlayerJoinedServer": "{1} присоеденился к игре из {2}!",
"PlayerLeftServer": "{1} покинул игру! ({2})",
"TakeItemFromHouse": "Берет {1} из дома",
"TakeItemFromBusinessStorage": "Берет {1} из хранилища",
"TakeItemFromBusiness": "Берет {1} из бизнеса",
"TakeItemFromItem": "Достает {1} из {2}",
"TakeItemFromVehicleTrunk": "Достает {1} из багажника",
"TakeItemFromVehicleDash": "Достает {1} из бардачка",
"AccountHelp": [
"Не предоставляйте свой пароль никому. {1} персонал никогда не будет спрашивать у вас пароль ",
"Используйте {1} чтобы изменить ваш пароль, и {2} если вы его забыли",
"Некоторые опции: {1}"
],
"VehicleHelp": [
"Ваш личный транспорт будет сохранен в любом месте где вы, или кто-либо другой его оставит!",
"Посетите автосалон чтобы приобрести новый транспорт (Используйте {1} чтобы увидеть больше информации)",
"Некоторые комманды: {1}",
"Посетите гараж механика чтобы починить, изменить цвет, и затюнинговать ваш автомобиль! {1} для информации"
],
"VehicleDealershipHelp": [
"Посетите автосалон чтобы приобрести новый транспорт. Используйте {1} чтобы найти его.",
"Ввойдите в транспорт который вы хотите приобрести, и цена на него будет вам показана",
"Если хотите приобрести транспорт, используйте {1} и вам дадут ключи чтобы провести тест-драйв на парковке.",
"Покиньте автосалон на вашем новом транспорте чтобы подвердить покупку."
],
"JobHelp": [
"Посетите места работы, получите работу и зарабатывайте деньги. Ищите желтые точки на карте",
"На месте работы, используйте {1} чтобы получить работу. Используйте {2} чтобы оставить работу",
"Используйте {1} чтобы начать работать. Вы также можете получить работу {2} и {3}",
"Большинство рабочего транспорта изначально закрыто. Используйте {1} находясь возле него чтобы войти.",
"Во время входа в рабочий транспорт, информация о том, как работать будет вам предоставлена."
],
"ChatHelp": [
"Существуют два основных типов чата: внутри персонажа и вне его",
"Смешивать их не считается полноценной ролевой игрой. Просмотрите {1} для информации.",
"Некоторые комманды чата: {1}",
"Некоторые имеют укороченые версии ({1} чтобы говорить, {2} чтобы выкрикивать, и так далее)"
],
"ServerRulesHelp": [
"Нереалистичные действия запрещены. Вы не супермен.",
"Ролевая игра за террориста и терроризм запрещены.",
"Всегда следуйте соблюдайте инструкии даные модератором или администратором.",
"Вам не позволяется использовать информацию полученую вне персонажа, персонажем ",
"Пожалуйста придерживаетесь английского в главном чате, если вы плохо знаете английский, используйте {1}"
],
"AnimationHelp": [
"Анимации позволяют вам улучшить составляющую ролевой игры с помощью визуальных действий",
"Используте {1} или {2} с названием тобы применить анимацию.",
"Чтобы просмотреть список доступных анимаций, используйте {1}"
],
"WeaponHelp": [
"Посетите магазин оружия что-бы приобрести оружие. Используйте {1} чтобы найти.",
"Оружие невозможно купить без лицензии.",
"Лицензиями на оружие занимается отделение полиции. Обратитесь туда чтобы заполучить лицензию.",
"Оружие также может быть приобретено нелегально от некоторых бизнесов, торговцев оружием, и кланов."
],
"SkinHelp": [
"В магазине одежды используйте {1} чтобы купить одежду",
"Когда у вас есть предмет одежды, экипируйте его и используйте его как любой другой предмет чтобы просмотреть меню выбора облика персонажа (Просмотрите {1} чтобы научиться использовать предметы)",
"Некоторые облики ограничены только для некоторых работ, кланов, или по каким-то другим причинам."
],
"KeyBindHelp": [
"Вы можете сами создавать ваши привязки на кнопки. Используйте {1} чтобы просмотреть ваши привязки.",
"Используйте {1} чтобы добавить новую приязку или {2} чтобы убрать ее.",
"Стандартные привязки: {1} для мотора, {2} для фар, и {3} для открытия/закрытия",
"Используйте {1} чтобы просмотреть ваши предметы {2} чтобы экипировать предмет или {3} чтобы убрать.",
"Используйте {1} чтобы использвать предмет который вы держите в руках, используйте {2} чтобы его выбростить, или используйте {3} чтобы подобрать предмет."
],
"BusinessHelp": [
"Используйте {1} чтобы покупать предметы или {2} чтобы просмотреть список того, что продаеться в любом бизнесе",
"Бизнес имеет название синим цветом над иконкой возле входа.",
"Комманды владельца бизнеса: {1}",
"Новый автомобиль появится после того как вы уедете из автосалона."
],
"ClanHelp": [
"Попросите администратора чтобы основать клан",
"Владельцы клана имеют полный контроль над ихним кланом после его основания",
"Комманды клана: {1}",
"Больше комманд клана: {1}"
],
"RadioStationHelp": [
"Используйте {1} чтобы выбрать радиостанцию для вашего траспорта, дома, или бизнеса",
"Используйте {2} чтобы просмотреть список радиостанций",
"Вы можете изменить громкость радио используя {1} с 0-100 в качестве процентов"
],
"WealthAndTaxHelp": [
"Вы платите {1} процентов от вашего расчетного уровня достатка.",
"Ваш расчетный уровень достатка зависит от того, сколько вам принадлежит транспорта, домов и бизнесов.",
"Каждый транспорт это {1}, каждый дом это {2}, И каждый бизнес это {3}",
"Используйте {1} чтобы просмотреть ваш текущий достаток, и {2} чтобы просмотреть сколько вы платите налогов с каждой зарплаты"
],
"MustBeInAVehicle": "Вы должны быть внутри транспорта!",
"MustBeInOrNearVehicle": "Вы должны быть возле транспорта!",
"MustBeInVehicleFrontSeat": "Вы можете сидеть только спереди!",
"MustBeInVehicleDriverSeat": "Вы можете быть только водителем!",
"DontHaveVehicleKey": "У вас нет ключей к этому транспорту!",
"NoGateAccess": "У вас нет доступа к воротам!",
"GateBroken": "Эти ворота сломаны!",
"GateHacked": "Ворота не отвечают!",
"RadioJammed": "Из радио доносится лишь шум.",
"VehicleNotForSale": "Этот транспорт не продается!",
"VehicleNotForRent": "Этот транспорт не сдается в оренду! ",
"BusinessNotForSale": "Этот бизнес не продается!",
"BusinessNotForRent": "Этот бизнес не сдается в оренду!",
"HouseNotForSale": "Этот дом не продаеться!",
"HouseNotForRent": "Этот дом не сдаеться в оренду!",
"DealershipPurchaseTestDrive": "Уедьте из автосалона чтобы подтвердить покупку транспорта, или выйдете из него чтобы отменить.",
"DealershipPurchaseExitedVehicle": "Вы отменили покупку транспорта покинув его!",
"VehiclePurchaseComplete": "Этот транспорт теперь принадлежит вам! Он останется там где вы его оставили.",
"VehiclePurchaseNotEnoughMoney": "у вас недостаточно денег для покупки этого транспорта!",
"HousePurchaseNotEnoughMoney": "У вас недостаточно денег для покупки этого дома!",
"BusinessPurchaseNotEnoughMoney": "У вас недостаточно денег для покупки этого бизнеса!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Дома Игрока ({1})",
"HeaderPlayerStaffFlagsList": "Флаги игрока персонала ({1})",
"HeaderStaffFlagsList": "Флаги персонала",
"NonRPName": "Ваше имя не подходит для ролевой игры! Выберете другое:",
"InvalidStaffFlag": "Не удалось найти флаг персонала!",
"InvalidClanFlag": "Не удалось найти флаг клана!",
"InvalidLocale": "Не удалось найти язык!",
"HeaderJobUniformList": "Рабочие униформы ({1})",
"HeaderJobEquipmentList": "Рабочие снаряжение ({1})",
"InvalidJobUniform": "Не удалось найти рабочую униформу!",
"InvalidJobEquipment": "Не удалось найти рабочее снаряжение!",
"HeaderVehiclesInRangeList": "Транспорт в пределах {1}",
"NoVehiclesWithinRange": "Нет транспорта в пределах {1}",
"AmountNotNumber": "Количество должно быть введено цифрой!",
"NeedToBeWorking": "Вы должны быть на работе! Используйте {1} на месте работы или возле рабочего транспорта.",
"NeedToBeOnJobRoute": "Вы должны быть на рабочем маршруте! Используйте {1} в рабочем транспорте",
"CurrentJobRouteVehicleColoursChanged": "Цвет транспорта на маршруте был изменен администратором",
"NotYourJob": "Это работа пренадлежит не вам!",
"JobPoints": "Вы можете устроиться на работу ориентируясь по желтым значкам на карте.",
"QuitJobToTakeAnother": "Если хотите покинуть работу, ипользуйте {1}.",
"NotAJobVehicle": "Это не рабочий транспорт!",
"NotYourJobVehicle": "Этот транспорт пренадлежит не вашей работе!",
"HeaderPickupTypes": "Типы подбираемых предметов",
"HeaderBlipTypes": "Типы иконок карты",
"InvalidGPSLocation": "Не существует локаций с таким именем или такого типа",
"HeaderBusinessList": "Бизнес",
"VehicleForSale": "Этот {1} можно купить за {2}! Используйте {3} если хотите его купить",
"VehicleForRent": "Этот {1} может быть орендован за {2}! Используйте {3} если хотите его орендовать",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Неправильный пароль! Осталось {1} попыток",
"LoginFailedNoPassword": "Вы должны ввести пароль! Осталось {1} попыток",
"RegistrationFailedNoPassword": "Вы должны ввести пароль!",
"RegistrationFailedNoPasswordConfirm": "Вы должны подтвердить пароль!",
"RegistrationFailedNoEmail": "Вы должны ввести адрес электронной почты!",
"AccountNameAlreadyRegistered": "Ваше имя уже зарегистрировано!",
"AlreadyLoggedIn": "Вы уже вошли!",
"RegistrationFailedInvalidEmail": "Такого адреса не существует!",
"RegistrationFailedPasswordMismatch": "Пароли не совпадают!",
"RegistrationFailedCreateError": "Не удалось создать аккаунт!",
"RegistrationSuccess": "Ваш аккаунт был успешно создан!",
"RegistrationEmailVerifyReminder": "Не забудьте подтвердить ваш электронный адрес, код подверждения был послан вам на электронную почту.",
"RegistrationCreateCharReminder": "Чтобы играть на сервере, вам нужно будет создать персонажа.",
"NoCharactersGUIMessage": "У вас нет персонажей. Не хотите создать?",
"NoCharactersGUIWindowTitle": "Нет персонажей",
"NoCharactersChatMessage": "У вас нет персонажей. Используйте {1} чтобы создать.",
"NeedEmailFor2FA": "Вам нужно добавить ваш адрес электронной почты чтобы использовать двухфакторную аунтентификацию.",
"NeedEmailVerifiedFor2FA": "Вам нужно подтвердить вашу электронную почту чтобы использовать двухфакторную аунтентификацию.",
"SetEmailHelpTip": "Используйте {1} чтобы установить ваш адрес электронной почты.",
"VerifyEmailHelpTip": "Используйте {1} чтобы подтвердить ваш адрес электронной почты.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Ближайшее радио",
"FromRadio": "Из радио",
"ToRadio": "В радио",
"NeedToEnterPropertyCommand": "Вам нужно сначало ввести {1}! Используйте {2} чтобы выйти",
"NeedToEnterPropertyKeyPress": "Вам нужно сначало ввести {1}! Используйте {2} чтобы выйти",
"InventoryFullCantCarry": "У вас недостаточно места в инвентаре(Инвентарь заполнен)!",
"NotEnoughCashNeedAmountMore": "У вас недостаточно денег! У вас не хватает {1}!",
"AmountMustBeMoreThan": "Количество должно быть больше {1}!",
"WeaponBanned": "Вам нельзя покупать оружие!",
"TimeNotNumber": "Время должно быть назначено цифрой",
"HeaderDefaultBusinessItemTypes": "Шаблоны предметов бизнеса",
"FixingStuck": "Исправляет вашу текущую позицию и виртуальный мир ...",
"CantUseCommandYet": "Подождите некоторое время перед тем как использовать комманду снова!",
"NotATester": "Вы не тестировщик!",
"AccessDenied": "Доступ запрещен",
"InvalidSkin": "Этот скин не правельный!",
"HeaderInteriorTypes": "Список интерьеров",
"GUIAccountSettingToggle": "Вы переключили {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "Вы можете приобрести транспорт посетив автосалон. Используйте {1} чтобы получить больше информации.",
"SkinCommandHelp": "Вы можете изменить ваш скин посети магазин одежды. Используйте {1} чтобы получить больше информации.",
"BusinessVehiclesRespawned": "Весь транспорт был перерожден администратором!",
"JobVehiclesRespawned": "Весь рабочий транспорт был перерожден администратором!",
"PlayerVehiclesRespawned": "Весь транспорт игроков был перерожден администратором!",
"ClanVehiclesRespawned": "Весь транспорт клана был перерожден администратором!",
"PublicVehiclesRespawned": "Весь общественный транспорт был перерожден администраторм!",
"EmptyVehiclesRespawned": "Весь пустой транспорт был перерожден администратором!",
"AllVehiclesRespawned": "Весь транспорт был перерожден администраторм!",
"AllVehiclesReloaded": "Весь транспорт был перерожден адиминистратором!",
"YourVehicleRespawned": "Ваш транспорт был перерожден",
"PlayerIPBanned": "{1} IP получил бан!",
"PlayerCharacterBanned": "{1} получил бан персонажа!",
"PlayerSubNetBanned": "{1} получил бан по подсети!",
"CantModifyBusiness": "Вы не можете изменять или управлять этим бизнесом",
"CantModifyHouse": "Вы не можете изменять или управлять этим бизнесом",
"ServerTimeSet": "{1} Установил время на {2}",
"ServerWeatherSet": "{1} Установил погоду на {2}",
"ServerSnowSet": "{1} Установил падающий снег {2} и лежачий снег {3}",
"AllJobsReloaded": "Все работы были перезагружены администратором",
"ServerLogoSet": "{1} переключил лого сервера {2}",
"ServerGUISet": "{1} переключил GUI для этого сервера {2}",
"ServerBusinessBlipsSet": "{1} переключил все значки бизнеса {2}",
"ServerHouseBlipsSet": "{1} переключил все значки бизнеса {2}",
"ServerJobBlipsSet": "{1} переключил все значки работы {2}",
"ServerBusinessPickupsSet": "{1} переключил все пикапы бизнеса {2}",
"ServerHousePickupsSet": "{1} переключил все пикапы домов {2}",
"ServerJobPickupsSet": "{1} переключил все пикапы бизнеса {2}",
"BusinessBuyItemsLabel": "Используйте {1} чтобы покупать предметы",
"PropertyEnterCommandLabel": "Используйте {1} чтобы войти",
"PropertyEnterKeyPressLabel": "Используйте {1} чтобы войти",
"PropertyForSaleLabel": "Продается: {1}",
"PropertyForRentLabel": "Можно взять в оренду: {1} с каждой заработной выдачи",
"RemainingTaxPaidInMoney": "Вы покрыли оставшиеся налоги использовав {1} денег.",
"LostMoneyFromTaxes": "Вы теряете деньги из-за того что ваши налоги выше вашей заработной выдачи!",
"NextPaycheckRepossessionWarning": "Если у вас не будет достаточно денег чтобы покрыть налоги начнется конфискация имущества!",
"NotEnoughMoneyForTax": "У вас недостаточно денег чтобы покрыть налоги!",
"AssetsRepossessedForTax": "Вы потеряли {1} транспорта, {2} дома, и {3} бизнеса потому-что не смогли выплатить налоги!",
"Closed": "Закрыто",
"Open": "Открыто",
"VehicleDealershipLabel": "Войдите внутрь транспорта для его покупки",
"TakeJobLabel": "Используйте {1} чтобы начать работать здесь",
"StartWorkLabel": "Используйте {1} чтобы выйти на работу",
"JobEquipAndUniformLabel": "Используйте {1} и {2} для вашего рабочего снаряжения, или {3} чтобы прекратить работу",
"NotYourJobLabel": "У вас уже есть работа. Используйте {1} если вам эта больше по душе",
"JobLabel": "{1} Работа",
"BonusSet": "🤑 {1} установил бонус заработной платы {2}",
"AllHousesReloaded": "🏘️ Все дома были перезагружены администратором",
"AllRadioStationsReloaded": "📻 Все радиостанции были перезагружены администратором!",
"PlayerKicked": "🦶 {1} был выкинут из сервера",
"AllBusinessesReloaded": "🏢 Весь бизнес был перезагружен администратором!",
"UnableToDoThat": "Вы не можете это сделать",
"SetVehicleClanConfirmMessage": "Вы уверены что хотите предать этот автомобиль клану?",
"SetVehicleClanConfirmTitle": "Предостережение!",
"SetItemPriceBelowOrderPriceMessage": "Вы уверены что хотите установить цену товара ниже его закупочной цены, вы будете терять {1} с каждой покупки!",
"SetItemPriceBelowOrderPriceTitle": "Предостережение!",
"MustOwnVehicle": "Этот автомобиль пренадлежит не вам!",
"RandomTips": [
"Ищите желтые точки на карте чтобы найти место работы",
"Вы можете установить собственные привязки. Используйте {1} для более детальной информации",
"Используйте {1} если хотите увидеть подсказки и дополнительную информацию",
"Вы можете изменять ваши превязки используя {1} и {2}",
"Используйте чтобы просмотреть ваш инвентарь и используйте цыфры для выбора",
"Используйте {1} возле бизнеса чтобы покупать предметы",
"Нашли ошибку? Используйте чтобы дать нам знать {1}",
"Есть какие то идеи или предложения? Дайте знать разработчикам используя {1}",
"Хотите купить бизнес? Используйте {1} возле одного из них",
"Хотите купить дом? Используйте {1} возле одного из них",
"Хотите приобрести автомобиль? посетите автосалон!",
"Переключайтесь между персонажами с помощью {1}",
"Используйте {1} чтобы автоматически подключать после входа из того же IP",
"Используйте {1} чтобы выключить/выключить свет внутри бизнеса или дома",
"Используйте {1} чтобы слушать интернет радио в автомобиле, дома, или внутри бизнеса",
"Хотите создать клан? Используйте {1} чтобы узнать подробности",
"Легальное оружие можно приобрести в аммунации"
],
"PromptResponseTip": "Используйте {1} чтобы подтвердить или {2} чтобы отклонить",
"PlayerConnecting": "👋 {1} подключается",
"GetStartedJobVehicle": "Войдите внутрь {1} чтобы начать.",
"VehicleTypes": {
"Car": "Автомобиль",
"Truck": "Грузовик",
"Van": "Фургон",
"Taxi": "Такси",
"Bus": "Автобус",
"PoliceCar": "Полицейская машина",
"Ambulance": "Машина скорой помощи",
"FireTruck": "Пожарная машина",
"Bike": "Велосипед",
"Motorbike": "Мотоцикл",
"Boat": "Лодка",
"Helicopter": "Вертолет",
"Plane": "Самолет",
"Train": "Поезд"
},
"AlreadyOnJobRoute": "Вы уже на маршруте!",
"GaveVehicleToClan": "Вы передали {1} вашему клану!",
"JobDisabled": "Ваша работа сейчас отключена!",
"SetHouseClanConfirmMessage": "Вы уверены что хотите передать этот дом клану?",
"SetHouseClanConfirmTitle": "Предосторежение!",
"SetBusinessClanConfirmMessage": "Вы уверены что хотите передать этот бизнес клану?",
"SetBusinessClanConfirmTitle": "Предосторежение!",
"MustOwnHouse": "Этот дом пренадлежит не вам!",
"MustOwnBusiness": "Этот бизнес пренадлежит не вам!",
"GaveHouseToClan": "Вы передали этот дом клану!",
"GaveBusinessToClan": "Вы передали ваш бизнес клану!",
"BuyBusinessConfirmMessage": "Вы уверены что хотите купить этот бизнес?",
"BuyBusinessConfirmTitle": "Внимание!",
"BuyHouseConfirmMessage": "Вы уверены что хотите купить этот дом?",
"BuyHouseConfirmTitle": "Внимание!",
"BuyBusinessLabel": "Используйте {1} чтобы купить этот бизнес",
"BuyHouseLabel": "Используйте {1} чтобы купить этот дом",
"RentHouseLabel": "Используйте {1} чтобы снять этот дом",
"AccountEmailAlreadyVerified": "Вы уже установили и подтвердили ваш адрес элекронной почты!",
"EmailVerificationCodeSent": "Код подтверждения и дальнейшие инструкции были посланы на ваш адрес электронной почты.",
"GUIPlayAsCharacterButton": "Играть",
"GUINewCharacterButton": "Новый персонаж",
"GUIPreviousCharacterButton": "Назад",
"GUINextCharacterButton": "Далее",
"GUICharacterSelectWindowTitle": "Выбрать Персонажа",
"GUICharacterSelectMoneyLabel": "Деньги: {1}",
"GUICharacterSelectClanLabel": "Клан: {1}",
"GUICharacterSelectLastPlayedLabel": "В последний раз играли: {1} дней, {2} часов, {3} минут назад",
"GUILoginWindowLabelEnterPassword": "Пожалуйста введите ваш пароль",
"GUILoginWindowSubmitButton": "Вход",
"GUILoginWindowResetPasswordButton": "сбросить",
"GUILoginWindowPasswordPlaceholder": "Пароль",
"GUILoginWindowForgotPasswordLabel": "Забыли пароль?",
"GUIRegisterWindowLabelCreateAccount": "Создать Аккаунт",
"GUIRegisterWindowPasswordPlaceholder": "Пароль",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Подтвердить пароль",
"GUIRegisterWindowEmailPlaceholder": "Электронный адрес",
"GUIRegisterWindowSubmitButton": "Создать персонажа",
"GUINewCharacterMessageLabel": "Назвите Вашего Персонажа",
"GUINewCharacterFirstNamePlaceholder": "Имя",
"GUINewCharacterLastNamePlaceholder": "Фамилия",
"GUINewCharacterSubmitButton": "Создать нового пероснажа",
"GUIChangePasswordWindowTitle": "Изменить пароль",
"GUIChangePasswordPasswordLabel": "Введите новый пароль",
"GUIChangePasswordPasswordPlaceholder": "Пароль",
"GUIChangePasswordConfirmPasswordPlaceholder": "Подтвердить Пароль",
"GUIChangePasswordSubmitButton": "Изменить Пароль",
"GUIResetPasswordWindowMessage": "Сбросить Пароль",
"GUIResetPasswordConfirmEmailLabel": "Пожалуйста подтвердите свой электронный адрес",
"GUIResetPasswordEmailPlaceholder": "Электронный адрес",
"GUIResetPasswordSubmitButton": "Сбросить пароль",
"GUIResetPasswordLoginButton": "Вход",
"GUIResetPasswordRememberMessage": "Помните свой пароль?",
"HeaderJobList": "Работа",
"HeaderBusinessInfo": "Информация о бизнесе",
"HeaderHouseInfo": "Информация о доме",
"HeaderClanInfo": "Информация о клане",
"Locales": {
"English": "Английский",
"Russian": "Русский",
"Spanish": "Испанский",
"German": "Немецкий",
"Dutch": "Нидерландский",
"Polish": "Польский",
"Chinese": "Китайский",
"French": "Французкий",
"Japanese": "Японский",
"Slovak": "Словацкий",
"Arabic": "Арабский"
},
"TwoFactorAuthSet": "⚙️ Вы переключили двух факторную аутентификацию на {1}",
"AccountServerLogoSet": "⚙️ Вы переключили лого сервера на {1}",
"ChatScrollLinesNotNumber": "Количество строк должно быть описано в цыфре",
"ChatScrollLinesMustBeBetween": "Количесто строк должно находится между {1} и {2}",
"ChatScrollLinesSet": "Лог чата теперь будет крутить {1} строк за раз",
"InvalidEmailVerificationCode": "Не правильный код подтверждения! Новый код был выслан вам на адрес электронной почты.",
"EmailVerified": "Вы подтвердили ваш адрес",
"EmailVerifiedTip": "Вы можете использовать ваш электонный адрес для сброса пароля, двух факторной аутинтефикации, сообщений об входе, и больше",
"CommandRequiresLogin": "Вы должны войти чтобы использовать команду {1}",
"CommandDisabled": "Команда {1} отключена",
"CommandDisabledOnDiscord": "Команда {1} не доступна в Discord-e",
"CommandNotFoundHelpTip": "Команда {1} не существует! Используйте {2} для команд и информации.",
"CommandNotFoundPossibleMatchTip": "Команда {1} не существует! Возможно вы имели ввиду {2}?",
"CommandNoPermissions": "У вас нет прав использовать команду {1}",
"GUIResetPasswordCodeInputLabel": "Проверьте вашу почту на наличие пароля",
"GUIResetPasswordCodePlaceholder": "Код подтверждения",
"GUIErrorTitle": "Ошибка",
"GUIWarningTitle": "Предосторежение",
"GUIInfoTitle": "Информация",
"GUIOkButton": "Ок",
"GUIErrorResetPasswordFailedInvalidEmail": "Неправельный адрес!",
"HeaderVehicleInfo": "Информация о транспорте",
"HeaderClanRanksList": "Клановый Ранг",
"HeaderNPCInfo": "NPC Инфо",
"NPCAnimationSet": "Вы установили анимацию NPC {1} на {2}",
"NPCNameSet": "Вы установили имя NPC {1} на {2}",
"VehicleTooFar": "Вы слишком далеко от транспорта!",
"HeaderPropertyTemplateTypes": "Типы имуществ",
"MustBeLoggedInAndSpawnedToChat": "Вы должны войти и возродиться перед тем как использовать чат!",
"MutedCantChat": "Вас мутнули, вы не можете чаттить!",
"CantUseMegaphone": "Вы должны экипировать предмет мегафон или быть в служебном транспорте!",
"HeaderAnimationHelp": "Инфо Анимации",
"HeaderBadgeInfo": "Значки Инфо ({1})",
"NoItemCloseEnough": "Нет предметов достаточно близких у вам",
"CantDropJobEquipmentItem": "Рабочие предметы не могут быть выкинуты",
"CantPutJobEquipmentItem": "Вы не можете сохранять рабочие предметы",
"NoItemEquipped": "Нет выбраных предметов",
"NoItemInActiveSlot": "Нет предмета в активном слоте",
"CantPutItemInSkinChange": "Вы неможете сохранять предметы когда вы кастомизируете свою облик",
"NothingToTakeItemFrom": "Вы не находитесь возле ничего из чего можно было бы звять предмет",
"NoAmmoToLoadIntoWeapon": "У вас нет патронов чтобы зарядить в {1}",
"LoadAmmoIntoWeaponHelpCommand": "Чтобы зарядить патроны экипируйте оружие и используйте {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "Чтобы зарядить патроны экипируйте оружие и нажмите {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Нет никого по близости чтобы вас связать",
"PlayerNotSurrenderedHandcuff": "{1} не может быть повязан, или руки должны быть подняты, или он должен быть вырублен или шокнут тейзером",
"PlayerNotSurrenderedTie": "{1} не может быть связан, он должен поднять руки, быть вырублен или шокнут тейзером",
"HeaderCharactersListSelf": "Ваши Персонажи",
"HeaderCharactersListOther": "Персонажи {1}",
"CharacterSelectHelpText": "Используйте {1} чтобы выбрать персонажа, или {2} чтобы создать нового",
"ItemDoesntDoAnythingOnUse": "{1} ничего не делает когда вы его используете.",
"ItemRadioStationTip": "Используйте {1} чтобы выбрать радиостанцию",
"VehicleLockedCommandTip": "🔒 Этот {1} закрыт. Используйте {2} чтобы его открыть",
"VehicleLockedKeyPressTip": "🔒 Этот {1} закрыт. Нажмите {2} чтобы его открыть",
"VehicleLockedCantUnlock": "🔒 Этот {1} закрыт и у вас нет ключа чтобы его открыть",
"CurrentlyRentingThisVehicle": "Вы снимаете {1} по {2} за минуту. Используйте {3} чтобы перестать снимать.",
"VehicleBelongsTo": "Этот {1} пренадлежит {2} ({3})",
"NotOwned": "Никому не пренадлежит",
"NotCloseEnoughToItemContainer": "Нет ничего поблизости чтобы местило предметы",
"Job": "Работа",
"Player": "Игрок",
"BusinessIsNowPaintBall": "Этот бизнес теперь арена для пейнтбола",
"JoinedPaintBall": "Вы пресоиденились к пейнтболу.",
"ItemsStoredForPaintBall": "Ваши предметы сохранены и будут возращены вам когда вы закончите сессию пейнтбола",
"LeftPaintBall": "Вы покинули пейнтбол и ваши предметы были возвращены.",
"PaintBallEnded": "Эта сессия пейнтбола была закончена и ваши предметы были возвращены.",
"HeaderEventWinners": "Победители",
"YourPaintBallResults": "Вы заработали {1} убийств и {2} смертей во время сессии",
"NoPrivateMessageToReply": "Вы не получили приватное сообщения которому можно было бы ответить",
"WeaponDoesNotUseAmmo": "У {1} нет патронов",
"ChatBoxTimestampsToggle": "Вы переключили дисплей времени в чате на {1}",
"ProfanityFilterSet": "Вы переключили цензуру чата на {1}",
"ResetAllKeyBindsConfirm": "Вы уверены что хотите сбросить все привязаные клавишы?",
"NotRentingAVehicle": "Вы не снимаете транспорт!",
"StoppedRentingVehicle": "Вы перестали снимать {1}",
"VehicleEngineStartKeyPressTip": "Двигатель {1} сейчас не в работе. Используйте {2} чтобы запустить его.",
"VehicleEngineStartCommandTip": "Двигатель {1} сейчас не в работе. Используйте {2} чтобы его запустить.",
"StartedRentingVehicle": "Теперь вы снимаете {1} по {2} за минуту. Чтобы прекратить это используйте {3}",
"VehicleAlreadyRentedByOther": "Этот транспорт уже снимается",
"VehicleAlreadyRentedBySelf": "Вы уже снимаете этот транспорт",
"JobRankTooLow": "Ваш ранк не достаточно высок!",
"InvalidKeyName": "Ключевое Айди или имя которое вы вводили неправильно!",
"KeyBindsReset": "Все ваши привязки были сброшены",
"KeyBindNameTip": "Используйте простые клавиши или айди без пробелов.",
"UniversalInlineExamplesList": "Примеры: {1}",
"KeyBindRemoved": "Вы удалили привязку с клавиши {1}",
"KeyBindAdded": "Вы привязали кнопку {1} на {2}",
"CopyAllKeyBindsToServerConfirm": "Вы уверены что хотите скопировать все привязки на {1} сервер?",
"CopiedAllKeyBindsToServer": "Все ваши привязки были скопированы на {1} сервер",
"MustBeSpawned": "Вы долно сначало возродиться!",
"ChatEmojiSet": "Вы переключили ауто имодзи на {1}",
"FishingLineNotCast": "Ваша рыболовная сетка не были розкинута!",
"CantFishHere": "Вы не можете здесь рыбачить, вы должны быть или возле воды или на лодке!",
"NeedFishingRod": "Вы должны держать удочку!",
"FishingCastCommandHelp": "Используйте {1} чтобы бросить сетку",
"FishingCastKeyBindHelp": "Используйте {1} чтобы бросить сетку",
"Paused": "Пауза",
"PaintBallAlmostWin": "{1} осталось еще {2} убийтв чтобы выиграть пейнтбольную сессию!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOnOff": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

752
locale/slovak.json Normal file
View File

@@ -0,0 +1,752 @@
{
"TranslationProvidedBy": "ZaKlaus",
"LocaleEnglishName": "Slovak",
"LocaleNativeName": "Slovak",
"LocaleOffer": "This server is available in Slovak. Use {1} to use it.",
"LocaleChanged1": "Your language is now set to {1}",
"LocaleChanged2": "The server will now display messages in {1}",
"LocaleChangedNote": "This does not change messages from other players",
"AccentsListHeader": "Accents",
"HelpMainListHeader": "Help Categories",
"AccentNotFound": "Accent not found",
"AccentSet": "You set your accent to {1}",
"InvalidAnimation": "That animation doesn't exist",
"AnimationCommandTip": "Use {1} to see a list of valid animations",
"InvalidAnimationDistance": "The distance must be between 0 and 3",
"CantBanClient": "You cannot ban this person",
"PlayerAccountBanned": "{1} has been account banned",
"ClanNotFound": "Clan not found",
"ClanNameTaken": "A clan with that name already exists",
"PlayerNotFound": "Player not found",
"ClanCantRemoveRanks": "You can't remove clan ranks",
"ClanCantAddRanks": "You can't add clan ranks",
"ClanRankNotFound": "Clan rank not found",
"ClanCantChangeMemberTag": "You can not change clan member's tags",
"ClanPlayerNotInSameClan": "That player is not in your clan",
"ClanCantChangeRankLevel": "You can not change clan rank's level",
"ClanCantChangeRankTag": "You can not change clan rank's tags",
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
"RandomTipsToggle": "Random tips are now {1}",
"ActionTipsToggle": "Action tips are now {1}",
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
"AccountGUISettingToggle": "GUI is now {1}",
"On": "On",
"Off": "Off",
"Yes": "Yes",
"No": "No",
"True": "True",
"False": "False",
"Locked": "Locked",
"Unlocked": "Unlocked",
"PasswordNotGoodEnough": "The new password must meet the requirements!",
"PasswordNeedsBase": "Passwords must have at least {1}",
"PasswordNeedsCapitals": "{1} capital letters",
"PasswordNeedsNumbers": "{1} numbers",
"PasswordNeedsSymbols": "{1} symbols",
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
"PasswordChanged": "Your password has been changed!",
"AutoLoggedInIP": "You have been automatically logged in by IP!",
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
"InvalidPlayer": "Player not found!",
"InvalidBusiness": "Business not found!",
"InvalidHouse": "House not found!",
"InvalidVehicle": "Vehicle not found!",
"InvalidClan": "Clan not found!",
"InvalidClanRank": "Clan rank not found!",
"InvalidJob": "Job not found!",
"InvalidItem": "Item not found!",
"InvalidItemType": "Item type not found!",
"InvalidRadioStation": "Radio station not found!",
"InvalidGate": "Gate not found!",
"EntersProperty": "opens the door and enters the {1} ({2})",
"ExitsProperty": "opens the door and exits the {1} ({2})",
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
"NoBusinessWithItemType": "There is no business with that item available",
"HeaderKeyBinds": "Key Binds",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
"HeaderJobHelp": "Job Help",
"HeaderChatHelp": "Chat Help",
"HeaderServerRules": "Server Rules",
"HeaderWebsiteInfo": "Website",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Animation List",
"HeaderPayAndSprayHelp": "Pay and Spray Help",
"HeaderAmmunationHelp": "Ammunation Help",
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
"HeaderBindableKeysHelp": "Bindable Keys",
"HeaderSkinHelp": "Clothes/Skin Help",
"HeaderBusinessHelp": "Business Help",
"HeaderClanHelp": "Clan Help",
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
"HeaderClansList": "Clan List",
"HeaderAdminsList": "Admin List",
"HeaderAccentsList": "Accent List",
"HeaderPlayerInfo": "Player Information ({1})",
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
"HeaderCommandInfo": "Command Information ({1})",
"HeaderRadioHelp": "Radio Help",
"HeaderRadioStationsList": "Radio Stations",
"HeaderKeyBindsList": "Key Binds List",
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
"VolumeLevelNotNumber": "The volume level must be a number",
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
"HouseDoorLock": "House {1} {2}!",
"BusinessDoorLock": "Business {1} {2}!",
"ServerGameModeRestarting": "The server game mode is restarting!",
"HeaderSelfItemList": "Your Inventory",
"HeaderPlayerItemList": "Player Inventory ({1})",
"HeaderHouseItemList": "House Inventory",
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
"HeaderItemItemList": "{1}'s Inventory",
"ItemSlotNotNumber": "The item slot must be a number",
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
"HandsBusy": "Your hands are busy",
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
"Business": "business",
"House": "house",
"Clan": "clan",
"Vehicle": "vehicle",
"Item": "item",
"ItemType": "item type",
"Gate": "gate",
"Door": "door",
"ClanRank": "clan rank",
"JobRank": "job rank",
"RadioStation": "radio station",
"Months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"WeekDays": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"CardinalDirections": {
"North": "North",
"Northeast": "Northeast",
"East": "East",
"Southeast": "Southeast",
"South": "South",
"Southwest": "Southwest",
"West": "West",
"Northwest": "Northwest"
},
"NewPlayerReadyToPlay": [
"You have been given some cash. Use {1} to find places to buy items.",
"If you need money, jobs are the yellow dots on the radar.",
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
"Be sure to read the {1} and use {2} for info."
],
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
"Distance": "Distance",
"Meters": "Meters",
"Feet": "Feet",
"Kilometers": "Kilometers",
"Miles": "Miles",
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
"PlayerJoinedServer": "{1} has joined the game from {2}!",
"PlayerLeftServer": "{1} has left the game! ({2})",
"TakeItemFromHouse": "takes a {1} from the house",
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
"TakeItemFromBusiness": "takes a {1} from the business",
"TakeItemFromItem": "takes a {1} from the {2}",
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
"AccountHelp": [
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
"Use {1} to change your password, and {2} if you forgot it",
"Some settings you can use: {1}"
],
"VehicleHelp": [
"Your personal vehicles will save wherever you or somebody else leaves them!",
"Visit dealerships to buy new vehicles (Use {1} for more information)",
"Some commands: {1}",
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
],
"VehicleDealershipHelp": [
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
"At the dealer, enter a car you want to buy, and the price will be shown to you",
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
"Drive away from the dealership with the new vehicle to confirm the purchase."
],
"JobHelp": [
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
"At a job location, use {1} to get the job. Use {2} to quit your job",
"Use {1} to begin working. You can also get a job {2} and {3}",
"Most job vehicles are locked. Use {1} near one to enter it.",
"When entering a job vehicle, information on how to do the job will be shown to you."
],
"ChatHelp": [
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
"Mixing these two types is not proper roleplay. See {1} for info.",
"Some chat commands: {1}",
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
],
"ServerRulesHelp": [
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
"No terrorist or terrorism roleplay is allowed.",
"Always follow instructions given by moderators and admins.",
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
"Keep English in main chats. If you aren't good at English, use {1}"
],
"AnimationHelp": [
"Animations allow you to enhance roleplay with visual actions",
"Use {1} or {2} with a name to use an animation.",
"To see a list of animations, use {1}"
],
"WeaponHelp": [
"Visit an gun store to buy weapons. Use {1} to find one.",
"Buying a weapon requires a weapon license.",
"Weapon licenses are managed by the police department. Apply there to get one.",
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
],
"SkinHelp": [
"At a clothing store, use {1} to purchase clothes",
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
"Some skins are restricted to jobs, clans, or for other reasons."
],
"KeyBindHelp": [
"You can set your own key binds. Use {1} to see your binded keys.",
"Use {1} to add a new keybind and {2} to remove one.",
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
],
"BusinessHelp": [
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
"Businesses are shown with blue names above the icon at their entrance.",
"Business owner commands: {1}",
"A new car for sale will appear when you drive away from the dealer."
],
"ClanHelp": [
"Ask an administrator to create a clan (Similar to factions/groups/families)",
"Clan owners have full control over their clan once it's created",
"Clan commands: {1}",
"More clan commands: {1}"
],
"RadioStationHelp": [
"Use {1} to set the station for your vehicle, house, or business",
"Use {2} to see a list of stations",
"You can change your radio streaming volume using {1} with 0-100 as the percent"
],
"WealthAndTaxHelp": [
"Your taxes on payday are {1} percent of your calculated wealth.",
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
"Each vehicle is {1}, each house is {2}, and each business is {3}",
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
],
"MustBeInAVehicle": "You need to be in a vehicle!",
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
"MustBeInVehicleDriverSeat": "You need to be the driver!",
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
"NoGateAccess": "You don't have access to this gate!",
"GateBroken": "This gate is broken!",
"GateHacked": "The gate does not respond!",
"RadioJammed": "You hear only static from the radio.",
"VehicleNotForSale": "This vehicle is not for sale!",
"VehicleNotForRent": "This vehicle is not for rent!",
"BusinessNotForSale": "This business is not for sale!",
"BusinessNotForRent": "This business is not for rent!",
"HouseNotForSale": "This house is not for sale!",
"HouseNotForRent": "This house is not for rent!",
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Player Houses ({1})",
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
"HeaderStaffFlagsList": "Staff Flags",
"NonRPName": "Non-RP name! Choose a new one:",
"InvalidStaffFlag": "Staff flag not found!",
"InvalidClanFlag": "Clan flag not found!",
"InvalidLocale": "Language not found!",
"HeaderJobUniformList": "Job Uniforms ({1})",
"HeaderJobEquipmentList": "Job Equipment ({1})",
"InvalidJobUniform": "Job uniform not found!",
"InvalidJobEquipment": "Job equipment not found!",
"HeaderVehiclesInRangeList": "Vehicles within {1}",
"NoVehiclesWithinRange": "There are no vehicles within {1}",
"AmountNotNumber": "The amount must be a number!",
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
"NotYourJob": "This is not your job!",
"JobPoints": "You can get a job by going the yellow points on the map.",
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
"NotAJobVehicle": "This is not a job vehicle!",
"NotYourJobVehicle": "This is not your job's vehicle!",
"HeaderPickupTypes": "Pickup Types",
"HeaderBlipTypes": "Map Icon Types",
"InvalidGPSLocation": "There are no locations with that name or type",
"HeaderBusinessList": "Businesses",
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
"RegistrationFailedNoPassword": "You must enter a password!",
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
"RegistrationFailedNoEmail": "You must enter an email!",
"AccountNameAlreadyRegistered": "Your name is already registered!",
"AlreadyLoggedIn": "You are already logged in!",
"RegistrationFailedInvalidEmail": "That email is invalid!",
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
"RegistrationFailedCreateError": "Your account couldn't be created!",
"RegistrationSuccess": "Your account has been created!",
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
"NoCharactersGUIWindowTitle": "No characters",
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
"SetEmailHelpTip": "Use {1} to set your email.",
"VerifyEmailHelpTip": "Use {1} to verify your email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Nearby radio",
"FromRadio": "From radio",
"ToRadio": "To radio",
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
"AmountMustBeMoreThan": "The amount must be more than {1}!",
"WeaponBanned": "You are not allowed to buy or use weapons!",
"TimeNotNumber": "The time must be a number",
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
"FixingStuck": "Fixing your position and virtual world ...",
"CantUseCommandYet": "You must wait before you can use this command again!",
"NotATester": "You are not a tester!",
"AccessDenied": "AccessDenied",
"InvalidSkin": "That skin is invalid!",
"HeaderInteriorTypes": "Interiors List",
"GUIAccountSettingToggle": "You have turned {1} GUI",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
"BusinessVehiclesRespawned": "All business vehicles have been respawned by an admin!",
"JobVehiclesRespawned": "All job vehicles have been respawned by an admin!",
"PlayerVehiclesRespawned": "All player vehicles have been respawned by an admin!",
"ClanVehiclesRespawned": "All clan vehicles have been respawned by an admin!",
"PublicVehiclesRespawned": "All public have been respawned by an admin!",
"EmptyVehiclesRespawned": "All empty vehicles have been respawned by an admin!",
"AllVehiclesRespawned": "All vehicles have been respawned by an admin!",
"AllVehiclesReloaded": "All vehicles have been reloaded by an admin!",
"YourVehicleRespawned": "Your vehicle has been respawned!",
"PlayerIPBanned": "{1} has been IP banned!",
"PlayerCharacterBanned": "{1} has been character banned!",
"PlayerSubNetBanned": "{1} has been subnet banned!",
"CantModifyBusiness": "You can't manage or modify this business!",
"CantModifyHouse": "You can't manage or modify this house!",
"ServerTimeSet": "{1} set the time to {2}",
"ServerWeatherSet": "{1} set the weather to {2}",
"ServerSnowSet": "{1} turned falling snow {2} and ground snow {3}",
"AllJobsReloaded": "All server jobs have been reloaded by an admin",
"ServerLogoSet": "{1} turned the server logo image {2}",
"ServerGUISet": "{1} turned GUI for this server {2}",
"ServerBusinessBlipsSet": "{1} turned all business blips {2}",
"ServerHouseBlipsSet": "{1} turned all house blips {2}",
"ServerJobBlipsSet": "{1} turned all job blips {2}",
"ServerBusinessPickupsSet": "{1} turned all business pickups {2}",
"ServerHousePickupsSet": "{1} turned all house pickups {2}",
"ServerJobPickupsSet": "{1} turned on all job pickups {2}",
"BusinessBuyItemsLabel": "Use {1} to purchase items",
"PropertyEnterCommandLabel": "Use {1} to enter",
"PropertyEnterKeyPressLabel": "Press {1} to enter",
"PropertyForSaleLabel": "For sale: {1}",
"PropertyForRentLabel": "For rent: {1} every payday",
"RemainingTaxPaidInMoney": "You covered the remaining taxes with {1} in cash.",
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
"Closed": "Closed",
"Open": "Open",
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
"TakeJobLabel": "Use {1} to work here",
"StartWorkLabel": "Use {1} to start working",
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
"JobLabel": "{1} Job",
"PaydayBonusSet": "🤑 {1} set the payday bonus to {2}",
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
"PlayerKicked": "🦶 {1} has been kicked from the server",
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
"UnableToDoThat": "You aren't able to do that",
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
"SetVehicleClanConfirmTitle": "Warning!",
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose {1} every purchase!",
"SetItemPriceBelowOrderPriceTitle": "Warning!",
"MustOwnVehicle": "You don't own this vehicle!",
"RandomTips": [
"Look for yellow dots on your map for job locations",
"You can set custom key binds. Use {1} for details",
"Use {1} if you don't want to see tips and extra information",
"You can edit your keybinds using {1} and {2}",
"Press to see your inventory, and use number keys to select an item",
"Use {1} at a business to purchase items",
"Found a bug? Report it with {1}",
"Have an idea or suggestion for the server? Let the devs know using {1}",
"Want to buy a business? Use /bizbuy at one for sale",
"Want to buy a house? Use /housebuy at one for sale",
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
"Switch to any of your characters with {1}",
"Use {1} to automatically login when connecting with the same IP",
"Use {1} to turn on/off the lights in your house or business",
"Use {1} to play an internet radio station in your car, house, or business",
"Want to make a clan? Use {1} for details",
"Legal weapons can be purchased at any ammunation"
],
"PromptResponseTip": "Use {1} to accept or {2} to decline",
"PlayerConnecting": "👋 {1} is connecting to the server",
"GetStartedJobVehicle": "Get in a {1} to get started.",
"VehicleTypes": {
"Car": "Car",
"Truck": "Truck",
"Van": "Van",
"Taxi": "Taxi",
"Bus": "Bus",
"PoliceCar": "Police Car",
"Ambulance": "Ambulance",
"FireTruck": "Fire Truck",
"Bike": "Bike",
"Motorbike": "Motorbike",
"Boat": "Boat",
"Helicopter": "Helicopter",
"Plane": "Plane",
"Train": "Train"
},
"AlreadyOnJobRoute": "You are already doing a job route!",
"GaveVehicleToClan": "You gave this {1} to your clan!",
"JobDisabled": "This job is disabled!",
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
"SetHouseClanConfirmTitle": "Warning!",
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
"SetBusinessClanConfirmTitle": "Warning!",
"MustOwnHouse": "You don't own this house!",
"MustOwnBusiness": "You don't own this business!",
"GaveHouseToClan": "You gave this house to your clan!",
"GaveBusinessToClan": "You gave this business to your clan!",
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
"BuyBusinessConfirmTitle": "Attention!",
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
"BuyHouseConfirmTitle": "Attention!",
"BuyBusinessLabel": "Use {1} to buy this business",
"BuyHouseLabel": "Use {1} to buy this house",
"RentHouseLabel": "Use {1} to rent this house",
"AccountEmailAlreadyVerified": "You already set and verified your email!",
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
"GUIPlayAsCharacterButton": "Play",
"GUINewCharacterButton": "New character",
"GUIPreviousCharacterButton": "Previous",
"GUINextCharacterButton": "Next",
"GUICharacterSelectWindowTitle": "Select a character",
"GUICharacterSelectMoneyLabel": "Money: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
"GUILoginWindowLabelEnterPassword": "Please enter your password",
"GUILoginWindowSubmitButton": "Login",
"GUILoginWindowResetPasswordButton": "Reset",
"GUILoginWindowPasswordPlaceholder": "Password",
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
"GUIRegisterWindowLabelCreateAccount": "Create an account",
"GUIRegisterWindowPasswordPlaceholder": "Password",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Create account",
"GUINewCharacterMessageLabel": "Name your character",
"GUINewCharacterFirstNamePlaceholder": "First Name",
"GUINewCharacterLastNamePlaceholder": "Last Name",
"GUINewCharacterSubmitButton": "Create Character",
"GUIChangePasswordWindowTitle": "Change Password",
"GUIChangePasswordPasswordLabel": "Enter a new password",
"GUIChangePasswordPasswordPlaceholder": "Password",
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
"GUIChangePasswordSubmitButton": "Change Password",
"GUIResetPasswordWindowMessage": "Reset Password",
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Reset Password",
"GUIResetPasswordLoginButton": "Login",
"GUIResetPasswordRememberMessage": "Remember your password?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "English",
"Russian": "Russian",
"Spanish": "Spanish",
"German": "German",
"Dutch": "Dutch",
"Polish": "Polish",
"Chinese": "Chinese",
"French": "French",
"Japanese": "Japanese",
"Slovak": "Slovak",
"Arabic": "Arabic"
},
"TwoFactorAuthSet": "⚙️ You have turned two factor authentication {1}",
"AccountServerLogoSet": "⚙️ You turned the server logo {1}",
"ChatScrollLinesNotNumber": "The line amount must be a number",
"ChatScrollLinesMustBeBetween": "The line amount must be between {1} and {2}",
"ChatScrollLinesSet": "The chatbox will now scroll {1} lines at a time",
"InvalidEmailVerificationCode": "Invalid email verification code! A new one has been created and sent to your email.",
"EmailVerified": "Your email has been verified",
"EmailVerifiedTip": "You can now use your email for password resets, two-factor authentication, login alerts, and more",
"CommandRequiresLogin": "You must be logged in to use the {1} command",
"CommandDisabled": "The {1} command is disabled",
"CommandDisabledOnDiscord": "The {1} command isn't available on discord",
"CommandNotFoundHelpTip": "The command {1} does not exist! Use {2} for commands and information.",
"CommandNotFoundPossibleMatchTip": "The command {1} does not exist! Did you mean {2}?",
"CommandNoPermissions": "You don't have permission to use the {1} command",
"GUIResetPasswordCodeInputLabel": "Check your email for a code",
"GUIResetPasswordCodePlaceholder": "Verification code",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Warning",
"GUIInfoTitle": "Info",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "Invalid email!",
"HeaderVehicleInfo": "Vehicle Info",
"HeaderClanRanksList": "Clan Rank",
"HeaderNPCInfo": "NPC Info",
"NPCAnimationSet": "You set NPC {1} animation to {2}",
"NPCNameSet": "You set NPC {1} name to {2}",
"VehicleTooFar": "You are too far away from the vehicle!",
"HeaderPropertyTemplateTypes": "Property Types",
"MustBeLoggedInAndSpawnedToChat": "You need to be logged in and spawned before you can chat!",
"MutedCantChat": "You are muted and can't chat!",
"CantUseMegaphone": "You must equip a megaphone item or be in an emergency vehicle!",
"HeaderAnimationHelp": "Animation Info",
"HeaderBadgeInfo": "Badge Information ({1})",
"NoItemCloseEnough": "There is no item close enough",
"CantDropJobEquipmentItem": "You can't drop job items",
"CantPutJobEquipmentItem": "You can't store job items",
"NoItemEquipped": "You don't have any item selected",
"NoItemInActiveSlot": "You don't have an item in your active item slot",
"CantPutItemInSkinChange": "You can't store an item while customizing your appearance",
"NothingToTakeItemFrom": "You aren't near anything to take items from",
"NoAmmoToLoadIntoWeapon": "You don't have any ammo to load into the {1}",
"LoadAmmoIntoWeaponHelpCommand": "To load this ammo into a weapon, equip the weapon and type {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "To load this ammo into a weapon, equip the weapon and press {1}",
"NobodyCloseEnoughToHandcuff": "Nobody is close enough to handcuff",
"NobodyCloseEnoughToTie": "Nobody is close enough to tie up",
"PlayerNotSurrenderedHandcuff": "{1} can't be handcuffed! They either need to have their hands up, be knocked out, or tazed",
"PlayerNotSurrenderedTie": "{1} can't be tied! They either need to have their hands up, be knocked out, or tazed",
"HeaderCharactersListSelf": "Your Characters",
"HeaderCharactersListOther": "{1}'s Characters",
"CharacterSelectHelpText": "Use {1} to select a character, or {2} to create a new character",
"ItemDoesntDoAnythingOnUse": "The {1} doesn't do anything when you try to use it.",
"ItemRadioStationTip": "Use {1} to set the radio station",
"VehicleLockedCommandTip": "🔒 This {1} is locked. Use {2} to unlock it",
"VehicleLockedKeyPressTip": "🔒 This {1} is locked. Press {2} to unlock it",
"VehicleLockedCantUnlock": "🔒 This {1} is locked and you don't have the keys to unlock it",
"CurrentlyRentingThisVehicle": "You are renting this {1} for {2} per minute. Use {3} if you want to stop renting it.",
"VehicleBelongsTo": "This {1} belongs to {2} ({3})",
"NotOwned": "Not Owned",
"NotCloseEnoughToItemContainer": "You are not close enough to anything that holds items",
"Job": "Job",
"Player": "Player",
"BusinessIsNowPaintBall": "This business is now a paintball arena",
"JoinedPaintBall": "You have joined the paintball game.",
"ItemsStoredForPaintBall": "Your items are stored in your locker and will be returned when you leave the paintball game",
"LeftPaintBall": "You have left the paintball game. Your items have been returned.",
"PaintBallEnded": "The paintball match has ended. Your items have been returned.",
"HeaderEventWinners": "Winners",
"YourPaintBallResults": "You got {1} kills and {2} deaths in the paintball match",
"NoPrivateMessageToReply": "You haven't received a private message to reply to",
"WeaponDoesNotUseAmmo": "The {1} doesn't use ammo",
"ChatBoxTimestampsToggle": "You turned {1} time display in the chatbox",
"ProfanityFilterSet": "You turned chat profanity filter {1}",
"ResetAllKeyBindsConfirm": "Are you sure you want to reset all your keybinds to default?",
"NotRentingAVehicle": "You are not renting a vehicle!",
"StoppedRentingVehicle": "You stopped renting the {1}",
"VehicleEngineStartKeyPressTip": "The {1} engine is off. Press {2} to start it.",
"VehicleEngineStartCommandTip": "The {1} engine is off. Use {2} to start it.",
"StartedRentingVehicle": "You are now renting this {1} for {2} per minute. To stop renting, use {3}",
"VehicleAlreadyRentedByOther": "This vehicle is already rented by someone else",
"VehicleAlreadyRentedBySelf": "You are already renting this vehicle",
"JobRankTooLow": "You are not high enough rank!",
"InvalidKeyName": "The key ID or name you input is invalid!",
"KeyBindsReset": "All your keybinds have been reset to default",
"KeyBindNameTip": "Use simple key names, letters, or numbers. Don't add spaces.",
"UniversalInlineExamplesList": "Examples: {1}",
"KeyBindRemoved": "You removed the keybind for the {1} key",
"KeyBindAdded": "You binded key {1} to {2}",
"CopyAllKeyBindsToServerConfirm": "Are you sure you want to copy all your keybinds to the {1} server?",
"CopiedAllKeyBindsToServer": "All your keybinds have been copied to the {1} server",
"MustBeSpawned": "You must be spawned!",
"ChatEmojiSet": "You turned automatic emoji in chat {1}",
"FishingLineNotCast": "Your fishing line isn't cast!",
"CantFishHere": "You can't fish here! You need to be near water or on a boat!",
"NeedFishingRod": "You need to be holding a fishing rod!",
"FishingCastCommandHelp": "Use {1} to cast your fishing line",
"FishingCastKeyBindHelp": "Press {1} to cast your fishing line",
"Paused": "Paused",
"PaintBallAlmostWin": "{1} only needs {2} more kills to win the paintball match!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOnOff": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

758
locale/spanish.json Normal file
View File

@@ -0,0 +1,758 @@
{
"TranslationProvidedBy": "PerikiyoXD and EliasDR",
"LocaleEnglishName": "Spanish",
"LocaleNativeName": "Español",
"LocaleOffer": "Este servidor se encuentra disponible en Español. Utilice {1} para usarlo",
"LocaleChanged1": "El idioma se ha configurado a {1}",
"LocaleChanged2": "El servidor mostrará los mensajes en {1}",
"LocaleChangedNote": "Esto no cambia los mensajes de otros jugadores",
"AccentsListHeader": "Acentos",
"HelpMainListHeader": "Categorías de ayuda",
"HelpSkinHeader": "Ayuda de personajes",
"HelpVehicleHeader": "Ayuda de vehículos",
"HelpBusinessHeader": "Ayuda de negocios",
"HelpHouseHeader": "Ayuda de casas",
"HelpRadioHeader": "Ayuda de radio",
"HelpAnimationHeader": "Ayuda de animaciones",
"AccentNotFound": "Acento no encontrado",
"AccentSet": "Acento establecido como {1}",
"InvalidAnimation": "Esa animación no existe",
"AnimationCommandTip": "Usa {1} para ver la lista de animaciones",
"InvalidAnimationDistance": "La distancia debe ser un numero entre el 0 y el 3",
"CantBanClient": "No se puede vetar a esta persona",
"PlayerAccountBanned": "La cuenta de {1} ha sido vetada",
"ClanNotFound": "Clan no encontrado",
"ClanNameTaken": "Ya existe un clan con ese nombre",
"PlayerNotFound": "Jugador no encontrado",
"ClanCantRemoveRanks": "No puedes eliminar rangos del clan",
"ClanCantAddRanks": "No puedes añadir rangos del clan",
"ClanRankNotFound": "No se encontró el rango del clan indicado",
"ClanCantChangeMemberTag": "No puedes cambiar las etiquetas del miembro del clan",
"ClanPlayerNotInSameClan": "El jugador indicado no está en tu clan",
"ClanCantChangeRankLevel": "No puedes cambiar el nivel del rango del clan",
"ClanCantChangeRankTag": "No puedes cambiar la etiqueta del rango del clan",
"NameNotRegistered": "¡Tu nombre no está registrado! Usa {1} para crear una cuenta",
"AutomaticLoginIPToggle": "Se ha {1} el inicio de sesión automático por IP",
"CouldNotRegisterAccount": "Hubo un problema al crear su cuenta. Por favor, póngase en contacto con un administrador",
"RandomTipsToggle": "Se han {1} los Consejos aleatorios",
"ActionTipsToggle": "Se han {1} los Consejos de acción",
"AutoSpawnLastCharToggle": "Se ha {1} reaparecer con el ultimo personaje usado",
"AccountGUISettingToggle": "Se ha {1} la Interfaz de Usuario",
"On": "Encendido",
"Off": "Apagado",
"Yes": "Si",
"No": "No",
"True": "True",
"False": "False",
"Locked": "Locked",
"Unlocked": "Unlocked",
"PasswordNotGoodEnough": "La nueva contraseña debe cumplir los requisitos",
"PasswordNeedsBase": "Las contraseñas deben tener al menos {1}",
"PasswordNeedsCapitals": "{1} letras mayúsculas",
"PasswordNeedsNumbers": "{1} números",
"PasswordNeedsSymbols": "{1} símbolos",
"PasswordsDontMatch": "La nueva contraseña y la confirmación de la nueva contraseña no son iguales.",
"PasswordChanged": "Su contraseña ha sido cambiada",
"AutoLoggedInIP": "Ha iniciado la sesion automáticamente por su IP",
"WelcomeBack": "¡Bienvenidos de nuevo a {1}, {2}! Por favor, {3} para continuar",
"WelcomeNewPlayer": "¡Bienvenido a {1}, {2}! Por favor, {3} para jugar",
"InvalidPlayer": "Jugador no encontrado",
"InvalidBusiness": "Negocio no encontrada",
"InvalidHouse": "Casa no encontrada",
"InvalidVehicle": "Vehículo no encontrado",
"InvalidClan": "Clan no encontrado",
"InvalidClanRank": "Rango del clan no encontrado",
"InvalidJob": "Trabajo no encontrado",
"InvalidItem": "Objeto no encontrado",
"InvalidItemType": "Tipo de objeto no encontrado",
"InvalidRadioStation": "Estación de radio no encontrada",
"InvalidGate": "Puerta no encontrada",
"EntersProperty": "abre la puerta y entra en el {1} ({2})",
"ExitsProperty": "abre la puerta y sale del {1} ({2})",
"EnterExitPropertyDoorLocked": "intenta abrir la puerta {1} pero no lo consigue porque está cerrada",
"PropertyNoInterior": "Este {1} no tiene un interior, pero todavía puede utilizar los comandos en el icono de la puerta",
"NoBusinessWithItemType": "No hay ningun negocio con ese objeto disponible",
"HeaderKeyBinds": "Atajos de teclado",
"HeaderAccountHelp": "Account Help",
"HeaderVehicleHelp": "Vehicle Help",
"HeaderVehicleDealershipHelp": "Ayuda del Concesionario de Vehiculos",
"HeaderJobHelp": "Ayuda del Trabajo",
"HeaderChatHelp": "Ayuda del Chat",
"HeaderServerRules": "Reglas del Servidor",
"HeaderWebsiteInfo": "Sitio Web",
"HeaderDiscordInfo": "Discord",
"HeaderAnimationsList": "Lista de animaciones",
"HeaderPayAndSprayHelp": "Ayuda de 'Pay and Spray'",
"HeaderAmmunationHelp": "Ayuda de 'Ammunation'",
"HeaderVehicleTuneupHelp": "Ayuda de Puesta a punto del vehículo",
"HeaderBindableKeysHelp": "Atajos de teclado",
"HeaderSkinHelp": "Ayuda de Ropa/Personaje",
"HeaderBusinessHelp": "Ayuda del negocio",
"HeaderClanHelp": "Ayuda del clan",
"HeaderPlayerVehiclesList": "Vehiculos del jugador ({1})",
"HeaderPlayerBusinessesList": "Negocios del jugador ({1})",
"HeaderClansList": "Lista de clanes",
"HeaderAdminsList": "Lista de administradores",
"HeaderAccentsList": "Lista de acentos",
"HeaderPlayerInfo": "Información del jugador ({1})",
"HeaderWealthandTaxHelp": "Información sobre el patrimonio y los impuestos",
"HeaderCommandInfo": "Información de comando ({1})",
"HeaderRadioHelp": "Ayuda para la radio",
"HeaderRadioStationsList": "Emisoras de radio",
"HeaderKeyBindsList": "Lista de atajos de teclado",
"RadioVolumeChanged": "{1} Has cambiado el volumen de tu radio en directo a {2}%",
"VolumeLevelNotNumber": "El volumen debe ser un número",
"RadioStationLocationInvalid": "Debe estar en un vehículo, casa o negocio o tener un dispositivo personal para cambiar la emisora",
"ActionBusinessRadioStationChange": "cambia la emisora de la radio del negocio a {1} ({2})",
"ActionHouseRadioStationChange": "cambia la emisora de la radio de la casa a {1} ({2})",
"ActionVehicleRadioStationChange": "cambia la emisora de la radio del vehículo a {1} ({2})",
"ActionItemRadioStationChange": "cambia la estación de {1} a {2} ({3})",
"RandomVehicleCommandsDisabled": "Este es un vehículo de tráfico aleatorio y los comandos no se pueden utilizar en él",
"HouseDoorLock": "Casa {1} {2}!",
"BusinessDoorLock": "Negocio {1} {2}!",
"ServerGameModeRestarting": "El modo de juego del servidor se reinicia",
"HeaderSelfItemList": "Su inventario",
"HeaderPlayerItemList": "Inventario del jugador ({1})",
"HeaderHouseItemList": "Inventario de la casa",
"HeaderBusinessFloorItemList": "Inventario del negocio (En venta)",
"HeaderBusinessStorageItemList": "Inventario del negocio (Almacén)",
"HeaderItemItemList": "Inventario de {1}",
"ItemSlotNotNumber": "La ranura del objeto debe ser un número",
"ItemSlotMustBeBetween": "La ranura del objeto debe ser un número entre {1} y {2}!",
"UseItemBugged": "El objeto que intentas utilizar tiene un error. Se ha enviado un informe de error a los desarrolladores del servidor",
"PickupItemBugged": "El objeto que intentas recoger tiene un error. Se ha enviado un informe de error a los desarrolladores del servidor",
"DropItemBugged": "El objeto que intentas soltar tiene un error. Se ha enviado un informe de error a los desarrolladores del servidor",
"HandsBusy": "Tus manos están ocupadas",
"CantUseItemInSkinChange": "No puedes usar un objeto mientras personalizas tu apariencia",
"CantDropItemInSkinChange": "No puedes soltar un objeto mientras personalizas tu apariencia",
"CantPickupItemInSkinChange": "No puedes recoger un objeto mientras personalizas tu apariencia",
"CantSwitchItemInSkinChange": "No puedes cambiar de objeto mientras se personaliza la apariencia",
"CantGiveItemInSkinChange": "No puedes dar un objeto mientras personalizas tu apariencia",
"CantTakeItemInSkinChange": "No puedes coger un objeto mientras personalizas tu apariencia",
"ItemUnequippableNoAmmo": "{1} (ranura {2}) no tiene munición y no puede equiparse",
"NoSpaceSelfInventory": "No tienes más espacio en tu inventario",
"Business": "negocio",
"House": "casa",
"Clan": "clan",
"Vehicle": "vehiculo",
"Item": "objeto",
"ItemType": "tipo de objeto",
"Gate": "portón",
"Door": "puerta",
"ClanRank": "rango del clan",
"JobRank": "rango del trabajo",
"RadioStation": "estación de radio",
"Months": [
"Enero",
"Febrero",
"Marzo",
"Abril",
"Mayo",
"Junio",
"Julio",
"Agosto",
"Septiembre",
"Octubre",
"Noviembre",
"Diciembre"
],
"WeekDays": [
"Domingo",
"Lunes",
"Martes",
"Miércoles",
"Jueves",
"Viernes",
"Sábado"
],
"CardinalDirections": {
"North": "Norte",
"Northeast": "Noreste",
"East": "Este",
"Southeast": "Sureste",
"South": "Sur",
"Southwest": "Suroeste",
"West": "Oeste",
"Northwest": "Noroeste"
},
"NewPlayerReadyToPlay": [
"Te han dado algo de dinero. Usa {1} para encontrar lugares donde comprar artículos",
"Si necesitas dinero, los trabajos son los puntos amarillos del radar",
"Para conseguir un coche, visita el concesionario de coches. También puedes utilizar un vehículo de alquiler cerca del punto de aparición o tomar el tren",
"Asegúrese de leer el {1} y utilizar el {2} para obtener información"
],
"YourCurrentVehicleDeleted": "El vehículo en el que estabas fue eliminado",
"Distance": "Distancia",
"Meters": "Metros",
"Feet": "Pies",
"Kilometers": "Kilómetros",
"Miles": "Millas",
"MustBeVehicleDriver": "¡Debes ser el conductor del vehículo!",
"PlayerJoinedServer": "¡{1} se unió al juego desde {2}!",
"PlayerLeftServer": "¡{1} ha abandonado el juego! ({2})",
"TakeItemFromHouse": "saca {1} de la casa",
"TakeItemFromBusinessStorage": "saca {1} del almacén del negocio",
"TakeItemFromBusiness": "saca {1} del negocio",
"TakeItemFromItem": "saca {1} del {2}",
"TakeItemFromVehicleTrunk": "saca {1} del maletero",
"TakeItemFromVehicleDash": "saca {1} de la guantera",
"AccountHelp": [
"NO comparta su contraseña con nadie más. El personal de {1} nunca le pedirá su contraseña",
"Utilice {1} para cambiar su contraseña, y {2} si la ha olvidado",
"Algunos comandos: {1}"
],
"VehicleHelp": [
"Sus vehículos personales se guardarán donde usted u otra persona los deje",
"Visite un concesionario para comprar vehículos nuevos. {1} para más información)",
"Algunos comandos: {1}",
"Visita un taller mecánico para reparar, colorear y poner a punto tu coche. {1} para más información"
],
"VehicleDealershipHelp": [
"Visite un concesionario para comprar vehículos nuevos. {1} para encontrar uno",
"En el concesionario, introduce el coche que quieres comprar, y se te mostrará el precio",
"Si quieres comprar el vehículo, utiliza {1} y te darán las llaves para que lo pruebes en el aparcamiento",
"Salga del concesionario con el vehículo nuevo para confirmar la compra"
],
"JobHelp": [
"Visita los lugares de trabajo para conseguir un empleo y ganar dinero. Busca puntos amarillos en el mapa",
"En un lugar de trabajo, usa {1} para conseguir el trabajo. Utiliza {2} para dejar el trabajo",
"Usa {1} para empezar a trabajar. También puedes conseguir un trabajo {2} y {3}",
"La mayoría de los vehículos de trabajo están cerrados. Usa {1} cerca de uno para entrar en él",
"Al entrar en un vehículo de trabajo, se le mostrará información sobre cómo hacer el trabajo"
],
"ChatHelp": [
"Hay dos tipos principales de chat: fuera del personaje (OOC) y dentro del personaje (IC)",
"Mezclar estos dos tipos no resulta en un juego de rol apropiado. Vea {1} para más información",
"Algunos comandos del chat: {1}",
"Algunos tienen nombres más cortos disponibles ({1} para hablar, {2} para gritar, etc)"
],
"ServerRulesHelp": [
"Las acciones irreales (powergaming) no están permitidas. No eres Superman",
"No se permite ningún juego de rol terrorista o de terrorismo",
"Siga siempre las instrucciones de los moderadores y administradores",
"No mezcles los chats (metagaming). No puedes usar información en IC que fue recibida OOC",
"Mantén el inglés en los chats principales. Si no se te da bien el inglés, utiliza {1}"
],
"AnimationHelp": [
"Las animaciones permiten mejorar el juego de rol con acciones visuales",
"Utilice {1} o {2} con un nombre para utilizar una animación",
"Para ver una lista de animaciones, utilice {1}"
],
"WeaponHelp": [
"Visita una armería para comprar armas. Usa {1} para encontrar una",
"La compra de un arma requiere una licencia de armas",
"Las licencias de armas son gestionadas por el departamento de policía. Solicítela allí para obtenerla",
"Las armas también pueden comprarse ilegalmente en algunos negocios, vendedores de armas y clanes"
],
"SkinHelp": [
"En una tienda de ropa, usa {1} para comprar ropa",
"Cuando tengas un objeto de ropa, equípalo y úsalo como cualquier otro objeto para mostrar la selección de personajes (revisa {1} para aprender a usar objetos)",
"Algunas pieles están restringidas a trabajos, clanes o por otras razones"
],
"KeyBindHelp": [
"Puedes establecer tus propias combinaciones de teclas. Utilice {1} para ver sus teclas vinculadas",
"Utilice {1} para añadir una nueva combinación de teclas y {2} para eliminar una",
"Las teclas por defecto son: {1} para el motor del vehículo, {2} para las luces y {3} para el bloqueo/desbloqueo",
"Pulsa {1} para ver tus objetos y {2} para equipar un objeto o {3} para desequipar todos",
"Pulsa {1} para usar el objeto que tienes en la mano, pulsa {2} para dejarlo caer o pulsa {3} para recoger un objeto del suelo"
],
"BusinessHelp": [
"Utilice {1} para comprar artículos o {2} para ver una lista de lo que está a la venta en cualquier negocio",
"Las empresas aparecen con nombres azules sobre el icono de su entrada",
"Comandos del dueño del negocio: {1}",
"Un coche nuevo en venta aparecerá cuando salgas del concesionario"
],
"ClanHelp": [
"Pedir a un administrador que cree un clan (similar a las facciones/grupos/familias)",
"Los propietarios de clanes tienen pleno control sobre su clan una vez creado",
"Comandos de clan: {1}",
"Más comandos del clan: {1}"
],
"RadioStationHelp": [
"Utilice {1} para fijar la estación de su vehículo, casa o negocio",
"Utilice {2} para ver una lista de estaciones",
"Puedes cambiar el volumen de tu radio usando {1} con 0-100 como porcentaje"
],
"WealthAndTaxHelp": [
"Sus impuestos en el día de pago son el {1} por ciento de su riqueza calculada",
"Su riqueza calculada es una suma total basada en cuántos vehículos, casas y negocios tiene",
"Cada vehículo es {1}, cada casa es {2}, y cada negocio es {3}",
"Utilice {1} para ver su patrimonio actual, y {2} para ver cuánto pagará de impuestos cada día de pago"
],
"MustBeInAVehicle": "Necesitas estar en un vehículo",
"MustBeInOrNearVehicle": "Tienes que estar dentro o cerca de un vehículo",
"MustBeInVehicleFrontSeat": "Tienes que estar en los asientos delanteros del vehículo",
"MustBeInVehicleDriverSeat": "Tienes que ser el conductor",
"DontHaveVehicleKey": "No tiene una llave para este vehículo",
"NoGateAccess": "No tienes acceso a esta puerta",
"GateBroken": "Esta puerta está rota",
"GateHacked": "La puerta no funciona",
"RadioJammed": "Sólo se oye la estática de la radio",
"VehicleNotForSale": "Este vehículo no está en venta",
"VehicleNotForRent": "Este vehículo no se alquila",
"BusinessNotForSale": "Este negocio no está en venta",
"BusinessNotForRent": "Este negocio no se alquila",
"HouseNotForSale": "Esta casa no está en venta",
"HouseNotForRent": "Esta casa no está en alquiler",
"DealershipPurchaseTestDrive": "Conduzca fuera del concesionario para comprar el vehículo, o salga del vehículo para cancelar",
"DealershipPurchaseExitedVehicle": "Has cancelado la compra del vehículo al salir de él",
"VehiclePurchaseComplete": "¡Este vehículo es ahora tuyo! Se guardará donde quiera que lo dejes",
"VehiclePurchaseNotEnoughMoney": "No tienes suficiente dinero para comprar este vehículo",
"HousePurchaseNotEnoughMoney": "No tienes suficiente dinero para comprar esta casa",
"BusinessPurchaseNotEnoughMoney": "No tienes suficiente dinero para comprar este negocio",
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"HeaderPlayerHousesList": "Casas del jugador ({1})",
"HeaderPlayerStaffFlagsList": "Banderas administrativas del jugador ({1})",
"HeaderStaffFlagsList": "Banderas administrativas",
"NonRPName": "¡Nombre no RP! Elige uno nuevo:",
"InvalidStaffFlag": "Bandera administrativa no encontrada",
"InvalidClanFlag": "Bandera del clan no encontrada.",
"InvalidLocale": "Lenguaje no encontrado!",
"HeaderJobUniformList": "Uniformes de Trabajo ({1})",
"HeaderJobEquipmentList": "Equipamiento de Trabajo ({1})",
"InvalidJobUniform": "Uniforme de trabajo no encontrado!",
"InvalidJobEquipment": "Equipamiento de trabajo no encontrado!",
"HeaderVehiclesInRangeList": "Vehiculos Cercanos< {1}",
"NoVehiclesWithinRange": "No hay vehiculos cercanos {1}",
"AmountNotNumber": "La cantidad debe ser un numero!",
"NeedToBeWorking": "Necesitas estar trabajando! Usa {1} en un lugar o vehiculo de trabajo.",
"NeedToBeOnJobRoute": "Necesitas estar en una ruta de trabajo! Usa {1} en un vehiculo de trabajo.",
"CurrentJobRouteVehicleColoursChanged": "El color de tu vehiculo de trabajo fue cambiado por un admin.",
"NotYourJob": "Este no es tu trabajo!",
"JobPoints": "Puedes conseguir un trabajo llendo a los puntos amarillos del mapa.",
"QuitJobToTakeAnother": "Si quieres este trabajo, usa {1} para dejar tu trabajo actual.",
"NotAJobVehicle": "Este no es un vehiculo de trabajo!",
"NotYourJobVehicle": "Este no es tu vehiculo de trabajo!",
"HeaderPickupTypes": "Tipos de recogidas.",
"HeaderBlipTypes": "Tipos de iconos para mapa.",
"InvalidGPSLocation": "No hay locaciones con ese nombre o tipo.",
"HeaderBusinessList": "Negocios",
"VehicleForSale": "Esto {1} es comprable por {2}! Usa {3} si deseas comprarlo.",
"VehicleForRent": "Esto {1} es rentable por {2}! Usa {3} si deseas rentarlo.",
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"LoginFailedInvalidPassword": "Contraseña incorrecta! {1} intentos restantes",
"LoginFailedNoPassword": "Debes ingresar una contraseña! ! {1} intentos restantes",
"RegistrationFailedNoPassword": "Debes ingresar una contraseña!",
"RegistrationFailedNoPasswordConfirm": "Debes confirmar la contraseña!",
"RegistrationFailedNoEmail": "Debes ingresar un email!",
"AccountNameAlreadyRegistered": "Este nombre ya esta registrado!",
"AlreadyLoggedIn": "Ya te encuentras logeado!",
"RegistrationFailedInvalidEmail": "Este correo es invalido!",
"RegistrationFailedPasswordMismatch": "La contraseña no coincide!",
"RegistrationFailedCreateError": "Tu cuenta no pudo ser creada!",
"RegistrationSuccess": "Tu cuenta fue creada!",
"RegistrationEmailVerifyReminder": "No olvides verificar tu email! Se te envio un codigo de verificación.",
"RegistrationCreateCharReminder": "Para jugar en el servidor, debes crear un personaje.",
"NoCharactersGUIMessage": "No tienes ningun personaje. Deseas crear uno?",
"NoCharactersGUIWindowTitle": "Sin Personajes",
"NoCharactersChatMessage": "No tienes personajes. Usa {1} para crear uno.",
"NeedEmailFor2FA": "Necesitas añadir un email a tu cuenta para usar la autenticación de dos-factores.",
"NeedEmailVerifiedFor2FA": "Necesitas verificar tu email para usar la autenticación de dos-factores.",
"SetEmailHelpTip": "Usa {1} para establecer tu email.",
"VerifyEmailHelpTip": "Usa {1} para verificar tu email.",
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
"NearbyRadio": "Radio Cercano",
"FromRadio": "Del Radio",
"ToRadio": "Al Radio",
"NeedToEnterPropertyCommand": "¡Tienes que entrar en el {1} primero! Usa {2} para entrar y salir",
"NeedToEnterPropertyKeyPress": "¡Tienes que entrar en el {1} primero! Presiona {2} para entrar y salir",
"InventoryFullCantCarry": "¡No tienes suficiente espacio para llevar esto! (inventario lleno)",
"NotEnoughCashNeedAmountMore": "¡No tienes suficiente dinero! Necesitas {1} más!",
"AmountMustBeMoreThan": "¡La cantidad debe ser más de {1}!",
"WeaponBanned": "¡No tienes permitido usar o comprar armas!",
"TimeNotNumber": "El tiempo debe ser un número",
"HeaderDefaultBusinessItemTypes": "Plantillas de Ítems Comerciales",
"FixingStuck": "Arreglando tu posición y mundo virtual ...",
"CantUseCommandYet": "¡Debes esperar antes de usar este comando nuevamente!",
"NotATester": "¡No eres un tester!",
"AccessDenied": "AccesoDenegado",
"InvalidSkin": "¡Esta skin es inválida!",
"HeaderInteriorTypes": "Lista de interiores",
"GUIAccountSettingToggle": "Has {1} la Interfaz de Usuario",
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
"CarCommandHelp": "Puedes comprar un auto visitando un concesionario de vehículos. Usa {1} para más información.",
"SkinCommandHelp": "Puedes cambiar tu skin visitando una Tienda de Ropa. Usa {1} para más información.",
"BusinessVehiclesRespawned": "¡Todos los vehículos comerciales han sido Re-Spawneados por un Administrador!",
"JobVehiclesRespawned": "¡Todos los vehículos de trabajo han sido Re-Spawneados por un Administrador!",
"PlayerVehiclesRespawned": "¡Todos los vehículos de los jugadores han sido Re-Spawneados por un Administrador!",
"ClanVehiclesRespawned": "¡Todos los vehículos de los clanes han sido Re-Spawneados por un Administrador!",
"PublicVehiclesRespawned": "¡Todos los vehículos públicos han sido Re-Spawneados por un Administrador!",
"EmptyVehiclesRespawned": "¡Todos los vehículos vacíos han sido Re-Spawneados por un Administrador!",
"AllVehiclesRespawned": "¡Todos los vehículos han sido Re-Spawneados por un Administrador!",
"AllVehiclesReloaded": "¡Todos los vehículos han sido recargados por un administrador!",
"YourVehicleRespawned": "Tu vehículo ha sido Re-Spawneado",
"PlayerIPBanned": "¡{1} fue baneado por IP!",
"PlayerCharacterBanned": "¡{1} fue baneado de su personaje!",
"PlayerSubNetBanned": "{1} fue baneado por Rango de IP!",
"CantModifyBusiness": "No puedes administrar o modificar este comercio",
"CantModifyHouse": "No puedes administrar o modificar esta casa",
"ServerTimeSet": "{1} estableció el tiempo a {2}",
"ServerWeatherSet": "{1} estableció el clima a {2}",
"ServerSnowSet": "{1} estableció nevada {2} y nieve terrestre {3}",
"AllJobsReloaded": "Todos los trabajos del servidor han sido recargados por un Administrador",
"ServerLogoSet": "{1} cambió la imagen del logotipo del servidor {2}",
"ServerGUISet": "{1} cambió la Interfaz de Usuario para este servidor {2}",
"ServerBusinessBlipsSet": "{1} cambió todos los puntos comerciales {2}",
"ServerHouseBlipsSet": "{1} cambió todos los puntos de las casas {2}",
"ServerJobBlipsSet": "{1} cambió todos los puntos de trabajo {2}",
"ServerBusinessPickupsSet": "{1} cambió todos los objetos recoleccionables comerciales {2}",
"ServerHousePickupsSet": "{1} cambió todos los objetos recoleccionables de las casas {2}",
"ServerJobPickupsSet": "{1} cambió todos los objetos recoleccionables de trabajos {2}",
"BusinessBuyItemsLabel": "Usa {1} para comprar ítems",
"PropertyEnterCommandLabel": "Usa {1} para entrar",
"PropertyEnterKeyPressLabel": "Presiona {1} para entrar",
"PropertyForSaleLabel": "En venta: {1}",
"PropertyForRentLabel": "En alquiler: {1} cada día de pago",
"RemainingTaxPaidInMoney": "Has cubrido los impuestos restantes con {1} en efectivo.",
"LostMoneyFromTaxes": "¡Perdiste dinero ya que sus impuestos son más que su cheque de pago!",
"NextPaycheckRepossessionWarning": "¡Si no tiene suficiente efectivo para cubrir los impuestos en el próximo cheque de pago, perderá cosas!",
"NotEnoughMoneyForTax": "¡No tienes suficiente dinero para cubrir tus impuestos!",
"AssetsRepossessedForTax": "¡Perdiste {1} vehículos, {2} casas, y {3} comercios ya que no pagaste tus impuestos!",
"Closed": "Cerrado",
"Open": "Abierto",
"VehicleDealershipLabel": "Entra a un vehículo como conductor para comprarlo",
"TakeJobLabel": "Usa {1} para trabajar aquí",
"StartWorkLabel": "Usa {1} para empezar a trabajar",
"JobEquipAndUniformLabel": "Usa {1} y {2} para cosas de trabajo, o {3} para dejar de trabajar",
"NotYourJobLabel": "Ya tienes otro trabajo. Usa {1} si quieres este",
"JobLabel": "{1} Trabajo",
"PaydayBonusSet": "🤑 {1} fijó el bono de día de pago en {2}",
"AllHousesReloaded": "🏘️ ¡Todas las casas han sido recargadas por un Administrador!",
"AllRadioStationsReloaded": "📻 ¡Todas las estaciones de radio han sido recargadas por un Administrador!",
"PlayerKicked": "🦶 {1} fue expulsado de este servidor",
"AllBusinessesReloaded": "🏢 ¡Todos los comercios fueron recargados por un Administrador!",
"UnableToDoThat": "No eres capaz de hacer esto",
"SetVehicleClanConfirmMessage": "¿Estás seguro que quieres regalar este vehículo a tu clan?",
"SetVehicleClanConfirmTitle": "¡Advertencia!",
"SetItemPriceBelowOrderPriceMessage": "¿Está seguro de que desea establecer el precio del artículo por debajo del precio del pedido? ¡Perderá {1} en cada compra!",
"SetItemPriceBelowOrderPriceTitle": "¡Advertencia!",
"MustOwnVehicle": "¡No eres dueño de este vehículo!",
"RandomTips": [
"Busca puntos amarillos en tu mapa para encontrar ubicaciones de trabajo",
"Puedes establecer combinaciones de teclas personalizadas. Usa {1} para más detalles",
"Usa {1} si no quieres ver tips o información extra.",
"Puedes editar tus combinaciones de teclas usando {1} y {2}",
"Presiona para ver tu inventario, y use las teclas numéricas para seleccionar un elemento",
"Usa {1} en un comercio para comprar artículos",
"¿Encontraste un bug? Repórtalo con {1}",
"¿Tiene alguna idea o sugerencia para el servidor? Hágales saber a los desarrolladores usando {1}",
"¿Quieres comprar un comercio? Usa {1} en uno en venta",
"¿Quieres comprar una casa? Usa {1} en uno en venta",
"¿Quieres comprar un vehículo? Visite un concesionario e ingrese a uno para obtener información sobre cómo comprarlo!",
"Cambia a cualquiera de tus personajes con {1}",
"Usa {1} para iniciar sesión automáticamente cuando se conecta con la misma IP",
"Usa {1} para encender / apagar las luces de tu casa o comercio",
"Usa {1} para reproducir una estación de radio por Internet en tu vehículo, casa o negocio",
"¿Quieres hacer un clan? Usa {1} para más detalles",
"Las armas legales se pueden comprar en cualquier Ammu-Nation."
],
"PromptResponseTip": "Usa {1} para aceptar, o {2} para rechazar",
"PlayerConnecting": "👋 {1} se está conectando al servidor",
"GetStartedJobVehicle": "Entra en un {1} para empezar.",
"VehicleTypes": {
"Car": "Auto",
"Truck": "Camión",
"Van": "Camioneta",
"Taxi": "Taxi",
"Bus": "Autobús",
"PoliceCar": "Coche de Policía",
"Ambulance": "Ambulancia",
"FireTruck": "Camión de Bomberos",
"Bike": "Bicicleta",
"Motorbike": "Motocicleta",
"Boat": "Barco",
"Helicopter": "Helicóptero",
"Plane": "Avión",
"Train": "Tren"
},
"AlreadyOnJobRoute": "¡Ya estás haciendo una ruta de trabajo!",
"GaveVehicleToClan": "¡Le diste este {1} a tu clan!",
"JobDisabled": "¡Este trabajo no está disponible!",
"SetHouseClanConfirmMessage": "¿Estás seguro de darle esta casa a tu clan?",
"SetHouseClanConfirmTitle": "¡Advertencia!",
"SetBusinessClanConfirmMessage": "¿Estás seguro de darle este comercio a tu clan?",
"SetBusinessClanConfirmTitle": "¡Advertencia!",
"MustOwnHouse": "¡No eres dueño de esta casa!",
"MustOwnBusiness": "¡No eres dueño de este comercio!",
"GaveHouseToClan": "¡Le diste esta casa a tu clan!",
"GaveBusinessToClan": "¡Le diste este comercio a tu clan!",
"BuyBusinessConfirmMessage": "¿Estás seguro de que quieres comprar este comercio?",
"BuyBusinessConfirmTitle": "¡Atención!",
"BuyHouseConfirmMessage": "¿Estás seguro de que quieres comprar esta casa?",
"BuyHouseConfirmTitle": "¡Atención!",
"BuyBusinessLabel": "Usa {1} para comprar este comercio",
"BuyHouseLabel": "Usa {1} para comprar esta casa",
"RentHouseLabel": "Usa {1} para alquilar esta casa",
"AccountEmailAlreadyVerified": "¡Ya configuraste y verificaste tu correo electrónico!",
"EmailVerificationCodeSent": "Se ha enviado un código de verificación e instrucciones a tu correo electrónico.",
"GUIPlayAsCharacterButton": "Jugar",
"GUINewCharacterButton": "Nuevo personaje",
"GUIPreviousCharacterButton": "Anterior",
"GUINextCharacterButton": "Siguiente",
"GUICharacterSelectWindowTitle": "Seleccionar un personaje",
"GUICharacterSelectMoneyLabel": "Dinero: {1}",
"GUICharacterSelectClanLabel": "Clan: {1}",
"GUICharacterSelectLastPlayedLabel": "Última vez que se jugó: Hace {1} días, {2} horas, {3} minutos",
"GUILoginWindowLabelEnterPassword": "Por favor, introduzca su contraseña",
"GUILoginWindowSubmitButton": "Iniciar sesión",
"GUILoginWindowResetPasswordButton": "Restablecer",
"GUILoginWindowPasswordPlaceholder": "Contraseña",
"GUILoginWindowForgotPasswordLabel": "¿Olvidaste tu contraseña?",
"GUIRegisterWindowLabelCreateAccount": "Crear una cuenta",
"GUIRegisterWindowPasswordPlaceholder": "Contraseña",
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirmar contraseña",
"GUIRegisterWindowEmailPlaceholder": "Email",
"GUIRegisterWindowSubmitButton": "Crear cuenta",
"GUINewCharacterMessageLabel": "Nombra a tu personaje",
"GUINewCharacterFirstNamePlaceholder": "Nombre",
"GUINewCharacterLastNamePlaceholder": "Apellidos",
"GUINewCharacterSubmitButton": "Crear personaje",
"GUIChangePasswordWindowTitle": "Cambiar contraseña",
"GUIChangePasswordPasswordLabel": "Introduzca una nueva contraseña",
"GUIChangePasswordPasswordPlaceholder": "Contraseña",
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirmar contraseña",
"GUIChangePasswordSubmitButton": "Cambiar contraseña",
"GUIResetPasswordWindowMessage": "Reiniciar contraseña",
"GUIResetPasswordConfirmEmailLabel": "Por favor, confirme su correo electrónico",
"GUIResetPasswordEmailPlaceholder": "Email",
"GUIResetPasswordSubmitButton": "Restablecer contraseña",
"GUIResetPasswordLoginButton": "Iniciar sesión",
"GUIResetPasswordRememberMessage": "¿Recuerdas tu contraseña?",
"HeaderJobList": "Jobs",
"HeaderBusinessInfo": "Business Info",
"HeaderHouseInfo": "House Info",
"HeaderClanInfo": "Clan Info",
"Locales": {
"English": "Inglés",
"Russian": "Ruso",
"Spanish": "Español",
"German": "Alemán",
"Dutch": "Holandés",
"Polish": "Polaco",
"Chinese": "Chino",
"French": "Francés",
"Japanese": "Japonés",
"Slovak": "Eslovaco",
"Arabic": "Árabe"
},
"TwoFactorAuthSet": "⚙️ Has activado la autenticación de dos factores {1}",
"AccountServerLogoSet": "⚙️ Has cambiado el logo del servidor {1}",
"ChatScrollLinesNotNumber": "El monto de la línea debe ser un número",
"ChatScrollLinesMustBeBetween": "El monto de la línea debe ser entre {1} y {2}",
"ChatScrollLinesSet": "La ventana de chat se desplazará ahora {1} líneas a la vez",
"InvalidEmailVerificationCode": "¡Código de verificación de correo electrónico no válido! Se ha creado uno nuevo y enviado a su correo electrónico.",
"EmailVerified": "Tu correo electrónico ha sido verificado",
"EmailVerifiedTip": "Ahora puedes usar tu correo electrónico para restablecer contraseñas, autenticación de dos factores, alertas de inicio de sesión y más",
"CommandRequiresLogin": "Debe iniciar sesión para utilizar el commando {1}",
"CommandDisabled": "El comando {1} está deshabilitado",
"CommandDisabledOnDiscord": "El comando {1} no esta disponible en discord",
"CommandNotFoundHelpTip": "¡El comando {1} no existe! Usa {2} para ver comandos e información.",
"CommandNotFoundPossibleMatchTip": "¡El comando {1} no existe! Querrás decir {2}?",
"CommandNoPermissions": "No tienes permiso para usar el comando {1}",
"GUIResetPasswordCodeInputLabel": "Revisa tu correo electrónico para obtener un código.",
"GUIResetPasswordCodePlaceholder": "Código de verificación",
"GUIErrorTitle": "Error",
"GUIWarningTitle": "Advertencia",
"GUIInfoTitle": "Información",
"GUIOkButton": "Ok",
"GUIErrorResetPasswordFailedInvalidEmail": "¡Correo electrónico inválido!",
"HeaderVehicleInfo": "Información de vehículo",
"HeaderClanRanksList": "Rango del Clan",
"HeaderNPCInfo": "Información de NPC",
"NPCAnimationSet": "Estableciste la animación del NPC {1} a {2}",
"NPCNameSet": "Estableciste el nombre del NPC {1} a {2}",
"VehicleTooFar": "¡Estás demasiado lejos del vehículo!",
"HeaderPropertyTemplateTypes": "Tipos de propiedad",
"MustBeLoggedInAndSpawnedToChat": "¡Debes iniciar sesión y spawnearse antes de poder chatear!",
"MutedCantChat": "¡Estás silenciado y no puedes chatear!",
"CantUseMegaphone": "¡Debes equipar un megáfono o estar en un vehículo de emergencia!",
"HeaderAnimationHelp": "Información de Animación",
"HeaderBadgeInfo": "Información de Insignia ({1})",
"NoItemCloseEnough": "No hay ningún elemento lo suficientemente cerca",
"CantDropJobEquipmentItem": "No puedes soltar elementos de trabajo",
"CantPutJobEquipmentItem": "No puedes almacenar elementos de trabajo",
"NoItemEquipped": "No tienes ningún elemento seleccionado",
"NoItemInActiveSlot": "No tienes un elemento en tu espacio de elementos activo",
"CantPutItemInSkinChange": "No puedes almacenar un artículo mientras personalizas tu apariencia.",
"NothingToTakeItemFrom": "No estás cerca de nada de donde tomar objetos.",
"NoAmmoToLoadIntoWeapon": "No tienes munición para cargar en el {1}",
"LoadAmmoIntoWeaponHelpCommand": "Para cargar esta munición en un arma, equipa una y escribe {1}",
"LoadAmmoIntoWeaponHelpKeyPress": "Para cargar esta munición en un arma, equipa una arma y presiona {1}",
"NobodyCloseEnoughToHandcuff": "Nadie está lo suficientemente cerca para esposar",
"NobodyCloseEnoughToTie": "Nadie está lo suficientemente cerca para atar",
"PlayerNotSurrenderedHandcuff": "¡{1} no puede ser esposado! Necesita tener las manos en alto, ser noqueado o tazeado.",
"PlayerNotSurrenderedTie": "¡{1} no puede ser atado! Necesita tener las manos en alto, ser noqueado o tazeado.",
"HeaderCharactersListSelf": "Tus personajes",
"HeaderCharactersListOther": "Personajes de {1}",
"CharacterSelectHelpText": "Usa {1} para seleccionar un personaje, o {2} para crear uno nuevo",
"ItemDoesntDoAnythingOnUse": "El {1} no hace nada cuando intentas usarlo",
"ItemRadioStationTip": "Usa {1} para configurar la estación de radio",
"VehicleLockedCommandTip": "🔒 Este {1} está bloqueado. Usa {2} para desbloquearlo",
"VehicleLockedKeyPressTip": "🔒 Este {1} está bloqueado. Presiona {2} para desbloquearlo",
"VehicleLockedCantUnlock": "🔒 Este {1} está bloqueado y no tienes las llaves para desbloquearlo",
"CurrentlyRentingThisVehicle": "Estás alquilando este {1} por {2} cada minuto. Usa {3} si quieres dejar de alquilarlo.",
"VehicleBelongsTo": "Este {1} pertenece a {2} ({3})",
"NotOwned": "Sin dueño",
"NotCloseEnoughToItemContainer": "No estás lo suficientemente cerca de nada que contenga objetos",
"Job": "Trabajo",
"Player": "Jugador",
"BusinessIsNowPaintBall": "Este comercio ahora es un campo de paintball.",
"JoinedPaintBall": "Te has unido al juego de paintball..",
"ItemsStoredForPaintBall": "Tus artículos se almacenan en tu casillero y serán devueltos cuando abandones el juego de paintball.",
"LeftPaintBall": "Has dejado el juego de paintball. Sus artículos han sido devueltos.",
"PaintBallEnded": "El partido de paintball ha terminado. Tus artículos han sido devueltos.",
"HeaderEventWinners": "Ganadores",
"YourPaintBallResults": "Obtuviste {1} muertes y {2} defunciones en el partido de paintball",
"NoPrivateMessageToReply": "No has recibido un mensaje privado para responder",
"WeaponDoesNotUseAmmo": "El {1} no usa munición",
"ChatBoxTimestampsToggle": "Activaste {1} visualizaciónes de tiempo en el chatbox",
"ProfanityFilterSet": "Cambiaste el filtro de malas palabras del chat {1}",
"ResetAllKeyBindsConfirm": "¿Estás seguro de que deseas restablecer todas las combinaciones de teclas a sus valores predeterminados?",
"NotRentingAVehicle": "¡No estás alquilando un vehículo!",
"StoppedRentingVehicle": "Dejaste de alquilar el {1}",
"VehicleEngineStartKeyPressTip": "El motor del {1} está apagado. Presiona {2} para encenderlo.",
"VehicleEngineStartCommandTip": "El motor del {1} está apagado. Usa {2} para encenderlo.",
"StartedRentingVehicle": "Ahora estás alquilando este {1} por {2} cada minuto. Para dejar de alquilarlo, usa {3}",
"VehicleAlreadyRentedByOther": "Este vehículo ya está alquilado por otra persona",
"VehicleAlreadyRentedBySelf": "Ya estás alquilando este vehículo",
"JobRankTooLow": "¡No tienes un rango lo suficientemente alto!",
"InvalidKeyName": "¡El ID de clave o el nombre que ingresaste no es válido!",
"KeyBindsReset": "Todas tus combinaciones de teclas se han restablecido a los valores predeterminados",
"KeyBindNameTip": "Utilice nombres de teclas simples, letras o números. No agregue espacios.",
"UniversalInlineExamplesList": "Ejemplos: {1}",
"KeyBindRemoved": "Quitaste la combinación de teclas para la tecla {1}",
"KeyBindAdded": "Has vinculado la tecla {1} a la {2}",
"CopyAllKeyBindsToServerConfirm": "¿Está seguro de que desea copiar todas sus combinaciones de teclas en el servidor {1}?",
"CopiedAllKeyBindsToServer": "Todas sus combinaciones de teclas se han copiado en el servidor {1}",
"MustBeSpawned": "¡Debes estar spawneado!",
"ChatEmojiSet": "Activaste emoji automático en el chat {1}",
"FishingLineNotCast": "¡Tu hilo de pescar no está lanzado!",
"CantFishHere": "¡No puedes pescar aquí! ¡Necesitas estar cerca del agua o en un bote!",
"NeedFishingRod": "Necesitas estar sosteniendo una caña de pescar!",
"FishingCastCommandHelp": "Usa {1} para lanzar tu hilo de pescar",
"FishingCastKeyBindHelp": "Presiona {1} para lanzar tu hilo de pescar",
"Paused": "En Pausa",
"PaintBallAlmostWin": "¡{1} solo necesitas {2} muertes más para ganar la partida de paintball!",
"HeaderClanFlagsList": "Clan Flags ({1})",
"PleaseWait": "Please wait ...",
"HeaderServerRulesList": "Server Rules",
"FrequencyChannelChanged": "You set the channel of your {1} in slot {2} to {3}",
"ItemTurnedOnOff": "You turned {1} your {2} in slot {3}",
"SkinSelectHelpTextSkin": "Press {1} or {2} to switch skin, {3} to save, or {4} to cancel",
"SkinSelectHelpTextBodyPart": "Press {1} or {2} to switch body part",
"SkinSelectBodyPartNames": {
"Head": "Head",
"UpperBody": "Upper Body",
"LowerBody": "Lower Body",
"Hair": "Hair",
"Hat": "Hat",
"Glasses": "Glasses",
"LeftHand": "Left Hand",
"RightHand": "Right Hand",
"LeftWrist": "Left Wrist",
"RightWrist": "Right Wrist"
},
"ActionTips": {
"VehicleEngineOffWhenEnteringKey": "Use {1} to turn on or off a vehicle's engine",
"VehicleLockedAfterEntryAttempt": "Use {1} to lock or unlock a vehicle",
"ShowItemsAfterPurchase": "Use {1} to see your inventory",
"BuyCommandAfterEnterBusiness": "Use {1} to buy items from a business",
"UseItemKeyAfterEquipping": "Use {1} to use your equipped item",
"UseItemKeyAfterEquippingWalkieTalkie": "Use {1} to turn on or off your radio",
"RadioCommandAfterEnablingWalkieTalkie": "Use {1} to talk on your radio",
"ReplyToDirectMessage": "Use {1} to easily reply to a private message",
"UseItemKeyAmmoAfterEquippingWeapon": "Use {1} to load an ammo item into your equipped weapon",
"AnimationStop": "Use {1} to stop your animation",
"JobEquipmentInventory": "The job equipment is in your inventory. Use {1} to see them.",
"ViewInventory": "Use {1} to see your items",
"VehicleRepairItemUsage": "Stand next to a vehicle and use {1} to repair it",
"VehicleColourItemUsage": "Stand next to a vehicle and use {1} to change it's colour",
"VehiclePartItemUsage": "Stand next to a vehicle and use {1} to upgrade with {2}",
"AmmoClipItemUsage": "Equip the weapon and use {1} to load ammo into it",
"GenericItemUsage": "Use {1} to use the {2}",
"EnterJobVehicleForRoute": "Enter a job vehicle nearby to start a job route",
"JobLocations": "Visit a job location to get a job. Use {1} to find a job location",
"JobRouteStart": "Use {1} to start a job route with this vehicle"
},
"DisconnectReasons": {
"Unknown": "Unknown",
"LostConnection": "Lost Connection",
"Disconnected": "Disconnected",
"UnsupportedClient": "Unsupported Client",
"WrongGame": "Wrong Game",
"IncorrectPassword": "Incorrect Password",
"UnsupportedExecutable": "Unsupported Executable",
"Kicked": "Disconnected",
"Banned": "Banned",
"Failed": "Failed",
"InvalidName": "Invalid Name",
"Crashed": "Crashed",
"ModifiedGame": "Modified Game",
"FailedToLogin": "Kicked - Failed to login",
"NotATester": "Kicked - Not a tester",
"ClientScriptVerificationFail": "Client script verification failed (possible hacks)",
"ServerRestarting": "Server is restarting",
"Desync": "Desynced",
"FailedToCreateCharacter": "Kicked - Didn't create a character"
},
"DevelopersNotified": "The developers have been notified of the problem",
"NoJobLocationCloseEnough": "There are no job locations close enough!",
"NotAllowedToUseJobs": "You are not allowed to use any jobs!",
"CantUseThisJob": "You can't use this job!",
"JobChanged": "💼 You now have the {1} job",
"NeedToBeNearJob": "You need to be near your job location or a vehicle that belongs to your job!",
"DontHaveAJob": "You don't have a job!",
"StartedWorking": "💼 You are now working for the {1} job",
"StoppedWorking": "You have stopped working",
"ItemsStoredForJob": "Your personal items have been stored in your locker while you work",
"NoJobRoutesForLocation": "Your job does not have any routes for this location!",
"CurrentJobRouteDeleted": "The job route you were on has been deleted or disabled by an admin",
"YourTax": "Your tax on payday is: {1}. Use {2} for more information.",
"YourWealth": "Your wealth is: {1}. Use {2} for more information.",
"InvalidKeyBindName": "Key name not found!",
"BusinessPurchased": "🏢You are now the owner of business {1}",
"HousePurchased": "🏘️ You are now the owner of house {1}",
"CopyAllKeyBindsConfirm": "Are you sure you want to copy your keybinds to the {1} server?",
"CopyAllKeyBindsOverwriteWarning": "This will replace all your keybinds on the other server",
"NoPromptAccept": "You don't have anything to accept",
"NoPromptReject": "You don't have anything to reject",
"NotOrderingAnyBusinessItems": "You aren't ordering anything for a business!",
"BusinessOrderCanceled": "You cancelled the business item order",
"DidNotCreateCharacter": "You do not have a character to play. Goodbye!",
"BusinessOrderNotEnoughMoney": "This business doesn't have enough money to order that! Deposit some using {1}",
"ADDED-12OCT2022": "DO NOT TRANSLATE. Example of line below: You ordered 50 Colt 45 (100 rounds) for $5000!",
"BusinessOrderSuccessInfo": "You ordered {1} {2} for {4}!",
"AccountSettings": {
"UseWhiteList": "Access whitelist",
"UseBlackList": "Access blacklist",
"TwoStepAuth": "Require 2FA code on login",
"AuthAttemptAlert": "Email login notifications",
"NoGUI": "No GUI",
"AutoLoginIP": "Automatic login by IP",
"NoServerLogo": "No server logo",
"AutoSelectLastCharacter": "Automatic spawn as most recent character",
"ShowRealTimeClock": "Show real time clock",
"UseGUIForItems": "Use GUI for inventory",
"UseRadialWheelItems": "Use pie wheel for inventory (like GTA V)",
"NoKeyBinds": "No keybinds",
"NoRandomTips": "No random tips",
"NoActionTips": "No action tips",
"ChatBoxTimestamps": "Show time in chat",
"ProfanityFilter": "Profanity filter",
"ChatAutoHide": "Automatically hide inactive chatbox",
"NoPlayerContent": "No custom images (like clan logos or spray tags)",
"ChatEmoji": "Show emoji images in chat"
},
"SaveSettings": "Save Settings",
"Cancel": "Cancel",
"AlreadyOwnVehicle": "You already own this vehicle!",
"PropertyEntranceFeeLabel": "Entrance Fee: {1}",
"NeedToBeInJobVehicle": "You need to be in a job vehicle!"
}

View File

@@ -1,5 +1,5 @@
<meta>
<info author="Vortrex" version="1.0" description="Asshat Gaming Roleplay - Main Script" />
<info author="Vortrex" version="1.0" description="Vortrex's Roleplay Resource - Main Script" />
<!-- Shared -->
<script src="scripts/shared/const.js" type="server" language="javascript" />
@@ -89,7 +89,8 @@
<file type="client" src="files/fonts/aurora-bold-condensed.ttf" />
<file type="client" src="files/images/skins/none.png" />
<!--<file type="client" src="files/images/server-logo.png" />-->
<file type="client" src="files/images/asshat-logo.png" />
<file type="client" src="files/images/gtac-logo.png" />
<file type="client" src="files/images/mafiac-logo.png" />
<file type="client" src="files/images/cursor.png" />
<!-- GUI -->
@@ -114,11 +115,11 @@
<script src="scripts/client/gui/games/betting.js" type="client" language="javascript" />
<script src="scripts/client/gui/games/5cardpoker.js" type="client" language="javascript" />
<!-- Client Scripts -->
<script src="scripts/client/afk.js" type="client" language="javascript" />
<script src="scripts/client/animation.js" type="client" language="javascript" />
<script src="scripts/client/business.js" type="client" language="javascript" />
<script src="scripts/client/core.js" type="client" language="javascript" />
<script src="scripts/client/chat.js" type="client" language="javascript" />
<script src="scripts/client/cursor.js" type="client" language="javascript" />
<script src="scripts/client/economy.js" type="client" language="javascript" />
@@ -132,7 +133,6 @@
<script src="scripts/client/label.js" type="client" language="javascript" />
<script src="scripts/client/locale.js" type="client" language="javascript" />
<script src="scripts/client/logo.js" type="client" language="javascript" />
<script src="scripts/client/main.js" type="client" language="javascript" />
<script src="scripts/client/messaging.js" type="client" language="javascript" />
<script src="scripts/client/mousecam.js" type="client" language="javascript" />
<script src="scripts/client/nametag.js" type="client" language="javascript" />

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: afk.js
// DESC: Provides AFK detection
@@ -10,8 +9,8 @@
// Init AFK script
function initAFKScript() {
logToConsole(LOG_DEBUG, "[AGRP.AFK]: Initializing AFK script ...");
logToConsole(LOG_DEBUG, "[AGRP.AFK]: AFK script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.AFK]: Initializing AFK script ...");
logToConsole(LOG_DEBUG, "[V.RP.AFK]: AFK script initialized!");
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: animation.js
// DESC: Provides animation functions and usage
@@ -9,8 +8,8 @@
// ===========================================================================
function initAnimationScript() {
logToConsole(LOG_DEBUG, "[AGRP.Animation]: Initializing animation script ...");
logToConsole(LOG_DEBUG, "[AGRP.Animation]: Animation script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Animation]: Initializing animation script ...");
logToConsole(LOG_DEBUG, "[V.RP.Animation]: Animation script initialized!");
}
// ===========================================================================
@@ -27,8 +26,8 @@ function makePedPlayAnimation(pedId, animationSlot, positionOffset) {
let freezePlayer = false;
switch (animationData.moveType) {
case AGRP_ANIMMOVE_FORWARD: {
setElementCollisionsEnabled(ped, false);
case V_ANIMMOVE_FORWARD: {
setElementCollisionsEnabled(pedId, false);
if (ped.isSyncer) {
setElementPosition(ped, getPosInFrontOfPos(getElementPosition(pedId), fixAngle(getElementHeading(pedId)), positionOffset));
}
@@ -36,7 +35,7 @@ function makePedPlayAnimation(pedId, animationSlot, positionOffset) {
break;
}
case AGRP_ANIMMOVE_BACK: {
case V_ANIMMOVE_BACK: {
setElementCollisionsEnabled(pedId, false);
if (ped.isSyncer) {
setElementPosition(pedId, getPosBehindPos(getElementPosition(pedId), fixAngle(getElementHeading(pedId)), positionOffset));
@@ -45,7 +44,7 @@ function makePedPlayAnimation(pedId, animationSlot, positionOffset) {
break;
}
case AGRP_ANIMMOVE_LEFT: {
case V_ANIMMOVE_LEFT: {
setElementCollisionsEnabled(pedId, false);
if (ped.isSyncer) {
setElementPosition(pedId, getPosToLeftOfPos(getElementPosition(pedId), fixAngle(getElementHeading(pedId)), positionOffset));
@@ -54,7 +53,7 @@ function makePedPlayAnimation(pedId, animationSlot, positionOffset) {
break;
}
case AGRP_ANIMMOVE_RIGHT: {
case V_ANIMMOVE_RIGHT: {
setElementCollisionsEnabled(pedId, false);
if (ped.isSyncer) {
setElementPosition(pedId, getPosToRightOfPos(getElementPosition(pedId), fixAngle(getElementHeading(pedId)), positionOffset));
@@ -68,9 +67,9 @@ function makePedPlayAnimation(pedId, animationSlot, positionOffset) {
}
}
if (getGame() < AGRP_GAME_GTA_IV) {
if (animationData.animType == AGRP_ANIMTYPE_NORMAL || animationData.animType == AGRP_ANIMTYPE_SURRENDER) {
if (getGame() == AGRP_GAME_GTA_VC || getGame() == AGRP_GAME_GTA_SA) {
if (getGame() < V_GAME_GTA_IV) {
if (animationData.animType == V_ANIMTYPE_NORMAL || animationData.animType == V_ANIMTYPE_SURRENDER) {
if (getGame() == V_GAME_GTA_VC || getGame() == V_GAME_GTA_SA) {
ped.clearAnimations();
} else {
ped.clearObjective();
@@ -82,7 +81,7 @@ function makePedPlayAnimation(pedId, animationSlot, positionOffset) {
setLocalPlayerControlState(false, false);
localPlayer.collisionsEnabled = false;
}
} else if (animationData.animType == AGRP_ANIMTYPE_BLEND) {
} else if (animationData.animType == V_ANIMTYPE_BLEND) {
ped.position = ped.position;
ped.blendAnimation(animationData.groupId, animationData.animId, animationData.animSpeed);
}
@@ -103,7 +102,7 @@ function forcePedAnimation(pedId, animSlot) {
let animationData = getAnimationData(animSlot);
if (getGame() < AGRP_GAME_GTA_IV) {
if (getGame() < V_GAME_GTA_IV) {
ped.position = ped.position;
ped.addAnimation(animationData.groupId, animationData.animId);
@@ -127,8 +126,8 @@ function makePedStopAnimation(pedId) {
return false;
}
if (getGame() != AGRP_GAME_GTA_IV) {
if (getGame() == AGRP_GAME_GTA_VC || getGame() == AGRP_GAME_GTA_SA) {
if (getGame() != V_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_VC || getGame() == V_GAME_GTA_SA) {
ped.clearAnimations();
} else {
ped.clearObjective();
@@ -136,7 +135,7 @@ function makePedStopAnimation(pedId) {
}
if (ped == localPlayer) {
if (getGame() != AGRP_GAME_GTA_IV) {
if (getGame() != V_GAME_GTA_IV) {
localPlayer.collisionsEnabled = true;
}
setLocalPlayerControlState(true, false);

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: business.js
// DESC: Provides business functions and usage
@@ -23,22 +22,23 @@ class BusinessData {
this.blipId = -1;
this.labelInfoType = 0;
this.locked = false;
this.entranceFee = 0;
}
}
// ===========================================================================
function initBusinessScript() {
logToConsole(LOG_DEBUG, "[AGRP.Business]: Initializing business script ...");
logToConsole(LOG_INFO, "[AGRP.Business]: Business script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Business]: Initializing business script ...");
logToConsole(LOG_INFO, "[V.RP.Business]: Business script initialized!");
}
// ===========================================================================
function receiveBusinessFromServer(businessId, name, entrancePosition, blipModel, pickupModel, buyPrice, rentPrice, hasInterior, locked, hasItems) {
function receiveBusinessFromServer(businessId, name, entrancePosition, blipModel, pickupModel, buyPrice, rentPrice, hasInterior, locked, hasItems, entranceFee) {
logToConsole(LOG_DEBUG, `[AGRP.Business] Received business ${businessId} (${name}) from server`);
if (!areServerElementsSupported() || getGame() == AGRP_GAME_MAFIA_ONE) {
if (!areServerElementsSupported() || getGame() == V_GAME_MAFIA_ONE || getGame() == V_GAME_GTA_IV) {
if (getBusinessData(businessId) != false) {
let businessData = getBusinessData(businessId);
businessData.name = name;
@@ -50,14 +50,15 @@ function receiveBusinessFromServer(businessId, name, entrancePosition, blipModel
businessData.rentPrice = rentPrice;
businessData.hasItems = hasItems;
businessData.locked = locked;
businessData.entranceFee = entranceFee;
if (hasInterior && !hasItems) {
businessData.labelInfoType = AGRP_PROPLABEL_INFO_ENTER;
businessData.labelInfoType = V_PROPLABEL_INFO_ENTER;
} else if (!hasInterior && hasItems) {
businessData.labelInfoType = AGRP_PROPLABEL_INFO_BUY;
businessData.labelInfoType = V_PROPLABEL_INFO_BUY;
} else {
if (businessData.buyPrice > 0) {
businessData.labelInfoType = AGRP_PROPLABEL_INFO_BUYBIZ;
businessData.labelInfoType = V_PROPLABEL_INFO_BUYBIZ;
}
}
@@ -65,7 +66,7 @@ function receiveBusinessFromServer(businessId, name, entrancePosition, blipModel
if (blipModel == -1) {
if (businessData.blipId != -1) {
logToConsole(LOG_DEBUG, `[AGRP.Business] Business ${businessId}'s blip has been removed by the server`);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.removeBlipAndClearIndex(getBusinessData(businessId).blipId);
} else {
destroyElement(getElementFromId(blipId));
@@ -79,7 +80,7 @@ function receiveBusinessFromServer(businessId, name, entrancePosition, blipModel
} else {
if (businessData.blipId != -1) {
logToConsole(LOG_DEBUG, `[AGRP.Business] Business ${businessId}'s blip has been changed by the server`);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.setBlipCoordinates(businessData.blipId, businessData.entrancePosition);
natives.changeBlipSprite(businessData.blipId, businessData.blipModel);
natives.setBlipMarkerLongDistance(businessData.blipId, false);

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: camera.js
// DESC: Provides camera functions and usage

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: chatbox.js
// DESC: Provides extra chatbox features
@@ -29,11 +28,11 @@ let scrollDownKey = false;
// ===========================================================================
function initChatBoxScript() {
logToConsole(LOG_DEBUG, "[AGRP.Chat]: Initializing chat script ...");
logToConsole(LOG_DEBUG, "[V.RP.Chat]: Initializing chat script ...");
scrollUpKey = getKeyIdFromParams("pageup");
scrollDownKey = getKeyIdFromParams("pagedown");
bindChatBoxKeys();
logToConsole(LOG_INFO, "[AGRP.Chat]: Chat script initialized!");
logToConsole(LOG_INFO, "[V.RP.Chat]: Chat script initialized!");
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: content.js
// DESC: Provides connection to extra content resources

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: main.js
// DESC: Main client script (will be reorganized into individual files later)
@@ -17,8 +16,6 @@ let inVehicleSeat = false;
let isWalking = false;
let isSpawned = false;
let garbageCollectorInterval = null;
//let parkedVehiclePosition = false;
//let parkedVehicleHeading = false;
@@ -31,7 +28,7 @@ let renderHotBar = true;
let renderItemActionDelay = true;
let renderInteriorLights = true;
let logLevel = LOG_INFO | LOG_DEBUG;
let logLevel = LOG_INFO;
let weaponDamageEnabled = {};
let weaponDamageEvent = {};
@@ -65,7 +62,7 @@ let mouseCursorEnabled = false;
let currentPickup = false;
let vehiclePurchaseState = AGRP_VEHBUYSTATE_NONE;
let vehiclePurchaseState = V_VEHBUYSTATE_NONE;
let vehiclePurchasing = null;
let vehiclePurchasePosition = null;
@@ -84,6 +81,15 @@ let profanityFilterEnabled = false;
let localLocaleId = 0;
/**
* @typedef {Object} ServerData
* @property {Array.<HouseData>} houses
* @property {Array.<BusinessData>} businesses
* @property {Array.<VehicleData>} vehicles
* @property {Array} localeStrings
* @property {Array} localeOptions
* @property {Object} cvars
*/
let serverData = {
houses: [],
businesses: [],
@@ -91,6 +97,7 @@ let serverData = {
localeOptions: [],
vehicles: [],
jobs: [],
cvars: {},
};
let localPlayerMoney = 0;
@@ -103,4 +110,6 @@ let mapChangeWarning = false;
let cruiseControlEnabled = false;
let cruiseControlSpeed = 0.0;
let myToken = "";
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: cursor.js
// DESC: Provides cursor functions and usage
@@ -15,14 +14,14 @@ let cursorSize = toVector2(16.0, 24.0);
// ===========================================================================
function initCursorScript() {
logToConsole(LOG_DEBUG, "[AGRP.Cursor]: Initializing cursor script ...");
logToConsole(LOG_DEBUG, "[V.RP.Cursor]: Initializing cursor script ...");
let cursorStream = openFile(cursorImagePath);
if (cursorStream != null) {
cursorImage = graphics.loadPNG(cursorStream);
cursorStream.close();
}
logToConsole(LOG_INFO, "[AGRP.Cursor]: Cursor script initialized!");
logToConsole(LOG_INFO, "[V.RP.Cursor]: Cursor script initialized!");
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: economy.js
// DESC: Provides economy functions

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: event.js
// DESC: Provides handlers for built in GTAC and Asshat-Gaming created events
@@ -9,9 +8,9 @@
// ===========================================================================
function initEventScript() {
logToConsole(LOG_DEBUG, "[AGRP.Event]: Initializing event script ...");
logToConsole(LOG_DEBUG, "[V.RP.Event]: Initializing event script ...");
addAllEventHandlers();
logToConsole(LOG_DEBUG, "[AGRP.Event]: Event script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Event]: Event script initialized!");
}
// ===========================================================================
@@ -42,7 +41,7 @@ function addAllEventHandlers() {
}
}
if (getGame() == AGRP_GAME_MAFIA_ONE) {
if (getGame() == V_GAME_MAFIA_ONE) {
addEventHandler("OnMapLoaded", onMapLoaded);
}
}
@@ -65,7 +64,6 @@ function onResourceStart(event, resource) {
if (resource == thisResource) {
logToConsole(LOG_DEBUG | LOG_WARN, `[AGRP.Event] onResourceStart called - Sending signal to server`);
garbageCollectorInterval = setInterval(collectAllGarbage, 1000 * 60);
localPlayerMoneyInterval = setInterval(updateLocalPlayerMoney, 1000 * 5);
sendResourceStartedSignalToServer();
}
@@ -166,7 +164,7 @@ function onElementStreamIn(event, element) {
function onPedExitedVehicle(event, ped, vehicle, seat) {
//logToConsole(LOG_DEBUG, `[AGRP.Event] Local player exited vehicle`);
//sendNetworkEventToServer("agrp.onPlayerExitVehicle", getVehicleForNetworkEvent(vehicle), seat);
//sendNetworkEventToServer("v.rp.onPlayerExitVehicle", getVehicleForNetworkEvent(vehicle), seat);
cruiseControlEnabled = false;
cruiseControlSpeed = 0.0;
@@ -176,10 +174,10 @@ function onPedExitedVehicle(event, ped, vehicle, seat) {
if (areServerElementsSupported()) {
if (inVehicleSeat == 0) {
//setVehicleEngine(vehicle.id, false);
if (!inVehicle.engine) {
parkedVehiclePosition = false;
parkedVehicleHeading = false;
}
//if (!inVehicle.engine) {
// parkedVehiclePosition = false;
// parkedVehicleHeading = false;
//}
}
}
}
@@ -190,7 +188,7 @@ function onPedExitedVehicle(event, ped, vehicle, seat) {
function onPedExitingVehicle(event, ped, vehicle, seat) {
//logToConsole(LOG_DEBUG, `[AGRP.Event] Local player exited vehicle`);
//sendNetworkEventToServer("agrp.onPlayerExitVehicle", getVehicleForNetworkEvent(vehicle), seat);
//sendNetworkEventToServer("v.rp.onPlayerExitVehicle", getVehicleForNetworkEvent(vehicle), seat);
if (localPlayer != null) {
if (ped == localPlayer) {
@@ -204,7 +202,7 @@ function onPedExitingVehicle(event, ped, vehicle, seat) {
function onPedEnteredVehicle(event, ped, vehicle, seat) {
logToConsole(LOG_DEBUG, `[AGRP.Event] Ped entered vehicle`);
//sendNetworkEventToServer("agrp.onPlayerEnterVehicle", getVehicleForNetworkEvent(vehicle), seat);
//sendNetworkEventToServer("v.rp.onPlayerEnterVehicle", getVehicleForNetworkEvent(vehicle), seat);
cruiseControlEnabled = false;
cruiseControlSpeed = 0.0;
@@ -215,9 +213,9 @@ function onPedEnteredVehicle(event, ped, vehicle, seat) {
if (inVehicleSeat == 0) {
//parkedVehiclePosition = inVehicle.position;
//parkedVehicleHeading = inVehicle.heading;
if (doesEntityDataExist(vehicle, "agrp.server") == true) {
setVehicleEngine(vehicle.id, false);
setVehicleEngine(vehicle.id, getEntityData(vehicle, "agrp.engine"));
if (doesEntityDataExist(vehicle, "v.rp.server") == true) {
//setVehicleEngine(vehicle.id, false);
setVehicleEngine(vehicle.id, getEntityData(vehicle, "v.rp.engine"));
//setLocalPlayerControlState(false, false);
}
}
@@ -238,7 +236,7 @@ function onPedInflictDamage(event, damagedEntity, damagerEntity, weaponId, healt
if (!weaponDamageEnabled[damagerEntity.name]) {
preventDefaultEventAction(event);
}
sendNetworkEventToServer("agrp.weaponDamage", damagerEntity.name, weaponId, pedPiece, healthLoss);
sendNetworkEventToServer("v.rp.weaponDamage", damagerEntity.name, weaponId, pedPiece, healthLoss);
}
}
}
@@ -297,7 +295,7 @@ function onEntityProcess(event, entity) {
// ===========================================================================
function onMapLoaded(mapName) {
sendNetworkEventToServer("agrp.mapLoaded", mapName);
sendNetworkEventToServer("v.rp.mapLoaded", mapName);
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: gps.js
// DESC: Provides GPS functions and usage
@@ -18,8 +17,8 @@ let gpsBlipBlinkTimer = null;
function showGPSLocation(position, colour) {
logToConsole(LOG_DEBUG, `[AGRP.GPS] Showing gps location`);
if (getMultiplayerMod() == AGRP_MPMOD_GTAC) {
if (getGame() == AGRP_GAME_GTA_SA) {
if (getMultiplayerMod() == V_MPMOD_GTAC) {
if (getGame() == V_GAME_GTA_SA) {
// Server-side spheres don't show in GTA SA for some reason.
gpsSphere = game.createPickup(1318, position, 1);
} else {

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: gui.js
// DESC: Provides GUI functionality and styles (using MexUI)
@@ -12,8 +11,8 @@ var app = {};
let mainFont = "Roboto"; // "Arial"
//let mainLogoPath = (typeof gta == "undefined") ? "files/images/mafiac-logo.png" : "files/images/gtac-logo.png";
let mainLogoPath = "files/images/asshat-logo.png";
let mainLogoPath = (typeof gta == "undefined") ? "files/images/mafiac-logo.png" : "files/images/gtac-logo.png";
//let mainLogoPath = "files/images/server-logo.png";
let primaryColour = [200, 200, 200];
let secondaryColour = [16, 16, 16];
@@ -41,8 +40,8 @@ let creatingCharacter = false;
// ===========================================================================
function initGUIScript() {
logToConsole(LOG_DEBUG, "[AGRP.GUI]: Initializing GUI script ...");
logToConsole(LOG_DEBUG, "[AGRP.GUI]: GUI script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.GUI]: Initializing GUI script ...");
logToConsole(LOG_DEBUG, "[V.RP.GUI]: GUI script initialized!");
}
// ===========================================================================
@@ -76,7 +75,7 @@ function initGUI() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] All GUI created successfully!`);
sendNetworkEventToServer("agrp.guiReady", true);
sendNetworkEventToServer("v.rp.guiReady", true);
};
// ===========================================================================
@@ -277,7 +276,7 @@ function processGUIKeyPress(keyCode) {
function processToggleGUIKeyPress(keyCode) {
if (keyCode == disableGUIKey) {
sendNetworkEventToServer("agrp.toggleGUI");
sendNetworkEventToServer("v.rp.toggleGUI");
}
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: 2fa.js
// DESC: Provides two factor authentication GUI
@@ -130,7 +129,7 @@ function twoFactorAuthSuccess() {
function checkTwoFactorAuth() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Checking two-factor authentication with server ...`);
sendNetworkEventToServer("agrp.2fa", twoFactorAuth.codeInput.lines[0]);
sendNetworkEventToServer("v.rp.2fa", twoFactorAuth.codeInput.lines[0]);
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: bizmgr.js
// DESC: Provides business manager GUI
@@ -78,7 +77,7 @@ function receiveBusinessManagerData(businessIndex, name, locked, entranceFee, bu
// ===========================================================================
function saveBusinessData() {
sendNetworkEventToServer("agrp.businessManagerSave", businessManager.data.businessIndex);
sendNetworkEventToServer("v.rp.businessManagerSave", businessManager.data.businessIndex);
}
*/

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: changepass.js
// DESC: Provides change password GUI
@@ -129,7 +128,7 @@ function passwordChangeFailed(errorMessage) {
function checkChangePassword() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Checking password change with server ...`);
sendNetworkEventToServer("agrp.checkChangePassword", passwordChange.passwordInput.lines[0], passwordChange.confirmPasswordInput.lines[0]);
sendNetworkEventToServer("v.rp.checkChangePassword", passwordChange.passwordInput.lines[0], passwordChange.confirmPasswordInput.lines[0]);
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: charselect.js
// DESC: Provides character select GUI
@@ -187,21 +186,21 @@ function showNewCharacter() {
function selectNextCharacter() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Requesting next character info from server for character select window`);
sendNetworkEventToServer("agrp.nextCharacter");
sendNetworkEventToServer("v.rp.nextCharacter");
}
// ===========================================================================
function selectPreviousCharacter() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Requesting previous character info from server for character select window`);
sendNetworkEventToServer("agrp.previousCharacter");
sendNetworkEventToServer("v.rp.previousCharacter");
}
// ===========================================================================
function selectThisCharacter() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Tell server the current shown character was selected in character select window`);
sendNetworkEventToServer("agrp.selectCharacter");
sendNetworkEventToServer("v.rp.selectCharacter");
}
// ===========================================================================
@@ -218,7 +217,7 @@ function switchCharacterSelectGUI(firstName, lastName, cash, clan, lastPlayed, s
if (characterSelect.skinImage != null) {
characterSelect.skinImage.remove();
}
characterSelect.skinImage = (getGame() == AGRP_GAME_GTA_III) ? characterSelect.window.image(310, 32, 100, 90, `files/images/skins/gta3/${getSkinImage(skinId)}.png`) : characterSelect.window.image(310, 32, 100, 90, "files/images/skins/none.png");
characterSelect.skinImage = (getGame() == V_GAME_GTA_III) ? characterSelect.window.image(310, 32, 100, 90, `files/images/skins/gta3/${getSkinImage(skinId)}.png`) : characterSelect.window.image(310, 32, 100, 90, "files/images/skins/none.png");
characterSelect.window.shown = true;

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: clanmgr.js
// DESC: Provides clan manager GUI

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: error.js
// DESC: Provides error box GUI

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: 5cardpoker.js
// DESC: Provides 5-card poker games GUI

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: betting.js
// DESC: Provides betting GUI (used for multiple casino games)

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: blackjack.js
// DESC: Provides blackjack game GUI

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: housemgr.js
// DESC: Provides house manager GUI

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: info.js
// DESC: Provides info dialog box GUI

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: inventory.js
// DESC: Provides inventory dialog box GUI

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: inventorybulk.js
// DESC: Provides bulk inventory box GUI

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: list.js
// DESC: Provides simple list GUI
@@ -96,7 +95,7 @@ function checkListDialogSelection() {
return false;
}
sendNetworkEventToServer("agrp.list.select", listDialog.listGrid.activeRow.getEntryIndex());
sendNetworkEventToServer("v.rp.list.select", listDialog.listGrid.activeRow.getEntryIndex());
}
// ===========================================================================
@@ -113,7 +112,7 @@ function selectPreviousListItem() {
listDialog.listGrid.activeRow = listDialog.listRows[activeRowId - 1];
}
//sendNetworkEventToServer("agrp.list.next", listDialog.listGrid.activeRow.getEntryIndex());
//sendNetworkEventToServer("v.rp.list.next", listDialog.listGrid.activeRow.getEntryIndex());
}
// ===========================================================================
@@ -126,7 +125,7 @@ function selectNextListItem() {
listDialog.listGrid.activeRow = listDialog.listRows[activeRowId + 1];
}
//sendNetworkEventToServer("agrp.list.next", listDialog.listGrid.activeRow.getEntryIndex());
//sendNetworkEventToServer("v.rp.list.next", listDialog.listGrid.activeRow.getEntryIndex());
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: localechooser.js
// DESC: Provides locale chooser GUI

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: login.js
// DESC: Provides login GUI
@@ -166,7 +165,7 @@ function showLoginGUI() {
function checkLogin() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Checking login with server ...`);
sendNetworkEventToServer("agrp.checkLogin", login.passwordInput.lines[0]);
sendNetworkEventToServer("v.rp.checkLogin", login.passwordInput.lines[0]);
}
// ===========================================================================
@@ -192,7 +191,7 @@ function switchToPasswordResetGUI() {
//closeAllWindows();
//logToConsole(LOG_DEBUG, `[AGRP.GUI] Showing password reset dialog window`);
//showResetPasswordGUI();
sendNetworkEventToServer("agrp.checkResetPassword", "");
sendNetworkEventToServer("v.rp.checkResetPassword", "");
return false;
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: newchar.js
// DESC: Provides new character creation GUI
@@ -21,7 +20,7 @@ let newCharacter = {
function initNewCharacterGUI() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Creating new character GUI ...`);
newCharacter.window = mexui.window(getScreenWidth() / 2 - 130, getScreenHeight() / 2 - 115, 300, 230, 'NEW CHARACTER', {
newCharacter.window = mexui.window(getScreenWidth() / 2 - 150, getScreenHeight() / 2 - 115, 300, 230, 'NEW CHARACTER', {
main: {
backgroundColour: toColour(secondaryColour[0], secondaryColour[1], secondaryColour[2], windowAlpha),
transitionTime: 500,
@@ -43,7 +42,7 @@ function initNewCharacterGUI() {
newCharacter.window.titleBarShown = false;
newCharacter.window.titleBarHeight = 30;
newCharacter.mainLogoImage = newCharacter.window.image(80, 20, 80, 80, mainLogoPath, {
newCharacter.mainLogoImage = newCharacter.window.image(100, 10, 100, 100, mainLogoPath, {
focused: {
borderColour: toColour(0, 0, 0, 0),
},
@@ -144,7 +143,7 @@ function checkNewCharacter() {
return false;
}
sendNetworkEventToServer("agrp.checkNewCharacter",
sendNetworkEventToServer("v.rp.checkNewCharacter",
newCharacter.firstNameInput.lines[0],
newCharacter.lastNameInput.lines[0],
);

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: register.js
// DESC: Provides account registration GUI
@@ -149,7 +148,7 @@ function registrationFailed(errorMessage) {
function checkRegistration() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Checking registration with server ...`);
sendNetworkEventToServer("agrp.checkRegistration", register.passwordInput.lines[0], register.confirmPasswordInput.lines[0], register.emailInput.lines[0]);
sendNetworkEventToServer("v.rp.checkRegistration", register.passwordInput.lines[0], register.confirmPasswordInput.lines[0], register.emailInput.lines[0]);
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: resetpass.js
// DESC: Provides password reset GUI
@@ -143,7 +142,7 @@ function showResetPasswordGUI() {
function checkResetPassword() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Checking password reset with server (${passwordReset.emailInput.lines[0]}) ...`);
sendNetworkEventToServer("agrp.checkResetPassword", passwordReset.emailInput.lines[0]);
sendNetworkEventToServer("v.rp.checkResetPassword", passwordReset.emailInput.lines[0]);
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: yesno.js
// DESC: Provides yes/no prompt dialog GUI
@@ -101,7 +100,7 @@ function showYesNoPromptGUI(promptMessage, promptTitle, yesButtonText, noButtonT
function yesNoDialogAnswerNo() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Responding with answer NO to server prompt`);
sendNetworkEventToServer("agrp.promptAnswerNo");
sendNetworkEventToServer("v.rp.promptAnswerNo");
closeAllWindows();
}
@@ -109,7 +108,7 @@ function yesNoDialogAnswerNo() {
function yesNoDialogAnswerYes() {
logToConsole(LOG_DEBUG, `[AGRP.GUI] Responding with answer YES to server prompt`);
sendNetworkEventToServer("agrp.promptAnswerYes");
sendNetworkEventToServer("v.rp.promptAnswerYes");
closeAllWindows();
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: house.js
// DESC: Provides house functions and usage
@@ -29,7 +28,7 @@ class HouseData {
function receiveHouseFromServer(houseId, description, entrancePosition, blipModel, pickupModel, buyPrice, rentPrice, hasInterior, locked) {
logToConsole(LOG_DEBUG, `[AGRP.House] Received house ${houseId} (${name}) from server`);
if (!areServerElementsSupported() || getGame() == AGRP_GAME_MAFIA_ONE) {
if (!areServerElementsSupported() || getGame() == V_GAME_MAFIA_ONE || getGame() == V_GAME_GTA_IV) {
if (getHouseData(houseId) != false) {
let houseData = getHouseData(houseId);
houseData.description = description;
@@ -42,12 +41,12 @@ function receiveHouseFromServer(houseId, description, entrancePosition, blipMode
houseData.locked = locked;
if (houseData.buyPrice > 0) {
houseData.labelInfoType = AGRP_PROPLABEL_INFO_BUYHOUSE;
houseData.labelInfoType = V_PROPLABEL_INFO_BUYHOUSE;
} else {
if (houseData.rentPrice > 0) {
houseData.labelInfoType = AGRP_PROPLABEL_INFO_RENTHOUSE;
houseData.labelInfoType = V_PROPLABEL_INFO_RENTHOUSE;
} else {
houseData.labelInfoType = AGRP_PROPLABEL_INFO_ENTER;
houseData.labelInfoType = V_PROPLABEL_INFO_ENTER;
}
}
@@ -55,7 +54,7 @@ function receiveHouseFromServer(houseId, description, entrancePosition, blipMode
if (blipModel == -1) {
if (houseData.blipId != -1) {
logToConsole(LOG_DEBUG, `[AGRP.House] House ${houseId}'s blip has been removed by the server`);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.removeBlipAndClearIndex(getHouseData(houseId).blipId);
} else {
destroyElement(getElementFromId(blipId));
@@ -67,7 +66,7 @@ function receiveHouseFromServer(houseId, description, entrancePosition, blipMode
} else {
if (houseData.blipId != -1) {
logToConsole(LOG_DEBUG, `[AGRP.House] House ${houseId}'s blip has been changed by the server`);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.setBlipCoordinates(houseData.blipId, houseData.entrancePosition);
natives.changeBlipSprite(houseData.blipId, houseData.blipModel);
natives.setBlipMarkerLongDistance(houseData.blipId, false);

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: item.js
// DESC: Provides item action and hotbar functions
@@ -17,8 +16,8 @@ let itemActionDelaySize = toVector2(200, 5);
// ===========================================================================
function initItemScript() {
logToConsole(LOG_DEBUG, "[AGRP.Item]: Initializing item script ...");
logToConsole(LOG_DEBUG, "[AGRP.Item]: Item script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Item]: Initializing item script ...");
logToConsole(LOG_DEBUG, "[V.RP.Item]: Item script initialized!");
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: job.js
// DESC: Provides job functions and usage
@@ -36,8 +35,8 @@ class JobData {
// ===========================================================================
function initJobScript() {
logToConsole(LOG_DEBUG, "[AGRP.Job]: Initializing job script ...");
logToConsole(LOG_DEBUG, "[AGRP.Job]: Job script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Job]: Initializing job script ...");
logToConsole(LOG_DEBUG, "[V.RP.Job]: Job script initialized!");
}
// ===========================================================================
@@ -59,8 +58,8 @@ function setLocalPlayerWorkingState(tempWorking) {
function showJobRouteLocation(position, colour) {
logToConsole(LOG_DEBUG, `[AGRP.Job] Showing job route location at ${position.x}, ${position.y}, ${position.z}`);
hideJobRouteLocation();
if (getMultiplayerMod() == AGRP_MPMOD_GTAC) {
if (getGame() == AGRP_GAME_GTA_SA) {
if (getMultiplayerMod() == V_MPMOD_GTAC) {
if (getGame() == V_GAME_GTA_SA) {
// Server-side spheres don't show in GTA SA for some reason.
jobRouteLocationSphere = game.createPickup(1318, position, 1);
} else {
@@ -140,7 +139,7 @@ function hideJobRouteLocation() {
function receiveJobFromServer(jobId, jobLocationId, name, position, blipModel, pickupModel) {
logToConsole(LOG_DEBUG, `[AGRP.Job] Received job ${jobId} (${name}) from server`);
if (getGame() == AGRP_GAME_GTA_IV) {
if (!areServerElementsSupported() || getGame() == V_GAME_MAFIA_ONE || getGame() == V_GAME_GTA_IV) {
if (getJobData(jobId) != false) {
let jobData = getJobData(jobId);
jobData.jobLocationId = jobLocationId;
@@ -153,7 +152,7 @@ function receiveJobFromServer(jobId, jobLocationId, name, position, blipModel, p
if (blipModel == -1) {
if (jobData.blipId != -1) {
logToConsole(LOG_DEBUG, `[AGRP.Job] Job ${jobId}'s blip has been removed by the server`);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.removeBlipAndClearIndex(getJobData(jobId).blipId);
} else {
destroyElement(getElementFromId(blipId));
@@ -165,7 +164,7 @@ function receiveJobFromServer(jobId, jobLocationId, name, position, blipModel, p
} else {
if (jobData.blipId != -1) {
logToConsole(LOG_DEBUG, `[AGRP.Job] Job ${jobId}'s blip has been changed by the server`);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.setBlipCoordinates(jobData.blipId, jobData.position);
natives.changeBlipSprite(jobData.blipId, jobData.blipModel);
natives.setBlipMarkerLongDistance(jobData.blipId, false);

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: keybind.js
// DESC: Provides keybind features
@@ -17,8 +16,8 @@ let keyBindLongHoldDuration = 1500;
// ===========================================================================
function initKeyBindScript() {
logToConsole(LOG_DEBUG, "[AGRP.KeyBind]: Initializing key bind script ...");
logToConsole(LOG_DEBUG, "[AGRP.KeyBind]: Key bind script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.KeyBind]: Initializing key bind script ...");
logToConsole(LOG_DEBUG, "[V.RP.KeyBind]: Key bind script initialized!");
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: labels.js
// DESC: Provides functionality for world labels (3D labels)
@@ -14,7 +13,7 @@ let jobLabels = [];
let propertyLabelNameFont = null;
let propertyLabelLockedFont = null;
let propertyLabelHeight = (getGame() == AGRP_GAME_MAFIA_ONE) ? 2.0 : 1.0;
let propertyLabelHeight = (getGame() == V_GAME_MAFIA_ONE) ? 2.0 : 1.0;
let propertyPickupRenderDistance = 75.0;
let propertyLabelRenderDistance = 5.0;
let propertyLabelLockedOffset = 16;
@@ -31,12 +30,12 @@ let jobHelpColour = toColour(234, 198, 126, 255);
// ===========================================================================
function initLabelScript() {
logToConsole(LOG_DEBUG, "[AGRP.Label]: Initializing label script ...");
logToConsole(LOG_DEBUG, "[V.RP.Label]: Initializing label script ...");
propertyLabelNameFont = initLabelPropertyNameFont();
propertyLabelLockedFont = initLabelPropertyLockedFont();
jobNameLabelFont = initLabelJobNameFont();
jobHelpLabelFont = initLabelJobHelpFont();
logToConsole(LOG_DEBUG, "[AGRP.Label]: Label script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Label]: Label script initialized!");
}
// ===========================================================================
@@ -65,7 +64,7 @@ function initLabelJobHelpFont() {
// ===========================================================================
function renderPropertyEntranceLabel(name, position, locked, isBusiness, price, rentPrice, labelInfoType) {
function renderPropertyEntranceLabel(name, position, locked, isBusiness, price, rentPrice, labelInfoType, fee) {
if (localPlayer == null) {
return false;
}
@@ -78,21 +77,21 @@ function renderPropertyEntranceLabel(name, position, locked, isBusiness, price,
return false;
}
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
if (!natives.doesViewportExist(natives.getGameViewportId())) {
logToConsole(LOG_INFO, "[AGRP.Label]: Game viewport does not exist!");
logToConsole(LOG_INFO, "[V.RP.Label]: Game viewport does not exist!");
return false;
}
if (!natives.isViewportActive(natives.getGameViewportId())) {
logToConsole(LOG_INFO, "[AGRP.Label]: Game viewport is not active!");
logToConsole(LOG_INFO, "[V.RP.Label]: Game viewport is not active!");
return false;
}
}
position = getPosAbovePos(position, propertyLabelHeight);
let screenPosition = new Vec3(0.0, 0.0, 0.0);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
screenPosition = natives.getViewportPositionOfCoord(position, natives.getGameViewportId());
} else {
screenPosition = getScreenFromWorldPosition(position);
@@ -122,16 +121,25 @@ function renderPropertyEntranceLabel(name, position, locked, isBusiness, price,
screenPosition.y -= propertyLabelPriceOffset;
}
text = "";
if (toInteger(fee) > 0) {
text = getLocaleString("PropertyEntranceFeeLabel", getCurrencyString(fee));
let size = propertyLabelLockedFont.measure(text, game.width, 0.0, 0.0, propertyLabelLockedFont.size, true, true);
propertyLabelLockedFont.render(text, [screenPosition.x - size[0] / 2, screenPosition.y - size[1] / 2], game.width, 0.0, 0.0, propertyLabelLockedFont.size, toColour(200, 200, 200, 255), false, true, false, true);
screenPosition.y -= propertyLabelPriceOffset;
}
if (isBusiness) {
text = (locked) ? toUpperCase(getLocaleString("Closed")) : toUpperCase(getLocaleString("Open"));
} else {
text = (locked) ? toUpperCase(getLocaleString("Locked")) : toUpperCase(getLocaleString("Unlocked"));
}
if (!locked && labelInfoType != AGRP_PROPLABEL_INFO_NONE) {
if (!locked && labelInfoType != V_PROPLABEL_INFO_NONE) {
let infoText = "";
switch (labelInfoType) {
case AGRP_PROPLABEL_INFO_ENTER: {
case V_PROPLABEL_INFO_ENTER: {
if (enterPropertyKey) {
infoText = getLocaleString("PropertyEnterKeyPressLabel", toUpperCase(getKeyNameFromId(enterPropertyKey)));
} else {
@@ -140,27 +148,27 @@ function renderPropertyEntranceLabel(name, position, locked, isBusiness, price,
break;
}
case AGRP_PROPLABEL_INFO_BUY: {
case V_PROPLABEL_INFO_BUY: {
infoText = getLocaleString("BusinessBuyItemsLabel", "/buy");
break;
}
case AGRP_PROPLABEL_INFO_BUYBIZ: {
case V_PROPLABEL_INFO_BUYBIZ: {
infoText = getLocaleString("BuyBusinessLabel", "/bizbuy");
break;
}
case AGRP_PROPLABEL_INFO_BUYHOUSE: {
case V_PROPLABEL_INFO_BUYHOUSE: {
infoText = getLocaleString("BuyHouseLabel", "/housebuy");
break;
}
case AGRP_PROPLABEL_INFO_RENTHOUSE: {
case V_PROPLABEL_INFO_RENTHOUSE: {
infoText = getLocaleString("RentHouseLabel", "/houserent");
break;
}
case AGRP_PROPLABEL_INFO_ENTERVEHICLE: {
case V_PROPLABEL_INFO_ENTERVEHICLE: {
infoText = getLocaleString("VehicleDealershipLabel");
break;
}
@@ -210,14 +218,14 @@ function renderPropertyExitLabel(position) {
return false;
}
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
if (!natives.doesViewportExist(natives.getGameViewportId())) {
logToConsole(LOG_INFO, "[AGRP.Label]: Game viewport does not exist!");
logToConsole(LOG_INFO, "[V.RP.Label]: Game viewport does not exist!");
return false;
}
if (!natives.isViewportActive(natives.getGameViewportId())) {
logToConsole(LOG_INFO, "[AGRP.Label]: Game viewport is not active!");
logToConsole(LOG_INFO, "[V.RP.Label]: Game viewport is not active!");
return false;
}
}
@@ -225,7 +233,7 @@ function renderPropertyExitLabel(position) {
let tempPosition = position;
tempPosition.z = tempPosition.z + propertyLabelHeight;
let screenPosition = new Vec3(0.0, 0.0, 0.0);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
screenPosition = natives.getViewportPositionOfCoord(tempPosition, natives.getGameViewportId());
} else {
screenPosition = getScreenFromWorldPosition(tempPosition);
@@ -255,14 +263,14 @@ function renderJobLabel(name, position, jobType) {
return false;
}
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
if (!natives.doesViewportExist(natives.getGameViewportId())) {
logToConsole(LOG_INFO, "[AGRP.Label]: Game viewport does not exist!");
logToConsole(LOG_INFO, "[V.RP.Label]: Game viewport does not exist!");
return false;
}
if (!natives.isViewportActive(natives.getGameViewportId())) {
logToConsole(LOG_INFO, "[AGRP.Label]: Game viewport is not active!");
logToConsole(LOG_INFO, "[V.RP.Label]: Game viewport is not active!");
return false;
}
}
@@ -270,7 +278,7 @@ function renderJobLabel(name, position, jobType) {
let tempPosition = position;
tempPosition.z = tempPosition.z + propertyLabelHeight;
let screenPosition = new Vec3(0.0, 0.0, 0.0);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
screenPosition = natives.getViewportPositionOfCoord(tempPosition, natives.getGameViewportId());
} else {
screenPosition = getScreenFromWorldPosition(tempPosition);
@@ -309,23 +317,23 @@ function renderJobLabel(name, position, jobType) {
function processLabelRendering() {
if (renderLabels) {
if (!areServerElementsSupported() || getGame() == AGRP_GAME_MAFIA_ONE) {
if (!areServerElementsSupported() || getGame() == V_GAME_MAFIA_ONE || getGame() == V_GAME_GTA_IV || getGame() == V_GAME_GTA_IV_EFLC) {
if (localPlayer != null) {
getServerData().businesses.forEach((business) => {
if (getDistance(localPlayer.position, business.entrancePosition) <= propertyPickupRenderDistance) {
if (getGame() == AGRP_GAME_GTA_IV || getGame() == AGRP_GAME_GTA_IV_EFLC) {
if (getGame() == V_GAME_GTA_IV || getGame() == V_GAME_GTA_IV_EFLC) {
natives.drawColouredCylinder(getPosBelowPos(business.entrancePosition, 1.0), 0.0, 0.0, 0, 153, 255, 255);
}
if (getDistance(localPlayer.position, business.entrancePosition) <= propertyLabelRenderDistance) {
renderPropertyEntranceLabel(business.name, business.entrancePosition, business.locked, true, business.buyPrice, business.rentPrice, business.labelInfoType);
renderPropertyEntranceLabel(business.name, business.entrancePosition, business.locked, true, business.buyPrice, business.rentPrice, business.labelInfoType, business.entranceFee);
}
}
});
getServerData().houses.forEach((house) => {
if (getDistance(localPlayer.position, house.entrancePosition) <= propertyPickupRenderDistance) {
if (getGame() == AGRP_GAME_GTA_IV || getGame() == AGRP_GAME_GTA_IV_EFLC) {
if (getGame() == V_GAME_GTA_IV || getGame() == V_GAME_GTA_IV_EFLC) {
natives.drawColouredCylinder(getPosBelowPos(house.entrancePosition, 1.0), 0.0, 0.0, 0, 200, 0, 255);
}
@@ -337,7 +345,7 @@ function processLabelRendering() {
getServerData().jobs.forEach((job) => {
if (getDistance(localPlayer.position, job.position) <= propertyPickupRenderDistance) {
if (getGame() == AGRP_GAME_GTA_IV || getGame() == AGRP_GAME_GTA_IV_EFLC) {
if (getGame() == V_GAME_GTA_IV || getGame() == V_GAME_GTA_IV_EFLC) {
natives.drawColouredCylinder(getPosBelowPos(job.position, 1.0), 0.0, 0.0, 255, 255, 0, 255);
}
}
@@ -353,41 +361,47 @@ function processLabelRendering() {
if (localPlayer != null) {
let pickups = getElementsByType(ELEMENT_PICKUP);
for (let i in pickups) {
if (pickups[i].getData("agrp.label.type") != null) {
if (pickups[i].getData("v.rp.label.type") != null) {
if (getDistance(localPlayer.position, pickups[i].position) <= propertyLabelRenderDistance) {
if (!pickups[i].isOnScreen) {
let price = "0";
let rentPrice = "0";
let labelInfoType = AGRP_PROPLABEL_INFO_NONE;
if (pickups[i].getData("agrp.label.price") != null) {
price = pickups[i].getData("agrp.label.price");
let fee = "0";
let labelInfoType = V_PROPLABEL_INFO_NONE;
if (pickups[i].getData("v.rp.label.price") != null) {
price = pickups[i].getData("v.rp.label.price");
}
if (pickups[i].getData("agrp.label.rentprice") != null) {
rentPrice = pickups[i].getData("agrp.label.rentprice");
if (pickups[i].getData("v.rp.label.rentprice") != null) {
rentPrice = pickups[i].getData("v.rp.label.rentprice");
}
if (pickups[i].getData("agrp.label.help") != null) {
labelInfoType = pickups[i].getData("agrp.label.help");
if (pickups[i].getData("v.rp.label.help") != null) {
labelInfoType = pickups[i].getData("v.rp.label.help");
}
switch (pickups[i].getData("agrp.label.type")) {
case AGRP_LABEL_BUSINESS: {
renderPropertyEntranceLabel(pickups[i].getData("agrp.label.name"), pickups[i].position, pickups[i].getData("agrp.label.locked"), true, price, rentPrice, labelInfoType);
if (pickups[i].getData("v.rp.label.fee") != null) {
fee = pickups[i].getData("v.rp.label.fee");
}
switch (pickups[i].getData("v.rp.label.type")) {
case V_LABEL_BUSINESS: {
renderPropertyEntranceLabel(pickups[i].getData("v.rp.label.name"), pickups[i].position, pickups[i].getData("v.rp.label.locked"), true, price, rentPrice, labelInfoType, fee);
break;
}
case AGRP_LABEL_HOUSE: {
renderPropertyEntranceLabel(pickups[i].getData("agrp.label.name"), pickups[i].position, pickups[i].getData("agrp.label.locked"), false, price, rentPrice, labelInfoType);
case V_LABEL_HOUSE: {
renderPropertyEntranceLabel(pickups[i].getData("v.rp.label.name"), pickups[i].position, pickups[i].getData("v.rp.label.locked"), false, price, rentPrice, labelInfoType);
break;
}
case AGRP_LABEL_JOB: {
renderJobLabel(pickups[i].getData("agrp.label.name"), pickups[i].position, pickups[i].getData("agrp.label.jobType"));
case V_LABEL_JOB: {
renderJobLabel(pickups[i].getData("v.rp.label.name"), pickups[i].position, pickups[i].getData("v.rp.label.jobType"));
break;
}
case AGRP_LABEL_EXIT: {
case V_LABEL_EXIT: {
renderPropertyExitLabel(pickups[i].position);
break;
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: locale.js
// DESC: Provides locale functions and usage

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: logo.js
// DESC: Provides logo rendering functions
@@ -15,15 +14,15 @@ let logoSize = toVector2(128, 128);
// ===========================================================================
function initLogoScript() {
logToConsole(LOG_DEBUG, "[AGRP.Logo]: Initializing logo script ...");
logToConsole(LOG_DEBUG, "[V.RP.Logo]: Initializing logo script ...");
//logoImage = loadLogoImage();
logToConsole(LOG_DEBUG, "[AGRP.Logo]: Logo script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Logo]: Logo script initialized!");
}
// ===========================================================================
function loadLogoImage() {
//if (getGame() == AGRP_GAME_MAFIA_ONE) {
//if (getGame() == V_GAME_MAFIA_ONE) {
// return false;
//}
@@ -40,7 +39,7 @@ function loadLogoImage() {
// ===========================================================================
function processLogoRendering() {
if (getGame() == AGRP_GAME_MAFIA_ONE) {
if (getGame() == V_GAME_MAFIA_ONE) {
return false;
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: messaging.js
// DESC: Provides messaging/textdraw functions and usage
@@ -23,10 +22,10 @@ let smallGameMessageTimer = null;
// ===========================================================================
function initMessagingScript() {
logToConsole(LOG_DEBUG, "[AGRP.Messaging]: Initializing messaging script ...");
logToConsole(LOG_DEBUG, "[V.RP.Messaging]: Initializing messaging script ...");
smallGameMessageFonts = loadSmallGameMessageFonts();
bigGameMessageFonts = loadSmallGameMessageFonts();
logToConsole(LOG_DEBUG, "[AGRP.Messaging]: Messaging script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Messaging]: Messaging script initialized!");
}
// ===========================================================================
@@ -76,7 +75,7 @@ function loadBigGameMessageFont() {
// ===========================================================================
function processSmallGameMessageRendering() {
logToConsole(LOG_VERBOSE, "[AGRP.Messaging]: Processing small game message rendering ...");
logToConsole(LOG_VERBOSE, "[V.RP.Messaging]: Processing small game message rendering ...");
if (renderSmallGameMessage) {
if (smallGameMessageText != "") {
logToConsole(LOG_VERBOSE, `[AGRP.Messaging]: Rendering small game message: ${smallGameMessageText}`);

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: nametags.js
// DESC: Provides nametag rendering
@@ -23,10 +22,10 @@ let playerPing = {};
// ===========================================================================
function initNameTagScript() {
logToConsole(LOG_DEBUG, "[AGRP.NameTag]: Initializing nametag script ...");
logToConsole(LOG_DEBUG, "[V.RP.NameTag]: Initializing nametag script ...");
nametagFont = loadNameTagFont();
afkStatusFont = loadPausedStatusFont();
logToConsole(LOG_DEBUG, "[AGRP.NameTag]: Nametag script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.NameTag]: Nametag script initialized!");
}
// ===========================================================================
@@ -53,7 +52,7 @@ function updatePlayerNameTag(clientName, characterName, colour, paused, ping) {
playerPaused[clientName] = paused;
playerPing[clientName] = ping;
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
let client = getPlayerFromParams(clientName);
if (client != false) {
if (getPlayerPed(client) != null) {
@@ -85,8 +84,8 @@ function drawNametag(x, y, health, armour, text, ping, alpha, distance, colour,
// -------------------------------------------
// Health Bar
if (getMultiplayerMod() == AGRP_MPMOD_GTAC) {
if (getGame() == AGRP_GAME_GTA_III) {
if (getMultiplayerMod() == V_MPMOD_GTAC) {
if (getGame() == V_GAME_GTA_III) {
// Mickey Hamfists is ridiculously tall. Raise the nametag for him a bit
if (skin == 109) {
y -= 20;

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: connected.js
// DESC: Provides wrapped natives for GTA Connected and Mafia Connected mods
@@ -38,7 +37,7 @@ function getPlayerPosition() {
// ===========================================================================
function setPlayerPosition(position) {
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.setCharCoordinates(localPlayer, position);
} else {
localPlayer.position = position;
@@ -188,7 +187,7 @@ function getVehiclesInRange(position, range) {
// ===========================================================================
function createGameBlip(blipModel, position, name = "") {
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
let blipId = natives.addBlipForCoord(position);
if (blipId) {
natives.changeBlipSprite(blipId, blipModel);
@@ -232,50 +231,50 @@ function repairVehicle(syncId) {
// ===========================================================================
function syncVehicleProperties(vehicle) {
if (doesEntityDataExist(vehicle, "agrp.lights")) {
let lightStatus = getEntityData(vehicle, "agrp.lights");
if (doesEntityDataExist(vehicle, "v.rp.lights")) {
let lightStatus = getEntityData(vehicle, "v.rp.lights");
vehicle.lights = lightStatus;
}
if (doesEntityDataExist(vehicle, "agrp.invincible")) {
let invincible = getEntityData(vehicle, "agrp.invincible");
if (doesEntityDataExist(vehicle, "v.rp.invincible")) {
let invincible = getEntityData(vehicle, "v.rp.invincible");
element.setProofs(invincible, invincible, invincible, invincible, invincible);
}
if (doesEntityDataExist(vehicle, "agrp.panelStatus")) {
let panelsStatus = getEntityData(vehicle, "agrp.panelStatus");
if (doesEntityDataExist(vehicle, "v.rp.panelStatus")) {
let panelsStatus = getEntityData(vehicle, "v.rp.panelStatus");
for (let i in panelsStatus) {
vehicle.setPanelStatus(i, panelsStatus[i]);
}
}
if (doesEntityDataExist(vehicle, "agrp.wheelStatus")) {
let wheelsStatus = getEntityData(vehicle, "agrp.wheelStatus");
if (doesEntityDataExist(vehicle, "v.rp.wheelStatus")) {
let wheelsStatus = getEntityData(vehicle, "v.rp.wheelStatus");
for (let i in wheelsStatus) {
vehicle.setWheelStatus(i, wheelsStatus[i]);
}
}
if (doesEntityDataExist(vehicle, "agrp.lightStatus")) {
let lightStatus = getEntityData(vehicle, "agrp.lightStatus");
if (doesEntityDataExist(vehicle, "v.rp.lightStatus")) {
let lightStatus = getEntityData(vehicle, "v.rp.lightStatus");
for (let i in lightStatus) {
vehicle.setLightStatus(i, lightStatus[i]);
}
}
if (doesEntityDataExist(vehicle, "agrp.suspensionHeight")) {
let suspensionHeight = getEntityData(vehicle, "agrp.suspensionHeight");
if (doesEntityDataExist(vehicle, "v.rp.suspensionHeight")) {
let suspensionHeight = getEntityData(vehicle, "v.rp.suspensionHeight");
vehicle.setSuspensionHeight(suspensionHeight);
}
if (getGame() == AGRP_GAME_GTA_SA) {
if (getGame() == V_GAME_GTA_SA) {
let allUpgrades = getGameConfig().vehicleUpgrades[getGame()];
for (let i in allUpgrades) {
vehicle.removeUpgrade(i);
}
if (doesEntityDataExist(vehicle, "agrp.upgrades")) {
let upgrades = getEntityData(vehicle, "agrp.upgrades");
if (doesEntityDataExist(vehicle, "v.rp.upgrades")) {
let upgrades = getEntityData(vehicle, "v.rp.upgrades");
for (let i in upgrades) {
if (upgrades[i] != 0) {
vehicle.addUpgrade(upgrades[i]);
@@ -284,12 +283,12 @@ function syncVehicleProperties(vehicle) {
}
}
if (getGame() == AGRP_GAME_GTA_SA || getGame() == AGRP_GAME_GTA_IV) {
if (doesEntityDataExist(vehicle, "agrp.livery")) {
let livery = getEntityData(vehicle, "agrp.livery");
if (getGame() == AGRP_GAME_GTA_SA) {
if (getGame() == V_GAME_GTA_SA || getGame() == V_GAME_GTA_IV) {
if (doesEntityDataExist(vehicle, "v.rp.livery")) {
let livery = getEntityData(vehicle, "v.rp.livery");
if (getGame() == V_GAME_GTA_SA) {
vehicle.setPaintJob(livery);
} else if (getGame() == AGRP_GAME_GTA_IV) {
} else if (getGame() == V_GAME_GTA_IV) {
vehicle.livery = livery;
}
}
@@ -317,9 +316,9 @@ function doesEntityDataExist(entity, dataName) {
// ===========================================================================
function syncCivilianProperties(civilian) {
if (getGame() == AGRP_GAME_GTA_III) {
if (doesEntityDataExist(civilian, "agrp.scale")) {
let scaleFactor = getEntityData(civilian, "agrp.scale");
if (getGame() == V_GAME_GTA_III) {
if (doesEntityDataExist(civilian, "v.rp.scale")) {
let scaleFactor = getEntityData(civilian, "v.rp.scale");
let tempMatrix = civilian.matrix;
tempMatrix.setScale(toVector3(scaleFactor.x, scaleFactor.y, scaleFactor.z));
let tempPosition = civilian.position;
@@ -329,79 +328,79 @@ function syncCivilianProperties(civilian) {
}
}
if (getGame() == AGRP_GAME_GTA_SA) {
if (doesEntityDataExist(civilian, "agrp.fightStyle")) {
let fightStyle = getEntityData(civilian, "agrp.fightStyle");
if (getGame() == V_GAME_GTA_SA) {
if (doesEntityDataExist(civilian, "v.rp.fightStyle")) {
let fightStyle = getEntityData(civilian, "v.rp.fightStyle");
civilian.setFightStyle(fightStyle[0], fightStyle[1]);
}
}
if (getGame() == AGRP_GAME_GTA_III) {
if (doesEntityDataExist(civilian, "agrp.walkStyle")) {
let walkStyle = getEntityData(civilian, "agrp.walkStyle");
if (getGame() == V_GAME_GTA_III) {
if (doesEntityDataExist(civilian, "v.rp.walkStyle")) {
let walkStyle = getEntityData(civilian, "v.rp.walkStyle");
civilian.walkStyle = walkStyle;
}
}
if (getGame() == AGRP_GAME_GTA_IV) {
if (doesEntityDataExist(civilian, "agrp.bodyPropHair")) {
let bodyPropHair = getEntityData(civilian, "agrp.bodyPropHair");
if (getGame() == V_GAME_GTA_IV) {
if (doesEntityDataExist(civilian, "v.rp.bodyPropHair")) {
let bodyPropHair = getEntityData(civilian, "v.rp.bodyPropHair");
civilian.changeBodyProp(0, bodyPropHair[0], bodyPropHair[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropHead")) {
let bodyPropHead = getEntityData(civilian, "agrp.bodyPropHead");
if (doesEntityDataExist(civilian, "v.rp.bodyPropHead")) {
let bodyPropHead = getEntityData(civilian, "v.rp.bodyPropHead");
civilian.changeBodyProp(1, bodyPropHead[0], bodyPropHead[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropEyes")) {
let bodyPropEyes = getEntityData(civilian, "agrp.bodyPropEyes");
if (doesEntityDataExist(civilian, "v.rp.bodyPropEyes")) {
let bodyPropEyes = getEntityData(civilian, "v.rp.bodyPropEyes");
civilian.changeBodyProp(1, bodyPropEyes[0], bodyPropEyes[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropLeftHand")) {
let bodyPropLeftHand = getEntityData(civilian, "agrp.bodyPropLeftHand");
if (doesEntityDataExist(civilian, "v.rp.bodyPropLeftHand")) {
let bodyPropLeftHand = getEntityData(civilian, "v.rp.bodyPropLeftHand");
civilian.changeBodyProp(1, bodyPropLeftHand[0], bodyPropLeftHand[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropRightHand")) {
let bodyPropRightHand = getEntityData(civilian, "agrp.bodyPropRightHand");
if (doesEntityDataExist(civilian, "v.rp.bodyPropRightHand")) {
let bodyPropRightHand = getEntityData(civilian, "v.rp.bodyPropRightHand");
civilian.changeBodyProp(1, bodyPropRightHand[0], bodyPropRightHand[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropLeftWrist")) {
let bodyPropLeftWrist = getEntityData(civilian, "agrp.bodyPropLeftWrist");
if (doesEntityDataExist(civilian, "v.rp.bodyPropLeftWrist")) {
let bodyPropLeftWrist = getEntityData(civilian, "v.rp.bodyPropLeftWrist");
civilian.changeBodyProp(1, bodyPropLeftWrist[0], bodyPropLeftWrist[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(civilian, "agrp.bodyPropRightWrist");
if (doesEntityDataExist(civilian, "v.rp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(civilian, "v.rp.bodyPropRightWrist");
civilian.changeBodyProp(1, bodyPropRightWrist[0], bodyPropRightWrist[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(civilian, "agrp.bodyPropRightWrist");
if (doesEntityDataExist(civilian, "v.rp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(civilian, "v.rp.bodyPropRightWrist");
civilian.changeBodyProp(1, bodyPropRightWrist[0], bodyPropRightWrist[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropHip")) {
let bodyPropHip = getEntityData(civilian, "agrp.bodyPropHip");
if (doesEntityDataExist(civilian, "v.rp.bodyPropHip")) {
let bodyPropHip = getEntityData(civilian, "v.rp.bodyPropHip");
civilian.changeBodyProp(1, bodyPropHip[0], bodyPropHip[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropLeftFoot")) {
let bodyPropLeftFoot = getEntityData(civilian, "agrp.bodyPropLeftFoot");
if (doesEntityDataExist(civilian, "v.rp.bodyPropLeftFoot")) {
let bodyPropLeftFoot = getEntityData(civilian, "v.rp.bodyPropLeftFoot");
civilian.changeBodyProp(1, bodyPropLeftFoot[0], bodyPropLeftFoot[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropRightFoot")) {
let bodyPropRightFoot = getEntityData(civilian, "agrp.bodyPropRightFoot");
if (doesEntityDataExist(civilian, "v.rp.bodyPropRightFoot")) {
let bodyPropRightFoot = getEntityData(civilian, "v.rp.bodyPropRightFoot");
civilian.changeBodyProp(1, bodyPropRightFoot[0], bodyPropRightFoot[1]);
}
}
if (doesEntityDataExist(civilian, "agrp.anim")) {
let animData = getEntityData(vehicle, "agrp.anim");
if (doesEntityDataExist(civilian, "v.rp.anim")) {
let animData = getEntityData(vehicle, "v.rp.anim");
civilian.addAnimation(animData[0], animData[1]);
}
}
@@ -415,9 +414,9 @@ function preventDefaultEventAction(event) {
// ===========================================================================
function syncPlayerProperties(player) {
if (getGame() == AGRP_GAME_GTA_III) {
if (doesEntityDataExist(player, "agrp.scale")) {
let scaleFactor = getEntityData(player, "agrp.scale");
if (getGame() == V_GAME_GTA_III) {
if (doesEntityDataExist(player, "v.rp.scale")) {
let scaleFactor = getEntityData(player, "v.rp.scale");
let tempMatrix = player.matrix;
tempMatrix.setScale(toVector3(scaleFactor.x, scaleFactor.y, scaleFactor.z));
let tempPosition = player.position;
@@ -427,95 +426,95 @@ function syncPlayerProperties(player) {
}
}
if (getGame() == AGRP_GAME_GTA_SA) {
if (doesEntityDataExist(player, "agrp.fightStyle")) {
let fightStyle = getEntityData(player, "agrp.fightStyle");
if (getGame() == V_GAME_GTA_SA) {
if (doesEntityDataExist(player, "v.rp.fightStyle")) {
let fightStyle = getEntityData(player, "v.rp.fightStyle");
player.setFightStyle(fightStyle[0], fightStyle[1]);
}
}
//if(getGame() == AGRP_GAME_GTA_SA) {
// if(doesEntityDataExist(player, "agrp.walkStyle")) {
// let walkStyle = getEntityData(player, "agrp.walkStyle");
//if(getGame() == V_GAME_GTA_SA) {
// if(doesEntityDataExist(player, "v.rp.walkStyle")) {
// let walkStyle = getEntityData(player, "v.rp.walkStyle");
// player.walkStyle = walkStyle;
// }
//}
if (getGame() == AGRP_GAME_GTA_IV) {
if (doesEntityDataExist(player, "agrp.bodyPartHair")) {
let bodyPartHead = getEntityData(player, "agrp.bodyPartHair");
if (getGame() == V_GAME_GTA_IV) {
if (doesEntityDataExist(player, "v.rp.bodyPartHair")) {
let bodyPartHead = getEntityData(player, "v.rp.bodyPartHair");
player.changeBodyPart(0, bodyPartHead[0], bodyPartHair[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPartHead")) {
let bodyPartHead = getEntityData(player, "agrp.bodyPartHead");
if (doesEntityDataExist(player, "v.rp.bodyPartHead")) {
let bodyPartHead = getEntityData(player, "v.rp.bodyPartHead");
player.changeBodyPart(1, bodyPartHead[0], bodyPartHead[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPartUpper")) {
let bodyPartUpper = getEntityData(player, "agrp.bodyPartUpper");
if (doesEntityDataExist(player, "v.rp.bodyPartUpper")) {
let bodyPartUpper = getEntityData(player, "v.rp.bodyPartUpper");
player.changeBodyPart(1, bodyPartUpper[0], bodyPartUpper[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPartLower")) {
let bodyPartLower = getEntityData(player, "agrp.bodyPartLower");
if (doesEntityDataExist(player, "v.rp.bodyPartLower")) {
let bodyPartLower = getEntityData(player, "v.rp.bodyPartLower");
player.changeBodyPart(1, bodyPartLower[0], bodyPartLower[1]);
}
}
if (getGame() == AGRP_GAME_GTA_IV) {
if (doesEntityDataExist(player, "agrp.bodyPropHair")) {
let bodyPropHair = getEntityData(player, "agrp.bodyPropHair");
if (getGame() == V_GAME_GTA_IV) {
if (doesEntityDataExist(player, "v.rp.bodyPropHair")) {
let bodyPropHair = getEntityData(player, "v.rp.bodyPropHair");
player.changeBodyProp(0, bodyPropHair[0], bodyPropHair[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropHead")) {
let bodyPropHead = getEntityData(player, "agrp.bodyPropHead");
if (doesEntityDataExist(player, "v.rp.bodyPropHead")) {
let bodyPropHead = getEntityData(player, "v.rp.bodyPropHead");
player.changeBodyProp(1, bodyPropHead[0], bodyPropHead[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropEyes")) {
let bodyPropEyes = getEntityData(player, "agrp.bodyPropEyes");
if (doesEntityDataExist(player, "v.rp.bodyPropEyes")) {
let bodyPropEyes = getEntityData(player, "v.rp.bodyPropEyes");
player.changeBodyProp(1, bodyPropEyes[0], bodyPropEyes[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropLeftHand")) {
let bodyPropLeftHand = getEntityData(player, "agrp.bodyPropLeftHand");
if (doesEntityDataExist(player, "v.rp.bodyPropLeftHand")) {
let bodyPropLeftHand = getEntityData(player, "v.rp.bodyPropLeftHand");
player.changeBodyProp(1, bodyPropLeftHand[0], bodyPropLeftHand[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropRightHand")) {
let bodyPropRightHand = getEntityData(player, "agrp.bodyPropRightHand");
if (doesEntityDataExist(player, "v.rp.bodyPropRightHand")) {
let bodyPropRightHand = getEntityData(player, "v.rp.bodyPropRightHand");
player.changeBodyProp(1, bodyPropRightHand[0], bodyPropRightHand[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropLeftWrist")) {
let bodyPropLeftWrist = getEntityData(player, "agrp.bodyPropLeftWrist");
if (doesEntityDataExist(player, "v.rp.bodyPropLeftWrist")) {
let bodyPropLeftWrist = getEntityData(player, "v.rp.bodyPropLeftWrist");
player.changeBodyProp(1, bodyPropLeftWrist[0], bodyPropLeftWrist[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(player, "agrp.bodyPropRightWrist");
if (doesEntityDataExist(player, "v.rp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(player, "v.rp.bodyPropRightWrist");
player.changeBodyProp(1, bodyPropRightWrist[0], bodyPropRightWrist[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(player, "agrp.bodyPropRightWrist");
if (doesEntityDataExist(player, "v.rp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(player, "v.rp.bodyPropRightWrist");
player.changeBodyProp(1, bodyPropRightWrist[0], bodyPropRightWrist[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropHip")) {
let bodyPropHip = getEntityData(player, "agrp.bodyPropHip");
if (doesEntityDataExist(player, "v.rp.bodyPropHip")) {
let bodyPropHip = getEntityData(player, "v.rp.bodyPropHip");
player.changeBodyProp(1, bodyPropHip[0], bodyPropHip[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropLeftFoot")) {
let bodyPropLeftFoot = getEntityData(player, "agrp.bodyPropLeftFoot");
if (doesEntityDataExist(player, "v.rp.bodyPropLeftFoot")) {
let bodyPropLeftFoot = getEntityData(player, "v.rp.bodyPropLeftFoot");
player.changeBodyProp(1, bodyPropLeftFoot[0], bodyPropLeftFoot[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropRightFoot")) {
let bodyPropRightFoot = getEntityData(player, "agrp.bodyPropRightFoot");
if (doesEntityDataExist(player, "v.rp.bodyPropRightFoot")) {
let bodyPropRightFoot = getEntityData(player, "v.rp.bodyPropRightFoot");
player.changeBodyProp(1, bodyPropRightFoot[0], bodyPropRightFoot[1]);
}
}
@@ -524,9 +523,9 @@ function syncPlayerProperties(player) {
// ===========================================================================
function syncObjectProperties(object) {
if (getGame() == AGRP_GAME_GTA_III || getGame() == AGRP_GAME_GTA_VC) {
if (doesEntityDataExist(object, "agrp.scale")) {
let scaleFactor = getEntityData(object, "agrp.scale");
if (getGame() == V_GAME_GTA_III || getGame() == V_GAME_GTA_VC) {
if (doesEntityDataExist(object, "v.rp.scale")) {
let scaleFactor = getEntityData(object, "v.rp.scale");
let tempMatrix = object.matrix;
tempMatrix.setScale(toVector3(scaleFactor.x, scaleFactor.y, scaleFactor.z));
let tempPosition = object.position;
@@ -576,9 +575,9 @@ function getPlayerId(client) {
// ===========================================================================
function syncElementProperties(element) {
if (doesEntityDataExist(element, "agrp.interior")) {
if (doesEntityDataExist(element, "v.rp.interior")) {
if (typeof element.interior != "undefined") {
element.interior = getEntityData(element, "agrp.interior");
element.interior = getEntityData(element, "v.rp.interior");
}
}
@@ -628,21 +627,21 @@ function getScreenHeight() {
function openAllGarages() {
switch (getGame()) {
case AGRP_GAME_GTA_III:
case V_GAME_GTA_III:
for (let i = 0; i <= 26; i++) {
openGarage(i);
game.NO_SPECIAL_CAMERA_FOR_THIS_GARAGE(i);
}
break;
case AGRP_GAME_GTA_VC:
case V_GAME_GTA_VC:
for (let i = 0; i <= 32; i++) {
openGarage(i);
game.NO_SPECIAL_CAMERA_FOR_THIS_GARAGE(i);
}
break;
case AGRP_GAME_GTA_SA:
case V_GAME_GTA_SA:
for (let i = 0; i <= 44; i++) {
openGarage(i);
}
@@ -657,21 +656,21 @@ function openAllGarages() {
function closeAllGarages() {
switch (getGame()) {
case AGRP_GAME_GTA_III:
case V_GAME_GTA_III:
for (let i = 0; i <= 26; i++) {
closeGarage(i);
game.NO_SPECIAL_CAMERA_FOR_THIS_GARAGE(i);
}
break;
case AGRP_GAME_GTA_VC:
case V_GAME_GTA_VC:
for (let i = 0; i <= 32; i++) {
closeGarage(i);
game.NO_SPECIAL_CAMERA_FOR_THIS_GARAGE(i);
}
break;
case AGRP_GAME_GTA_SA:
case V_GAME_GTA_SA:
for (let i = 0; i <= 44; i++) {
closeGarage(i);
}
@@ -691,7 +690,7 @@ function setPedInvincible(ped, state) {
// ===========================================================================
function setPedLookAt(ped, position) {
if (getGame() == AGRP_GAME_GTA_SA) {
if (getGame() == V_GAME_GTA_SA) {
ped.lookAt(position, 10000);
return true;
} else {
@@ -711,4 +710,24 @@ function deleteLocalPlayerPed() {
destroyElement(localPlayer);
}
// ===========================================================================
function setElementCollisionsEnabled(elementId, state) {
if (getElementFromId(elementId) == null) {
return false;
}
getElementFromId(elementId).collisionsEnabled = state;
}
// ===========================================================================
function getElementCollisionsEnabled(elementId, state) {
if (getElementFromId(elementId) == null) {
return false;
}
return getElementFromId(elementId).collisionsEnabled;
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: netevents.js
// DESC: Provides server communication and cross-endpoint network events
@@ -9,179 +8,180 @@
// ===========================================================================
function initNetworkEventsScript() {
logToConsole(LOG_DEBUG, "[AGRP.NetEvents]: Initializing server script ...");
logToConsole(LOG_DEBUG, "[AGRP.NetEvents]: Server script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.NetEvents]: Initializing server script ...");
logToConsole(LOG_DEBUG, "[V.RP.NetEvents]: Server script initialized!");
}
// ===========================================================================
function addAllNetworkHandlers() {
logToConsole(LOG_DEBUG, "[AGRP.Server]: Adding network handlers ...");
logToConsole(LOG_DEBUG, "[V.RP.Server]: Adding network handlers ...");
// Chat Box
addNetworkEventHandler("m", receiveChatBoxMessageFromServer); // Not prefixed with VRR to make it as small as possible
addNetworkEventHandler("agrp.chatScrollLines", setChatScrollLines);
addNetworkEventHandler("agrp.chatAutoHideDelay", setChatAutoHideDelay);
addNetworkEventHandler("agrp.chatTimeStamps", setChatTimeStampsState);
addNetworkEventHandler("agrp.chatEmoji", setChatEmojiState);
addNetworkEventHandler("v.rp.chatScrollLines", setChatScrollLines);
addNetworkEventHandler("v.rp.chatAutoHideDelay", setChatAutoHideDelay);
addNetworkEventHandler("v.rp.chatTimeStamps", setChatTimeStampsState);
addNetworkEventHandler("v.rp.chatEmoji", setChatEmojiState);
// Messaging (like textdraws and stuff)
addNetworkEventHandler("agrp.smallGameMessage", showSmallGameMessage);
addNetworkEventHandler("v.rp.smallGameMessage", showSmallGameMessage);
// Job
addNetworkEventHandler("agrp.job", receiveJobFromServer);
addNetworkEventHandler("agrp.working", setLocalPlayerWorkingState);
addNetworkEventHandler("agrp.jobType", setLocalPlayerJobType);
addNetworkEventHandler("agrp.showJobRouteLocation", showJobRouteLocation);
addNetworkEventHandler("agrp.hideJobRouteLocation", hideJobRouteLocation);
addNetworkEventHandler("v.rp.job", receiveJobFromServer);
addNetworkEventHandler("v.rp.working", setLocalPlayerWorkingState);
addNetworkEventHandler("v.rp.jobType", setLocalPlayerJobType);
addNetworkEventHandler("v.rp.showJobRouteLocation", showJobRouteLocation);
addNetworkEventHandler("v.rp.hideJobRouteLocation", hideJobRouteLocation);
// Local player states and values
addNetworkEventHandler("agrp.restoreCamera", restoreLocalCamera);
addNetworkEventHandler("agrp.cameraLookAt", setLocalCameraLookAt);
addNetworkEventHandler("agrp.freeze", setLocalPlayerFrozenState);
addNetworkEventHandler("agrp.control", setLocalPlayerControlState);
addNetworkEventHandler("agrp.fadeCamera", fadeLocalCamera);
addNetworkEventHandler("agrp.removeFromVehicle", removeLocalPlayerFromVehicle);
addNetworkEventHandler("agrp.clearWeapons", clearLocalPlayerWeapons);
addNetworkEventHandler("agrp.giveWeapon", giveLocalPlayerWeapon);
addNetworkEventHandler("agrp.position", setLocalPlayerPosition);
addNetworkEventHandler("agrp.heading", setLocalPlayerHeading);
addNetworkEventHandler("agrp.interior", setLocalPlayerInterior);
addNetworkEventHandler("agrp.spawned", onServerSpawnedLocalPlayer);
addNetworkEventHandler("agrp.money", setLocalPlayerMoney);
addNetworkEventHandler("agrp.armour", setLocalPlayerArmour);
addNetworkEventHandler("agrp.localPlayerSkin", setLocalPlayerSkin);
addNetworkEventHandler("agrp.pedSpeak", makeLocalPlayerPedSpeak);
addNetworkEventHandler("agrp.infiniteRun", setLocalPlayerInfiniteRun);
addNetworkEventHandler("agrp.playerCop", setLocalPlayerAsCopState);
addNetworkEventHandler("agrp.health", setLocalPlayerHealth);
addNetworkEventHandler("agrp.wantedLevel", setLocalPlayerWantedLevel);
addNetworkEventHandler("agrp.playerPedId", sendLocalPlayerNetworkIdToServer);
addNetworkEventHandler("agrp.ped", setLocalPlayerPedPartsAndProps);
addNetworkEventHandler("agrp.spawn", serverRequestedLocalPlayerSpawn);
addNetworkEventHandler("agrp.clearPedState", clearLocalPedState);
addNetworkEventHandler("agrp.drunkEffect", setLocalPlayerDrunkEffect);
addNetworkEventHandler("agrp.deleteLocalPlayerPed", deleteLocalPlayerPed);
addNetworkEventHandler("v.rp.restoreCamera", restoreLocalCamera);
addNetworkEventHandler("v.rp.cameraLookAt", setLocalCameraLookAt);
addNetworkEventHandler("v.rp.freeze", setLocalPlayerFrozenState);
addNetworkEventHandler("v.rp.control", setLocalPlayerControlState);
addNetworkEventHandler("v.rp.fadeCamera", fadeLocalCamera);
addNetworkEventHandler("v.rp.removeFromVehicle", removeLocalPlayerFromVehicle);
addNetworkEventHandler("v.rp.clearWeapons", clearLocalPlayerWeapons);
addNetworkEventHandler("v.rp.giveWeapon", giveLocalPlayerWeapon);
addNetworkEventHandler("v.rp.position", setLocalPlayerPosition);
addNetworkEventHandler("v.rp.heading", setLocalPlayerHeading);
addNetworkEventHandler("v.rp.interior", setLocalPlayerInterior);
addNetworkEventHandler("v.rp.spawned", onServerSpawnedLocalPlayer);
addNetworkEventHandler("v.rp.money", setLocalPlayerMoney);
addNetworkEventHandler("v.rp.armour", setLocalPlayerArmour);
addNetworkEventHandler("v.rp.localPlayerSkin", setLocalPlayerSkin);
addNetworkEventHandler("v.rp.pedSpeak", makeLocalPlayerPedSpeak);
addNetworkEventHandler("v.rp.infiniteRun", setLocalPlayerInfiniteRun);
addNetworkEventHandler("v.rp.playerCop", setLocalPlayerAsCopState);
addNetworkEventHandler("v.rp.health", setLocalPlayerHealth);
addNetworkEventHandler("v.rp.wantedLevel", setLocalPlayerWantedLevel);
addNetworkEventHandler("v.rp.playerPedId", sendLocalPlayerNetworkIdToServer);
addNetworkEventHandler("v.rp.ped", setLocalPlayerPedPartsAndProps);
addNetworkEventHandler("v.rp.spawn", serverRequestedLocalPlayerSpawn);
addNetworkEventHandler("v.rp.clearPedState", clearLocalPedState);
addNetworkEventHandler("v.rp.drunkEffect", setLocalPlayerDrunkEffect);
addNetworkEventHandler("v.rp.deleteLocalPlayerPed", deleteLocalPlayerPed);
// Vehicle
addNetworkEventHandler("agrp.vehicle", receiveVehicleFromServer);
addNetworkEventHandler("agrp.veh.lights", setVehicleLights);
addNetworkEventHandler("agrp.veh.engine", setVehicleEngine);
addNetworkEventHandler("agrp.veh.repair", repairVehicle);
addNetworkEventHandler("agrp.cruiseControl", toggleLocalVehicleCruiseControl);
addNetworkEventHandler("agrp.passenger", enterVehicleAsPassenger);
addNetworkEventHandler("v.rp.vehicle", receiveVehicleFromServer);
addNetworkEventHandler("v.rp.veh.lights", setVehicleLights);
addNetworkEventHandler("v.rp.veh.engine", setVehicleEngine);
addNetworkEventHandler("v.rp.veh.repair", repairVehicle);
addNetworkEventHandler("v.rp.cruiseControl", toggleLocalVehicleCruiseControl);
addNetworkEventHandler("v.rp.passenger", enterVehicleAsPassenger);
addNetworkEventHandler("v.rp.vehBuyState", setVehiclePurchaseState);
// Radio
addNetworkEventHandler("agrp.radioStream", playStreamingRadio);
addNetworkEventHandler("agrp.audioFileStream", playAudioFile);
addNetworkEventHandler("agrp.stopRadioStream", stopStreamingRadio);
addNetworkEventHandler("agrp.radioVolume", setStreamingRadioVolume);
addNetworkEventHandler("v.rp.radioStream", playStreamingRadio);
addNetworkEventHandler("v.rp.audioFileStream", playAudioFile);
addNetworkEventHandler("v.rp.stopRadioStream", stopStreamingRadio);
addNetworkEventHandler("v.rp.radioVolume", setStreamingRadioVolume);
// Key Bindings
addNetworkEventHandler("agrp.delKeyBind", unBindAccountKey);
addNetworkEventHandler("agrp.addKeyBind", bindAccountKey);
addNetworkEventHandler("agrp.clearKeyBinds", clearKeyBinds);
addNetworkEventHandler("v.rp.delKeyBind", unBindAccountKey);
addNetworkEventHandler("v.rp.addKeyBind", bindAccountKey);
addNetworkEventHandler("v.rp.clearKeyBinds", clearKeyBinds);
// Weapon Damage
addNetworkEventHandler("agrp.weaponDamageEnabled", setPlayerWeaponDamageEnabled);
addNetworkEventHandler("agrp.weaponDamageEvent", setPlayerWeaponDamageEvent);
addNetworkEventHandler("v.rp.weaponDamageEnabled", setPlayerWeaponDamageEnabled);
addNetworkEventHandler("v.rp.weaponDamageEvent", setPlayerWeaponDamageEvent);
// GUI
addNetworkEventHandler("agrp.showRegistration", showRegistrationGUI);
addNetworkEventHandler("agrp.showNewCharacter", showNewCharacterGUI);
addNetworkEventHandler("agrp.showLogin", showLoginGUI);
addNetworkEventHandler("agrp.2fa", showTwoFactorAuthGUI);
addNetworkEventHandler("agrp.showResetPasswordCodeInput", resetPasswordCodeInputGUI);
addNetworkEventHandler("agrp.showResetPasswordEmailInput", resetPasswordEmailInputGUI);
addNetworkEventHandler("agrp.showChangePassword", showChangePasswordGUI);
addNetworkEventHandler("agrp.showCharacterSelect", showCharacterSelectGUI);
addNetworkEventHandler("agrp.switchCharacterSelect", switchCharacterSelectGUI);
addNetworkEventHandler("agrp.showError", showErrorGUI);
addNetworkEventHandler("agrp.showInfo", showInfoGUI);
addNetworkEventHandler("agrp.showPrompt", showYesNoPromptGUI);
addNetworkEventHandler("agrp.loginSuccess", loginSuccess);
addNetworkEventHandler("agrp.characterSelectSuccess", characterSelectSuccess);
addNetworkEventHandler("agrp.loginFailed", loginFailed);
addNetworkEventHandler("agrp.registrationSuccess", registrationSuccess);
addNetworkEventHandler("agrp.registrationFailed", registrationFailed);
addNetworkEventHandler("agrp.newCharacterFailed", newCharacterFailed);
addNetworkEventHandler("agrp.changePassword", showChangePasswordGUI);
addNetworkEventHandler("agrp.showLocaleChooser", showLocaleChooserGUI);
addNetworkEventHandler("agrp.guiColour", setGUIColours);
addNetworkEventHandler("agrp.mapChangeWarning", setMapChangeWarningState);
addNetworkEventHandler("v.rp.showRegistration", showRegistrationGUI);
addNetworkEventHandler("v.rp.showNewCharacter", showNewCharacterGUI);
addNetworkEventHandler("v.rp.showLogin", showLoginGUI);
addNetworkEventHandler("v.rp.2fa", showTwoFactorAuthGUI);
addNetworkEventHandler("v.rp.showResetPasswordCodeInput", resetPasswordCodeInputGUI);
addNetworkEventHandler("v.rp.showResetPasswordEmailInput", resetPasswordEmailInputGUI);
addNetworkEventHandler("v.rp.showChangePassword", showChangePasswordGUI);
addNetworkEventHandler("v.rp.showCharacterSelect", showCharacterSelectGUI);
addNetworkEventHandler("v.rp.switchCharacterSelect", switchCharacterSelectGUI);
addNetworkEventHandler("v.rp.showError", showErrorGUI);
addNetworkEventHandler("v.rp.showInfo", showInfoGUI);
addNetworkEventHandler("v.rp.showPrompt", showYesNoPromptGUI);
addNetworkEventHandler("v.rp.loginSuccess", loginSuccess);
addNetworkEventHandler("v.rp.characterSelectSuccess", characterSelectSuccess);
addNetworkEventHandler("v.rp.loginFailed", loginFailed);
addNetworkEventHandler("v.rp.registrationSuccess", registrationSuccess);
addNetworkEventHandler("v.rp.registrationFailed", registrationFailed);
addNetworkEventHandler("v.rp.newCharacterFailed", newCharacterFailed);
addNetworkEventHandler("v.rp.changePassword", showChangePasswordGUI);
addNetworkEventHandler("v.rp.showLocaleChooser", showLocaleChooserGUI);
addNetworkEventHandler("v.rp.guiColour", setGUIColours);
addNetworkEventHandler("v.rp.mapChangeWarning", setMapChangeWarningState);
// 2D Rendering
addNetworkEventHandler("agrp.set2DRendering", set2DRendering);
addNetworkEventHandler("agrp.logo", setServerLogoRenderState);
addNetworkEventHandler("agrp.showItemActionDelay", showItemActionDelay);
addNetworkEventHandler("v.rp.set2DRendering", set2DRendering);
addNetworkEventHandler("v.rp.logo", setServerLogoRenderState);
addNetworkEventHandler("v.rp.showItemActionDelay", showItemActionDelay);
// Business
addNetworkEventHandler("agrp.business", receiveBusinessFromServer);
addNetworkEventHandler("v.rp.business", receiveBusinessFromServer);
// House
addNetworkEventHandler("agrp.house", receiveHouseFromServer);
addNetworkEventHandler("v.rp.house", receiveHouseFromServer);
// GPS
addNetworkEventHandler("agrp.showGPSBlip", showGPSLocation);
addNetworkEventHandler("v.rp.showGPSBlip", showGPSLocation);
// Locale
addNetworkEventHandler("agrp.locale", setLocale);
addNetworkEventHandler("agrp.localeChooser", toggleLocaleChooserGUI);
addNetworkEventHandler("v.rp.locale", setLocale);
addNetworkEventHandler("v.rp.localeChooser", toggleLocaleChooserGUI);
// Animation
addNetworkEventHandler("agrp.anim", makePedPlayAnimation);
addNetworkEventHandler("agrp.stopAnim", makePedStopAnimation);
addNetworkEventHandler("agrp.forceAnim", forcePedAnimation);
addNetworkEventHandler("v.rp.anim", makePedPlayAnimation);
addNetworkEventHandler("v.rp.stopAnim", makePedStopAnimation);
addNetworkEventHandler("v.rp.forceAnim", forcePedAnimation);
// Nametags
addNetworkEventHandler("agrp.nametag", updatePlayerNameTag);
addNetworkEventHandler("agrp.nametagDistance", setNameTagDistance);
addNetworkEventHandler("v.rp.nametag", updatePlayerNameTag);
addNetworkEventHandler("v.rp.nametagDistance", setNameTagDistance);
// Misc
addNetworkEventHandler("agrp.mouseCursor", toggleMouseCursor);
addNetworkEventHandler("agrp.mouseCamera", toggleMouseCamera);
addNetworkEventHandler("agrp.clearPeds", clearLocalPlayerOwnedPeds);
addNetworkEventHandler("agrp.clearPickups", clearLocalPlayerOwnedPickups);
addNetworkEventHandler("agrp.ambience", setCityAmbienceState);
addNetworkEventHandler("agrp.runCode", runClientCode);
addNetworkEventHandler("agrp.minuteDuration", setMinuteDuration);
addNetworkEventHandler("agrp.snow", setSnowState);
addNetworkEventHandler("agrp.enterPropertyKey", setEnterPropertyKey);
addNetworkEventHandler("agrp.skinSelect", toggleSkinSelect);
addNetworkEventHandler("agrp.hotbar", updatePlayerHotBar);
addNetworkEventHandler("agrp.mouseCameraForce", setMouseCameraState);
addNetworkEventHandler("agrp.logLevel", setLogLevel);
addNetworkEventHandler("agrp.hideAllGUI", hideAllGUI);
addNetworkEventHandler("agrp.ping", updatePlayerPing);
addNetworkEventHandler("agrp.clientInfo", serverRequestedClientInfo);
addNetworkEventHandler("agrp.interiorLights", updateInteriorLightsState);
addNetworkEventHandler("agrp.scene", changeScene);
addNetworkEventHandler("agrp.syncElement", forceSyncElementProperties);
addNetworkEventHandler("agrp.elementPosition", setElementPosition);
addNetworkEventHandler("agrp.elementCollisions", setElementCollisionsEnabled);
addNetworkEventHandler("agrp.vehBuyState", setVehiclePurchaseState);
addNetworkEventHandler("agrp.holdObject", makePedHoldObject);
addNetworkEventHandler("agrp.profanityFilter", setProfanityFilterState);
addNetworkEventHandler("agrp.currencyString", receiveCurrencyStringFromServer);
addNetworkEventHandler("v.rp.mouseCursor", toggleMouseCursor);
addNetworkEventHandler("v.rp.mouseCamera", toggleMouseCamera);
addNetworkEventHandler("v.rp.mouseCameraForce", setMouseCameraState);
addNetworkEventHandler("v.rp.clearPeds", clearLocalPlayerOwnedPeds);
addNetworkEventHandler("v.rp.clearPickups", clearLocalPlayerOwnedPickups);
addNetworkEventHandler("v.rp.ambience", setCityAmbienceState);
addNetworkEventHandler("v.rp.runCode", runClientCode);
addNetworkEventHandler("v.rp.minuteDuration", setMinuteDuration);
addNetworkEventHandler("v.rp.snow", setSnowState);
addNetworkEventHandler("v.rp.enterPropertyKey", setEnterPropertyKey);
addNetworkEventHandler("v.rp.skinSelect", toggleSkinSelect);
addNetworkEventHandler("v.rp.hotbar", updatePlayerHotBar);
addNetworkEventHandler("v.rp.logLevel", setLogLevel);
addNetworkEventHandler("v.rp.hideAllGUI", hideAllGUI);
addNetworkEventHandler("v.rp.ping", updatePlayerPing);
addNetworkEventHandler("v.rp.clientInfo", serverRequestedClientInfo);
addNetworkEventHandler("v.rp.interiorLights", updateInteriorLightsState);
addNetworkEventHandler("v.rp.scene", changeScene);
addNetworkEventHandler("v.rp.syncElement", forceSyncElementProperties);
addNetworkEventHandler("v.rp.elementPosition", setElementPosition);
addNetworkEventHandler("v.rp.elementCollisions", setElementCollisionsEnabled);
addNetworkEventHandler("v.rp.holdObject", makePedHoldObject);
addNetworkEventHandler("v.rp.profanityFilter", setProfanityFilterState);
addNetworkEventHandler("v.rp.currencyString", receiveCurrencyStringFromServer);
addNetworkEventHandler("v.rp.token", serverRequestedToken);
}
// ===========================================================================
function sendResourceReadySignalToServer() {
sendNetworkEventToServer("agrp.clientReady");
sendNetworkEventToServer("v.rp.clientReady");
}
// ===========================================================================
function sendResourceStartedSignalToServer() {
sendNetworkEventToServer("agrp.clientStarted");
sendNetworkEventToServer("v.rp.clientStarted");
}
// ===========================================================================
function sendResourceStoppedSignalToServer() {
if (isConnected) {
sendNetworkEventToServer("agrp.clientStopped");
sendNetworkEventToServer("v.rp.clientStopped");
}
}
@@ -191,7 +191,7 @@ function set2DRendering(hudState, labelState, smallGameMessageState, scoreboardS
logToConsole(LOG_DEBUG, `[AGRP.Main] Updating render states (HUD: ${hudState}, Labels: ${labelState}, Bottom Text: ${smallGameMessageState}, Scoreboard: ${scoreboardState}, HotBar: ${hotBarState}, Item Action Delay: ${itemActionDelayState})`);
renderHUD = hudState;
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.displayCash(hudState);
natives.displayAmmo(hudState);
natives.displayHud(hudState);
@@ -238,19 +238,19 @@ function onServerSpawnedLocalPlayer(state) {
// ===========================================================================
function tellServerPlayerUsedKeyBind(key) {
sendNetworkEventToServer("agrp.useKeyBind", key);
sendNetworkEventToServer("v.rp.useKeyBind", key);
}
// ===========================================================================
function tellServerPlayerArrivedAtJobRouteLocation() {
sendNetworkEventToServer("agrp.arrivedAtJobRouteLocation");
sendNetworkEventToServer("v.rp.arrivedAtJobRouteLocation");
}
// ===========================================================================
function tellServerItemActionDelayComplete() {
sendNetworkEventToServer("agrp.itemActionDelayComplete");
sendNetworkEventToServer("v.rp.itemActionDelayComplete");
}
// ===========================================================================
@@ -260,13 +260,13 @@ function sendServerClientInfo() {
if (typeof CLIENT_VERSION_MAJOR != "undefined") {
clientVersion = `${CLIENT_VERSION_MAJOR}.${CLIENT_VERSION_MINOR}.${CLIENT_VERSION_PATCH}.${CLIENT_VERSION_BUILD}`;
}
sendNetworkEventToServer("agrp.clientInfo", clientVersion, game.width, game.height);
sendNetworkEventToServer("v.rp.clientInfo", clientVersion, game.width, game.height);
}
// ===========================================================================
function sendServerNewAFKStatus(state) {
sendNetworkEventToServer("agrp.afk", state);
sendNetworkEventToServer("v.rp.afk", state);
}
// ===========================================================================
@@ -305,16 +305,6 @@ function forceSyncElementProperties(elementId) {
// ===========================================================================
function setElementCollisionsEnabled(elementId, state) {
if (getElementFromId(elementId) == null) {
return false;
}
getElementFromId(elementId).collisionsEnabled = state;
}
// ===========================================================================
function setLocalPlayerArmour(armour) {
if (typeof localPlayer.armour != "undefined") {
localPlayer.armour = armour;
@@ -337,7 +327,7 @@ function setLogLevel(level) {
function setLocalPlayerInfiniteRun(state) {
if (localPlayer != null) {
if (getGame() == AGRP_GAME_GTA_III || getGame() == AGRP_GAME_GTA_VC) {
if (getGame() == V_GAME_GTA_III || getGame() == V_GAME_GTA_VC) {
game.SET_PLAYER_NEVER_GETS_TIRED(game.GET_PLAYER_ID(), boolToInt(state));
}
}
@@ -347,7 +337,7 @@ function setLocalPlayerInfiniteRun(state) {
function setLocalPlayerSkin(skinId) {
logToConsole(LOG_INFO, `[AGRP.Server] Setting locale player skin to ${skinId}`);
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
if (natives.isModelInCdimage(skinId)) {
natives.requestModel(skinId);
natives.loadAllObjectsNow();
@@ -363,7 +353,7 @@ function setLocalPlayerSkin(skinId) {
// ===========================================================================
function makePedHoldObject(pedId, modelIndex) {
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.givePedAmbientObject(natives.getPedFromNetworkId(pedId), getGameConfig().objects[getGame()][modelIndex][1])
}
}
@@ -371,15 +361,15 @@ function makePedHoldObject(pedId, modelIndex) {
// ===========================================================================
function sendLocalPlayerNetworkIdToServer() {
if (getGame() == AGRP_GAME_GTA_IV || getGame() == AGRP_GAME_GTA_IV_EFLC) {
sendNetworkEventToServer("agrp.playerPedId", natives.getNetworkIdFromPed(localPlayer));
if (getGame() == V_GAME_GTA_IV || getGame() == V_GAME_GTA_IV_EFLC) {
sendNetworkEventToServer("v.rp.playerPedId", natives.getNetworkIdFromPed(localPlayer));
}
}
// ===========================================================================
function changeScene(sceneName) {
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
if (cutsceneName == "") {
natives.clearCutscene();
} else {
@@ -388,7 +378,7 @@ function changeScene(sceneName) {
}
natives.initCutscene(cutsceneName);
}
} else if (getGame() == AGRP_GAME_MAFIA_ONE) {
} else if (getGame() == V_GAME_MAFIA_ONE) {
game.changeMap(sceneName);
}
}
@@ -396,7 +386,7 @@ function changeScene(sceneName) {
// ===========================================================================
function makeLocalPlayerPedSpeak(speechName) {
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
// if player is in vehicle, allow megaphone (if last arg is "1", it will cancel megaphone echo)
// Only speeches with _MEGAPHONE will have the bullhorn effect
// Afaik it only works on police voices anyway
@@ -405,7 +395,7 @@ function makeLocalPlayerPedSpeak(speechName) {
} else {
natives.sayAmbientSpeech(localPlayer, speechName, true, false, 1);
}
} else if (getGame() == AGRP_GAME_GTA_III || getGame() == AGRP_GAME_GTA_VC) {
} else if (getGame() == V_GAME_GTA_III || getGame() == V_GAME_GTA_VC) {
// Don't have a way to get the ped ref ID and can't use ped in arg
//game.SET_CHAR_SAY(game.GET_PLAYER_ID(), int);
}
@@ -414,7 +404,7 @@ function makeLocalPlayerPedSpeak(speechName) {
// ===========================================================================
function setLocalPlayerAsCopState(state) {
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.setPlayerAsCop(natives.getPlayerId(), state);
natives.setPoliceIgnorePlayer(natives.getPlayerId(), state);
}
@@ -423,7 +413,7 @@ function setLocalPlayerAsCopState(state) {
// ===========================================================================
function serverRequestedLocalPlayerSpawn(skinId, position) {
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
natives.createPlayer(skinId, position);
//if(isCustomCameraSupported()) {
// game.restoreCamera(true);
@@ -434,7 +424,7 @@ function serverRequestedLocalPlayerSpawn(skinId, position) {
// ===========================================================================
function sendLocaleSelectToServer(localeId) {
sendNetworkEventToServer("agrp.localeSelect", localeId);
sendNetworkEventToServer("v.rp.localeSelect", localeId);
}
// ===========================================================================
@@ -464,4 +454,17 @@ function updatePlayerPing(playerName, ping) {
playerPing[playerName] = ping;
}
// ===========================================================================
function receiveClientVariablesFromServer(clientVariablesString) {
serverData.cvars = JSON.parse(clientVariablesString);
}
// ===========================================================================
function serverRequestedToken() {
let token = loadToken();
sendNetworkEventToServer("v.rp.token", token);
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: npc.js
// DESC: Provides NPC functions and processing
@@ -10,7 +9,7 @@
function processNPCMovement(npc) {
//if(npc.isSyncer == true) {
if (getEntityData(npc, "agrp.lookAtClosestPlayer") == true) {
if (getEntityData(npc, "v.rp.lookAtClosestPlayer") == true) {
let closestPlayer = getClosestPlayer(getElementPosition(npc.id));
setPedLookAt(npc, getElementPosition(closestPlayer.id));
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: object.js
// DESC: Provides object functions and processing
@@ -20,7 +19,7 @@ function startMovingObject(object) {
function stopMovingObject(object, save = true) {
if (save) {
sendNetworkEventToServer("agrp.objectSave", object.id, object.position, object.rotation);
sendNetworkEventToServer("v.rp.objectSave", object.id, object.position, object.rotation);
}
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: radio.js
// DESC: Provides internet streaming radio functions and usage

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: scoreboard.js
// DESC: Provides scoreboard features and rendering
@@ -18,10 +17,10 @@ let scoreboardKey = SDLK_TAB;
// ===========================================================================
function initScoreBoardScript() {
logToConsole(LOG_DEBUG, "[AGRP.ScoreBoard]: Initializing scoreboard script ...");
logToConsole(LOG_DEBUG, "[V.RP.ScoreBoard]: Initializing scoreboard script ...");
scoreBoardTitleFont = initScoreBoardTitleFont();
scoreBoardListFont = initScoreBoardListFont();
logToConsole(LOG_DEBUG, "[AGRP.ScoreBoard]: Scoreboard script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.ScoreBoard]: Scoreboard script initialized!");
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: skin-select.js
// DESC: Provides skin-selector functions and usage
@@ -24,10 +23,10 @@ let skinSelectHeading = null;
// ===========================================================================
function initSkinSelectScript() {
logToConsole(LOG_DEBUG, "[AGRP.SkinSelect]: Initializing skin selector script ...");
logToConsole(LOG_DEBUG, "[V.RP.SkinSelect]: Initializing skin selector script ...");
skinSelectMessageFontTop = loadSkinSelectMessageFontTop();
skinSelectMessageFontBottom = loadSkinSelectMessageFontBottom();
logToConsole(LOG_DEBUG, "[AGRP.SkinSelect]: Skin selector script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.SkinSelect]: Skin selector script initialized!");
}
// ===========================================================================
@@ -65,16 +64,16 @@ function processSkinSelectKeyPress(keyCode) {
skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1];
setLocalPlayerSkin(allowedSkins[skinSelectorIndex][0]);
} else if (keyCode == getKeyIdFromParams("enter")) {
sendNetworkEventToServer("agrp.skinSelected", skinSelectorIndex);
sendNetworkEventToServer("v.rp.skinSelected", skinSelectorIndex);
toggleSkinSelect(false);
return true;
} else if (keyCode == getKeyIdFromParams("backspace")) {
sendNetworkEventToServer("agrp.skinSelected", -1);
sendNetworkEventToServer("v.rp.skinSelected", -1);
toggleSkinSelect(false);
return true;
}
if (getGame() <= AGRP_GAME_GTA_SA) {
if (getGame() <= V_GAME_GTA_SA) {
localPlayer.heading = skinSelectHeading;
}
}
@@ -109,7 +108,7 @@ function toggleSkinSelect(state) {
if (isCustomCameraSupported()) {
let cameraPosition = localPlayer.position;
let playerPosition = localPlayer.position;
if (getGame() == AGRP_GAME_MAFIA_ONE) {
if (getGame() == V_GAME_MAFIA_ONE) {
cameraPosition.y += 1.5;
playerPosition.y += 1.5;
distance = 3;
@@ -121,7 +120,7 @@ function toggleSkinSelect(state) {
game.setCameraLookAt(frontCameraPosition, playerPosition, true);
}
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
let skinId = allowedSkins[skinSelectorIndex][0];
if (natives.isModelInCdimage(skinId)) {
natives.requestModel(skinId);

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: startup.js
// DESC: Provides startup/shutdown procedures
@@ -29,7 +28,7 @@ function initClientScripts() {
// ===========================================================================
function setUpInitialGame() {
if (getGame() == AGRP_GAME_GTA_III) {
if (getGame() == V_GAME_GTA_III) {
logToConsole(LOG_DEBUG | LOG_WARN, "Setting up initial game stuff for GTA III ...");
// Turn off unlimited sprint
@@ -48,7 +47,7 @@ function setUpInitialGame() {
// Provided by mouse camera script (mousecam.js)
SetStandardControlsEnabled(true);
} else if (getGame() == AGRP_GAME_GTA_VC) {
} else if (getGame() == V_GAME_GTA_VC) {
logToConsole(LOG_DEBUG | LOG_WARN, "Setting up initial game stuff for GTA Vice City ...");
// Turn off unlimited sprint
@@ -91,7 +90,7 @@ function setUpInitialGame() {
// Provided by mouse camera script (mousecam.js)
SetStandardControlsEnabled(true);
} else if (getGame() == AGRP_GAME_GTA_SA) {
} else if (getGame() == V_GAME_GTA_SA) {
logToConsole(LOG_DEBUG | LOG_WARN, "Setting up initial game stuff for GTA San Andreas ...");
// Turn weapon skills down a bit
game.setGameStat(STAT_WEAPONTYPE_PISTOL_SKILL, 400);
@@ -128,7 +127,7 @@ function setUpInitialGame() {
// Disables taxi/vigilante/etc and other start mission triggers
game.onMission = true;
} else if (getGame() == AGRP_GAME_GTA_IV) {
} else if (getGame() == V_GAME_GTA_IV) {
natives.allowEmergencyServices(false);
natives.setCreateRandomCops(true);
natives.setMaxWantedLevel(0);
@@ -190,7 +189,7 @@ function setUpInitialGame() {
// Some last steps
//natives.loadAllObjectsNow();
} else if (getGame() == AGRP_GAME_MAFIA_ONE) {
} else if (getGame() == V_GAME_MAFIA_ONE) {
game.mapEnabled = false;
game.setTrafficEnabled(false);
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: sync.js
// DESC: Provides some elements and data sync
@@ -11,12 +10,12 @@
function processSync(event, deltaTime) {
if (localPlayer != null) {
if (!areServerElementsSupported()) {
sendNetworkEventToServer("agrp.plr.pos", (localPlayer.vehicle != null) ? localPlayer.vehicle.position : localPlayer.position);
sendNetworkEventToServer("agrp.plr.rot", (localPlayer.vehicle != null) ? localPlayer.vehicle.heading : localPlayer.heading);
sendNetworkEventToServer("v.rp.plr.pos", (localPlayer.vehicle != null) ? localPlayer.vehicle.position : localPlayer.position);
sendNetworkEventToServer("v.rp.plr.rot", (localPlayer.vehicle != null) ? localPlayer.vehicle.heading : localPlayer.heading);
//if(localPlayer.vehicle != null) {
// sendNetworkEventToServer("agrp.veh.pos", getVehicleForNetworkEvent(localPlayer.vehicle), localPlayer.vehicle.position);
// sendNetworkEventToServer("agrp.veh.rot", getVehicleForNetworkEvent(localPlayer.vehicle), localPlayer.vehicle.heading);
// sendNetworkEventToServer("v.rp.veh.pos", getVehicleForNetworkEvent(localPlayer.vehicle), localPlayer.vehicle.position);
// sendNetworkEventToServer("v.rp.veh.rot", getVehicleForNetworkEvent(localPlayer.vehicle), localPlayer.vehicle.heading);
//}
}
@@ -25,7 +24,7 @@ function processSync(event, deltaTime) {
logToConsole(LOG_DEBUG, `Local player died`);
localPlayer.clearWeapons();
calledDeathEvent = true;
sendNetworkEventToServer("agrp.playerDeath");
sendNetworkEventToServer("v.rp.playerDeath");
}
}
}
@@ -35,7 +34,7 @@ function processSync(event, deltaTime) {
logToConsole(LOG_DEBUG, `Local player died`);
localPlayer.clearWeapons();
calledDeathEvent = true;
sendNetworkEventToServer("agrp.playerDeath");
sendNetworkEventToServer("v.rp.playerDeath");
}
}
@@ -47,15 +46,15 @@ function processSync(event, deltaTime) {
// ===========================================================================
function setVehicleLights(vehicleId, state) {
if (getGame() == AGRP_GAME_GTA_IV) {
if (!state) {
natives.forceCarLights(natives.getVehicleFromNetworkId(vehicleId, 0));
} else {
natives.forceCarLights(natives.getVehicleFromNetworkId(vehicleId, 1));
}
} else {
getElementFromId(vehicleId).lights = state;
}
//if (getGame() == V_GAME_GTA_IV) {
// if (!state) {
// natives.forceCarLights(natives.getVehicleFromNetworkId(vehicleId, 0));
// } else {
// natives.forceCarLights(natives.getVehicleFromNetworkId(vehicleId, 1));
// }
//} else {
getElementFromId(vehicleId).lights = state;
//}
}
// ===========================================================================
@@ -71,43 +70,44 @@ function syncVehicleProperties(vehicle) {
return false;
}
if (doesEntityDataExist(vehicle, "agrp.lights")) {
let lightStatus = getEntityData(vehicle, "agrp.lights");
if (!lightStatus) {
vehicle.lightStatus = 2;
} else {
vehicle.lightStatus = 1;
}
if (doesEntityDataExist(vehicle, "v.rp.lights")) {
let lightStatus = getEntityData(vehicle, "v.rp.lights");
vehicle.lights = lightStatus;
}
if (doesEntityDataExist(vehicle, "agrp.invincible")) {
let invincible = getEntityData(vehicle, "agrp.invincible");
if (doesEntityDataExist(vehicle, "v.rp.locked")) {
let lockStatus = getEntityData(vehicle, "v.rp.locked");
vehicle.locked = lockStatus;
}
if (doesEntityDataExist(vehicle, "v.rp.invincible")) {
let invincible = getEntityData(vehicle, "v.rp.invincible");
element.setProofs(invincible, invincible, invincible, invincible, invincible);
}
if (doesEntityDataExist(vehicle, "agrp.panelStatus")) {
let panelsStatus = getEntityData(vehicle, "agrp.panelStatus");
if (doesEntityDataExist(vehicle, "v.rp.panelStatus")) {
let panelsStatus = getEntityData(vehicle, "v.rp.panelStatus");
for (let i in panelsStatus) {
vehicle.setPanelStatus(i, panelsStatus[i]);
}
}
if (doesEntityDataExist(vehicle, "agrp.wheelStatus")) {
let wheelsStatus = getEntityData(vehicle, "agrp.wheelStatus");
if (doesEntityDataExist(vehicle, "v.rp.wheelStatus")) {
let wheelsStatus = getEntityData(vehicle, "v.rp.wheelStatus");
for (let i in wheelsStatus) {
vehicle.setWheelStatus(i, wheelsStatus[i]);
}
}
if (doesEntityDataExist(vehicle, "agrp.lightStatus")) {
let lightStatus = getEntityData(vehicle, "agrp.lightStatus");
if (doesEntityDataExist(vehicle, "v.rp.lightStatus")) {
let lightStatus = getEntityData(vehicle, "v.rp.lightStatus");
for (let i in lightStatus) {
vehicle.setLightStatus(i, lightStatus[i]);
}
}
if (doesEntityDataExist(vehicle, "agrp.suspensionHeight")) {
let suspensionHeight = getEntityData(vehicle, "agrp.suspensionHeight");
if (doesEntityDataExist(vehicle, "v.rp.suspensionHeight")) {
let suspensionHeight = getEntityData(vehicle, "v.rp.suspensionHeight");
vehicle.setSuspensionHeight(suspensionHeight);
}
@@ -117,8 +117,8 @@ function syncVehicleProperties(vehicle) {
// vehicle.removeUpgrade(i);
//}
if (doesEntityDataExist(vehicle, "agrp.upgrades")) {
let upgrades = getEntityData(vehicle, "agrp.upgrades");
if (doesEntityDataExist(vehicle, "v.rp.upgrades")) {
let upgrades = getEntityData(vehicle, "v.rp.upgrades");
for (let i in upgrades) {
if (upgrades[i] != 0) {
vehicle.addUpgrade(upgrades[i]);
@@ -127,12 +127,12 @@ function syncVehicleProperties(vehicle) {
}
}
if (getGame() == AGRP_GAME_GTA_SA || getGame() == AGRP_GAME_GTA_IV) {
if (doesEntityDataExist(vehicle, "agrp.livery")) {
let livery = getEntityData(vehicle, "agrp.livery");
if (getGame() == AGRP_GAME_GTA_SA) {
if (getGame() == V_GAME_GTA_SA || getGame() == V_GAME_GTA_IV) {
if (doesEntityDataExist(vehicle, "v.rp.livery")) {
let livery = getEntityData(vehicle, "v.rp.livery");
if (getGame() == V_GAME_GTA_SA) {
vehicle.setPaintJob(livery);
} else if (getGame() == AGRP_GAME_GTA_IV) {
} else if (getGame() == V_GAME_GTA_IV) {
vehicle.livery = livery;
}
}
@@ -147,8 +147,8 @@ function syncCivilianProperties(civilian) {
}
if (isGameFeatureSupported("pedScale")) {
if (doesEntityDataExist(civilian, "agrp.scale")) {
let scaleFactor = getEntityData(civilian, "agrp.scale");
if (doesEntityDataExist(civilian, "v.rp.scale")) {
let scaleFactor = getEntityData(civilian, "v.rp.scale");
let tempMatrix = civilian.matrix;
tempMatrix.setScale(toVector3(scaleFactor.x, scaleFactor.y, scaleFactor.z));
let tempPosition = civilian.position;
@@ -158,79 +158,79 @@ function syncCivilianProperties(civilian) {
}
}
if (getGame() == AGRP_GAME_GTA_SA) {
if (doesEntityDataExist(civilian, "agrp.fightStyle")) {
let fightStyle = getEntityData(civilian, "agrp.fightStyle");
if (getGame() == V_GAME_GTA_SA) {
if (doesEntityDataExist(civilian, "v.rp.fightStyle")) {
let fightStyle = getEntityData(civilian, "v.rp.fightStyle");
civilian.setFightStyle(fightStyle[0], fightStyle[1]);
}
}
if (getGame() == AGRP_GAME_GTA_SA) {
if (doesEntityDataExist(civilian, "agrp.walkStyle")) {
let walkStyle = getEntityData(civilian, "agrp.walkStyle");
if (getGame() == V_GAME_GTA_SA) {
if (doesEntityDataExist(civilian, "v.rp.walkStyle")) {
let walkStyle = getEntityData(civilian, "v.rp.walkStyle");
civilian.walkStyle = walkStyle;
}
}
if (getGame() == AGRP_GAME_GTA_IV) {
if (doesEntityDataExist(civilian, "agrp.bodyPropHair")) {
let bodyPropHair = getEntityData(civilian, "agrp.bodyPropHair");
if (getGame() == V_GAME_GTA_IV) {
if (doesEntityDataExist(civilian, "v.rp.bodyPropHair")) {
let bodyPropHair = getEntityData(civilian, "v.rp.bodyPropHair");
civilian.changeBodyProp(0, bodyPropHair[0], bodyPropHair[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropHead")) {
let bodyPropHead = getEntityData(civilian, "agrp.bodyPropHead");
if (doesEntityDataExist(civilian, "v.rp.bodyPropHead")) {
let bodyPropHead = getEntityData(civilian, "v.rp.bodyPropHead");
civilian.changeBodyProp(1, bodyPropHead[0], bodyPropHead[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropEyes")) {
let bodyPropEyes = getEntityData(civilian, "agrp.bodyPropEyes");
if (doesEntityDataExist(civilian, "v.rp.bodyPropEyes")) {
let bodyPropEyes = getEntityData(civilian, "v.rp.bodyPropEyes");
civilian.changeBodyProp(1, bodyPropEyes[0], bodyPropEyes[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropLeftHand")) {
let bodyPropLeftHand = getEntityData(civilian, "agrp.bodyPropLeftHand");
if (doesEntityDataExist(civilian, "v.rp.bodyPropLeftHand")) {
let bodyPropLeftHand = getEntityData(civilian, "v.rp.bodyPropLeftHand");
civilian.changeBodyProp(1, bodyPropLeftHand[0], bodyPropLeftHand[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropRightHand")) {
let bodyPropRightHand = getEntityData(civilian, "agrp.bodyPropRightHand");
if (doesEntityDataExist(civilian, "v.rp.bodyPropRightHand")) {
let bodyPropRightHand = getEntityData(civilian, "v.rp.bodyPropRightHand");
civilian.changeBodyProp(1, bodyPropRightHand[0], bodyPropRightHand[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropLeftWrist")) {
let bodyPropLeftWrist = getEntityData(civilian, "agrp.bodyPropLeftWrist");
if (doesEntityDataExist(civilian, "v.rp.bodyPropLeftWrist")) {
let bodyPropLeftWrist = getEntityData(civilian, "v.rp.bodyPropLeftWrist");
civilian.changeBodyProp(1, bodyPropLeftWrist[0], bodyPropLeftWrist[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(civilian, "agrp.bodyPropRightWrist");
if (doesEntityDataExist(civilian, "v.rp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(civilian, "v.rp.bodyPropRightWrist");
civilian.changeBodyProp(1, bodyPropRightWrist[0], bodyPropRightWrist[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(civilian, "agrp.bodyPropRightWrist");
if (doesEntityDataExist(civilian, "v.rp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(civilian, "v.rp.bodyPropRightWrist");
civilian.changeBodyProp(1, bodyPropRightWrist[0], bodyPropRightWrist[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropHip")) {
let bodyPropHip = getEntityData(civilian, "agrp.bodyPropHip");
if (doesEntityDataExist(civilian, "v.rp.bodyPropHip")) {
let bodyPropHip = getEntityData(civilian, "v.rp.bodyPropHip");
civilian.changeBodyProp(1, bodyPropHip[0], bodyPropHip[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropLeftFoot")) {
let bodyPropLeftFoot = getEntityData(civilian, "agrp.bodyPropLeftFoot");
if (doesEntityDataExist(civilian, "v.rp.bodyPropLeftFoot")) {
let bodyPropLeftFoot = getEntityData(civilian, "v.rp.bodyPropLeftFoot");
civilian.changeBodyProp(1, bodyPropLeftFoot[0], bodyPropLeftFoot[1]);
}
if (doesEntityDataExist(civilian, "agrp.bodyPropRightFoot")) {
let bodyPropRightFoot = getEntityData(civilian, "agrp.bodyPropRightFoot");
if (doesEntityDataExist(civilian, "v.rp.bodyPropRightFoot")) {
let bodyPropRightFoot = getEntityData(civilian, "v.rp.bodyPropRightFoot");
civilian.changeBodyProp(1, bodyPropRightFoot[0], bodyPropRightFoot[1]);
}
}
if (doesEntityDataExist(civilian, "agrp.anim")) {
let animationSlot = getEntityData(civilian, "agrp.anim");
if (doesEntityDataExist(civilian, "v.rp.anim")) {
let animationSlot = getEntityData(civilian, "v.rp.anim");
let animationData = getAnimationData(animationSlot);
civilian.addAnimation(animationData.groupId, animationData.animId);
}
@@ -244,8 +244,8 @@ function syncObjectProperties(object) {
}
if (isGameFeatureSupported("objectScale")) {
if (doesEntityDataExist(object, "agrp.scale")) {
let scaleFactor = getEntityData(object, "agrp.scale");
if (doesEntityDataExist(object, "v.rp.scale")) {
let scaleFactor = getEntityData(object, "v.rp.scale");
let tempMatrix = object.matrix;
tempMatrix.setScale(toVector3(scaleFactor.x, scaleFactor.y, scaleFactor.z));
let tempPosition = object.position;
@@ -264,8 +264,8 @@ function syncPlayerProperties(player) {
}
if (isGameFeatureSupported("pedScale")) {
if (doesEntityDataExist(player, "agrp.scale")) {
let scaleFactor = getEntityData(player, "agrp.scale");
if (doesEntityDataExist(player, "v.rp.scale")) {
let scaleFactor = getEntityData(player, "v.rp.scale");
let tempMatrix = player.matrix;
tempMatrix.setScale(toVector3(scaleFactor.x, scaleFactor.y, scaleFactor.z));
let tempPosition = player.position;
@@ -275,95 +275,95 @@ function syncPlayerProperties(player) {
}
}
if (getGame() == AGRP_GAME_GTA_SA) {
if (doesEntityDataExist(player, "agrp.fightStyle")) {
let fightStyle = getEntityData(player, "agrp.fightStyle");
if (getGame() == V_GAME_GTA_SA) {
if (doesEntityDataExist(player, "v.rp.fightStyle")) {
let fightStyle = getEntityData(player, "v.rp.fightStyle");
player.setFightStyle(fightStyle[0], fightStyle[1]);
}
}
//if(getGame() == AGRP_GAME_GTA_SA) {
// if(doesEntityDataExist(player, "agrp.walkStyle")) {
// let walkStyle = getEntityData(player, "agrp.walkStyle");
//if(getGame() == V_GAME_GTA_SA) {
// if(doesEntityDataExist(player, "v.rp.walkStyle")) {
// let walkStyle = getEntityData(player, "v.rp.walkStyle");
// player.walkStyle = walkStyle;
// }
//}
if (getGame() == AGRP_GAME_GTA_IV) {
if (doesEntityDataExist(player, "agrp.bodyPartHair")) {
let bodyPartHead = getEntityData(player, "agrp.bodyPartHair");
if (getGame() == V_GAME_GTA_IV) {
if (doesEntityDataExist(player, "v.rp.bodyPartHair")) {
let bodyPartHead = getEntityData(player, "v.rp.bodyPartHair");
player.changeBodyPart(0, bodyPartHead[0], bodyPartHair[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPartHead")) {
let bodyPartHead = getEntityData(player, "agrp.bodyPartHead");
if (doesEntityDataExist(player, "v.rp.bodyPartHead")) {
let bodyPartHead = getEntityData(player, "v.rp.bodyPartHead");
player.changeBodyPart(1, bodyPartHead[0], bodyPartHead[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPartUpper")) {
let bodyPartUpper = getEntityData(player, "agrp.bodyPartUpper");
if (doesEntityDataExist(player, "v.rp.bodyPartUpper")) {
let bodyPartUpper = getEntityData(player, "v.rp.bodyPartUpper");
player.changeBodyPart(1, bodyPartUpper[0], bodyPartUpper[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPartLower")) {
let bodyPartLower = getEntityData(player, "agrp.bodyPartLower");
if (doesEntityDataExist(player, "v.rp.bodyPartLower")) {
let bodyPartLower = getEntityData(player, "v.rp.bodyPartLower");
player.changeBodyPart(1, bodyPartLower[0], bodyPartLower[1]);
}
}
if (getGame() == AGRP_GAME_GTA_IV) {
if (doesEntityDataExist(player, "agrp.bodyPropHair")) {
let bodyPropHair = getEntityData(player, "agrp.bodyPropHair");
if (getGame() == V_GAME_GTA_IV) {
if (doesEntityDataExist(player, "v.rp.bodyPropHair")) {
let bodyPropHair = getEntityData(player, "v.rp.bodyPropHair");
player.changeBodyProp(0, bodyPropHair[0], bodyPropHair[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropHead")) {
let bodyPropHead = getEntityData(player, "agrp.bodyPropHead");
if (doesEntityDataExist(player, "v.rp.bodyPropHead")) {
let bodyPropHead = getEntityData(player, "v.rp.bodyPropHead");
player.changeBodyProp(1, bodyPropHead[0], bodyPropHead[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropEyes")) {
let bodyPropEyes = getEntityData(player, "agrp.bodyPropEyes");
if (doesEntityDataExist(player, "v.rp.bodyPropEyes")) {
let bodyPropEyes = getEntityData(player, "v.rp.bodyPropEyes");
player.changeBodyProp(1, bodyPropEyes[0], bodyPropEyes[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropLeftHand")) {
let bodyPropLeftHand = getEntityData(player, "agrp.bodyPropLeftHand");
if (doesEntityDataExist(player, "v.rp.bodyPropLeftHand")) {
let bodyPropLeftHand = getEntityData(player, "v.rp.bodyPropLeftHand");
player.changeBodyProp(1, bodyPropLeftHand[0], bodyPropLeftHand[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropRightHand")) {
let bodyPropRightHand = getEntityData(player, "agrp.bodyPropRightHand");
if (doesEntityDataExist(player, "v.rp.bodyPropRightHand")) {
let bodyPropRightHand = getEntityData(player, "v.rp.bodyPropRightHand");
player.changeBodyProp(1, bodyPropRightHand[0], bodyPropRightHand[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropLeftWrist")) {
let bodyPropLeftWrist = getEntityData(player, "agrp.bodyPropLeftWrist");
if (doesEntityDataExist(player, "v.rp.bodyPropLeftWrist")) {
let bodyPropLeftWrist = getEntityData(player, "v.rp.bodyPropLeftWrist");
player.changeBodyProp(1, bodyPropLeftWrist[0], bodyPropLeftWrist[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(player, "agrp.bodyPropRightWrist");
if (doesEntityDataExist(player, "v.rp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(player, "v.rp.bodyPropRightWrist");
player.changeBodyProp(1, bodyPropRightWrist[0], bodyPropRightWrist[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(player, "agrp.bodyPropRightWrist");
if (doesEntityDataExist(player, "v.rp.bodyPropRightWrist")) {
let bodyPropRightWrist = getEntityData(player, "v.rp.bodyPropRightWrist");
player.changeBodyProp(1, bodyPropRightWrist[0], bodyPropRightWrist[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropHip")) {
let bodyPropHip = getEntityData(player, "agrp.bodyPropHip");
if (doesEntityDataExist(player, "v.rp.bodyPropHip")) {
let bodyPropHip = getEntityData(player, "v.rp.bodyPropHip");
player.changeBodyProp(1, bodyPropHip[0], bodyPropHip[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropLeftFoot")) {
let bodyPropLeftFoot = getEntityData(player, "agrp.bodyPropLeftFoot");
if (doesEntityDataExist(player, "v.rp.bodyPropLeftFoot")) {
let bodyPropLeftFoot = getEntityData(player, "v.rp.bodyPropLeftFoot");
player.changeBodyProp(1, bodyPropLeftFoot[0], bodyPropLeftFoot[1]);
}
if (doesEntityDataExist(player, "agrp.bodyPropRightFoot")) {
let bodyPropRightFoot = getEntityData(player, "agrp.bodyPropRightFoot");
if (doesEntityDataExist(player, "v.rp.bodyPropRightFoot")) {
let bodyPropRightFoot = getEntityData(player, "v.rp.bodyPropRightFoot");
player.changeBodyProp(1, bodyPropRightFoot[0], bodyPropRightFoot[1]);
}
}
@@ -377,20 +377,20 @@ function syncElementProperties(element) {
}
if (isGameFeatureSupported("interior")) {
if (doesEntityDataExist(element, "agrp.interior")) {
if (doesEntityDataExist(element, "v.rp.interior")) {
if (typeof element.interior != "undefined") {
element.interior = getEntityData(element, "agrp.interior");
element.interior = getEntityData(element, "v.rp.interior");
}
}
}
if (isGameFeatureSupported("toggleCollision")) {
if (doesEntityDataExist(element, "agrp.collisions")) {
element.collisionsEnabled = getEntityData(element, "agrp.collisions");
if (doesEntityDataExist(element, "v.rp.collisions")) {
element.collisionsEnabled = getEntityData(element, "v.rp.collisions");
}
}
if (getGame() == AGRP_GAME_MAFIA_ONE) {
if (getGame() == V_GAME_MAFIA_ONE) {
switch (element.type) {
case ELEMENT_VEHICLE:
syncVehicleProperties(element);
@@ -435,7 +435,7 @@ function syncElementProperties(element) {
// ===========================================================================
function receiveHouseFromServer(houseId, entrancePosition, blipModel, pickupModel, hasInterior) {
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
}
}

20
scripts/client/token.js Normal file
View File

@@ -0,0 +1,20 @@
// ===========================================================================
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: token.js
// DESC: Provides "remember me" auto-login token system and functions
// TYPE: Client (JavaScript)
// ===========================================================================
function saveToken(token) {
saveDataToFile("config/client/token.js", token);
}
// ===========================================================================
function loadToken() {
return loadDataFromFile("config/client/token.js");
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: utilities.js
// DESC: Provides util functions and arrays with data
@@ -19,10 +18,10 @@ function setLocalPlayerControlState(controlState, cursorState = false) {
logToConsole(LOG_DEBUG, `[AGRP.Utilities] Setting control state to ${controlState} (Cursor: ${cursorState})`);
controlsEnabled = controlState;
game.setPlayerControl(controlState);
if (getGame() == AGRP_GAME_GTA_III || getGame() == AGRP_GAME_GTA_VC) {
if (getGame() == V_GAME_GTA_III || getGame() == V_GAME_GTA_VC) {
game.SET_PLAYER_CONTROL(game.GET_PLAYER_ID(), boolToInt(controlState));
} else if (getGame() <= AGRP_GAME_GTA_IV) {
setElementCollisionsEnabled(localPlayer, controlState);
} else if (getGame() <= V_GAME_GTA_IV) {
setElementCollisionsEnabled(localPlayer.id, controlState);
setPedInvincible(localPlayer, true);
}
}
@@ -78,9 +77,9 @@ function setCityAmbienceState(state, clearElements = false) {
logToConsole(LOG_DEBUG, `[AGRP.Utilities] Ambient civilians and traffic ${(state) ? "enabled" : "disabled"}`);
game.setTrafficEnabled(state);
if (getMultiplayerMod() == AGRP_MPMOD_GTAC) {
if (getMultiplayerMod() == V_MPMOD_GTAC) {
game.setGenerateCarsAroundCamera(state);
if (getGame() != AGRP_GAME_GTA_SA) {
if (getGame() != V_GAME_GTA_SA) {
game.setCiviliansEnabled(state);
}
@@ -98,7 +97,7 @@ function runClientCode(code, returnTo) {
try {
returnValue = eval("(" + code + ")");
} catch (error) {
sendNetworkEventToServer("agrp.runCodeFail", returnTo, error.toString());
sendNetworkEventToServer("v.rp.runCodeFail", returnTo, error.toString());
return false;
}
let returnValueString = returnValue;
@@ -107,7 +106,7 @@ function runClientCode(code, returnTo) {
} else {
returnValueString = "null/undefined";
}
sendNetworkEventToServer("agrp.runCodeSuccess", returnTo, returnValueString);
sendNetworkEventToServer("v.rp.runCodeSuccess", returnTo, returnValueString);
}
// ===========================================================================
@@ -115,7 +114,7 @@ function runClientCode(code, returnTo) {
function enterVehicleAsPassenger() {
if (localPlayer.vehicle == null) {
let tempVehicle = getClosestVehicle(localPlayer.position);
if (getGame() != AGRP_GAME_GTA_IV) {
if (getGame() != V_GAME_GTA_IV) {
if (tempVehicle != null) {
localPlayer.enterVehicle(tempVehicle, false);
}
@@ -137,13 +136,13 @@ function enterVehicleAsPassenger() {
function giveLocalPlayerWeapon(weaponId, ammo, active) {
logToConsole(LOG_DEBUG, `[AGRP.Utilities] Giving weapon ${weaponId} with ${ammo} ammo`);
forceWeapon = weaponId;
if (getGame() == AGRP_GAME_MAFIA_ONE) {
if (getGame() == V_GAME_MAFIA_ONE) {
localPlayer.giveWeapon(weaponId, 0, ammo);
forceWeaponAmmo = 0;
forceWeaponClipAmmo = ammo;
} else {
localPlayer.giveWeapon(weaponId, ammo, active);
if (getGame() < AGRP_GAME_GTA_IV) {
if (getGame() < V_GAME_GTA_IV) {
forceWeaponAmmo = localPlayer.getWeaponAmmunition(getWeaponSlot(weaponId));
forceWeaponClipAmmo = localPlayer.getWeaponClipAmmunition(getWeaponSlot(weaponId));
} else {
@@ -197,7 +196,7 @@ function setLocalPlayerHeading(heading) {
function setLocalPlayerInterior(interior) {
logToConsole(LOG_DEBUG, `[AGRP.Utilities] Setting interior to ${interior}`);
if (getMultiplayerMod() == AGRP_MPMOD_GTAC) {
if (getMultiplayerMod() == V_MPMOD_GTAC) {
if (!isGTAIV()) {
localPlayer.interior = interior;
game.cameraInterior = interior;
@@ -215,8 +214,8 @@ function setLocalPlayerInterior(interior) {
if (areServerElementsSupported() && isGameFeatureSupported("interior")) {
let vehicles = getElementsByType(ELEMENT_VEHICLE);
for (let i in vehicles) {
if (getEntityData(vehicles[i], "agrp.interior")) {
vehicles[i].interior = getEntityData(vehicles[i], "agrp.interior");
if (getEntityData(vehicles[i], "v.rp.interior")) {
vehicles[i].interior = getEntityData(vehicles[i], "v.rp.interior");
}
}
}
@@ -224,13 +223,16 @@ function setLocalPlayerInterior(interior) {
// ===========================================================================
function setSnowState(falling, ground) {
function setSnowState(falling, ground, forceGround) {
logToConsole(LOG_DEBUG, `[AGRP.Utilities] Setting falling snow to ${falling} and ground snow to ${ground}`);
snowing = falling;
if (ground) {
forceSnowing(false);
forceSnowing(ground);
}
//snow.force = ground;
//if (forceGround == true) {
// forceSnowing(forceGround);
// groundSnow.flush();
//} else {
// snow.enabled = ground;
//}
}
// ===========================================================================
@@ -243,7 +245,7 @@ function setLocalPlayerHealth(health) {
function playPedSpeech(pedName, speechId) {
logToConsole(LOG_DEBUG, `[AGRP.Utilities] Making ${pedName}'s ped talk (${speechId})`);
if (getMultiplayerMod() == AGRP_MPMOD_GTAC) {
if (getMultiplayerMod() == V_MPMOD_GTAC) {
game.SET_CHAR_SAY(int, int);
}
}
@@ -264,7 +266,7 @@ function getWeaponSlot(weaponId) {
// ===========================================================================
function setLocalPlayerDrunkEffect(amount, duration) {
if (getMultiplayerMod() == AGRP_MPMOD_GTAC) {
if (getMultiplayerMod() == V_MPMOD_GTAC) {
logToConsole(LOG_DEBUG, `[AGRP.Utilities] Drunk effect set to ${amount} for ${duration} ms`);
drunkEffectAmount = 0;
drunkEffectDurationTimer = setInterval(function () {
@@ -397,8 +399,8 @@ function processWantedLevelReset() {
function processLocalPlayerVehicleControlState() {
if (areServerElementsSupported()) {
if (localPlayer.vehicle != null) {
if (doesEntityDataExist(localPlayer.vehicle, "agrp.engine")) {
if (getEntityData(localPlayer.vehicle, "agrp.engine") == false) {
if (doesEntityDataExist(localPlayer.vehicle, "v.rp.engine")) {
if (getEntityData(localPlayer.vehicle, "v.rp.engine") == false) {
localPlayer.vehicle.engine = false;
//localPlayer.vehicle.netFlags.sendSync = false;
if (!localPlayer.vehicle.engine) {
@@ -427,12 +429,12 @@ function forceLocalPlayerEquippedWeaponItem() {
if (forceWeapon != 0) {
if (localPlayer.weapon != forceWeapon) {
localPlayer.weapon = forceWeapon;
if (getGame() < AGRP_GAME_GTA_IV) {
if (getGame() < V_GAME_GTA_IV) {
localPlayer.setWeaponClipAmmunition(getWeaponSlot(forceWeapon), forceWeaponClipAmmo);
localPlayer.setWeaponAmmunition(getWeaponSlot(forceWeapon), forceWeaponAmmo);
}
} else {
//if(getGame() < AGRP_GAME_GTA_IV) {
//if(getGame() < V_GAME_GTA_IV) {
// forceWeaponClipAmmo = localPlayer.getWeaponClipAmmunition(getWeaponSlot(forceWeapon));
// forceWeaponAmmo = localPlayer.getWeaponAmmunition(getWeaponSlot(forceWeapon));
//}
@@ -459,7 +461,7 @@ function getLocalPlayerPosition() {
// ===========================================================================
function getVehicleForNetworkEvent(vehicle) {
if (getGame() == AGRP_GAME_GTA_IV) {
if (getGame() == V_GAME_GTA_IV) {
return natives.getNetworkIdFromVehicle(vehicle);
}
return vehicle.id;
@@ -531,7 +533,7 @@ function processNearbyPickups() {
//if(pickups[i].interior == localPlayer.interior && pickups[i].dimension == localPlayer.dimension) {
if (currentPickup != pickups[i]) {
currentPickup = pickups[i];
sendNetworkEventToServer("agrp.pickup", pickups[i].id);
sendNetworkEventToServer("v.rp.pickup", pickups[i].id);
}
//}
}
@@ -542,10 +544,14 @@ function processNearbyPickups() {
// ===========================================================================
function processGameSpecifics() {
if (getGame() < AGRP_GAME_GTA_IV) {
if (getGame() < V_GAME_GTA_IV) {
game.clearMessages();
}
if (getGame() == V_GAME_GTA_IV || getGame() == V_GAME_GTA_IV_EFLC) {
gta.terminateScript("mpcellphonemain");
}
destroyAutoCreatedPickups();
}
@@ -601,8 +607,8 @@ function updateLocalPlayerMoney() {
localPlayer.money = toInteger(localPlayerMoney);
}
if (getGame() == AGRP_GAME_GTA_IV) {
natives.setMultiplayerHudCash(amount);
if (getGame() == V_GAME_GTA_IV) {
natives.setMultiplayerHudCash(localPlayerMoney);
}
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: vehicle.js
// DESC: Provides vehicle functions and arrays with data
@@ -33,7 +32,7 @@ class VehicleData {
function receiveVehicleFromServer(vehicleId, position, model, colour1, colour2, colour3 = 0, colour4 = 0, locked = false, lights = false, engine = false, licensePlate = "") {
logToConsole(LOG_DEBUG, `[AGRP.Vehicle] Received vehicle ${vehicleId} (${getVehicleNameFromModel(model, getGame())}) from server`);
if (getGame() != AGRP_GAME_GTA_IV) {
if (getGame() != V_GAME_GTA_IV) {
return false;
}
@@ -64,20 +63,20 @@ function receiveVehicleFromServer(vehicleId, position, model, colour1, colour2,
// ===========================================================================
function processVehiclePurchasing() {
if (vehiclePurchaseState == AGRP_VEHBUYSTATE_TESTDRIVE) {
if (vehiclePurchaseState == V_VEHBUYSTATE_TESTDRIVE) {
if (getLocalPlayerVehicle() == false) {
vehiclePurchaseState = AGRP_VEHBUYSTATE_EXITVEH;
sendNetworkEventToServer("agrp.vehBuyState", AGRP_VEHBUYSTATE_EXITVEH);
vehiclePurchaseState = V_VEHBUYSTATE_EXITVEH;
sendNetworkEventToServer("v.rp.vehBuyState", V_VEHBUYSTATE_EXITVEH);
return false;
} else {
if (vehiclePurchasing == getLocalPlayerVehicle()) {
if (getDistance(getLocalPlayerVehicle().position, vehiclePurchasePosition) >= 25) {
vehiclePurchaseState = AGRP_VEHBUYSTATE_FARENOUGH;
sendNetworkEventToServer("agrp.vehBuyState", AGRP_VEHBUYSTATE_FARENOUGH);
vehiclePurchaseState = V_VEHBUYSTATE_FARENOUGH;
sendNetworkEventToServer("v.rp.vehBuyState", V_VEHBUYSTATE_FARENOUGH);
}
} else {
vehiclePurchaseState = AGRP_VEHBUYSTATE_WRONGVEH;
sendNetworkEventToServer("agrp.vehBuyState", AGRP_VEHBUYSTATE_WRONGVEH);
vehiclePurchaseState = V_VEHBUYSTATE_WRONGVEH;
sendNetworkEventToServer("v.rp.vehBuyState", V_VEHBUYSTATE_WRONGVEH);
}
}
}
@@ -154,7 +153,7 @@ function getVehicleSpeed(vehicle) {
speed = getLength(vecMoveSpeed[0], vecMoveSpeed[1], vecMoveSpeed[2]);
}
if (getGame() == AGRP_GAME_GTA_IV || getGame() == AGRP_GAME_GTA_IV_EFLC) {
if (getGame() == V_GAME_GTA_IV || getGame() == V_GAME_GTA_IV_EFLC) {
speed /= 40.0;
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: accent.js
// DESC: Provides accent functions and usage

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: account.js
// DESC: Provides account functions and usage
@@ -9,35 +8,35 @@
// ===========================================================================
// Account Contact Types
const AGRP_CONTACT_NONE = 0;
const AGRP_CONTACT_NEUTRAL = 1; // Contact is neutral. Used for general contacts with no special additional features
const AGRP_CONTACT_FRIEND = 2; // Contact is a friend. Shows when they're online.
const AGRP_CONTACT_BLOCKED = 3; // Contact is blocked. Prevents all communication to/from them except for RP
const V_CONTACT_NONE = 0;
const V_CONTACT_NEUTRAL = 1; // Contact is neutral. Used for general contacts with no special additional features
const V_CONTACT_FRIEND = 2; // Contact is a friend. Shows when they're online.
const V_CONTACT_BLOCKED = 3; // Contact is blocked. Prevents all communication to/from them except for RP
// ===========================================================================
// Account Authentication Methods
const AGRP_ACCT_AUTHMETHOD_NONE = 0; // None
const AGRP_ACCT_AUTHMETHOD_EMAIL = 1; // Email
const AGRP_ACCT_AUTHMETHOD_PHONENUM = 2; // Phone number
const AGRP_ACCT_AUTHMETHOD_2FA = 3; // Two factor authentication app (authy, google authenticator, etc)
const AGRP_ACCT_AUTHMETHOD_PEBBLE = 4; // Pebble watch (this one's for Vortrex but anybody with a Pebble can use)
const AGRP_ACCT_AUTHMETHOD_PHONEAPP = 5; // The Android/iOS companion app (will initially be a web based thing until I can get the apps created)
const V_ACCT_AUTHMETHOD_NONE = 0; // None
const V_ACCT_AUTHMETHOD_EMAIL = 1; // Email
const V_ACCT_AUTHMETHOD_PHONENUM = 2; // Phone number
const V_ACCT_AUTHMETHOD_2FA = 3; // Two factor authentication app (authy, google authenticator, etc)
const V_ACCT_AUTHMETHOD_PEBBLE = 4; // Pebble watch (this one's for Vortrex but anybody with a Pebble can use)
const V_ACCT_AUTHMETHOD_PHONEAPP = 5; // The Android/iOS companion app (will initially be a web based thing until I can get the apps created)
// ===========================================================================
// Two-Factor Authentication States
const AGRP_2FA_STATE_NONE = 0; // None
const AGRP_2FA_STATE_CODEINPUT = 1; // Waiting on player to enter code to play
const AGRP_2FA_STATE_SETUP_CODETOAPP = 2; // Providing player with a code to put in their auth app
const AGRP_2FA_STATE_SETUP_CODEFROMAPP = 3; // Waiting on player to enter code from auth app to set up
const V_2FA_STATE_NONE = 0; // None
const V_2FA_STATE_CODEINPUT = 1; // Waiting on player to enter code to play
const V_2FA_STATE_SETUP_CODETOAPP = 2; // Providing player with a code to put in their auth app
const V_2FA_STATE_SETUP_CODEFROMAPP = 3; // Waiting on player to enter code from auth app to set up
// ===========================================================================
// Reset Password States
const AGRP_RESETPASS_STATE_NONE = 0; // None
const AGRP_RESETPASS_STATE_CODEINPUT = 1; // Waiting on player to enter code sent via email
const AGRP_RESETPASS_STATE_SETPASS = 2; // Waiting on player to enter new password
const V_RESETPASS_STATE_NONE = 0; // None
const V_RESETPASS_STATE_CODEINPUT = 1; // Waiting on player to enter code sent via email
const V_RESETPASS_STATE_SETPASS = 2; // Waiting on player to enter new password
// ===========================================================================
@@ -195,8 +194,8 @@ class AccountStaffNoteData {
// ===========================================================================
function initAccountScript() {
logToConsole(LOG_DEBUG, "[AGRP.Account]: Initializing account script ...");
logToConsole(LOG_DEBUG, "[AGRP.Account]: Account script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Account]: Initializing account script ...");
logToConsole(LOG_DEBUG, "[V.RP.Account]: Account script initialized!");
}
// ===========================================================================
@@ -717,26 +716,23 @@ function isAccountPasswordCorrect(accountData, password) {
function loadAccountFromName(accountName, fullLoad = false) {
let dbConnection = connectToDatabase();
let dbAssoc = [];
if (dbConnection) {
accountName = escapeDatabaseString(dbConnection, accountName);
let dbQueryString = `SELECT acct_main.*, acct_svr.* FROM acct_main INNER JOIN acct_svr ON acct_svr.acct_svr_acct = acct_main.acct_id AND acct_svr.acct_svr_svr = ${getServerId()} WHERE acct_name = '${accountName}' LIMIT 1;`;
let dbQuery = queryDatabase(dbConnection, dbQueryString);
if (dbQuery) {
if (dbQuery.numRows > 0) {
let dbAssoc = fetchQueryAssoc(dbQuery);
let tempAccountData = new AccountData(dbAssoc);
if (fullLoad) {
tempAccountData.messages = loadAccountMessagesFromDatabase(tempAccountData.databaseId);
tempAccountData.notes = loadAccountStaffNotesFromDatabase(tempAccountData.databaseId);
tempAccountData.contacts = loadAccountContactsFromDatabase(tempAccountData.databaseId);
}
freeDatabaseQuery(dbQuery);
return tempAccountData;
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
let tempAccountData = new AccountData(dbAssoc[0]);
if (fullLoad) {
tempAccountData.messages = loadAccountMessagesFromDatabase(tempAccountData.databaseId);
tempAccountData.notes = loadAccountStaffNotesFromDatabase(tempAccountData.databaseId);
tempAccountData.contacts = loadAccountContactsFromDatabase(tempAccountData.databaseId);
}
return tempAccountData;
}
disconnectFromDatabase(dbConnection);
}
return false;
}
@@ -744,13 +740,13 @@ function loadAccountFromName(accountName, fullLoad = false) {
function loadAccountFromId(accountId, fullLoad = false) {
let dbConnection = connectToDatabase();
let dbAssoc = [];
if (dbConnection) {
let dbQueryString = `SELECT acct_main.*, acct_svr.* FROM acct_main INNER JOIN acct_svr ON acct_svr.acct_svr_acct = acct_main.acct_id AND acct_svr.acct_svr_svr = ${getServerId()} WHERE acct_id = ${accountId} LIMIT 1;`;
let dbQuery = queryDatabase(dbConnection, dbQueryString);
if (dbQuery) {
let dbAssoc = fetchQueryAssoc(dbQuery);
let tempAccountData = new AccountData(dbAssoc);
freeDatabaseQuery(dbQuery);
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
let tempAccountData = new AccountData(dbAssoc[0]);
if (fullLoad) {
tempAccountData.messages = loadAccountMessagesFromDatabase(tempAccountData.databaseId);
tempAccountData.notes = loadAccountStaffNotesFromDatabase(tempAccountData.databaseId);
@@ -806,7 +802,7 @@ function getAccountHashingFunction() {
// ===========================================================================
function isNameRegistered(name) {
async function isNameRegistered(name) {
let accountData = loadAccountFromName(name, true);
if (accountData.databaseId > 0) {
return true;
@@ -869,7 +865,7 @@ function loginSuccess(client) {
if (getPlayerData(client).subAccounts.length == 0) {
if (doesServerHaveGUIEnabled() && doesPlayerHaveGUIEnabled(client)) {
showPlayerPrompt(client, getLocaleString(client, "NoCharactersGUIMessage"), getLocaleString(client, "NoCharactersGUIWindowTitle"), getLocaleString(client, "Yes"), getLocaleString(client, "No"));
getPlayerData(client).promptType = AGRP_PROMPT_CREATEFIRSTCHAR;
getPlayerData(client).promptType = V_PROMPT_CREATEFIRSTCHAR;
logToConsole(LOG_DEBUG, `[AGRP.Account] ${getPlayerDisplayForConsole(client)} is being shown the no characters prompt GUI`);
} else {
messagePlayerAlert(client, getLocaleString(client, "NoCharactersChatMessage", `{ALTCOLOUR}/newchar{MAINCOLOUR}`));
@@ -1037,7 +1033,7 @@ function saveAccountContactsToDatabase(accountContactData) {
// ===========================================================================
function createAccount(name, password, email = "") {
async function createAccount(name, password, email = "") {
let dbConnection = connectToDatabase();
if (dbConnection) {
@@ -1286,7 +1282,7 @@ function checkRegistration(client, password, confirmPassword = "", emailAddress
if (doesServerHaveGUIEnabled() && doesPlayerHaveGUIEnabled(client)) {
showPlayerRegistrationSuccessGUI(client);
showPlayerPrompt(client, getLocaleString(client, "NoCharactersGUIMessage"), getLocaleString(client, "NoCharactersGUIWindowTitle"), getLocaleString(client, "Yes"), getLocaleString(client, "No"));
getPlayerData(client).promptType = AGRP_PROMPT_CREATEFIRSTCHAR;
getPlayerData(client).promptType = V_PROMPT_CREATEFIRSTCHAR;
} else {
messagePlayerAlert(client, getLocaleString(client, "NoCharactersChatMessage", `{ALTCOLOUR}/newchar{MAINCOLOUR}`));
}
@@ -1301,7 +1297,7 @@ function checkAccountResetPasswordRequest(client, inputText) {
}
switch (getPlayerData(client).passwordResetState) {
case AGRP_RESETPASS_STATE_EMAILCONFIRM: {
case V_RESETPASS_STATE_EMAILCONFIRM: {
if (toLowerCase(getPlayerData(client).accountData.emailAddress) != toLowerCase(inputText)) {
logToConsole(LOG_INFO | LOG_WARN, `${getPlayerDisplayForConsole(client)} failed to reset their password (email not correct)`);
showPlayerErrorGUI(client, getLocaleString(client, "GUIErrorResetPasswordFailedInvalidEmail"), getLocaleString(client, "GUIErrorTitle"), getLocaleString(client, "GUIOkButton"));
@@ -1309,7 +1305,7 @@ function checkAccountResetPasswordRequest(client, inputText) {
}
let passwordResetCode = toUpperCase(generateEmailVerificationCode());
getPlayerData(client).passwordResetState = AGRP_RESETPASS_STATE_CODEINPUT;
getPlayerData(client).passwordResetState = V_RESETPASS_STATE_CODEINPUT;
getPlayerData(client).passwordResetCode = passwordResetCode;
showPlayerResetPasswordCodeInputGUI(client);
sendPasswordResetEmail(client, passwordResetCode);
@@ -1317,11 +1313,11 @@ function checkAccountResetPasswordRequest(client, inputText) {
break;
}
case AGRP_RESETPASS_STATE_CODEINPUT: {
case V_RESETPASS_STATE_CODEINPUT: {
logToConsole(LOG_INFO, `${getPlayerDisplayForConsole(client)} submitted code for password reset (${inputText}) ...`);
if (inputText != "") {
if (getPlayerData(client).passwordResetCode == toUpperCase(inputText)) {
getPlayerData(client).passwordResetState = AGRP_RESETPASS_STATE_SETPASS;
getPlayerData(client).passwordResetState = V_RESETPASS_STATE_SETPASS;
showPlayerChangePasswordGUI(client);
logToConsole(LOG_INFO, `${getPlayerDisplayForConsole(client)} entered the correct reset password verification code. Awaiting new password input ...`);
} else {
@@ -1338,10 +1334,10 @@ function checkAccountResetPasswordRequest(client, inputText) {
break;
}
case AGRP_RESETPASS_STATE_NONE: {
case V_RESETPASS_STATE_NONE: {
logToConsole(LOG_INFO, `${getPlayerDisplayForConsole(client)} requested a password reset. Awaiting email input ...`);
showPlayerResetPasswordEmailInputGUI(client);
getPlayerData(client).passwordResetState = AGRP_RESETPASS_STATE_EMAILCONFIRM;
getPlayerData(client).passwordResetState = V_RESETPASS_STATE_EMAILCONFIRM;
break;
}
}
@@ -1353,8 +1349,8 @@ function checkAccountResetPasswordRequest(client, inputText) {
function checkAccountChangePassword(client, newPassword, confirmNewPassword) {
if (!isPlayerLoggedIn(client)) {
if (getPlayerData(client).passwordResetState != AGRP_RESETPASS_STATE_SETPASS) {
//getPlayerData(client).passwordResetState = AGRP_RESETPASS_STATE_NONE;
if (getPlayerData(client).passwordResetState != V_RESETPASS_STATE_SETPASS) {
//getPlayerData(client).passwordResetState = V_RESETPASS_STATE_NONE;
//disconnectPlayer(client);
logToConsole(LOG_DEBUG | LOG_WARN, `${getPlayerDisplayForConsole(client)} failed to change their password (not logged in or not using reset password)`);
return false;
@@ -1390,8 +1386,8 @@ function checkAccountChangePassword(client, newPassword, confirmNewPassword) {
saveAccountToDatabase(getPlayerData(client).accountData);
if (getPlayerData(client).passwordResetState == AGRP_RESETPASS_STATE_SETPASS) {
getPlayerData(client).passwordResetState = AGRP_RESETPASS_STATE_NONE;
if (getPlayerData(client).passwordResetState == V_RESETPASS_STATE_SETPASS) {
getPlayerData(client).passwordResetState = V_RESETPASS_STATE_NONE;
}
messagePlayerSuccess(client, getLocaleString(client, "PasswordChanged"));
@@ -1407,11 +1403,11 @@ function isValidEmailAddress(emailAddress) {
// ===========================================================================
function saveAllPlayersToDatabase() {
logToConsole(LOG_DEBUG, "[AGRP.Account]: Saving all clients to database ...");
logToConsole(LOG_DEBUG, "[V.RP.Account]: Saving all clients to database ...");
getClients().forEach(function (client) {
savePlayerToDatabase(client);
});
logToConsole(LOG_DEBUG, "[AGRP.Account]: All clients saved to database successfully!");
logToConsole(LOG_DEBUG, "[V.RP.Account]: All clients saved to database successfully!");
}
// ===========================================================================
@@ -1432,7 +1428,7 @@ function savePlayerToDatabase(client) {
//let subAccountData = getPlayerCurrentSubAccount(client);
if (getPlayerPed(client) != null) {
if (getPlayerData(client).returnToPosition != null && getPlayerData(client).returnToType != AGRP_RETURNTO_TYPE_ADMINGET) {
if (getPlayerData(client).returnToPosition != null && getPlayerData(client).returnToType != V_RETURNTO_TYPE_ADMINGET) {
getPlayerCurrentSubAccount(client).spawnPosition = getPlayerData(client).returnToPosition;
getPlayerCurrentSubAccount(client).spawnHeading = getPlayerData(client).returnToHeading.z;
getPlayerCurrentSubAccount(client).interior = getPlayerData(client).returnToInterior;
@@ -1467,10 +1463,15 @@ function saveConnectionToDatabase(client) {
// ===========================================================================
function createDefaultAccountServerData(accountDatabaseId) {
for (let i = 1; i <= 5; i++) {
let dbQueryString = `INSERT INTO acct_svr (acct_svr_acct, acct_svr_svr) VALUES (${accountDatabaseId}, ${i})`;
let dbConnection = connectToDatabase();
let serversAssoc = fetchQueryAssoc(dbConnection, "SELECT * FROM svr_main");
for (let i in serversAssoc) {
let dbQueryString = `INSERT INTO acct_svr (acct_svr_acct, acct_svr_svr) VALUES (${accountDatabaseId}, ${serversAssoc[i]["svr_id"]})`;
quickDatabaseQuery(dbQueryString);
}
disconnectFromDatabase(dbConnection);
}
// ===========================================================================
@@ -1480,8 +1481,7 @@ function loadAccountKeybindsFromDatabase(accountDatabaseID) {
let tempAccountKeybinds = [];
let dbConnection = connectToDatabase();
let dbQuery = null;
let dbAssoc;
let dbAssoc = [];
for (let i in getGlobalConfig().keyBind.defaultKeyBinds) {
let tempKeyBindData = new KeyBindData(false);
@@ -1494,16 +1494,14 @@ function loadAccountKeybindsFromDatabase(accountDatabaseID) {
if (accountDatabaseID != 0 && typeof accountDatabaseId != "undefined") {
if (dbConnection) {
dbQuery = queryDatabase(dbConnection, `SELECT * FROM acct_hotkey WHERE acct_hotkey_enabled = 1 AND acct_hotkey_acct = ${accountDatabaseID} AND acct_hotkey_server = ${getServerId()}`);
if (dbQuery) {
if (dbQuery.numRows > 0) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempAccountKeyBindData = new KeyBindData(dbAssoc);
tempAccountKeybinds.push(tempAccountKeyBindData);
logToConsole(LOG_DEBUG, `[AGRP.Account]: Account keybind '${tempAccountKeyBindData.databaseId}' (Key ${tempAccountKeyBindData.key} '${toUpperCase(getKeyNameFromId(tempAccountKeyBindData.key))}') loaded from database successfully!`);
}
let dbQueryString = `SELECT * FROM acct_hotkey WHERE acct_hotkey_enabled = 1 AND acct_hotkey_acct = ${accountDatabaseID} AND acct_hotkey_server = ${getServerId()}`;
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempAccountKeyBindData = new KeyBindData(dbAssoc[i]);
tempAccountKeybinds.push(tempAccountKeyBindData);
logToConsole(LOG_DEBUG, `[AGRP.Account]: Account keybind '${tempAccountKeyBindData.databaseId}' (Key ${tempAccountKeyBindData.key} '${toUpperCase(getKeyNameFromId(tempAccountKeyBindData.key))}') loaded from database successfully!`);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}
@@ -1520,20 +1518,17 @@ function loadAccountStaffNotesFromDatabase(accountDatabaseID) {
let tempAccountStaffNotes = [];
let dbConnection = connectToDatabase();
let dbQuery = null;
let dbAssoc;
let dbAssoc = [];
if (dbConnection) {
dbQuery = queryDatabase(dbConnection, "SELECT * FROM `acct_note` WHERE `acct_note_deleted` = 0 AND `acct_note_acct` = " + toString(accountDatabaseID));
if (dbQuery) {
if (dbQuery.numRows > 0) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempAccountStaffNoteData = new AccountStaffNoteData(dbAssoc);
tempAccountStaffNotes.push(tempAccountStaffNoteData);
logToConsole(LOG_DEBUG, `[AGRP.Account]: Account staff note '${tempAccountStaffNoteData.databaseId}' loaded from database successfully!`);
}
let dbQueryString = "SELECT * FROM `acct_note` WHERE `acct_note_deleted` = 0 AND `acct_note_acct` = " + toString(accountDatabaseID);
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempAccountStaffNoteData = new AccountStaffNoteData(dbAssoc[i]);
tempAccountStaffNotes.push(tempAccountStaffNoteData);
logToConsole(LOG_DEBUG, `[AGRP.Account]: Account staff note '${tempAccountStaffNoteData.databaseId}' loaded from database successfully!`);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}
@@ -1549,20 +1544,17 @@ function loadAccountContactsFromDatabase(accountDatabaseID) {
let tempAccountContacts = [];
let dbConnection = connectToDatabase();
let dbQuery = null;
let dbAssoc;
let dbAssoc = [];
if (dbConnection) {
dbQuery = queryDatabase(dbConnection, "SELECT * FROM `acct_contact` WHERE `acct_contact_deleted` = 0 AND `acct_contact_acct` = " + toString(accountDatabaseID));
if (dbQuery) {
if (dbQuery.numRows > 0) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempAccountContactData = new AccountContactData(dbAssoc);
tempAccountContacts.push(tempAccountContactData);
logToConsole(LOG_DEBUG, `[AGRP.Account]: Account contact '${tempAccountContactData.databaseId}' loaded from database successfully!`);
}
let dbQueryString = "SELECT * FROM `acct_contact` WHERE `acct_contact_deleted` = 0 AND `acct_contact_acct` = " + toString(accountDatabaseID);
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempAccountContactData = new AccountContactData(dbAssoc[i]);
tempAccountContacts.push(tempAccountContactData);
logToConsole(LOG_DEBUG, `[AGRP.Account]: Account contact '${tempAccountContactData.databaseId}' loaded from database successfully!`);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}
@@ -1578,20 +1570,17 @@ function loadAccountMessagesFromDatabase(accountDatabaseID) {
let tempAccountMessages = [];
let dbConnection = connectToDatabase();
let dbQuery = null;
let dbAssoc;
let dbAssoc = [];
if (dbConnection) {
dbQuery = queryDatabase(dbConnection, "SELECT * FROM `acct_msg` WHERE `acct_msg_deleted` = 0 AND `acct_msg_acct` = " + toString(accountDatabaseID));
if (dbQuery) {
if (dbQuery.numRows > 0) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempAccountMessageData = new AccountContactData(dbAssoc);
tempAccountMessages.push(tempAccountMessageData);
logToConsole(LOG_DEBUG, `[AGRP.Account]: Account contact '${tempAccountMessageData.databaseId}' loaded from database successfully!`);
}
let dbQueryString = "SELECT * FROM`acct_msg` WHERE `acct_msg_deleted` = 0 AND`acct_msg_acct` = " + toString(accountDatabaseID);
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempAccountMessageData = new AccountContactData(dbAssoc[i]);
tempAccountMessages.push(tempAccountMessageData);
logToConsole(LOG_DEBUG, `[AGRP.Account]: Account contact '${tempAccountMessageData.databaseId}' loaded from database successfully!`);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: animation.js
// DESC: Provides animation functions and usage
@@ -9,8 +8,8 @@
// ===========================================================================
function initAnimationScript() {
logToConsole(LOG_DEBUG, "[AGRP.Animation]: Initializing animation script ...");
logToConsole(LOG_DEBUG, "[AGRP.Animation]: Animation script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Animation]: Initializing animation script ...");
logToConsole(LOG_DEBUG, "[V.RP.Animation]: Animation script initialized!");
}
// ===========================================================================
@@ -35,8 +34,8 @@ function playPlayerAnimationCommand(command, params, client) {
return false;
}
if (getAnimationData(animationSlot)[3] == AGRP_ANIMTYPE_SURRENDER) {
getPlayerData(client).pedState = AGRP_PEDSTATE_HANDSUP;
if (getAnimationData(animationSlot)[3] == V_ANIMTYPE_SURRENDER) {
getPlayerData(client).pedState = V_PEDSTATE_HANDSUP;
}
if (isPlayerHandCuffed(client) || isPlayerTazed(client) || isPlayerInForcedAnimation(client)) {
@@ -44,8 +43,10 @@ function playPlayerAnimationCommand(command, params, client) {
return false;
}
if (hasPlayerSeenActionTip(client, "AnimationStop")) {
messagePlayerTip(client, getGroupedLocaleString(client, "ActionTips", "AnimationStop", "{ALTCOLOUR}/stopanim{MAINCOLOUR}"));
if (getAnimationData(animationSlot).loop == true) {
if (hasPlayerSeenActionTip(client, "AnimationStop")) {
messagePlayerTip(client, getGroupedLocaleString(client, "ActionTips", "AnimationStop", "{ALTCOLOUR}/stopanim{MAINCOLOUR}"));
}
}
makePlayerPlayAnimation(client, animationSlot, animationPositionOffset);
}
@@ -95,16 +96,18 @@ function isPlayerInForcedAnimation(client) {
// ===========================================================================
function makePlayerPlayAnimation(client, animationSlot, offsetPosition = 1) {
getPlayerData(client).currentAnimation = animationSlot;
getPlayerData(client).currentAnimationPositionOffset = offsetPosition;
getPlayerData(client).currentAnimationPositionReturnTo = getPlayerPosition(client);
getPlayerData(client).animationStart = getCurrentUnixTimestamp();
getPlayerData(client).animationForced = false;
if (getAnimationData(animationSlot).loop == true) {
getPlayerData(client).currentAnimation = animationSlot;
getPlayerData(client).currentAnimationPositionOffset = offsetPosition;
getPlayerData(client).currentAnimationPositionReturnTo = getPlayerPosition(client);
getPlayerData(client).animationStart = getCurrentUnixTimestamp();
getPlayerData(client).animationForced = false;
}
makePedPlayAnimation(getPlayerPed(client), animationSlot, offsetPosition);
//setEntityData(getPlayerPed(client), "agrp.anim", animationSlot, true);
//if(getAnimationData(animationSlot)[9] != AGRP_ANIMMOVE_NONE) {
// if(getGame() < AGRP_GAME_GTA_SA) {
//setEntityData(getPlayerPed(client), "v.rp.anim", animationSlot, true);
//if(getAnimationData(animationSlot)[9] != V_ANIMMOVE_NONE) {
// if(getGame() < V_GAME_GTA_SA) {
// setPlayerMouseCameraState(client, true);
// }
//}
@@ -113,11 +116,13 @@ function makePlayerPlayAnimation(client, animationSlot, offsetPosition = 1) {
// ===========================================================================
function forcePlayerPlayAnimation(client, animationSlot, offsetPosition = 1) {
getPlayerData(client).currentAnimation = animationSlot;
getPlayerData(client).currentAnimationPositionOffset = offsetPosition;
getPlayerData(client).currentAnimationPositionReturnTo = getPlayerPosition(client);
getPlayerData(client).animationStart = getCurrentUnixTimestamp();
getPlayerData(client).animationForced = true;
if (getAnimationData(animationSlot).loop == true) {
getPlayerData(client).currentAnimation = animationSlot;
getPlayerData(client).currentAnimationPositionOffset = offsetPosition;
getPlayerData(client).currentAnimationPositionReturnTo = getPlayerPosition(client);
getPlayerData(client).animationStart = getCurrentUnixTimestamp();
getPlayerData(client).animationForced = true;
}
setPlayerControlState(client, false);
forcePedAnimation(getPlayerPed(client), animationSlot, offsetPosition);

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: anticheat.js
// DESC: Provides anticheat functions and usage
@@ -9,17 +8,17 @@
// ===========================================================================
function initAntiCheatScript() {
logToConsole(LOG_DEBUG, "[AGRP.AntiCheat]: Initializing anticheat script ...");
logToConsole(LOG_DEBUG, "[AGRP.AntiCheat]: Anticheat script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.AntiCheat]: Initializing anticheat script ...");
logToConsole(LOG_DEBUG, "[V.RP.AntiCheat]: Anticheat script initialized!");
}
// ===========================================================================
function clearPlayerStateToEnterExitProperty(client) {
if (getPlayerData(client).pedState != AGRP_PEDSTATE_READY) {
if (getPlayerData(client).pedState == AGRP_PEDSTATE_ENTERINGVEHICLE) {
if (getPlayerData(client).pedState != V_PEDSTATE_READY) {
if (getPlayerData(client).pedState == V_PEDSTATE_ENTERINGVEHICLE) {
sendPlayerClearPedState(client);
getPlayerData(client).pedState = AGRP_PEDSTATE_READY;
getPlayerData(client).pedState = V_PEDSTATE_READY;
} else {
return false;
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: bans.js
// DESC: Provides ban functions and usage
@@ -9,18 +8,18 @@
// ===========================================================================
// Ban Types
const AGRP_BANTYPE_NONE = 0;
const AGRP_BANTYPE_ACCOUNT = 1;
const AGRP_BANTYPE_SUBACCOUNT = 2;
const AGRP_BANTYPE_IPADDRESS = 3;
const AGRP_BANTYPE_SUBNET = 4;
const V_BANTYPE_NONE = 0;
const V_BANTYPE_ACCOUNT = 1;
const V_BANTYPE_SUBACCOUNT = 2;
const V_BANTYPE_IPADDRESS = 3;
const V_BANTYPE_SUBNET = 4;
// ===========================================================================
class BanData {
constructor(dbAssoc = false) {
this.databaseId = 0;
this.type = AGRP_BANTYPE_NONE;
this.type = V_BANTYPE_NONE;
this.detail = "";
this.ipAddress = "";
this.name = "";
@@ -39,8 +38,8 @@ class BanData {
// ===========================================================================
function initBanScript() {
logToConsole(LOG_INFO, "[AGRP.Ban]: Initializing ban script ...");
logToConsole(LOG_INFO, "[AGRP.Ban]: Ban script initialized!");
logToConsole(LOG_INFO, "[V.RP.Ban]: Initializing ban script ...");
logToConsole(LOG_INFO, "[V.RP.Ban]: Ban script initialized!");
}
// ===========================================================================
@@ -62,7 +61,7 @@ function accountBanCommand(command, params, client) {
// Prevent banning admins with really high permissions
if (doesPlayerHaveStaffPermission(targetClient, "ManageServer") || doesPlayerHaveStaffPermission(targetClient, "Developer")) {
messagePlayerError(client, getLocaleString(client, "CantBanPlayer"));
messagePlayerError(client, getLocaleString(client, "CantBanClient"));
return false;
}
@@ -94,7 +93,7 @@ function subAccountBanCommand(command, params, client, fromDiscord) {
// Prevent banning admins with really high permissions
if (doesPlayerHaveStaffPermission(targetClient, "ManageServer") || doesPlayerHaveStaffPermission(targetClient, "Developer")) {
messagePlayerError(client, getLocaleString(client, "CantBanPlayer"));
messagePlayerError(client, getLocaleString(client, "CantBanClient"));
return false;
}
@@ -126,7 +125,7 @@ function ipBanCommand(command, params, client, fromDiscord) {
// Prevent banning admins with really high permissions
if (doesPlayerHaveStaffPermission(targetClient, "ManageServer") || doesPlayerHaveStaffPermission(targetClient, "Developer")) {
messagePlayerError(client, getLocaleString(client, "CantBanPlayer"));
messagePlayerError(client, getLocaleString(client, "CantBanClient"));
return false;
}
@@ -158,7 +157,7 @@ function subNetBanCommand(command, params, client, fromDiscord) {
// Prevent banning admins with really high permissions
if (doesPlayerHaveStaffPermission(targetClient, "ManageServer") || doesPlayerHaveStaffPermission(targetClient, "Developer")) {
messagePlayerError(client, getLocaleString(client, "CantBanPlayer"));
messagePlayerError(client, getLocaleString(client, "CantBanClient"));
return false;
}
@@ -175,7 +174,7 @@ function banAccount(accountId, adminAccountId, reason) {
let dbConnection = connectToDatabase();
if (dbConnection) {
let safeReason = dbConnection.escapetoString(reason);
let dbQuery = queryDatabase(dbConnection, `INSERT INTO ban_main (ban_type, ban_detail, ban_who_banned, ban_reason) VALUES (${AGRP_BANTYPE_ACCOUNT}, ${accountId}, ${adminAccountId}, '${safeReason}');`);
let dbQuery = queryDatabase(dbConnection, `INSERT INTO ban_main (ban_type, ban_detail, ban_who_banned, ban_reason) VALUES (${V_BANTYPE_ACCOUNT}, ${accountId}, ${adminAccountId}, '${safeReason}');`);
freeDatabaseQuery(dbQuery);
dbConnection.close();
return true;
@@ -190,7 +189,7 @@ function banSubAccount(subAccountId, adminAccountId, reason) {
let dbConnection = connectToDatabase();
if (dbConnection) {
let safeReason = dbConnection.escapetoString(reason);
let dbQuery = queryDatabase(dbConnection, `INSERT INTO ban_main (ban_type, ban_detail, ban_who_banned, ban_reason) VALUES (${AGRP_BANTYPE_SUBACCOUNT}, ${subAccountId}, ${adminAccountId}, '${safeReason}');`);
let dbQuery = queryDatabase(dbConnection, `INSERT INTO ban_main (ban_type, ban_detail, ban_who_banned, ban_reason) VALUES (${V_BANTYPE_SUBACCOUNT}, ${subAccountId}, ${adminAccountId}, '${safeReason}');`);
freeDatabaseQuery(dbQuery);
dbConnection.close();
return true;
@@ -205,7 +204,7 @@ function banIPAddress(ipAddress, adminAccountId, reason) {
let dbConnection = connectToDatabase();
if (dbConnection) {
let safeReason = dbConnection.escapetoString(reason);
let dbQuery = queryDatabase(dbConnection, `INSERT INTO ban_main (ban_type, ban_detail, ban_who_banned, ban_reason) VALUES (${AGRP_BANTYPE_IPADDRESS}, INET_ATON(${ipAddress}), ${adminAccountId}, '${safeReason}');`);
let dbQuery = queryDatabase(dbConnection, `INSERT INTO ban_main (ban_type, ban_detail, ban_who_banned, ban_reason) VALUES (${V_BANTYPE_IPADDRESS}, INET_ATON(${ipAddress}), ${adminAccountId}, '${safeReason}');`);
freeDatabaseQuery(dbQuery);
dbConnection.close();
return true;
@@ -220,7 +219,7 @@ function banSubNet(ipAddressStart, ipAddressEnd, adminAccountId, reason) {
let dbConnection = connectToDatabase();
if (dbConnection) {
let safeReason = dbConnection.escapetoString(reason);
let dbQuery = queryDatabase(dbConnection, `INSERT INTO ban_main (ban_type, ban_ip_start, ban_ip_end, ban_who_banned, ban_reason) VALUES (${AGRP_BANTYPE_SUBNET}, INET_ATON(${ipAddressStart}), INET_ATON(${ipAddressEnd}), ${adminAccountId}, '${safeReason}');`);
let dbQuery = queryDatabase(dbConnection, `INSERT INTO ban_main (ban_type, ban_ip_start, ban_ip_end, ban_who_banned, ban_reason) VALUES (${V_BANTYPE_SUBNET}, INET_ATON(${ipAddressStart}), INET_ATON(${ipAddressEnd}), ${adminAccountId}, '${safeReason}');`);
freeDatabaseQuery(dbQuery);
dbConnection.close();
return true;
@@ -234,7 +233,7 @@ function banSubNet(ipAddressStart, ipAddressEnd, adminAccountId, reason) {
function unbanAccount(accountId, adminAccountId) {
let dbConnection = connectToDatabase();
if (dbConnection) {
let dbQuery = queryDatabase(dbConnection, `UPDATE ban_main SET ban_who_removed=${adminAccountId}, ban_removed=1 WHERE ban_type=${AGRP_BANTYPE_ACCOUNT} AND ban_detail=${accountId}`);
let dbQuery = queryDatabase(dbConnection, `UPDATE ban_main SET ban_who_removed=${adminAccountId}, ban_removed=1 WHERE ban_type=${V_BANTYPE_ACCOUNT} AND ban_detail=${accountId}`);
freeDatabaseQuery(dbQuery);
dbConnection.close();
return true;
@@ -248,7 +247,7 @@ function unbanAccount(accountId, adminAccountId) {
function unbanSubAccount(subAccountId, adminAccountId) {
let dbConnection = connectToDatabase();
if (dbConnection) {
let dbQuery = queryDatabase(dbConnection, `UPDATE ban_main SET ban_who_removed=${adminAccountId}, ban_removed=1 WHERE ban_type=${AGRP_BANTYPE_SUBACCOUNT} AND ban_detail=${subAccountId}`);
let dbQuery = queryDatabase(dbConnection, `UPDATE ban_main SET ban_who_removed=${adminAccountId}, ban_removed=1 WHERE ban_type=${V_BANTYPE_SUBACCOUNT} AND ban_detail=${subAccountId}`);
freeDatabaseQuery(dbQuery);
dbConnection.close();
return true;
@@ -262,7 +261,7 @@ function unbanSubAccount(subAccountId, adminAccountId) {
function unbanIPAddress(ipAddress, adminAccountId) {
let dbConnection = connectToDatabase();
if (dbConnection) {
let dbQuery = queryDatabase(dbConnection, `UPDATE ban_main SET ban_who_removed=${adminAccountId}, ban_removed=1 WHERE ban_type=${AGRP_BANTYPE_IPADDRESS} AND ban_detail=INET_ATON(${ipAddress})`);
let dbQuery = queryDatabase(dbConnection, `UPDATE ban_main SET ban_who_removed=${adminAccountId}, ban_removed=1 WHERE ban_type=${V_BANTYPE_IPADDRESS} AND ban_detail=INET_ATON(${ipAddress})`);
freeDatabaseQuery(dbQuery);
dbConnection.close();
return true;
@@ -276,7 +275,7 @@ function unbanIPAddress(ipAddress, adminAccountId) {
function unbanSubNet(ipAddressStart, ipAddressEnd, adminAccountId) {
let dbConnection = connectToDatabase();
if (dbConnection) {
let dbQuery = queryDatabase(dbConnection, `UPDATE ban_main SET ban_who_removed=${adminAccountId}, ban_removed=1 WHERE ban_type=${AGRP_BANTYPE_SUBNET} AND ban_ip_start=INET_ATON(${ipAddressStart}) AND ban_ip_end=INET_ATON(${ipAddressEnd})`);
let dbQuery = queryDatabase(dbConnection, `UPDATE ban_main SET ban_who_removed=${adminAccountId}, ban_removed=1 WHERE ban_type=${V_BANTYPE_SUBNET} AND ban_ip_start=INET_ATON(${ipAddressStart}) AND ban_ip_end=INET_ATON(${ipAddressEnd})`);
freeDatabaseQuery(dbQuery);
dbConnection.close();
return true;
@@ -288,7 +287,7 @@ function unbanSubNet(ipAddressStart, ipAddressEnd, adminAccountId) {
// ===========================================================================
function isAccountBanned(accountId) {
let bans = getServerData().bans.filter(ban => ban.type === AGRP_BANTYPE_ACCOUNT && ban.detail === accountId);
let bans = getServerData().bans.filter(ban => ban.type === V_BANTYPE_ACCOUNT && ban.detail === accountId);
if (bans.length > 0) {
return true;
}
@@ -299,7 +298,7 @@ function isAccountBanned(accountId) {
// ===========================================================================
function isSubAccountBanned(subAccountId) {
let bans = getServerData().bans.filter(ban => ban.type === AGRP_BANTYPE_SUBACCOUNT && ban.detail === subAccountId);
let bans = getServerData().bans.filter(ban => ban.type === V_BANTYPE_SUBACCOUNT && ban.detail === subAccountId);
if (bans.length > 0) {
return true;
}
@@ -310,7 +309,7 @@ function isSubAccountBanned(subAccountId) {
// ===========================================================================
function isIpAddressBanned(ipAddress) {
let bans = getServerData().bans.filter(ban => ban.type === AGRP_BANTYPE_IPADDRESS && ban.detail === ipAddress);
let bans = getServerData().bans.filter(ban => ban.type === V_BANTYPE_IPADDRESS && ban.detail === ipAddress);
if (bans.length > 0) {
return true;
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: bank.js
// DESC: Provides banking functions and usage
@@ -9,13 +8,13 @@
// ===========================================================================
// House Owner Types
const AGRP_BANK_ACCT_OWNER_NONE = 0; // Not owned
const AGRP_BANK_ACCT_OWNER_PLAYER = 1; // Owner is a player (character/subaccount)
const AGRP_BANK_ACCT_OWNER_JOB = 2; // Owned by a job
const AGRP_BANK_ACCT_OWNER_CLAN = 3; // Owned by a clan
const AGRP_BANK_ACCT_OWNER_FACTION = 4; // Owned by a faction
const AGRP_BANK_ACCT_OWNER_BIZ = 4; // Owned by a faction
const AGRP_BANK_ACCT_OWNER_PUBLIC = 5; // Is a public bank account. Technically not owned. This probably won't be used.
const V_BANK_ACCT_OWNER_NONE = 0; // Not owned
const V_BANK_ACCT_OWNER_PLAYER = 1; // Owner is a player (character/subaccount)
const V_BANK_ACCT_OWNER_JOB = 2; // Owned by a job
const V_BANK_ACCT_OWNER_CLAN = 3; // Owned by a clan
const V_BANK_ACCT_OWNER_FACTION = 4; // Owned by a faction
const V_BANK_ACCT_OWNER_BIZ = 4; // Owned by a faction
const V_BANK_ACCT_OWNER_PUBLIC = 5; // Is a public bank account. Technically not owned. This probably won't be used.
// ===========================================================================
@@ -26,7 +25,7 @@ function isPlayerAtBank(client) {
let businessId = getPlayerBusiness(client);
if (getBusinessData(client) != false) {
if (getBusinessData(businessId).type == AGRP_BIZ_TYPE_BANK) {
if (getBusinessData(businessId).type == V_BIZ_TYPE_BANK) {
return true;
}
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: bitflags.js
// DESC: Provides bitwise operations, functions and usage
@@ -281,7 +280,7 @@ let serverBitFlagKeys = {
// ===========================================================================
function initBitFlagScript() {
logToConsole(LOG_DEBUG, "[AGRP.BitFlag]: Initializing bit flag script ...");
logToConsole(LOG_DEBUG, "[V.RP.BitFlag]: Initializing bit flag script ...");
serverBitFlags.staffFlags = createBitFlagTable(serverBitFlagKeys.staffFlagKeys);
serverBitFlags.moderationFlags = createBitFlagTable(serverBitFlagKeys.moderationFlagKeys);
serverBitFlags.accountSettingsFlags = createBitFlagTable(serverBitFlagKeys.accountSettingsFlagKeys);
@@ -295,7 +294,7 @@ function initBitFlagScript() {
serverBitFlags.npcTriggerResponseTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerResponseTypeKeys);
serverBitFlags.seenActionTips = createBitFlagTable(serverBitFlagKeys.seenActionTipsKeys);
serverBitFlags.jobRankFlags = createBitFlagTable(serverBitFlagKeys.jobRankKeys);
logToConsole(LOG_INFO, "[AGRP.BitFlag]: Bit flag script initialized successfully!");
logToConsole(LOG_INFO, "[V.RP.BitFlag]: Bit flag script initialized successfully!");
return true;
}
@@ -329,7 +328,7 @@ function doesPlayerHaveStaffPermission(client, requiredFlags) {
// ===========================================================================
function doesPlayerHaveClanPermission(client, requiredFlags) {
function doesPlayerHaveClanPermission(client, requiredFlags, exemptAdminFlag = false) {
if (isConsole(client)) {
return true;
}
@@ -338,8 +337,10 @@ function doesPlayerHaveClanPermission(client, requiredFlags) {
return true;
}
if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageClans"))) {
return true;
if (exemptAdminFlag == false) {
if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageClans"))) {
return true;
}
}
let clanFlags = 0;
@@ -359,7 +360,7 @@ function doesPlayerHaveClanPermission(client, requiredFlags) {
// ===========================================================================
function doesPlayerHaveJobPermission(client, requiredFlags) {
function doesPlayerHaveJobPermission(client, requiredFlags, exemptAdminFlag = false) {
if (isConsole(client)) {
return true;
}
@@ -368,8 +369,10 @@ function doesPlayerHaveJobPermission(client, requiredFlags) {
return true;
}
if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageJobs"))) {
return true;
if (exemptAdminFlag == false) {
if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageJobs"))) {
return true;
}
}
let jobFlags = 0;

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: business.js
// DESC: Provides business functions and usage
@@ -9,34 +8,34 @@
// ===========================================================================
// Business Types
const AGRP_BIZ_TYPE_NONE = 0; // None (invalid)
const AGRP_BIZ_TYPE_NORMAL = 1; // Normal business (sells items)
const AGRP_BIZ_TYPE_BANK = 2; // Bank
const AGRP_BIZ_TYPE_PUBLIC = 3; // Public business (Government, public service, etc)
const AGRP_BIZ_TYPE_PAINTBALL = 4; // Paintball arena. Player joins paintball/airsoft when they enter
const AGRP_BIZ_TYPE_DEALERSHIP = 5; // Vehicle Dealership (also for airplane, boat, etc)
const V_BIZ_TYPE_NONE = 0; // None (invalid)
const V_BIZ_TYPE_NORMAL = 1; // Normal business (sells items)
const V_BIZ_TYPE_BANK = 2; // Bank
const V_BIZ_TYPE_PUBLIC = 3; // Public business (Government, public service, etc)
const V_BIZ_TYPE_PAINTBALL = 4; // Paintball arena. Player joins paintball/airsoft when they enter
const V_BIZ_TYPE_DEALERSHIP = 5; // Vehicle Dealership (also for airplane, boat, etc)
// ===========================================================================
// Business Location Types
const AGRP_BIZ_LOC_NONE = 0; // None
const AGRP_BIZ_LOC_GATE = 1; // Center of any moveable gate that belongs to the biz
const AGRP_BIZ_LOC_GARAGE = 2; // Location for attached garage (pos1 = outside, pos2 = inside). Use pos to teleport or spawn veh/ped
const AGRP_BIZ_LOC_FUEL = 3; // Fuel pump
const AGRP_BIZ_LOC_DRIVETHRU = 4; // Drivethrough
const AGRP_BIZ_LOC_VENDMACHINE = 5; // Vending machine
const AGRP_BIZ_LOC_ATM = 6; // ATM
const AGRP_BIZ_LOC_PAYPHONE = 7; // Payphone
const V_BIZ_LOC_NONE = 0; // None
const V_BIZ_LOC_GATE = 1; // Center of any moveable gate that belongs to the biz
const V_BIZ_LOC_GARAGE = 2; // Location for attached garage (pos1 = outside, pos2 = inside). Use pos to teleport or spawn veh/ped
const V_BIZ_LOC_FUEL = 3; // Fuel pump
const V_BIZ_LOC_DRIVETHRU = 4; // Drivethrough
const V_BIZ_LOC_VENDMACHINE = 5; // Vending machine
const V_BIZ_LOC_ATM = 6; // ATM
const V_BIZ_LOC_PAYPHONE = 7; // Payphone
// ===========================================================================
// Business Owner Types
const AGRP_BIZ_OWNER_NONE = 0; // Not owned
const AGRP_BIZ_OWNER_PLAYER = 1; // Owned by a player (character/subaccount)
const AGRP_BIZ_OWNER_JOB = 2; // Owned by a job
const AGRP_BIZ_OWNER_CLAN = 3; // Owned by a clan
const AGRP_BIZ_OWNER_FACTION = 4; // Owned by a faction (not used at the moment)
const AGRP_BIZ_OWNER_PUBLIC = 5; // Public Business. Used for goverment/official places like police, fire, city hall, DMV, etc
const V_BIZ_OWNER_NONE = 0; // Not owned
const V_BIZ_OWNER_PLAYER = 1; // Owned by a player (character/subaccount)
const V_BIZ_OWNER_JOB = 2; // Owned by a job
const V_BIZ_OWNER_CLAN = 3; // Owned by a clan
const V_BIZ_OWNER_FACTION = 4; // Owned by a faction (not used at the moment)
const V_BIZ_OWNER_PUBLIC = 5; // Public Business. Used for goverment/official places like police, fire, city hall, DMV, etc
// ===========================================================================
@@ -50,7 +49,7 @@ class BusinessData {
constructor(dbAssoc = false) {
this.databaseId = 0;
this.name = "";
this.ownerType = AGRP_BIZ_OWNER_NONE;
this.ownerType = V_BIZ_OWNER_NONE;
this.ownerId = 0;
this.buyPrice = 0;
this.locked = false;
@@ -58,8 +57,8 @@ class BusinessData {
this.index = -1;
this.needsSaved = false;
this.interiorLights = true;
this.type = AGRP_BIZ_TYPE_NONE;
this.propertyType = AGRP_PROPERTY_TYPE_BUSINESS;
this.type = V_BIZ_TYPE_NONE;
this.propertyType = V_PROPERTY_TYPE_BUSINESS;
this.floorItemCache = [];
this.storageItemCache = [];
@@ -92,7 +91,9 @@ class BusinessData {
this.streamingRadioStation = 0;
//this.streamingRadioStationIndex = -1;
this.labelHelpType = AGRP_PROPLABEL_INFO_NONE;
this.paintBallPlayers = [];
this.labelHelpType = V_PROPLABEL_INFO_NONE;
if (dbAssoc) {
this.databaseId = toInteger(dbAssoc["biz_id"]);
@@ -187,8 +188,8 @@ class BusinessGameScriptData {
// ===========================================================================
function initBusinessScript() {
logToConsole(LOG_INFO, "[AGRP.Business]: Initializing business script ...");
logToConsole(LOG_INFO, "[AGRP.Business]: Business script initialized successfully!");
logToConsole(LOG_INFO, "[V.RP.Business]: Initializing business script ...");
logToConsole(LOG_INFO, "[V.RP.Business]: Business script initialized successfully!");
return true;
}
@@ -198,11 +199,9 @@ function loadBusinessFromId(businessId) {
let dbConnection = connectToDatabase();
if (dbConnection) {
let dbQueryString = `SELECT * FROM biz_main WHERE biz_id = ${businessId} LIMIT 1;`;
let dbQuery = queryDatabase(dbConnection, dbQueryString);
if (dbQuery) {
let dbAssoc = fetchQueryAssoc(dbQuery);
freeDatabaseQuery(dbQuery);
return new BusinessData(dbAssoc);
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
return new BusinessData(dbAssoc[0]);
}
disconnectFromDatabase(dbConnection);
}
@@ -213,27 +212,25 @@ function loadBusinessFromId(businessId) {
// ===========================================================================
function loadBusinessesFromDatabase() {
logToConsole(LOG_INFO, "[AGRP.Business]: Loading businesses from database ...");
logToConsole(LOG_INFO, "[V.RP.Business]: Loading businesses from database ...");
let tempBusinesses = [];
let dbConnection = connectToDatabase();
let dbQuery = null;
let dbAssoc;
let dbAssoc = [];
if (dbConnection) {
dbQuery = queryDatabase(dbConnection, `SELECT * FROM biz_main WHERE biz_deleted = 0 AND biz_server = ${getServerId()}`);
if (dbQuery) {
if (dbQuery.numRows > 0) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempBusinessData = new BusinessData(dbAssoc);
tempBusinessData.locations = loadBusinessLocationsFromDatabase(tempBusinessData.databaseId);
//tempBusinessData.gameScripts = loadBusinessGameScriptsFromDatabase(tempBusinessData.databaseId);
tempBusinesses.push(tempBusinessData);
logToConsole(LOG_VERBOSE, `[AGRP.Business]: Business '${tempBusinessData.name}' (ID ${tempBusinessData.databaseId}) loaded from database successfully!`);
}
let dbQueryString = `SELECT * FROM biz_main WHERE biz_deleted = 0 AND biz_server = ${getServerId()}`;
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempBusinessData = new BusinessData(dbAssoc[i]);
tempBusinessData.locations = loadBusinessLocationsFromDatabase(tempBusinessData.databaseId);
//tempBusinessData.gameScripts = loadBusinessGameScriptsFromDatabase(tempBusinessData.databaseId);
tempBusinesses.push(tempBusinessData);
logToConsole(LOG_VERBOSE, `[AGRP.Business]: Business '${tempBusinessData.name}' (ID ${tempBusinessData.databaseId}) loaded from database successfully!`);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}
@@ -248,22 +245,18 @@ function loadBusinessLocationsFromDatabase(businessId) {
let tempBusinessLocations = [];
let dbConnection = connectToDatabase();
let dbQuery = null;
let dbAssoc;
let dbAssoc = [];
let dbQueryString = "";
if (dbConnection) {
dbQueryString = `SELECT * FROM biz_loc WHERE biz_loc_biz = ${businessId}`;
dbQuery = queryDatabase(dbConnection, dbQueryString);
if (dbQuery) {
if (dbQuery.numRows > 0) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempBusinessLocationData = new BusinessLocationData(dbAssoc);
tempBusinessLocations.push(tempBusinessLocationData);
logToConsole(LOG_VERBOSE, `[AGRP.Business]: Location '${tempBusinessLocationData.name}' loaded from database successfully!`);
}
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempBusinessLocationData = new BusinessLocationData(dbAssoc[i]);
tempBusinessLocations.push(tempBusinessLocationData);
logToConsole(LOG_VERBOSE, `[AGRP.Business]: Location '${tempBusinessLocationData.name}' loaded from database successfully!`);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}
@@ -281,22 +274,19 @@ function loadBusinessGameScriptsFromDatabase(businessId) {
let tempBusinessGameScripts = [];
let dbConnection = connectToDatabase();
let dbQuery = null;
let dbAssoc;
let dbAssoc = [];
let dbQueryString = "";
if(dbConnection) {
dbQueryString = `SELECT * FROM biz_script WHERE biz_script_biz = ${businessId}`;
dbQuery = queryDatabase(dbConnection, dbQueryString);
if(dbQuery) {
if(dbQuery.numRows > 0) {
while(dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempBusinessGameScriptData = new BusinessGameScriptData(dbAssoc);
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempBusinessGameScriptData = new BusinessGameScriptData(dbAssoc[i]);
tempBusinessGameScripts.push(tempBusinessGameScriptData);
logToConsole(LOG_VERBOSE, `[AGRP.Business]: Game script '${tempBusinessGameScriptData.name}' loaded from database successfully!`);
}
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}
@@ -421,8 +411,8 @@ function deleteBusinessCommand(command, params, client) {
return false;
}
deleteBusiness(businessId, getPlayerData(client).accountData.databaseId);
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} deleted business {businessBlue}${getBusinessData(businessId).name}`, true);
deleteBusiness(businessId, getPlayerData(client).accountData.databaseId);
}
// ===========================================================================
@@ -470,7 +460,7 @@ function setBusinessNameCommand(command, params, client) {
let oldBusinessName = getBusinessData(businessId).name;
getBusinessData(businessId).name = newBusinessName;
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.name", getBusinessData(businessId).name, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.name", getBusinessData(businessId).name, true);
getBusinessData(businessId).needsSaved = true;
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} renamed business {businessBlue}${oldBusinessName}{MAINCOLOUR} to {businessBlue}${newBusinessName}`, true);
}
@@ -510,7 +500,7 @@ function setBusinessOwnerCommand(command, params, client) {
return false;
}
getBusinessData(businessId).ownerType = AGRP_BIZ_OWNER_PLAYER;
getBusinessData(businessId).ownerType = V_BIZ_OWNER_PLAYER;
getBusinessData(businessId).ownerId = getPlayerCurrentSubAccount(newBusinessOwner).databaseId;
getBusinessData(businessId).needsSaved = true;
@@ -552,7 +542,7 @@ function setBusinessJobCommand(command, params, client) {
return false;
}
getBusinessData(businessId).ownerType = AGRP_BIZ_OWNER_JOB;
getBusinessData(businessId).ownerType = V_BIZ_OWNER_JOB;
getBusinessData(businessId).ownerId = getJobData(jobId).databaseId;
getBusinessData(businessId).needsSaved = true;
@@ -585,7 +575,7 @@ function setBusinessClanCommand(command, params, client) {
return false;
}
if (getBusinessData(business).ownerType != AGRP_VEHOWNER_PLAYER) {
if (getBusinessData(business).ownerType != V_VEHOWNER_PLAYER) {
messagePlayerError(client, getLocaleString(client, "MustOwnBusiness"));
return false;
}
@@ -597,9 +587,9 @@ function setBusinessClanCommand(command, params, client) {
// Use confirm prompt
showPlayerPrompt(client, getLocaleString(client, "SetBusinessClanConfirmMessage"), getLocaleString(client, "SetBusinessClanConfirmTitle"), getLocaleString(client, "Yes"), getLocaleString(client, "No"));
getPlayerData(client).promptType = AGRP_PROMPT_GIVEBIZTOCLAN;
getPlayerData(client).promptType = V_PROMPT_GIVEBIZTOCLAN;
//getBusinessData(businessId).ownerType = AGRP_BIZ_OWNER_CLAN;
//getBusinessData(businessId).ownerType = V_BIZ_OWNER_CLAN;
//getBusinessData(businessId).ownerId = getClanData(clanId).databaseId;
//getBusinessData(businessId).needsSaved = true;
}
@@ -630,7 +620,7 @@ function setBusinessRankCommand(command, params, client) {
return false;
}
if (getVehicleData(vehicle).ownerType == AGRP_VEHOWNER_CLAN) {
if (getVehicleData(vehicle).ownerType == V_VEHOWNER_CLAN) {
let clanId = getClanIndexFromDatabaseId(getBusinessData(businessId).ownerId);
rankId = getClanRankFromParams(clanId, params);
if (!getClanRankData(clanId, rankId)) {
@@ -639,7 +629,7 @@ function setBusinessRankCommand(command, params, client) {
}
getBusinessData(businessId).rank = getClanRankData(clanId, rankId).databaseId;
messagePlayerSuccess(client, `{MAINCOLOUR}You set business {businessBlue}${getBusinessData(businessId).name} {MAINCOLOUR}rank to {ALTCOLOUR}${getClanRankData(clanId, rankId).name} {MAINCOLOUR}of the {clanOrange}${getClanData(clanId).name} {MAINCOLOUR}clan!`);
} else if (getBusinessData(businessId).ownerType == AGRP_VEHOWNER_JOB) {
} else if (getBusinessData(businessId).ownerType == V_VEHOWNER_JOB) {
getBusinessData(businessId).rank = rankId;
messagePlayerSuccess(client, `{MAINCOLOUR}You set business {businessBlue}${getBusinessData(businessId).name} {MAINCOLOUR}rank to {ALTCOLOUR}${rankId} {MAINCOLOUR}of the {jobYellow}${getJobData(getJobIdFromDatabaseId(getBusinessData(businessId).ownerId)).name} {MAINCOLOUR}job!`);
}
@@ -736,7 +726,7 @@ function setBusinessJobCommand(command, params, client) {
return false;
}
getBusinessData(businessId).ownerType = AGRP_BIZ_OWNER_JOB;
getBusinessData(businessId).ownerType = V_BIZ_OWNER_JOB;
getBusinessData(businessId).ownerId = getJobData(jobId).databaseId;
getBusinessData(businessId).needsSaved = true;
@@ -766,7 +756,7 @@ function setBusinessPublicCommand(command, params, client) {
return false;
}
getBusinessData(businessId).ownerType = AGRP_BIZ_OWNER_PUBLIC;
getBusinessData(businessId).ownerType = V_BIZ_OWNER_PUBLIC;
getBusinessData(businessId).ownerId = 0;
getBusinessData(businessId).needsSaved = true;
@@ -796,7 +786,7 @@ function removeBusinessOwnerCommand(command, params, client) {
return false;
}
getBusinessData(businessId).ownerType = AGRP_BIZ_OWNER_NONE;
getBusinessData(businessId).ownerType = V_BIZ_OWNER_NONE;
getBusinessData(businessId).ownerId = -1;
getBusinessData(businessId).needsSaved = true;
@@ -861,6 +851,7 @@ function setBusinessEntranceFeeCommand(command, params, client) {
getBusinessData(businessId).entranceFee = entranceFee;
getBusinessData(businessId).needsSaved = true;
updateBusinessPickupLabelData(businessId);
messagePlayerSuccess(client, `{MAINCOLOUR}You set business {businessBlue}${getBusinessData(businessId).name}{MAINCOLOUR} entrance fee to {ALTCOLOUR}${getCurrencyString(entranceFee)}`);
}
@@ -888,7 +879,7 @@ function setBusinessPaintBallCommand(command, params, client) {
return false;
}
getBusinessData(businessId).type = AGRP_BIZ_TYPE_PAINTBALL;
getBusinessData(businessId).type = V_BIZ_TYPE_PAINTBALL;
getBusinessData(businessId).needsSaved = true;
messagePlayerSuccess(client, getLocaleString(client, "BusinessIsNowPaintBall"));
}
@@ -920,24 +911,24 @@ function getBusinessInfoCommand(command, params, client) {
let ownerName = "Unknown";
switch (businessData.ownerType) {
case AGRP_BIZ_OWNER_CLAN:
case V_BIZ_OWNER_CLAN:
ownerName = getClanData(businessData.ownerId).name;
break;
case AGRP_BIZ_OWNER_JOB:
case V_BIZ_OWNER_JOB:
ownerName = getJobData(businessData.ownerId).name;
break;
case AGRP_BIZ_OWNER_PLAYER:
case V_BIZ_OWNER_PLAYER:
let subAccountData = loadSubAccountFromId(businessData.ownerId);
ownerName = `${subAccountData.firstName} ${subAccountData.lastName} [${subAccountData.databaseId}]`;
break;
case AGRP_BIZ_OWNER_PUBLIC:
case V_BIZ_OWNER_PUBLIC:
ownerName = "Public";
break;
case AGRP_BIZ_OWNER_NONE:
case V_BIZ_OWNER_NONE:
//submitBugReport(client, `[AUTOMATED REPORT] getBusinessInfoCommand() - Invalid ownerType for business ${businessId}/${getBusinessData(businessId).databaseId}`);
ownerName = "None";
break;
@@ -1303,7 +1294,7 @@ function giveDefaultItemsToBusinessCommand(command, params, client) {
let itemTypeId = getItemTypeFromParams(getGameConfig().defaultBusinessItems[getGame()][typeParam][i][0]);
let itemTypeData = getItemTypeData(itemTypeId);
if (itemTypeData) {
let newItemIndex = createItem(itemTypeId, itemTypeData.orderValue, AGRP_ITEM_OWNER_BIZFLOOR, getBusinessData(businessId).databaseId, getGameConfig().defaultBusinessItems[getGame()][typeParam][i][1]);
let newItemIndex = createItem(itemTypeId, itemTypeData.orderValue, V_ITEM_OWNER_BIZFLOOR, getBusinessData(businessId).databaseId, getGameConfig().defaultBusinessItems[getGame()][typeParam][i][1]);
getItemData(newItemIndex).buyPrice = applyServerInflationMultiplier(itemTypeData.orderPrice) * getGameConfig().defaultBusinessItems[getGame()][typeParam][i][2];
}
}
@@ -1332,8 +1323,8 @@ function setBusinessDealershipCommand(command, params, client) {
return false;
}
getBusinessData(businessId).labelHelpType == AGRP_PROPLABEL_INFO_ENTERVEHICLE;
getBusinessData(businessId).type = AGRP_BIZ_TYPE_DEALERSHIP;
getBusinessData(businessId).labelHelpType == V_PROPLABEL_INFO_ENTERVEHICLE;
getBusinessData(businessId).type = V_BIZ_TYPE_DEALERSHIP;
updateBusinessPickupLabelData(businessId);
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} set the type of business {businessBlue}${getBusinessData(businessId).name}{MAINCOLOUR} to dealership`, true);
}
@@ -1359,10 +1350,11 @@ function deleteBusinessFloorItemsCommand(command, params, client) {
let tempCache = getBusinessData(businessId).floorItemCache;
for (let i in tempCache) {
deleteItem(tempCache[i]);
deleteItem(tempCache[i], getPlayerData(client).accountData.databaseId, false);
}
cacheBusinessItems(businessId);
setAllItemDataIndexes();
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} deleted all on-sale items for business {businessBlue}${getBusinessData(businessId).name}`, true);
}
@@ -1388,10 +1380,11 @@ function deleteBusinessStorageItemsCommand(command, params, client) {
let tempCache = getBusinessData(businessId).storageItemCache;
for (let i in tempCache) {
deleteItem(tempCache[i]);
deleteItem(tempCache[i], getPlayerData(client).accountData.databaseId, false);
}
cacheBusinessItems(businessId);
setAllItemDataIndexes();
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} deleted all storage items for business {businessBlue}${getBusinessData(businessId).name}`, true);
}
@@ -1475,7 +1468,7 @@ function setBusinessBuyPriceCommand(command, params, client) {
}
getBusinessData(businessId).buyPrice = amount;
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.price", getBusinessData(businessId).buyPrice, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.price", getBusinessData(businessId).buyPrice, true);
getBusinessData(businessId).needsSaved = true;
messagePlayerSuccess(client, `{MAINCOLOUR}You set business {businessBlue}${getBusinessData(businessId).name}'s{MAINCOLOUR} for-sale price to {ALTCOLOUR}${getCurrencyString(amount)}`);
@@ -1575,7 +1568,7 @@ function orderItemForBusinessCommand(command, params, client) {
let orderTotalCost = pricePerItem * amount;
//getPlayerData(client).promptType = AGRP_PROMPT_BIZORDER;
//getPlayerData(client).promptType = V_PROMPT_BIZORDER;
getPlayerData(client).businessOrderAmount = amount;
getPlayerData(client).businessOrderBusiness = businessId;
getPlayerData(client).businessOrderItem = itemType;
@@ -1583,7 +1576,7 @@ function orderItemForBusinessCommand(command, params, client) {
getBusinessData(businessId).needsSaved = true;
showPlayerPrompt(client, `Ordering ${amount} ${getPluralForm(getItemTypeData(itemType).name)} will cost a total of ${getCurrencyString(orderTotalCost)}`, "Business Order Cost");
getPlayerData(client).promptType = AGRP_PROMPT_BIZORDER;
getPlayerData(client).promptType = V_PROMPT_BIZORDER;
}
// ===========================================================================
@@ -1670,7 +1663,7 @@ function buyBusinessCommand(command, params, client) {
}
showPlayerPrompt(client, getLocaleString(client, "BuyBusinessConfirmMessage"), getLocaleString(client, "BuyBusinessConfirmTitle"), getLocaleString(client, "Yes"), getLocaleString(client, "No"));
getPlayerData(client).promptType = AGRP_PROMPT_BUYBIZ;
getPlayerData(client).promptType = V_PROMPT_BUYBIZ;
}
// ===========================================================================
@@ -2028,7 +2021,7 @@ function createBusinessEntrancePickup(businessId) {
logToConsole(LOG_VERBOSE, `[AGRP.Job]: Creating entrance pickup for business ${businessData.name}`);
if (areServerElementsSupported() && getGame() != AGRP_GAME_MAFIA_ONE) {
if (areServerElementsSupported() && getGame() != V_GAME_MAFIA_ONE && getGame() != V_GAME_GTA_IV) {
let entrancePickup = null;
if (isGameFeatureSupported("pickup")) {
let pickupModelId = getGameConfig().pickupModels[getGame()].Business;
@@ -2105,7 +2098,7 @@ function createBusinessEntranceBlip(businessId) {
logToConsole(LOG_VERBOSE, `[AGRP.Job]: Creating entrance blip for business ${businessData.name} (model ${blipModelId})`);
if (areServerElementsSupported() && getGame() != AGRP_GAME_MAFIA_ONE) {
if (areServerElementsSupported() && getGame() != V_GAME_MAFIA_ONE && getGame() != V_GAME_GTA_IV) {
let entranceBlip = createGameBlip(businessData.entrancePosition, blipModelId, 1, getColourByType("businessBlue"));
if (entranceBlip != null) {
if (businessData.entranceDimension != -1) {
@@ -2356,17 +2349,17 @@ function exitBusiness(client) {
*/
function getBusinessOwnerTypeText(ownerType) {
switch (ownerType) {
case AGRP_BIZ_OWNER_CLAN:
case V_BIZ_OWNER_CLAN:
return "clan";
case AGRP_BIZ_OWNER_JOB:
case V_BIZ_OWNER_JOB:
return "job";
case AGRP_BIZ_OWNER_PLAYER:
case V_BIZ_OWNER_PLAYER:
return "player";
case AGRP_BIZ_OWNER_NONE:
case AGRP_BIZ_OWNER_PUBLIC:
case V_BIZ_OWNER_NONE:
case V_BIZ_OWNER_PUBLIC:
return "not owned";
default:
@@ -2544,7 +2537,7 @@ function setBusinessDataIndexes() {
//}
for (let j in getServerData().businesses[i].locations) {
if (getServerData().businesses[i].locations[j].type == AGRP_BIZ_LOC_ATM) {
if (getServerData().businesses[i].locations[j].type == V_BIZ_LOC_ATM) {
getServerData().atmLocationCache.push([i, j, getServerData().businesses[i].locations[j].position]);
}
}
@@ -2560,7 +2553,7 @@ function addToBusinessInventory(businessId, itemType, amount, buyPrice) {
tempItemData.buyPrice = buyPrice;
tempItemData.itemType = getItemTypeData(itemType).databaseId;
tempItemData.ownerId = getBusinessData(business).databaseId;
tempItemData.ownerType = AGRP_ITEMOWNER_BIZ;
tempItemData.ownerType = V_ITEMOWNER_BIZ;
tempItemData.ownerIndex = businessId;
tempItemData.itemTypeIndex = itemType;
saveItemToDatabase(tempItemData);
@@ -2652,17 +2645,17 @@ function buyFromBusinessCommand(command, params, client) {
}
takePlayerCash(client, totalCost);
createItem(getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).itemTypeIndex, getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).value, AGRP_ITEM_OWNER_PLAYER, getPlayerCurrentSubAccount(client).databaseId, amount);
createItem(getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).itemTypeIndex, getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).value, V_ITEM_OWNER_PLAYER, getPlayerCurrentSubAccount(client).databaseId, amount);
cachePlayerHotBarItems(client);
getBusinessData(businessId).till = getBusinessData(businessId).till + totalCost;
getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).amount = getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).amount - amount;
if (getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).amount == 0) {
destroyItem(getBusinessData(businessId).floorItemCache[itemSlot - 1]);
deleteItem(getBusinessData(businessId).floorItemCache[itemSlot - 1]);
}
let useType = getItemTypeData(getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).itemTypeIndex).useType;
if (useType == AGRP_ITEM_USE_TYPE_WEAPON || AGRP_ITEM_USE_TYPE_TAZER || useType == AGRP_ITEM_USE_TYPE_AMMO_CLIP) {
if (useType == V_ITEM_USE_TYPE_WEAPON || V_ITEM_USE_TYPE_TAZER || useType == V_ITEM_USE_TYPE_AMMO_CLIP) {
if (isPlayerWeaponBanned(client) && !isPlayerExemptFromAntiCheat(client)) {
messagePlayerError(client, getLocaleString(client, "WeaponBanned"));
return false;
@@ -2765,7 +2758,7 @@ function storeItemInBusinessStorageCommand(command, params, client) {
return false;
}
getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).ownerType = AGRP_ITEM_OWNER_BIZSTORAGE;
getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).ownerType = V_ITEM_OWNER_BIZSTORAGE;
getBusinessData(businessId).storageItemCache[firstSlot] = getBusinessData(businessId).floorItemCache[itemSlot - 1];
getBusinessData(businessId).storageItemCache[itemSlot - 1] = -1;
messagePlayerSuccess(client, `You moved the ${getItemTypeData(getItemData(getBusinessData(businessId).storageItemCache[firstSlot]).itemTypeIndex).name}s in slot ${itemSlot} to the business storage in slot ${firstSlot}`);
@@ -2809,7 +2802,7 @@ function stockItemOnBusinessFloorCommand(command, params, client) {
return false;
}
getItemData(getBusinessData(businessId).storageItemCache[itemSlot - 1]).ownerType = AGRP_ITEM_OWNER_BIZFLOOR;
getItemData(getBusinessData(businessId).storageItemCache[itemSlot - 1]).ownerType = V_ITEM_OWNER_BIZFLOOR;
getBusinessData(businessId).floorItemCache[firstSlot] = getBusinessData(businessId).storageItemCache[itemSlot - 1];
getBusinessData(businessId).storageItemCache[itemSlot - 1] = -1;
messagePlayerSuccess(client, `You moved the ${getItemTypeData(getItemData(getBusinessData(businessId).storageItemCache[firstSlot]).itemTypeIndex).name}s in slot ${itemSlot} of the business storage to the business floor slot ${firstSlot}`);
@@ -2833,11 +2826,11 @@ function getBusinessFloorFirstFreeItemSlot(businessId) {
// Caches all items for all businesses
function cacheAllBusinessItems() {
logToConsole(LOG_DEBUG, "[AGRP.Business] Caching all business items ...");
logToConsole(LOG_DEBUG, "[V.RP.Business] Caching all business items ...");
for (let i in getServerData().businesses) {
cacheBusinessItems(i);
}
logToConsole(LOG_DEBUG, "[AGRP.Business] Cached all business items successfully!");
logToConsole(LOG_DEBUG, "[V.RP.Business] Cached all business items successfully!");
}
// ===========================================================================
@@ -2849,14 +2842,14 @@ function cacheBusinessItems(businessId) {
//let businessData = getBusinessData(businessId);
//logToConsole(LOG_VERBOSE, `[AGRP.Business] Caching business items for business ${businessId} (${businessData.name}) ...`);
//getBusinessData(businessId).floorItemCache = getServerData().items.filter(item => item.ownerType == AGRP_ITEM_OWNER_BIZFLOOR && item.ownerId == businessData.databaseId).map(i => i.index);
//getBusinessData(businessId).storageItemCache = getServerData().items.filter(item => item.ownerType == AGRP_ITEM_OWNER_BIZSTORAGE && item.ownerId == businessData.databaseId);
//getBusinessData(businessId).floorItemCache = getServerData().items.filter(item => item.ownerType == V_ITEM_OWNER_BIZFLOOR && item.ownerId == businessData.databaseId).map(i => i.index);
//getBusinessData(businessId).storageItemCache = getServerData().items.filter(item => item.ownerType == V_ITEM_OWNER_BIZSTORAGE && item.ownerId == businessData.databaseId);
logToConsole(LOG_VERBOSE, `[AGRP.Business] Caching business items for business ${businessId} (${getBusinessData(businessId).name}) ...`);
for (let i in getServerData().items) {
if (getItemData(i).ownerType == AGRP_ITEM_OWNER_BIZFLOOR && getItemData(i).ownerId == getBusinessData(businessId).databaseId) {
if (getItemData(i).ownerType == V_ITEM_OWNER_BIZFLOOR && getItemData(i).ownerId == getBusinessData(businessId).databaseId) {
getBusinessData(businessId).floorItemCache.push(i);
} else if (getItemData(i).ownerType == AGRP_ITEM_OWNER_BIZSTORAGE && getItemData(i).ownerId == getBusinessData(businessId).databaseId) {
} else if (getItemData(i).ownerType == V_ITEM_OWNER_BIZSTORAGE && getItemData(i).ownerId == getBusinessData(businessId).databaseId) {
getBusinessData(businessId).storageItemCache.push(i);
}
}
@@ -2875,56 +2868,57 @@ function getBusinessIdFromDatabaseId(databaseId) {
// Updates all pickup data for a business by businessId
function updateBusinessPickupLabelData(businessId) {
if (!areServerElementsSupported() || getGame() == AGRP_GAME_MAFIA_ONE) {
if (!areServerElementsSupported() || getGame() == V_GAME_MAFIA_ONE || getGame() == V_GAME_GTA_IV) {
sendBusinessToPlayer(null, businessId, getBusinessData(businessId).name, getBusinessData(businessId).entrancePosition, getBusinessEntranceBlipModelForNetworkEvent(businessId), getBusinessEntrancePickupModelForNetworkEvent(businessId), getBusinessData(businessId).buyPrice, getBusinessData(businessId).rentPrice, getBusinessData(businessId).hasInterior, getBusinessData(businessId).locked, doesBusinessHaveAnyItemsToBuy(businessId));
return false;
}
if (getBusinessData(businessId).exitPickup != null) {
setEntityData(getBusinessData(businessId).exitPickup, "agrp.owner.type", AGRP_PICKUP_BUSINESS_EXIT, false);
setEntityData(getBusinessData(businessId).exitPickup, "agrp.owner.id", businessId, false);
setEntityData(getBusinessData(businessId).exitPickup, "agrp.label.type", AGRP_LABEL_EXIT, true);
setEntityData(getBusinessData(businessId).exitPickup, "v.rp.owner.type", V_PICKUP_BUSINESS_EXIT, false);
setEntityData(getBusinessData(businessId).exitPickup, "v.rp.owner.id", businessId, false);
setEntityData(getBusinessData(businessId).exitPickup, "v.rp.label.type", V_LABEL_EXIT, true);
}
if (getBusinessData(businessId).entrancePickup != null) {
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.owner.type", AGRP_PICKUP_BUSINESS_ENTRANCE, false);
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.owner.id", businessId, false);
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.type", AGRP_LABEL_BUSINESS, true);
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.name", getBusinessData(businessId).name, true);
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.locked", getBusinessData(businessId).locked, true);
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.help", AGRP_PROPLABEL_INFO_NONE, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.owner.type", V_PICKUP_BUSINESS_ENTRANCE, false);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.owner.id", businessId, false);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.type", V_LABEL_BUSINESS, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.name", getBusinessData(businessId).name, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.locked", getBusinessData(businessId).locked, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.help", V_PROPLABEL_INFO_NONE, true);
switch (getBusinessData(businessId).labelHelpType) {
case AGRP_PROPLABEL_INFO_ENTERVEHICLE: {
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.help", AGRP_PROPLABEL_INFO_ENTERVEHICLE, true);
case V_PROPLABEL_INFO_ENTERVEHICLE: {
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.help", V_PROPLABEL_INFO_ENTERVEHICLE, true);
break;
}
case AGRP_PROPLABEL_INFO_ENTER: {
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.help", AGRP_PROPLABEL_INFO_ENTER, true);
case V_PROPLABEL_INFO_ENTER: {
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.help", V_PROPLABEL_INFO_ENTER, true);
break;
}
case AGRP_PROPLABEL_INFO_REPAIR: {
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.help", AGRP_PROPLABEL_INFO_REPAIR, true);
case V_PROPLABEL_INFO_REPAIR: {
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.help", V_PROPLABEL_INFO_REPAIR, true);
break;
}
default: {
if (getBusinessData(businessId).hasInterior) {
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.help", AGRP_PROPLABEL_INFO_ENTER, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.help", V_PROPLABEL_INFO_ENTER, true);
} else {
if (doesBusinessHaveAnyItemsToBuy(businessId)) {
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.help", AGRP_PROPLABEL_INFO_BUY, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.help", V_PROPLABEL_INFO_BUY, true);
} else {
removeEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.help");
removeEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.help");
}
}
break;
}
}
setEntityData(getBusinessData(businessId).entrancePickup, "agrp.label.price", getBusinessData(businessId).buyPrice, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.price", getBusinessData(businessId).buyPrice, true);
setEntityData(getBusinessData(businessId).entrancePickup, "v.rp.label.fee", getBusinessData(businessId).entranceFee, true);
}
}
@@ -3002,7 +2996,7 @@ function doesBusinessHaveAnyItemsToBuy(businessId) {
//function clearPlayerBusinessGameScripts(client, businessId) {
// for(let i in getBusinessData(businessId).gameScripts) {
// sendPlayerGameScriptState(client, AGRP_GAMESCRIPT_DENY);
// sendPlayerGameScriptState(client, V_GAMESCRIPT_DENY);
// }
//}
@@ -3024,11 +3018,11 @@ function canPlayerWithdrawFromBusinessTill(client, businessId) {
return true;
}
if (getBusinessData(businessId).ownerType == AGRP_BIZ_OWNER_PLAYER && getBusinessData(businessId).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
if (getBusinessData(businessId).ownerType == V_BIZ_OWNER_PLAYER && getBusinessData(businessId).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
return true;
}
if (getBusinessData(businessId).ownerType == AGRP_BIZ_OWNER_CLAN && getBusinessData(businessId).ownerId == getClanData(getPlayerClan(client)).databaseId) {
if (getBusinessData(businessId).ownerType == V_BIZ_OWNER_CLAN && getBusinessData(businessId).ownerId == getClanData(getPlayerClan(client)).databaseId) {
if (doesPlayerHaveClanPermission(client, getClanFlagValue("ManageBusinesses"))) {
return true;
}
@@ -3044,11 +3038,11 @@ function canPlayerSetBusinessInteriorLights(client, businessId) {
return true;
}
if (getBusinessData(businessId).ownerType == AGRP_BIZ_OWNER_PLAYER && getBusinessData(businessId).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
if (getBusinessData(businessId).ownerType == V_BIZ_OWNER_PLAYER && getBusinessData(businessId).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
return true;
}
if (getBusinessData(businessId).ownerType == AGRP_BIZ_OWNER_CLAN && getBusinessData(businessId).ownerId == getClanData(getPlayerClan(client)).databaseId) {
if (getBusinessData(businessId).ownerType == V_BIZ_OWNER_CLAN && getBusinessData(businessId).ownerId == getClanData(getPlayerClan(client)).databaseId) {
if (doesPlayerHaveClanPermission(client, getClanFlagValue("ManageBusinesses"))) {
return true;
}
@@ -3064,11 +3058,11 @@ function canPlayerLockUnlockBusiness(client, businessId) {
return true;
}
if (getBusinessData(businessId).ownerType == AGRP_BIZ_OWNER_PLAYER && getBusinessData(businessId).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
if (getBusinessData(businessId).ownerType == V_BIZ_OWNER_PLAYER && getBusinessData(businessId).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
return true;
}
if (getBusinessData(businessId).ownerType == AGRP_BIZ_OWNER_CLAN && getBusinessData(businessId).ownerId == getClanData(getPlayerClan(client)).databaseId) {
if (getBusinessData(businessId).ownerType == V_BIZ_OWNER_CLAN && getBusinessData(businessId).ownerId == getClanData(getPlayerClan(client)).databaseId) {
if (doesPlayerHaveClanPermission(client, getClanFlagValue("ManageBusinesses"))) {
return true;
}
@@ -3079,18 +3073,20 @@ function canPlayerLockUnlockBusiness(client, businessId) {
// ===========================================================================
function canPlayerManageBusiness(client, businessId) {
if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageBusinesses"))) {
return true;
function canPlayerManageBusiness(client, businessId, exemptAdminFlag = false) {
if (exemptAdminFlag == false) {
if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageBusinesses"))) {
return true;
}
}
if (getBusinessData(businessId).ownerType == AGRP_BIZ_OWNER_PLAYER) {
if (getBusinessData(businessId).ownerType == V_BIZ_OWNER_PLAYER) {
if (getBusinessData(businessId).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
return true;
}
}
if (getBusinessData(businessId).ownerType == AGRP_BIZ_OWNER_CLAN) {
if (getBusinessData(businessId).ownerType == V_BIZ_OWNER_CLAN) {
if (getBusinessData(businessId).ownerId == getPlayerClan(client)) {
if (doesPlayerHaveClanPermission(client, getClanFlagValue("ManageBusinesses"))) {
return true;

View File

@@ -1,28 +1,27 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: casino.js
// DESC: Provides casino games functions and commands
// TYPE: Server (JavaScript)
// ===========================================================================
const AGRP_CASINO_GAME_NONE = 0;
const AGRP_CASINO_GAME_BLACKJACK = 1;
const AGRP_CASINO_GAME_POKER = 2;
const AGRP_CASINO_GAME_BACCARAT = 3;
const AGRP_CASINO_GAME_ROULETTE = 4;
const AGRP_CASINO_GAME_CRAPS = 5;
const AGRP_CASINO_GAME_HOLDEM = 6;
const V_CASINO_GAME_NONE = 0;
const V_CASINO_GAME_BLACKJACK = 1;
const V_CASINO_GAME_POKER = 2;
const V_CASINO_GAME_BACCARAT = 3;
const V_CASINO_GAME_ROULETTE = 4;
const V_CASINO_GAME_CRAPS = 5;
const V_CASINO_GAME_HOLDEM = 6;
// ===========================================================================
const AGRP_CASINO_DECK_SUIT_NONE = 1;
const AGRP_CASINO_DECK_SUIT_CLUBS = 1;
const AGRP_CASINO_DECK_SUIT_DIAMONDS = 2;
const AGRP_CASINO_DECK_SUIT_HEARTS = 3;
const AGRP_CASINO_DECK_SUIT_SPADES = 4;
const V_CASINO_DECK_SUIT_NONE = 1;
const V_CASINO_DECK_SUIT_CLUBS = 1;
const V_CASINO_DECK_SUIT_DIAMONDS = 2;
const V_CASINO_DECK_SUIT_HEARTS = 3;
const V_CASINO_DECK_SUIT_SPADES = 4;
// ===========================================================================
@@ -37,45 +36,45 @@ class DeckCard {
// ===========================================================================
let cardDeck = [
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 1, "deckCardClubAce"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 2, "deckCardClubTwo"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 3, "deckCardClubThree"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 4, "deckCardClubFour"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 5, "deckCardClubFive"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 6, "deckCardClubSix"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 7, "deckCardClubSeven"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 8, "deckCardClubEight"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 9, "deckCardClubNine"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 10, "deckCardClubTen"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 11, "deckCardClubJack"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 12, "deckCardClubQueen"),
new DeckCard(AGRP_CASINO_DECK_SUIT_CLUBS, 13, "deckCardClubKing"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 1, "deckCardDiamondAce"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 2, "deckCardDiamondTwo"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 3, "deckCardDiamondThree"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 4, "deckCardDiamondFour"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 5, "deckCardDiamondFive"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 6, "deckCardDiamondSix"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 7, "deckCardDiamondSeven"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 8, "deckCardDiamondEight"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 9, "deckCardDiamondNine"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 10, "deckCardDiamondTen"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 11, "deckCardDiamondJack"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 12, "deckCardDiamondQueen"),
new DeckCard(AGRP_CASINO_DECK_SUIT_DIAMONDS, 13, "deckCardDiamondKing"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 1, "deckCardHeartAce"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 2, "deckCardHeartTwo"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 3, "deckCardHeartThree"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 4, "deckCardHeartFour"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 5, "deckCardHeartFive"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 6, "deckCardHeartSix"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 7, "deckCardHeartSeven"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 8, "deckCardHeartEight"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 9, "deckCardHeartNine"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 10, "deckCardHeartTen"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 11, "deckCardHeartJack"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 12, "deckCardHeartQueen"),
new DeckCard(AGRP_CASINO_DECK_SUIT_HEARTS, 13, "deckCardHeartKing"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 1, "deckCardClubAce"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 2, "deckCardClubTwo"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 3, "deckCardClubThree"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 4, "deckCardClubFour"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 5, "deckCardClubFive"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 6, "deckCardClubSix"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 7, "deckCardClubSeven"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 8, "deckCardClubEight"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 9, "deckCardClubNine"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 10, "deckCardClubTen"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 11, "deckCardClubJack"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 12, "deckCardClubQueen"),
new DeckCard(V_CASINO_DECK_SUIT_CLUBS, 13, "deckCardClubKing"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 1, "deckCardDiamondAce"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 2, "deckCardDiamondTwo"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 3, "deckCardDiamondThree"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 4, "deckCardDiamondFour"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 5, "deckCardDiamondFive"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 6, "deckCardDiamondSix"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 7, "deckCardDiamondSeven"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 8, "deckCardDiamondEight"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 9, "deckCardDiamondNine"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 10, "deckCardDiamondTen"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 11, "deckCardDiamondJack"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 12, "deckCardDiamondQueen"),
new DeckCard(V_CASINO_DECK_SUIT_DIAMONDS, 13, "deckCardDiamondKing"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 1, "deckCardHeartAce"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 2, "deckCardHeartTwo"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 3, "deckCardHeartThree"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 4, "deckCardHeartFour"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 5, "deckCardHeartFive"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 6, "deckCardHeartSix"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 7, "deckCardHeartSeven"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 8, "deckCardHeartEight"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 9, "deckCardHeartNine"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 10, "deckCardHeartTen"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 11, "deckCardHeartJack"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 12, "deckCardHeartQueen"),
new DeckCard(V_CASINO_DECK_SUIT_HEARTS, 13, "deckCardHeartKing"),
];
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: chat.js
// DESC: Provides chat functions and usage
@@ -9,8 +8,8 @@
// ===========================================================================
function initChatScript() {
logToConsole(LOG_INFO, "[AGRP.Chat]: Initializing chat script ...");
logToConsole(LOG_INFO, "[AGRP.Chat]: Chat script initialized successfully!");
logToConsole(LOG_INFO, "[V.RP.Chat]: Initializing chat script ...");
logToConsole(LOG_INFO, "[V.RP.Chat]: Chat script initialized successfully!");
return true;
}
@@ -225,7 +224,7 @@ function privateMessageCommand(command, params, client) {
getPlayerData(targetClient).privateMessageReplyTo = client;
messagePlayerPrivateMessage(targetClient, client, messageText);
if (hasPlayerSeenActionTip(targetClient, "ReplyToDirectMessage")) {
if (!hasPlayerSeenActionTip(targetClient, "ReplyToDirectMessage")) {
messagePlayerTip(targetClient, getGroupedLocaleString(targetClient, "ActionTips", "ReplyToDirectMessage", "{ALTCOLOUR}/reply{MAINCOLOUR}"));
}
}
@@ -402,7 +401,7 @@ function clanChat(client, messageText) {
// ===========================================================================
function canPlayerUseMegaphone(client) {
if (getPlayerFirstItemSlotByUseType(client, AGRP_ITEM_USE_TYPE_MEGAPHONE) != -1) {
if (getPlayerFirstItemSlotByUseType(client, V_ITEM_USE_TYPE_MEGAPHONE) != -1) {
if (isPlayerActiveItemEnabled(client)) {
return true;
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: clan.js
// DESC: Provides clan functions and usage
@@ -110,33 +109,31 @@ class ClanMemberData {
// ===========================================================================
function initClanScript() {
logToConsole(LOG_INFO, "[AGRP.Clan]: Initializing clans script ...");
logToConsole(LOG_INFO, "[AGRP.Clan]: Clan script initialized successfully!");
logToConsole(LOG_INFO, "[V.RP.Clan]: Initializing clans script ...");
logToConsole(LOG_INFO, "[V.RP.Clan]: Clan script initialized successfully!");
return true;
}
// ===========================================================================
function loadClansFromDatabase() {
logToConsole(LOG_INFO, "[AGRP.Clan]: Loading clans from database ...");
logToConsole(LOG_INFO, "[V.RP.Clan]: Loading clans from database ...");
let tempClans = [];
let dbConnection = connectToDatabase();
let dbAssoc;
let dbAssoc = [];
if (dbConnection) {
let dbQuery = queryDatabase(dbConnection, `SELECT * FROM clan_main WHERE clan_deleted = 0 AND clan_server = ${getServerId()}`);
if (dbQuery) {
if (dbQuery.numRows > 0) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempClanData = new ClanData(dbAssoc);
//tempClanData.members = loadClanMembersFromDatabase(tempClanData.databaseId);
tempClanData.ranks = loadClanRanksFromDatabase(tempClanData.databaseId);
tempClans.push(tempClanData);
logToConsole(LOG_DEBUG, `[AGRP.Clan]: Clan '${tempClanData.name}' loaded from database successfully!`);
}
let dbQueryString = `SELECT * FROM clan_main WHERE clan_deleted = 0 AND clan_server = ${getServerId()}`;
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempClanData = new ClanData(dbAssoc[i]);
//tempClanData.members = loadClanMembersFromDatabase(tempClanData.databaseId);
tempClanData.ranks = loadClanRanksFromDatabase(tempClanData.databaseId);
tempClans.push(tempClanData);
logToConsole(LOG_DEBUG, `[AGRP.Clan]: Clan '${tempClanData.name}' loaded from database successfully!`);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}
@@ -148,23 +145,21 @@ function loadClansFromDatabase() {
// ===========================================================================
function loadClanMembersFromDatabase() {
logToConsole(LOG_INFO, "[AGRP.Clan]: Loading clans from database ...");
logToConsole(LOG_INFO, "[V.RP.Clan]: Loading clans from database ...");
let tempClans = [];
let dbConnection = connectToDatabase();
let dbAssoc;
let dbAssoc = [];
if (dbConnection) {
let dbQuery = queryDatabase(dbConnection, `SELECT * FROM clan_main WHERE clan_deleted = 0 AND clan_server = ${getServerId()}`);
if (dbQuery) {
if (dbQuery.numRows > 0) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempClanData = new ClanData(dbAssoc);
tempClans.push(tempClanData);
logToConsole(LOG_VERBOSE, `[AGRP.Clan]: Clan '${tempClanData.name}' loaded from database successfully!`);
}
let dbQueryString = `SELECT * FROM clan_main WHERE clan_deleted = 0 AND clan_server = ${getServerId()}`;
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempClanData = new ClanData(dbAssoc[i]);
tempClans.push(tempClanData);
logToConsole(LOG_VERBOSE, `[AGRP.Clan]: Clan '${tempClanData.name}' loaded from database successfully!`);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}
@@ -179,20 +174,18 @@ function loadClanRanksFromDatabase(clanDatabaseId) {
logToConsole(LOG_INFO, `[AGRP.Clan]: Loading ranks for clan ${clanDatabaseId} from database ...`);
let dbConnection = connectToDatabase();
let dbAssoc;
let dbAssoc = [];
let tempClanRanks = [];
if (dbConnection) {
let dbQuery = queryDatabase(dbConnection, `SELECT * FROM clan_rank WHERE clan_rank_clan = ${clanDatabaseId}`);
if (dbQuery) {
if (dbQuery.numRows > 0) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
let tempClanRankData = new ClanRankData(dbAssoc);
tempClanRanks.push(tempClanRankData);
logToConsole(LOG_VERBOSE, `[AGRP.Clan]: Clan rank '${tempClanRankData.name}' loaded from database successfully!`);
}
let dbQueryString = `SELECT * FROM clan_rank WHERE clan_rank_clan = ${clanDatabaseId}`;
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
for (let i in dbAssoc) {
let tempClanRankData = new ClanRankData(dbAssoc[i]);
tempClanRanks.push(tempClanRankData);
logToConsole(LOG_VERBOSE, `[AGRP.Clan]: Clan rank '${tempClanRankData.name}' loaded from database successfully!`);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: client.js
// DESC: Provides client communication and cross-endpoint operations
@@ -9,9 +8,9 @@
// ===========================================================================
// Return-To types (for when a player is teleported)
const AGRP_RETURNTO_TYPE_NONE = 0; // "Return to" data is invalid
const AGRP_RETURNTO_TYPE_ADMINGET = 1; // "Return to" data is from admin teleporting
const AGRP_RETURNTO_TYPE_SKINSELECT = 2; // "Return to" data is from skin select
const V_RETURNTO_TYPE_NONE = 0; // "Return to" data is invalid
const V_RETURNTO_TYPE_ADMINGET = 1; // "Return to" data is from admin teleporting
const V_RETURNTO_TYPE_SKINSELECT = 2; // "Return to" data is from skin select
// ===========================================================================
@@ -37,9 +36,9 @@ class ClientData {
this.sessionId = 0;
// Security
this.passwordResetState = AGRP_RESETPASS_STATE_NONE;
this.passwordResetState = V_RESETPASS_STATE_NONE;
this.passwordResetCode = "";
this.twoFactorAuthenticationState = AGRP_2FA_STATE_NONE;
this.twoFactorAuthenticationState = V_2FA_STATE_NONE;
this.twoFactorAuthenticationCode = 0;
this.loginTimeout = null;
this.loginAttemptsRemaining = 3;
@@ -65,11 +64,11 @@ class ClientData {
// Items
this.tempLockerCache = new Array(9).fill(-1);
this.tempLockerType = AGRP_TEMP_LOCKER_TYPE_NONE;
this.tempLockerType = V_TEMP_LOCKER_TYPE_NONE;
this.hotBarItems = new Array(9).fill(-1);
this.activeHotBarSlot = -1;
this.toggleUseItem = false;
this.itemActionState = AGRP_ITEM_ACTION_NONE;
this.itemActionState = V_ITEM_ACTION_NONE;
this.itemActionItem = -1;
this.paintBallItemCache = [];
@@ -104,7 +103,7 @@ class ClientData {
this.returnToDimension = null;
this.returnToHouse = null;
this.returnToBusiness = null;
this.returnToType = AGRP_RETURNTO_TYPE_NONE;
this.returnToType = V_RETURNTO_TYPE_NONE;
// Animation
this.currentAnimation = -1;
@@ -115,11 +114,11 @@ class ClientData {
// Misc
this.changingCharacterName = false;
this.currentPickup = false;
this.currentPickup = null;
this.usingSkinSelect = false;
this.keyBinds = [];
this.incomingDamageMultiplier = 1;
this.weaponDamageEvent = AGRP_WEAPON_DAMAGE_EVENT_NORMAL;
this.weaponDamageEvent = V_WEAPON_DAMAGE_EVENT_NORMAL;
this.lastJobVehicle = null;
this.health = 100;
this.locale = 0;
@@ -128,8 +127,8 @@ class ClientData {
this.scene = "";
this.playerBlip = null;
this.alcoholLevel = 0;
this.pedState = AGRP_PEDSTATE_NONE;
this.promptType = AGRP_PROMPT_NONE;
this.pedState = V_PEDSTATE_NONE;
this.promptType = V_PROMPT_NONE;
this.privateMessageReplyTo = null;
this.enteringExitingProperty = null;
this.inProperty = null;
@@ -144,20 +143,20 @@ class ClientData {
this.jobRouteEditNextLocationDelay = 0;
this.jobRouteEditNextLocationArriveMessage = "";
this.jobRouteEditNextLocationGotoMessage = "";
this.jobRouteEditNextLocationType = AGRP_JOB_ROUTE_LOCATION_TYPE_NONE;
this.jobRouteEditNextLocationType = V_JOB_ROUTE_LOC_TYPE_NONE;
// Casino Stuff
this.casinoChips = 0; // This might become an item with a useId of a business (for chips belonging to specific casinos)
this.casinoCardHand = [];
this.casinoPlayingGame = AGRP_CASINO_GAME_NONE;
this.casinoPlayingGame = V_CASINO_GAME_NONE;
}
};
// ===========================================================================
function initClientScript() {
logToConsole(LOG_DEBUG, "[AGRP.Client]: Initializing client script ...");
logToConsole(LOG_DEBUG, "[AGRP.Client]: Client script initialized!");
logToConsole(LOG_DEBUG, "[V.RP.Client]: Initializing client script ...");
logToConsole(LOG_DEBUG, "[V.RP.Client]: Client script initialized!");
}
// ===========================================================================
@@ -222,13 +221,13 @@ function initClient(client) {
playerInitialized[client.index] = true;
//setEntityData(client, "agrp.isInitialized", true, false);
//setEntityData(client, "v.rp.isInitialized", true, false);
logToConsole(LOG_DEBUG, `[AGRP.Account] Initializing GUI for ${getPlayerDisplayForConsole(client)} ...`);
sendPlayerCurrencyString(client);
sendPlayerGUIColours(client);
sendPlayerGUIInit(client);
updatePlayerSnowState(client);
updatePlayerSnowState(client, getServerConfig().groundSnow);
//logToConsole(LOG_DEBUG, `[AGRP.Account] Showing connect camera to ${getPlayerDisplayForConsole(client)} ...`);
//showConnectCameraToPlayer(client);

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: command.js
// DESC: Provides command data, functions and usage
@@ -44,8 +43,8 @@ let serverCommands = [];
// ===========================================================================
function initCommandScript() {
logToConsole(LOG_INFO, "[AGRP.Command]: Initializing commands script ...");
logToConsole(LOG_INFO, "[AGRP.Command]: Initialized commands script!");
logToConsole(LOG_INFO, "[V.RP.Command]: Initializing commands script ...");
logToConsole(LOG_INFO, "[V.RP.Command]: Initialized commands script!");
}
// ===========================================================================
@@ -81,6 +80,8 @@ function loadCommands() {
new CommandData("chatfilter", toggleAccountProfanityFilterCommand, "", getStaffFlagValue("None"), true, false, "Turns on/off profanity filter"),
new CommandData("chatemoji", toggleAccountReplaceEmojiCommand, "", getStaffFlagValue("None"), true, false, "Turns on/off automatic emoji"),
new CommandData("emoji", toggleAccountReplaceEmojiCommand, "", getStaffFlagValue("None"), true, false, "Turns on/off automatic emoji"),
//new CommandData("resetkeybinds", resetKeyBindsCommand, "", getStaffFlagValue("None"), true, false, "Resets all your keybinds to default"),
//new CommandData("copykeybinds", copyKeyBindsToServerCommand, "<server id>", getStaffFlagValue("None"), true, false, "Copies all your current keybinds to another server"),
//new CommandData("noblood", toggleAccountHideBloodCommand, "", getStaffFlagValue("None"), true, false, "Turns on/off blood in-game"),
],
ammunation: [],
@@ -593,6 +594,7 @@ function loadCommands() {
new CommandData("biz", getPlayerCurrentBusinessCommand, "<player name/id>", getStaffFlagValue("BasicModeration"), true, true, "Gets which business a player is at/in"),
new CommandData("business", getPlayerCurrentBusinessCommand, "<player name/id>", getStaffFlagValue("BasicModeration"), true, true, "Gets which business a player is at/in"),
new CommandData("house", getPlayerCurrentHouseCommand, "<player name/id>", getStaffFlagValue("BasicModeration"), true, true, "Gets which house a player is at/in"),
//new CommandData("clearchat", clearChatCommand, "", getStaffFlagValue("None"), true, true, "Clears the chat"),
],
startup: [],
subAccount: [
@@ -719,6 +721,9 @@ function addAllCommandHandlers() {
// ===========================================================================
/**
* @return {CommandData} command
*/
function getCommand(command) {
let commandGroups = getCommands()
for (let i in commandGroups) {
@@ -735,6 +740,9 @@ function getCommand(command) {
// ===========================================================================
/**
* @return {CommandData} command
*/
function getCommandData(command) {
return getCommand(command);
}
@@ -1029,10 +1037,10 @@ function cacheAllCommandsAliases() {
// ===========================================================================
function getCommandAliasesNames(command) {
function getCommandAliasesNames(commandData) {
let commandAliases = [];
for (let i in command.aliases) {
commandAliases.push(command.aliases[i].name);
for (let i in commandData.aliases) {
commandAliases.push(commandData.aliases[i].name);
}
return commandAliases;

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: config.js
// DESC: Provides server configuration
@@ -91,10 +90,10 @@ class ServerConfigData {
this.databaseId = dbAssoc["svr_id"];
this.newCharacter = {
spawnPosition: toVector3(dbAssoc["svr_newchar_pos_x"], dbAssoc["svr_newchar_pos_y"], dbAssoc["svr_newchar_pos_z"]),
spawnHeading: dbAssoc["svr_newchar_rot_z"],
money: dbAssoc["svr_newchar_money"],
bank: dbAssoc["svr_newchar_bank"],
skin: dbAssoc["svr_newchar_skin"],
spawnHeading: toFloat(dbAssoc["svr_newchar_rot_z"]),
money: toInteger(dbAssoc["svr_newchar_money"]),
bank: toInteger(dbAssoc["svr_newchar_bank"]),
skin: toInteger(dbAssoc["svr_newchar_skin"]),
};
this.connectCameraPosition = toVector3(dbAssoc["svr_connectcam_pos_x"], dbAssoc["svr_connectcam_pos_y"], dbAssoc["svr_connectcam_pos_z"]);
@@ -198,18 +197,18 @@ let globalConfig = {
geoIPCityDatabaseFilePath: "modules/geoip/geoip-city.mmdb",
randomTipInterval: 600000,
weaponEquippableTypes: [
AGRP_ITEM_USE_TYPE_WEAPON,
AGRP_ITEM_USE_TYPE_TAZER,
AGRP_ITEM_USE_TYPE_EXTINGUISHER,
AGRP_ITEM_USE_TYPE_SPRAYPAINT,
AGRP_ITEM_USE_TYPE_PEPPERSPRAY,
V_ITEM_USE_TYPE_WEAPON,
V_ITEM_USE_TYPE_TAZER,
V_ITEM_USE_TYPE_EXTINGUISHER,
V_ITEM_USE_TYPE_SPRAYPAINT,
V_ITEM_USE_TYPE_PEPPERSPRAY,
],
onFootOnlyItems: [
AGRP_ITEM_USE_TYPE_VEHREPAIR,
AGRP_ITEM_USE_TYPE_VEHCOLOUR,
AGRP_ITEM_USE_TYPE_VEHUPGRADE_PART,
AGRP_ITEM_USE_TYPE_VEHLIVERY,
AGRP_ITEM_USE_TYPE_VEHTIRE,
V_ITEM_USE_TYPE_VEHREPAIR,
V_ITEM_USE_TYPE_VEHCOLOUR,
V_ITEM_USE_TYPE_VEHUPGRADE_PART,
V_ITEM_USE_TYPE_VEHLIVERY,
V_ITEM_USE_TYPE_VEHTIRE,
],
vehicleInactiveRespawnDelay: 1800000, // 20 minutes
chatSectionHeaderLength: 96,
@@ -247,19 +246,23 @@ let globalConfig = {
fishingCastMinStrength: 30,
jobRouteLocationSphereRadius: 3,
monthlyChanceOfSnow: [90, 50, 10, 0, 0, 0, 0, 0, 0, 0, 50, 90],
defaultEnabledAccountSettings: [
"ChatBoxTimestamps",
"ChatEmoji",
],
};
// ===========================================================================
function initConfigScript() {
logToConsole(LOG_INFO, "[AGRP.Config]: Initializing config script ...");
logToConsole(LOG_INFO, "[AGRP.Config]: Config script initialized!");
logToConsole(LOG_INFO, "[V.RP.Config]: Initializing config script ...");
logToConsole(LOG_INFO, "[V.RP.Config]: Config script initialized!");
}
// ===========================================================================
function loadGlobalConfig() {
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading global configuration ...");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loading global configuration ...");
try {
getGlobalConfig().database = loadDatabaseConfig();
} catch (error) {
@@ -309,23 +312,21 @@ function loadGlobalConfig() {
thisResource.stop();
}
logToConsole(LOG_DEBUG, "[AGRP.Config] Loaded global configuration successfully!");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loaded global configuration successfully!");
}
// ===========================================================================
function loadServerConfigFromGameAndPort(gameId, port) {
let dbConnection = connectToDatabase();
let dbAssoc = [];
if (dbConnection) {
let dbQueryString = `SELECT * FROM svr_main WHERE svr_game = ${gameId} AND svr_port = ${port} LIMIT 1;`;
let dbQuery = queryDatabase(dbConnection, dbQueryString);
if (dbQuery) {
if (dbQuery.numRows > 0) {
let dbAssoc = fetchQueryAssoc(dbQuery);
let tempServerConfigData = new ServerConfigData(dbAssoc);
freeDatabaseQuery(dbQuery);
return tempServerConfigData;
}
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
let tempServerConfigData = new ServerConfigData(dbAssoc[0]);
return tempServerConfigData;
}
disconnectFromDatabase(dbConnection);
}
@@ -336,16 +337,14 @@ function loadServerConfigFromGameAndPort(gameId, port) {
function loadServerConfigFromGame(gameId) {
let dbConnection = connectToDatabase();
let dbAssoc = [];
if (dbConnection) {
let dbQueryString = `SELECT * FROM svr_main WHERE svr_game = ${gameId} LIMIT 1;`;
let dbQuery = queryDatabase(dbConnection, dbQueryString);
if (dbQuery) {
if (dbQuery.numRows > 0) {
let dbAssoc = fetchQueryAssoc(dbQuery);
let tempServerConfigData = new ServerConfigData(dbAssoc);
freeDatabaseQuery(dbQuery);
return tempServerConfigData;
}
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
let tempServerConfigData = new ServerConfigData(dbAssoc[0]);
return tempServerConfigData;
}
disconnectFromDatabase(dbConnection);
}
@@ -356,27 +355,26 @@ function loadServerConfigFromGame(gameId) {
function loadServerConfigFromId(tempServerId) {
let dbConnection = connectToDatabase();
let dbAssoc = [];
if (dbConnection) {
let dbQueryString = `SELECT * FROM svr_main WHERE svr_id = ${tempServerId} LIMIT 1;`;
let dbQuery = queryDatabase(dbConnection, dbQueryString);
if (dbQuery) {
if (dbQuery.numRows > 0) {
let dbAssoc = fetchQueryAssoc(dbQuery);
let tempServerConfigData = new ServerConfigData(dbAssoc);
freeDatabaseQuery(dbQuery);
return tempServerConfigData;
}
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
let tempServerConfigData = new ServerConfigData(dbAssoc[0]);
return tempServerConfigData;
}
disconnectFromDatabase(dbConnection);
}
return false;
}
// ===========================================================================
function applyConfigToServer(tempServerConfig) {
logToConsole(LOG_INFO, "[AGRP.Config]: Applying server config ...");
logToConsole(LOG_DEBUG, "[AGRP.Config]: Server config applied successfully!");
logToConsole(LOG_INFO, "[V.RP.Config]: Applying server config ...");
logToConsole(LOG_DEBUG, "[V.RP.Config]: Server config applied successfully!");
updateServerGameTime();
@@ -387,7 +385,7 @@ function applyConfigToServer(tempServerConfig) {
if (isWeatherSupported()) {
logToConsole(LOG_DEBUG, `[AGRP.Config]: Setting weather to ${tempServerConfig.weather}`);
game.forceWeather(tempServerConfig.weather);
game.forceWeather(getWeatherData(tempServerConfig.weather).weatherId);
}
updateServerRules();
@@ -583,19 +581,19 @@ function setWeatherCommand(command, params, client) {
return false;
}
let weatherId = getWeatherFromParams(getParam(params, " ", 1));
let weatherIndex = getWeatherFromParams(getParam(params, " ", 1));
if (!weatherId) {
if (!getWeatherData(weatherIndex)) {
messagePlayerError(client, `That weather ID or name is invalid!`);
return false;
}
game.forceWeather(toInteger(weatherId));
getServerConfig().weather = weatherId;
game.forceWeather(getWeatherData(weatherIndex).weatherId);
getServerConfig().weather = weatherIndex;
getServerConfig().needsSaved = true;
announceAdminAction("ServerWeatherSet", getPlayerName(client), getGameConfig().weatherNames[getGame()][toInteger(weatherId)]);
announceAdminAction("ServerWeatherSet", getPlayerName(client), getWeatherData(weatherIndex).name);
updateServerRules();
return true;
}
@@ -894,7 +892,7 @@ function setServerRealWorldTimeZoneCommand(command, params, client) {
* @return {bool} Whether or not the command was successful
*
*/
function reloadServerConfigurationCommand(command, params, client) {
async function reloadServerConfigurationCommand(command, params, client) {
serverConfig = loadServerConfigFromGameAndPort(server.game, server.port);
applyConfigToServer(serverConfig);
updateServerRules();
@@ -982,7 +980,7 @@ function getServerIntroMusicURL() {
// ===========================================================================
function loadLocaleConfig() {
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading locale configuration");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loading locale configuration");
let localeConfig = JSON.parse(loadTextFile(`config/locale.json`));
if (localeConfig != null) {
return localeConfig;
@@ -992,7 +990,7 @@ function loadLocaleConfig() {
// ===========================================================================
function loadEconomyConfig() {
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading economy configuration");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loading economy configuration");
let economyConfig = JSON.parse(loadTextFile(`config/economy.json`));
if (economyConfig != null) {
return economyConfig;
@@ -1002,7 +1000,7 @@ function loadEconomyConfig() {
// ===========================================================================
function loadAccentConfig() {
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading accents configuration");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loading accents configuration");
let accentConfig = JSON.parse(loadTextFile(`config/accents.json`));
if (accentConfig != null) {
return accentConfig;
@@ -1012,7 +1010,7 @@ function loadAccentConfig() {
// ===========================================================================
function loadDiscordConfig() {
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading discord configuration");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loading discord configuration");
let discordConfig = JSON.parse(loadTextFile(`config/discord.json`));
if (discordConfig != null) {
return discordConfig;
@@ -1023,7 +1021,7 @@ function loadDiscordConfig() {
// ===========================================================================
function loadDatabaseConfig() {
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading database configuration");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loading database configuration");
let databaseConfig = JSON.parse(loadTextFile("config/database.json"));
if (databaseConfig != null) {
return databaseConfig;
@@ -1034,7 +1032,7 @@ function loadDatabaseConfig() {
// ===========================================================================
function loadKeyBindConfig() {
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading keybind configuration");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loading keybind configuration");
let keyBindConfig = JSON.parse(loadTextFile("config/keybind.json"));
if (keyBindConfig != null) {
return keyBindConfig;
@@ -1045,7 +1043,7 @@ function loadKeyBindConfig() {
// ===========================================================================
function loadEmailConfig() {
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading email configuration");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loading email configuration");
let emailConfig = JSON.parse(loadTextFile("config/email.json"));
if (emailConfig != null) {
return emailConfig;
@@ -1128,7 +1126,7 @@ function getDatabaseConfig() {
// ===========================================================================
function loadServerConfig() {
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading server configuration");
logToConsole(LOG_DEBUG, "[V.RP.Config] Loading server configuration");
if (toInteger(server.getCVar("agrp_devserver")) == 1) {
serverConfig = loadServerConfigFromGame(getGame());

View File

@@ -1,22 +1,21 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: core.js
// DESC: Provides core data structures, function, and operations
// TYPE: Server (JavaScript)
// ===========================================================================
let scriptVersion = "1.2";
let scriptVersion = "1.3";
let serverStartTime = 0;
let logLevel = LOG_INFO | LOG_DEBUG | LOG_VERBOSE; // LOG_ERROR|LOG_WARN;
let logLevel = LOG_INFO | LOG_DEBUG | LOG_VERBOSE;
let playerResourceReady = new Array(server.maxClients).fill(false);
let playerResourceStarted = new Array(server.maxClients).fill(false);
let playerInitialized = new Array(server.maxClients).fill(false);
let playerGUI = new Array(server.maxClients).fill(false);
let defaultNoAccountId = 479;
let defaultNoAccountId = 1;
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: crime.js
// DESC: Provides crime data structures, functions, and operations

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: database.js
// DESC: Provides database handling, functions and usage
@@ -15,8 +14,8 @@ let persistentDatabaseConnection = null;
// ===========================================================================
function initDatabaseScript() {
logToConsole(LOG_INFO, "[AGRP.Database]: Initializing database script ...");
logToConsole(LOG_INFO, "[AGRP.Database]: Database script initialized successfully!");
logToConsole(LOG_INFO, "[V.RP.Database]: Initializing database script ...");
logToConsole(LOG_INFO, "[V.RP.Database]: Database script initialized successfully!");
}
// ===========================================================================

View File

@@ -1,7 +1,6 @@
// ===========================================================================
// Asshat Gaming Roleplay
// https://github.com/VortrexFTW/agrp_main
// (c) 2022 Asshat Gaming
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: developer.js
// DESC: Provides developer operation, commands, functions and usage
@@ -9,7 +8,7 @@
// ===========================================================================
function initDeveloperScript() {
logToConsole(LOG_INFO, "[AGRP.Developer]: Initializing developer script ...");
logToConsole(LOG_INFO, "[V.RP.Developer]: Initializing developer script ...");
// Use GTAC command handlers for these since they need to be available on console
//addCommandHandler("sc", executeServerCodeCommand);
@@ -18,7 +17,7 @@ function initDeveloperScript() {
//addCommandHandler("allcmd", simulateCommandForAllPlayersCommand);
//addCommandHandler("addloglvl", setServerLogLevelCommand);
logToConsole(LOG_INFO, "[AGRP.Developer]: Developer script initialized successfully!");
logToConsole(LOG_INFO, "[V.RP.Developer]: Developer script initialized successfully!");
return true;
}
@@ -549,40 +548,38 @@ function isDevelopmentServer() {
// ===========================================================================
function migrateSubAccountsToPerServerData() {
async function migrateSubAccountsToPerServerData() {
let dbConnection = connectToDatabase();
let dbQuery = false;
let dbAssoc = false;
if (dbConnection) {
dbQuery = queryDatabase(dbConnection, `SELECT * FROM sacct_main`);
if (dbQuery) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
createDefaultSubAccountServerData(dbAssoc["sacct_id"]);
let dbAssoc = [];
let dbQuery2 = queryDatabase(dbConnection, `UPDATE sacct_svr SET sacct_svr_skin = ${dbAssoc["sacct_skin"]}, sacct_svr_job = ${dbAssoc["sacct_job"]} WHERE sacct_svr_sacct=${dbAssoc["sacct_id"]} AND sacct_svr_server=${dbAssoc["sacct_server"]}`);
if (dbQuery2) {
freeDatabaseQuery(dbQuery2);
}
if (dbConnection) {
let dbQueryString = `SELECT * FROM sacct_main`;
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
createDefaultSubAccountServerData(dbAssoc[0]["sacct_id"]);
let dbQuery2 = queryDatabase(dbConnection, `UPDATE sacct_svr SET sacct_svr_skin = ${dbAssoc["sacct_skin"]}, sacct_svr_job = ${dbAssoc["sacct_job"]} WHERE sacct_svr_sacct=${dbAssoc["sacct_id"]} AND sacct_svr_server=${dbAssoc["sacct_server"]}`);
if (dbQuery2) {
freeDatabaseQuery(dbQuery2);
}
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase();
}
}
// ===========================================================================
function resetAllAccountsHotkeysToDefault() {
async function resetAllAccountsHotkeysToDefault() {
let dbConnection = connectToDatabase();
let dbQuery = false;
let dbAssoc = false;
let dbAssoc = [];
if (dbConnection) {
dbQuery = queryDatabase(dbConnection, `SELECT acct_id FROM acct_main`);
if (dbQuery) {
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
createDefaultKeybindsForAccount(dbAssoc["acct_id"]);
}
freeDatabaseQuery(dbQuery);
let dbQueryString = `SELECT acct_id FROM acct_main`;
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) {
createDefaultKeybindsForAccount(dbAssoc[0]["acct_id"]);
}
disconnectFromDatabase();
}
}
@@ -649,6 +646,8 @@ function fixAllServerBlipsCommand(command, params, client) {
createAllJobBlips();
createAllBusinessBlips();
createAllHouseBlips();
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} reset all server blips`);
}
// ===========================================================================
@@ -662,6 +661,8 @@ function fixAllServerPickupsCommand(command, params, client) {
createAllJobPickups();
createAllBusinessPickups();
createAllHousePickups();
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} reset all server pickups`);
}
// ===========================================================================

Some files were not shown because too many files have changed in this diff Show More